[Mapbender-commits] r4321 - trunk/mapbender/http/javascripts
svn_mapbender at osgeo.org
svn_mapbender at osgeo.org
Wed Jul 8 10:44:22 EDT 2009
Author: verenadiewald
Date: 2009-07-08 10:44:22 -0400 (Wed, 08 Jul 2009)
New Revision: 4321
Modified:
trunk/mapbender/http/javascripts/mod_digitize_tab.php
Log:
correct handling of mandatory fields
Modified: trunk/mapbender/http/javascripts/mod_digitize_tab.php
===================================================================
--- trunk/mapbender/http/javascripts/mod_digitize_tab.php 2009-07-08 14:35:25 UTC (rev 4320)
+++ trunk/mapbender/http/javascripts/mod_digitize_tab.php 2009-07-08 14:44:22 UTC (rev 4321)
@@ -35,6 +35,7 @@
$digitize_conf_filename = "digitize_default.conf";
include '../include/dyn_css.php';
?>
+<script type='text/javascript' src='../extensions/jquery-1.3.2.min.js'></script>
<script language='JavaScript'>
//
// Buttons
@@ -1378,7 +1379,7 @@
for (var i = 0; i < form.childNodes.length && isCorrect; i++) {
if (form.childNodes[i].nodeName.toUpperCase() == "SELECT") {
name += form.childNodes[i].name;
- if (parseInt(form.childNodes[i].selectedIndex) == 0 && form.childNodes[i].getAttribute("mandatory") == "true") {
+ if (parseInt(form.childNodes[i].selectedIndex) == 0 && $(form.childNodes[i]).hasClass("mandatory")) {
var msg = name + ": " + msgObj.messageSelectAnOption + "\n"
var categ = form.childNodes[i].getAttribute("category");
if (typeof(categ) != "undefined") {
@@ -1401,25 +1402,18 @@
var isCorrect = true;
var errorMessage = "";
- nodeArray = doc.getElementsByName("mandatory");
- for (var i = 0; i < nodeArray.length && isCorrect; i++) {
- if (nodeArray[i].nodeName.toUpperCase() == "INPUT" && nodeArray[i].type == "hidden" && nodeArray[i].id.substr(0,10) == "mandatory_") {
- var nodeId = nodeArray[i].id.substr(10);
- if (nodeArray[i].value == "true") {
- if (doc.getElementById(nodeId).value == "") {
- isCorrect = false;
- errorMessage += "'"+ doc.getElementById(nodeId).name +"': "+ msgObj.messageErrorFieldIsEmpty +"\n";
- }
- }
+ var $nodeArray = $(".mandatory", doc);
+ for (var i = 0; i < $nodeArray.size() && isCorrect; i++) {
+ var $currentNode = $nodeArray.eq(i);
+ var tagName = $currentNode.get(0).nodeName.toUpperCase();
+ if (tagName == "INPUT" && $currentNode.val() == "") {
+ isCorrect = false;
+ errorMessage += "'"+ $currentNode.attr("name") +"': "+ msgObj.messageErrorFieldIsEmpty +"\n";
}
- if (nodeArray[i].nodeName.toUpperCase() == "SELECT" && nodeArray[i].type == "hidden" && nodeArray[i].id.substr(0,10) == "mandatory_") {
- var nodeId = nodeArray[i].id.substr(10);
- if (nodeArray[i].value == "true") {
- if (parseInt(form.childNodes[i].selectedIndex) == 0) {
- isCorrect = false;
- errorMessage += "'"+ doc.getElementById(nodeId).name +"': "+ msgObj.messageErrorFieldIsEmpty +"\n";
- }
- }
+
+ if (tagName == "SELECT" && parseInt($currentNode.get(0).selectedIndex) == 0) {
+ isCorrect = false;
+ errorMessage += "'"+ $currentNode.attr("name") +"': "+ msgObj.messageErrorFieldIsEmpty +"\n";
}
}
return {"isCorrect":isCorrect, "errorMessage":errorMessage};
@@ -1657,6 +1651,7 @@
headStr += 'div.helptext p { margin: 0 ; }';
headStr += 'div.helptext p a.close { display: block;margin: 5px auto;text-align: center; }';
headStr += 'a img { vertical-align: middle;border: 0; }';
+ headStr += '.mandatory { border:1px solid red; }';
headStr += '</style>';
headStr += '</head><body onload="window.opener.toggleTabs(\''+initialTab+'\'); var $dp = $(\'.hasdatepicker\');$dp.datepicker();">';
wfsWindow.document.write(headStr);
@@ -1680,20 +1675,21 @@
wfsWindow.document.getElementsByTagName("style")[0].innerHTML = wfsConf[wfsConfIndex]['g_style'];
}
-function prepareSelectBox (formElementHtml, categoryName, isMandatory, elementLabel, elementValue) {
+function prepareSelectBox (formElementHtml, categoryName, isMandatory, elementLabel, elementValue, styleId) {
+ var classString = (styleId == '0') ? "" : styleId;
+ var patternString = "<select";
+ var pattern = new RegExp(patternString);
// set category
if (categoryName) {
- var patternString = "<select";
- var pattern = new RegExp(patternString);
formElementHtml = formElementHtml.replace(pattern, patternString + " category='" + categoryName + "' ");
}
if (isMandatory) {
// set border if mandatory
- patternString = "<select";
- pattern = new RegExp(patternString);
- formElementHtml = formElementHtml.replace(pattern, patternString + " mandatory='true' style='border:1px solid red' ");
+ classString += " mandatory";
}
+ classString = (classString !== "") ? " class='"+classString+"' " : " ";
+ formElementHtml = formElementHtml.replace(pattern, patternString + classString);
// set name of select box to elementlabel
patternString = "name\s*=\s*\\*'\w+\\*'";
@@ -1715,20 +1711,22 @@
return formElementHtml;
}
-function prepareDatepicker (formElementHtml, categoryName, isMandatory, elementLabel, elementValue) {
+function prepareDatepicker (formElementHtml, categoryName, isMandatory, elementLabel, elementValue, styleId) {
+ var classString = (styleId == '0') ? "" : styleId;
+ var patternString = "<input";
+ var pattern = new RegExp(patternString);
+
// set category
if (categoryName) {
- var patternString = "<input";
- var pattern = new RegExp(patternString);
formElementHtml = formElementHtml.replace(pattern, patternString + " category='" + categoryName + "' ");
}
if (isMandatory) {
// set border if mandatory
- patternString = "<input";
- pattern = new RegExp(patternString);
- formElementHtml = formElementHtml.replace(pattern, patternString + " mandatory='true' style='border:1px solid red' ");
+ classString += " mandatory";
}
+ classString = (classString !== "") ? " class='"+classString+"' " : " ";
+ formElementHtml = formElementHtml.replace(pattern, patternString + classString);
// set name of select box to elementlabel
patternString = "name\s*=\s*\\*'\w+\\*'";
@@ -1750,20 +1748,21 @@
return formElementHtml;
}
-function prepareTextArea (formElementHtml, categoryName, isMandatory, elementLabel, elementValue) {
+function prepareTextArea (formElementHtml, categoryName, isMandatory, elementLabel, elementValue, styleId) {
+ var classString = (styleId == '0') ? "" : styleId;
+ var patternString = "<textarea";
+ var pattern = new RegExp(patternString);
// set category
if (categoryName) {
- var patternString = "<textarea";
- var pattern = new RegExp(patternString);
formElementHtml = formElementHtml.replace(pattern, patternString + " category='" + categoryName + "' ");
}
if (isMandatory) {
// set border if mandatory
- patternString = "<textarea";
- pattern = new RegExp(patternString);
- formElementHtml = formElementHtml.replace(pattern, patternString + " mandatory='true' style='border:1px solid red' ");
+ classString += " mandatory";
}
+ classString = (classString !== "") ? " class='"+classString+"' " : " ";
+ formElementHtml = formElementHtml.replace(pattern, patternString + classString);
// set name of select box to elementlabel
patternString = "name\s*=\s*\\*'\w+\\*'";
@@ -1894,16 +1893,19 @@
}
var formElementHtml = featureTypeElement['f_form_element_html'];
if (!formElementHtml) {
- mandatoryHint = '';
- var mandatoryHint = (parseInt(featureTypeElement['f_mandatory']) == 1) ? ' style="border:1px solid red;"' : '';
+ var classString = (styleId == '0') ? "" : featureTypeElement['f_style_id'];
+ if (parseInt(featureTypeElement['f_mandatory']) == 1) {
+ classString += " mandatory";
+ }
+ classString = (classString !== "") ? " class='"+classString+"' " : " ";
+
str += "\t\t\t\t<input id = 'datatype_mb_digitize_form_" + elementName + "' name='datatype' type='hidden' value = '" + elementType + "'>\n";
- str += "\t\t\t\t<input id = 'mandatory_mb_digitize_form_" + elementName + "' name='mandatory' type='hidden' value = '" + isMandatory + "'>\n";
if (!hasCategories) {
- str += "\t\t\t\t<input id = 'mb_digitize_form_" + elementName + "' name='" + elementLabel + "' type='text' " + mandatoryHint + " class = '"+featureTypeElement['f_style_id']+"' size=20 value = '" + elementValue + "'>\n";
+ str += "\t\t\t\t<input id = 'mb_digitize_form_" + elementName + "' name='" + elementLabel + "' type='text' "+classString+" size=20 value = '" + elementValue + "'>\n";
}
else {
- str += "\t\t\t\t<input category='"+elementCategories[currentCategory]+"' id = 'mb_digitize_form_" + elementName + "' name='" + elementLabel + "' type='text' " + mandatoryHint + " class = '"+featureTypeElement['f_style_id']+"' size=20 value = '" + elementValue + "'>\n";
+ str += "\t\t\t\t<input category='"+elementCategories[currentCategory]+"' id = 'mb_digitize_form_" + elementName + "' name='" + elementLabel + "' type='text' "+classString+" size=20 value = '" + elementValue + "'>\n";
}
}
else {
@@ -1915,18 +1917,19 @@
var patternString = "<select";
pattern = new RegExp(patternString);
+ var styleId = featureTypeElement['f_style_id'];
if (pattern.test(formElementHtml)) {
- formElementHtml = prepareSelectBox(formElementHtml, "", isMandatory, elementLabel, elementValue);
+ formElementHtml = prepareSelectBox(formElementHtml, "", isMandatory, elementLabel, elementValue, styleId);
}
var patternString = "hasdatepicker";
pattern = new RegExp(patternString);
if (pattern.test(formElementHtml)) {
- formElementHtml = prepareDatepicker(formElementHtml, "", isMandatory, elementLabel, elementValue);
+ formElementHtml = prepareDatepicker(formElementHtml, "", isMandatory, elementLabel, elementValue, styleId);
}
var patternString = "<textarea";
pattern = new RegExp(patternString);
if (pattern.test(formElementHtml)) {
- formElementHtml = prepareTextArea(formElementHtml, "", isMandatory, elementLabel, elementValue);
+ formElementHtml = prepareTextArea(formElementHtml, "", isMandatory, elementLabel, elementValue, styleId);
}
str += formElementHtml;
}
More information about the Mapbender_commits
mailing list