[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