public static function get_form($args, $node, $response = null) { global $indicia_templates; global $user; $indicia_templates['select_item'] = '<option value="{value}" {selected} >{caption} </option>'; // we don't use the map, but a lot of the inherited code assumes the map is present. self::$svcUrl = data_entry_helper::$base_url . '/index.php/services'; data_entry_helper::add_resource('openlayers'); $indicia_templates['label'] = '<label for="{id}"{labelClass}>{label}:</label>'; // can't have the CR on the end $indicia_templates['zilch'] = ''; // can't have the CR on the end self::$locations = iform_loctools_listlocations($node); $retVal = parent::get_form($args, $node, $response); $reload = data_entry_helper::get_reload_link_parts(); $reloadPath = $reload['path']; if (self::$mode != 0) { data_entry_helper::$javascript .= "\njQuery('<div class=\"ui-widget-content ui-state-default ui-corner-all indicia-button tab-cancel\"><span><a href=\"" . $reloadPath . "\">Cancel</a></span></div>').appendTo('.buttons');\n\$.validator.messages.required = \"" . lang::get('validation_required') . "\";"; if (!iform_loctools_checkaccess($node, 'superuser')) { data_entry_helper::$javascript .= "\njQuery('[name=smpAttr\\:" . $args['observer_attr_id'] . "],[name^=smpAttr\\:" . $args['observer_attr_id'] . "\\:]').attr('readonly',true)"; if (self::$mode == 1) { data_entry_helper::$javascript .= ".val(\"" . $user->name . "\");"; } else { data_entry_helper::$javascript .= ";"; } } else { $userlist = iform_loctools_listusers($node); data_entry_helper::$javascript .= "\nexisting = jQuery('[name=smpAttr\\:" . $args['observer_attr_id'] . "],[name^=smpAttr\\:" . $args['observer_attr_id'] . "\\:]');\nreplacement = '<select name=\"'+existing.attr('name')+'\" >"; foreach ($userlist as $uid => $a_user) { data_entry_helper::$javascript .= "<option value=\"" . $a_user->name . "\">" . $a_user->name . " </option>"; } data_entry_helper::$javascript .= "</select>';\njQuery(replacement).insertBefore(existing).val(existing.val());\nexisting.remove();\n"; } data_entry_helper::$javascript .= "\n// jQuery('#sample\\\\:date').datepicker( \"option\", \"minDate\", new Date(2010, 4 - 1, 1) );\nDate.prototype.getMonthName = function() {\nvar m = ['" . lang::get('January') . "','" . lang::get('February') . "','" . lang::get('March') . "',\n'" . lang::get('April') . "','" . lang::get('May') . "','" . lang::get('June') . "',\n'" . lang::get('July') . "','" . lang::get('August') . "','" . lang::get('September') . "',\n'" . lang::get('October') . "','" . lang::get('November') . "','" . lang::get('December') . "'];\nreturn m[this.getMonth()];\n} \nvar monthAttr = jQuery('[name=smpAttr\\\\:" . $args['month_attr_id'] . "],[name^=smpAttr\\\\:" . $args['month_attr_id'] . "\\\\:]').attr('disabled', true);\nmonthAttr.before('<input type=\"hidden\" id=\"storedMonth\" name=\"'+monthAttr.attr('name')+'\">');\nupdateSampleDate = function(context, doAlert){\n jQuery('.displayDateDetails').empty().append('<span>'+jQuery('[name=sample\\:date]').val()+'</span>');\n var myDate = jQuery(context).datepicker(\"getDate\").getMonthName();\n var monthAttr = jQuery('[name=smpAttr\\\\:" . $args['month_attr_id'] . "],[name^=smpAttr\\\\:" . $args['month_attr_id'] . "\\\\:]').filter('select').val(\"\");\n monthAttr.find(\"option:contains('\"+myDate+\"')\").attr('selected',true) ; \n jQuery('#storedMonth').val(monthAttr.val()); // doing in this order converts the text to a number and stores that number in the storedMonth\n if(doAlert && monthAttr.val() == \"\")\n \talert('Given date is outside valid month range (April to September).');\n};\njQuery('#sample\\\\:date').change(function(){updateSampleDate(this, true);});\nupdateSampleDate('#sample\\\\:date', false);\njQuery('.tab-submit').unbind('click');\njQuery('.tab-submit').click(function() {\n var current=jQuery('#controls').tabs('option', 'selected');\n var tabinputs = jQuery('#entry_form div > .ui-tabs-panel:eq('+current+')').find('input,select');\n var secList = '';\n if (!tabinputs.valid()) { return; }\n var rows = jQuery('.sectionlist').find('tr');\n for(var i=1; i<= " . $args['max_number_sections'] . "; i++){\n if(jQuery('.sectionlist').find('[section='+i+']').length > 0) {\n var aucuneControl = jQuery(':checkbox[name^=\"SLA\\:'+i+'\\:\"]').filter('[name\$=\"\\:" . $args['aucune_attr_id'] . "\"]');\n var foundEntry = false;\n for(var j = 1; j < (rows.length-(numAttrs+1)); j++){\n foundEntry = foundEntry || (jQuery(rows[j]).find('td').filter(':eq('+i+')').find('[value!=\"\"]').length > 0);\n }\n if(!foundEntry && !aucuneControl.attr('checked')){\n secList = secList + (secList=='' ? '' : ', ') + i;\n }\n }\n }\n if (secList != ''){\n alert('The following sections have no species recorded against them: Section(s) '+secList+'. In these circumstances, the \"No Observation\" checkbox must be checked for the relevant section.'); \n return;\n }\n var form = jQuery(this).parents('form:first');\n form.submit();\n});\n"; } else { $retVal .= "<div style=\"display:none\" />\n <form id=\"form-delete-survey\" action=\"" . $reloadPath . "\" method=\"POST\">" . self::$auth['write'] . "\n <input type=\"hidden\" name=\"website_id\" value=\"" . $args['website_id'] . "\" />\n <input type=\"hidden\" name=\"survey_id\" value=\"" . $args['survey_id'] . "\" />\n <input type=\"hidden\" name=\"sample:id\" value=\"\" />\n <input type=\"hidden\" name=\"sample:date\" value=\"2010-01-01\"/>\n <input type=\"hidden\" name=\"sample:location_id\" value=\"\" />\n <input type=\"hidden\" name=\"sample:deleted\" value=\"t\" />\n </form>\n</div>"; data_entry_helper::$javascript .= "\ndeleteSurvey = function(sampleID){\n if(confirm(\"Are you sure you wish to delete survey \"+sampleID)){\n jQuery.getJSON(\"" . self::$svcUrl . "/data/sample/\"+sampleID +\n \"?mode=json&view=detail&auth_token=" . self::$auth['read']['auth_token'] . "&nonce=" . self::$auth['read']["nonce"] . "\" +\n \"&callback=?\", function(data) {\n if (data.length>0) {\n jQuery('#form-delete-survey').find('[name=sample\\:id]').val(data[0].id);\n jQuery('#form-delete-survey').find('[name=sample\\:date]').val(data[0].date_start);\n jQuery('#form-delete-survey').find('[name=sample\\:location_id]').val(data[0].location_id);\n jQuery('#form-delete-survey').submit();\n }});\n };\n};\n"; } return $retVal; }