[Mapbender-commits] r1122 - trunk/mapbender/http/javascripts
svn_mapbender at osgeo.org
svn_mapbender at osgeo.org
Tue Feb 13 11:30:16 EST 2007
Author: christoph
Date: 2007-02-13 11:30:16 -0500 (Tue, 13 Feb 2007)
New Revision: 1122
Modified:
trunk/mapbender/http/javascripts/mod_digitize_tab.php
Log:
bugfixes
* Fehlermeldung beim L?\195?\182schen ?\195?\188ber Button in der Liste (wfsWindow kein Objekt)
* Linien haben keinen transaktionalen wfs. Ist es m?\195?\182glich, den Speichern Butten auszublenden?
* Digi-Workspace l?\195?\182schen und FeaturInfo abfragen l?\195?\164uft auf Fehler
* neu digitalisierte Obj sind in der Liste ohne fid... update l?\195?\164uft nicht
Modified: trunk/mapbender/http/javascripts/mod_digitize_tab.php
===================================================================
--- trunk/mapbender/http/javascripts/mod_digitize_tab.php 2007-02-13 16:29:00 UTC (rev 1121)
+++ trunk/mapbender/http/javascripts/mod_digitize_tab.php 2007-02-13 16:30:16 UTC (rev 1122)
@@ -79,7 +79,7 @@
var button_clear = "clear";
var button_combine = "combine";
-const featureTypeElementFormId = "featureTypeElementForm";
+var featureTypeElementFormId = "featureTypeElementForm";
try {if(mod_digitize_elName){}}catch(e) {mod_digitize_elName = "digitize";}
@@ -460,6 +460,9 @@
executeDigitizePreFunctions();
}
else if (obj.id == button_point || obj.id == button_line || obj.id == button_polygon || obj.id == button_clear || obj.id == button_combine){
+ var el = parent.frames[mod_digitize_target].document;
+ el.onmousemove = mod_digitize_go;
+
mod_digitizeEvent = obj.id;
executeDigitizePreFunctions();
obj.title = obj.title_on;
@@ -491,8 +494,6 @@
parent.mb_disableThisButton(button_combine);
}
if (mod_digitizeEvent == button_point || mod_digitizeEvent == button_line || mod_digitizeEvent == button_polygon || mod_digitizeEvent == button_insert ) {s.store(d);}
- var el = parent.frames[mod_digitize_target].document;
- el.onmousemove = mod_digitize_go;
}
}
@@ -504,7 +505,9 @@
executeDigitizeSubFunctions();
}
else if (obj.id == button_clear) {
+ mod_digitize_timeout();
executeDigitizeSubFunctions();
+ var el = parent.frames[mod_digitize_target].document;
}
}
// --- button handling (end) ----------------------------------------------------------------------------------------------
@@ -646,22 +649,24 @@
if (nonTransactionalEditable || isTransactional(d.get(i))) {
listOfGeom += "\t<tr>\n\t\t<td>\n";
- listOfGeom += "\t\t\t<img src = '"+buttonDig_imgdir+buttonDig_wfs_src+"' title='"+buttonDig_wfs_title+"' onclick='showWfs("+i+")'>\n";
+ if (wfsExistsForGeom(d.get(i), wfsConf)) {
+ listOfGeom += "\t\t\t<img src = '"+buttonDig_imgdir+buttonDig_wfs_src+"' title='"+buttonDig_wfs_title[selectedLanguage]+"' onclick='showWfs("+i+")'>\n";
+ }
listOfGeom += "\t\t</td>\n\t\t<td>\n";
- listOfGeom += "\t\t\t<img src = '"+buttonDig_imgdir+buttonDig_remove_src+"' title='"+buttonDig_remove_title+"' onclick='parent.mb_disableThisButton(mod_digitizeEvent);d.del("+i+");executeDigitizeSubFunctions();'>\n";
+ listOfGeom += "\t\t\t<img src = '"+buttonDig_imgdir+buttonDig_remove_src+"' title='"+buttonDig_remove_title[selectedLanguage]+"' onclick='parent.mb_disableThisButton(mod_digitizeEvent);d.del("+i+");executeDigitizeSubFunctions();'>\n";
listOfGeom += "\t\t</td>\n\t\t<td>\n";
if (isValidWfsConfIndex(wfsConf, d.get(i).wfs_conf)) {
- listOfGeom += "\t\t\t<img src = '"+buttonDig_imgdir+buttonDig_removeDb_src+"' title='"+buttonDig_removeDb_title+"' onclick=\"var deltrans = confirm('"+messageConfirmDeleteGeomFromDb[selectedLanguage]+"');if (deltrans) dbGeom('delete', "+i+")\">\n";
+ listOfGeom += "\t\t\t<img src = '"+buttonDig_imgdir+buttonDig_removeDb_src+"' title='"+buttonDig_removeDb_title[selectedLanguage]+"' onclick=\"var deltrans = confirm('"+messageConfirmDeleteGeomFromDb[selectedLanguage]+"');if (deltrans) dbGeom('delete', "+i+")\">\n";
}
listOfGeom += "\t\t</td>\n\t\t<td style = 'color:blue;font-size:12px'>\n";
listOfGeom += "\t\t\t<div onmouseover='parent.mb_wfs_perform(\"over\",d.get("+i+"));' ";
listOfGeom += " onmouseout='parent.mb_wfs_perform(\"out\",d.get("+i+"))' ";
listOfGeom += " onclick='parent.mb_wfs_perform(\"click\",d.get("+i+"));' ";
var geomName = getName(d.get(i));
- if (d.get(i).geomType == parent.geomType.polygon) {geomName += " (polygon)";}
- else if (d.get(i).geomType == parent.geomType.line) {geomName += " (line)";}
- else if (d.get(i).geomType == parent.geomType.point) {geomName += " (point)";}
+ if (d.get(i).geomType == parent.geomType.polygon) {geomName += " ("+messageDescriptionPolygon[selectedLanguage]+")";}
+ else if (d.get(i).geomType == parent.geomType.line) {geomName += " ("+messageDescriptionLine[selectedLanguage]+")";}
+ else if (d.get(i).geomType == parent.geomType.point) {geomName += " ("+messageDescriptionPoint[selectedLanguage]+")";}
listOfGeom += ">" + geomName +"</div>\t\t</td>\n\t</tr>\n";
}
@@ -798,6 +803,48 @@
// --- wfs window form check (end) -----------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------
+function getAvailableWfsForGeom(geom, wfsConf) {
+ var wfsConfIndices = [];
+
+ for (var attr in wfsConf) {
+ var isTrans = (wfsConf[attr]['wfs_transaction'] != "");
+ if (!isTrans) {
+ continue;
+ }
+ if (isValidWfsConfIndex(wfsConf, parseInt(geom.wfs_conf))) {
+
+ if (parseInt(geom.wfs_conf) == parseInt(attr)) {
+ wfsConfIndices.push(attr);
+ }
+ }
+ else {
+ for (var elementIndex = 0; elementIndex < wfsConf[attr]['element'].length ; elementIndex++) {
+ var isGeomColumn = (parseInt(wfsConf[attr]['element'][elementIndex]['f_geom']) == 1);
+ if (isGeomColumn) {
+ var isMultiPolygon = (geom.geomType == parent.geomType.polygon && wfsConf[attr]['element'][elementIndex]['element_type'] == 'MultiPolygonPropertyType');
+ var isPolygon = (geom.geomType == parent.geomType.polygon && geom.count() == 1 && wfsConf[attr]['element'][elementIndex]['element_type'] == 'PolygonPropertyType');
+ var isMultiLine = (geom.geomType == parent.geomType.line && wfsConf[attr]['element'][elementIndex]['element_type'] == 'MultiLineStringPropertyType');
+ var isLine = (geom.geomType == parent.geomType.line && geom.count() == 1 && wfsConf[attr]['element'][elementIndex]['element_type'] == 'LineStringPropertyType');
+ var isPoint = (geom.geomType == parent.geomType.point && wfsConf[attr]['element'][elementIndex]['element_type'] == 'PointPropertyType');
+// alert(isMultiPolygon + " " + isPolygon + " " + isMultiLine + " " + isLine + " " + isPoint);
+ if (isMultiPolygon || isPolygon || isMultiLine || isLine || isPoint || wfsConf[attr]['element'][elementIndex]['element_type'] == 'GeometryAssociationType') {
+
+ wfsConfIndices.push(attr);
+ }
+ }
+ }
+ }
+ }
+ return wfsConfIndices;
+}
+function wfsExistsForGeom(geom, wfsConf) {
+ wfsConfIndices = getAvailableWfsForGeom(geom, wfsConf);
+// alert(wfsConfIndices.join(","));
+ if (wfsConfIndices.length > 0) {
+ return true;
+ }
+ return false;
+}
//
@@ -824,48 +871,21 @@
onChangeText += "window.opener.setWfsWindowStyle(this.value);";
str += "\t<select name='wfs' size='" + wfsConf.length + "'";
- str += " onChange=\"alert(this.value);"+ onChangeText +"\"";
+ str += " onChange=\""+ onChangeText +"\"";
str += ">\n\t\t";
- for (var attr in wfsConf) {
- var isTrans = (wfsConf[attr]['wfs_transaction'] != "");
- if (!isTrans) {
- continue;
+ var wfsConfIndices = getAvailableWfsForGeom(d.get(geometryIndex), wfsConf);
+// alert(wfsConfIndices.join(","));
+ var selected = false;
+ for (var i = 0; i < wfsConfIndices.length ; i++) {
+ str += "<option value='" + wfsConfIndices[i] + "'";
+ if (!selected) {
+ str += " selected";
+ selected = true;
+ defaultIndex = parseInt(wfsConfIndices[i]);
}
- if (isValidWfsConfIndex(wfsConf, parseInt(d.get(geometryIndex).wfs_conf))) {
-
- if (parseInt(d.get(geometryIndex).wfs_conf) == parseInt(attr)) {
- str += "<option value='" + attr + "'";
- str += " selected";
- defaultIndex = parseInt(attr);
- str += ">" + wfsConf[attr]['wfs_conf_abstract'];
- str += "</option>\n\t\t";
- }
- }
- else {
- var selected = false;
- for (var elementIndex = 0; elementIndex < wfsConf[attr]['element'].length ; elementIndex++) {
- var isGeomColumn = (parseInt(wfsConf[attr]['element'][elementIndex]['f_geom']) == 1);
- if (isGeomColumn) {
- var isMultiPolygon = (d.get(geometryIndex).geomType == parent.geomType.polygon && wfsConf[attr]['element'][elementIndex]['element_type'] == 'MultiPolygonPropertyType');
- var isPolygon = (d.get(geometryIndex).geomType == parent.geomType.polygon && d.get(geometryIndex).count() == 1 && wfsConf[attr]['element'][elementIndex]['element_type'] == 'PolygonPropertyType');
- var isMultiLine = (d.get(geometryIndex).geomType == parent.geomType.line && wfsConf[attr]['element'][elementIndex]['element_type'] == 'MultiLineStringPropertyType');
- var isLine = (d.get(geometryIndex).geomType == parent.geomType.line && d.get(geometryIndex).count() == 1 && wfsConf[attr]['element'][elementIndex]['element_type'] == 'LineStringPropertyType');
- var isPoint = (d.get(geometryIndex).geomType == parent.geomType.point && wfsConf[attr]['element'][elementIndex]['element_type'] == 'PointPropertyType');
-// alert(isMultiPolygon + " " + isPolygon + " " + isMultiLine + " " + isLine + " " + isPoint);
- if (isMultiPolygon || isPolygon || isMultiLine || isLine || isPoint || wfsConf[attr]['element'][elementIndex]['element_type'] == 'GeometryAssociationType') {
- str += "<option value='" + attr + "'";
- if (!selected) {
- str += " selected";
- selected = true;
- defaultIndex = parseInt(attr);
- }
- str += ">" + wfsConf[attr]['wfs_conf_abstract'];
- str += "</option>\n\t\t";
- }
- }
- }
- }
+ str += ">" + wfsConf[wfsConfIndices[i]]['wfs_conf_abstract'];
+ str += "</option>\n\t\t";
}
@@ -1058,15 +1078,20 @@
else {
fid = d.get(m).e.getElementValueByName('fid');
}
-
str = parent.get_wfs_str(myconf, d, m, type, fid);
- parent.mb_ajax_post("../extensions/geom2wfst.php", {'filter':str,'url':myconf['wfs_transaction']}, function(response,status){
- wfsSubWrite(m, type, status, response);
+ parent.mb_ajax_post("../extensions/geom2wfst.php", {'filter':str,'url':myconf['wfs_transaction']}, function(json,status){
+ var result = eval('('+json+')');
+ var response = result.response;
+ var fid = result.fid;
+ wfsSubWrite(m, type, status, response, fid);
});
}
}
-function wfsSubWrite(m, type, status, response) {
+function wfsSubWrite(m, type, status, response, fid) {
+ if (type == 'save' && fid) {
+ d.get(m).e.setElement("fid", fid);
+ }
parent.mb_execWfsWriteSubFunctions();
if (type == 'delete') {
@@ -1081,8 +1106,13 @@
else {
var wfsWriteMessage = messageErrorWfsWrite[selectedLanguage];
}
- wfsWindow.alert(wfsWriteMessage);
- wfsWindow.close();
+ if (typeof(wfsWindow) != 'undefined' && !wfsWindow.closed) {
+ wfsWindow.alert(wfsWriteMessage);
+ wfsWindow.close();
+ }
+ else {
+ alert(wfsWriteMessage);
+ }
}
// --- wfs window (begin) -----------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------
More information about the Mapbender_commits
mailing list