[Mapbender-commits] r4328 - in trunk/mapbender: conf http/javascripts

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Thu Jul 9 05:01:56 EDT 2009


Author: christoph
Date: 2009-07-09 05:01:56 -0400 (Thu, 09 Jul 2009)
New Revision: 4328

Modified:
   trunk/mapbender/conf/digitize_default.conf
   trunk/mapbender/http/javascripts/mod_digitize_tab.php
Log:
http://trac.osgeo.org/mapbender/ticket/424

Modified: trunk/mapbender/conf/digitize_default.conf
===================================================================
--- trunk/mapbender/conf/digitize_default.conf	2009-07-09 08:44:14 UTC (rev 4327)
+++ trunk/mapbender/conf/digitize_default.conf	2009-07-09 09:01:56 UTC (rev 4328)
@@ -54,6 +54,8 @@
 
 var showSaveButtonForExistingGeometries = false;
 
+var updatePointGeometriesInstantly = true;
+
 var nonTransactionalEditable = false;
 var nonTransactionalColor = "#ff66cc"; 
 var nonTransactionalLineWidth = 2; 
@@ -64,4 +66,4 @@
 var wfsWindowHeight = 300;
 
 // deprecated! check wfs_default.conf to configure this behaviour
-//var spatialRequestResultToDigitize = 1;
\ No newline at end of file
+//var spatialRequestResultToDigitize = 1;

Modified: trunk/mapbender/http/javascripts/mod_digitize_tab.php
===================================================================
--- trunk/mapbender/http/javascripts/mod_digitize_tab.php	2009-07-09 08:44:14 UTC (rev 4327)
+++ trunk/mapbender/http/javascripts/mod_digitize_tab.php	2009-07-09 09:01:56 UTC (rev 4328)
@@ -130,6 +130,7 @@
 
 try {if(mod_digitize_elName){}}catch(e) {mod_digitize_elName = "digitize";}
 try {if(nonTransactionalEditable){}}catch(e) {nonTransactionalEditable = false;}
+try {if(updatePointGeometriesInstantly){}}catch(e) {updatePointGeometriesInstantly = false;}
 try {if(addCloneGeometryButton){}}catch(e) {addCloneGeometryButton = false;}
 
 function toggleTabs(tabId) {
@@ -515,6 +516,18 @@
 	basepointPointIndex = null;	
 		
 	executeDigitizeSubFunctions();
+
+	var isPoint = d.get(i).geomType === parent.geomType.point;
+	var hasFid = d.get(i).e.getElementValueByName("fid") !== false;
+	if (mod_digitizeEvent == button_move && 
+		updatePointGeometriesInstantly && 
+		isPoint && 
+		hasFid) {
+
+		dbGeom("update", i, function () {
+			d.del(i);
+		});
+	}		
 }
 // --- basepoint handling (end) -----------------------------------------------------------------------------------------
 // ------------------------------------------------------------------------------------------------------------------------
@@ -2012,8 +2025,10 @@
 	return str;
 }
 
-function dbGeom(type,m) {
-	if (typeof(wfsWindow) != 'undefined' && !wfsWindow.closed) {
+function dbGeom(type, m, callback) {
+	var hasFid = d.get(m).e.getElementValueByName("fid") !== false;
+
+	if (!hasFid && typeof(wfsWindow) != 'undefined' && !wfsWindow.closed) {
 		d.get(m).wfs_conf = parseInt(wfsWindow.document.forms[0].wfs.options[wfsWindow.document.forms[0].wfs.selectedIndex].value);
 		d.get(m).e = new parent.Wfs_element();
 	}
@@ -2086,13 +2101,13 @@
 				var result = eval('('+json+')');
 				var success = result.success;
 				var fid = result.fid;
-				wfsSubWrite(m, type, status, success, fid);
+				wfsSubWrite(m, type, status, success, fid, callback);
 			}
 		);
 	}
 }
 
-function wfsSubWrite(m, type, status, success, fid) {
+function wfsSubWrite(m, type, status, success, fid, callback) {
 	if (status == "success" && success) {
 		if (type == 'insert' && fid) {
 			d.get(m).e.setElement("fid", fid);
@@ -2101,14 +2116,18 @@
 			parent.mb_disableThisButton(mod_digitizeEvent);
 			d.del(m);
 		}
-		
+
 		var wfsWriteMessage = msgObj.messageSuccessWfsWrite;
 	}
 	else {
 		var wfsWriteMessage = msgObj.messageErrorWfsWrite;
 	} 
+	parent.mb_execWfsWriteSubFunctions();
 
-	parent.mb_execWfsWriteSubFunctions();
+	if (updatePointGeometriesInstantly && status == "success" && success) {
+		callback();		
+	}
+
 	executeDigitizeSubFunctions();
 
 	if (typeof(wfsWindow) != 'undefined' && !wfsWindow.closed) {



More information about the Mapbender_commits mailing list