[Mapbender-commits] r2990 - in branches/tree_dev: http/php lib

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Fri Sep 19 05:05:11 EDT 2008


Author: christoph
Date: 2008-09-19 05:05:11 -0400 (Fri, 19 Sep 2008)
New Revision: 2990

Modified:
   branches/tree_dev/http/php/mod_customTree.php
   branches/tree_dev/http/php/mod_customTree_server.php
   branches/tree_dev/lib/customTreeController.js
   branches/tree_dev/lib/customTreeModel.js
Log:
* Es kann nun kein Ordner mit leerem Namen erzeugt werden
* Das L?\195?\182schen der Einstellungen in der Datenbank funktioniert nun
* Beim Wegnavigieren vom Iframe kommt die Frage, ob ?\195?\132nderungen gespeichert werden sollen (bisher nur beim Applikations-Select)
* Das L?\195?\182schen von Ordnern, die WMSe enthalten, ist nicht mehr m?\195?\182glich 

Modified: branches/tree_dev/http/php/mod_customTree.php
===================================================================
--- branches/tree_dev/http/php/mod_customTree.php	2008-09-19 08:10:22 UTC (rev 2989)
+++ branches/tree_dev/http/php/mod_customTree.php	2008-09-19 09:05:11 UTC (rev 2990)
@@ -74,6 +74,18 @@
 				return wmsIdArray;
 			};
 
+			var saveTreeOnUnloadOrChange = function (myTree) {
+				if (myTree.hasChanged) {
+					var saveChanges = confirm("You have changed the tree. All changes will be lost. Save changes?");
+
+					if (saveChanges) {
+						Save.updateDatabase(function () {
+						});
+					}
+
+				}
+			};
+
 			var addMissingWmsToCustomTree = function (aTree, anApplicationId) {
 				// get available WMS ...
 				var queryObj = {
@@ -170,14 +182,7 @@
 
 					$select = $("#applicationSelect");
 					$select.change(function () {
-						if (myTree.hasChanged) {
-							var saveChanges = confirm("You have changed the tree. All changes will be lost. Save changes?");
-	
-							if (saveChanges) {
-								Save.updateDatabase();
-							}
-
-						}
+						saveTreeOnUnloadOrChange(myTree);
 						selectApplication(this.options[this.selectedIndex].value);
 					});
 
@@ -239,7 +244,10 @@
 
 					if (confirmDelete) {
 						var queryObj = {
-							command: "delete"
+							"command": "delete",
+							"parameters": {
+								"applicationId": applicationId
+							}
 						};
 						
 						$.post("../php/mod_customTree_server.php", {
@@ -278,6 +286,10 @@
 					Restart.removeAllFolders();
 				});
 
+				// dialogue: save changes on unload
+				$(window).unload(function () {
+					saveTreeOnUnloadOrChange(myTree);
+				})
 			});
 			
 		</script>

Modified: branches/tree_dev/http/php/mod_customTree_server.php
===================================================================
--- branches/tree_dev/http/php/mod_customTree_server.php	2008-09-19 08:10:22 UTC (rev 2989)
+++ branches/tree_dev/http/php/mod_customTree_server.php	2008-09-19 09:05:11 UTC (rev 2990)
@@ -36,11 +36,11 @@
 			$sql = "DELETE FROM gui_treegde WHERE fkey_gui_id = $1";
 			$v = array($applicationId);
 			$t = array("s");
-			$res = db_prep_query($res, $v, $t);
-			$resultObj["success"] = "Deletion successful.";
+			$res = db_prep_query($sql, $v, $t);
+			$resultObj["success"] = "Deletion successful. " . $sql . " (" . $applicationId . ")";
 		}
 		else {
-			$resultObj["error"] = "Acces denied to application " . $applicationId . ".";
+			$resultObj["error"] = "Access denied to application " . $applicationId . ".";
 		}
 				
 		break;

Modified: branches/tree_dev/lib/customTreeController.js
===================================================================
--- branches/tree_dev/lib/customTreeController.js	2008-09-19 08:10:22 UTC (rev 2989)
+++ branches/tree_dev/lib/customTreeController.js	2008-09-19 09:05:11 UTC (rev 2990)
@@ -62,11 +62,16 @@
 
 
 	var deleteNode = function (treeNode) {
-		treeNode.remove();
+		if (treeNode.containsNonFolder()) {
+			alert("This folder contains a WMS. It may not be deleted. Move the WMS before deleting the folder.");
+		}
+		else {
+			treeNode.remove();
+		}
 	};
 
 	var editNode = function ($domNode, treeNode) {
-		var newName = prompt('Name:');
+		var newName = prompt('Name:', treeNode.name);
 		if (newName) {
 			treeNode.setName(newName);
 		}	
@@ -74,8 +79,10 @@
 	
 	var addNode = function ($domNode, treeNode) {
 		var newName = prompt('Name:');
-		var newChild = treeNode.addChild();
-		newChild.setName(newName);
+		if (newName) {
+			var newChild = treeNode.addChild();
+			newChild.setName(newName);
+		}
 	};
 
 	//

Modified: branches/tree_dev/lib/customTreeModel.js
===================================================================
--- branches/tree_dev/lib/customTreeModel.js	2008-09-19 08:10:22 UTC (rev 2989)
+++ branches/tree_dev/lib/customTreeModel.js	2008-09-19 09:05:11 UTC (rev 2990)
@@ -390,4 +390,18 @@
 		}
 		return false;	
 	};
+
+	this.containsNonFolder = function () {
+		var foundNonFolder = false;
+		for (var i = 0;  i < this.childNodeList.count(); i++) {
+			var child = this.childNodeList.get(i);
+			if (!child.isFolder) {
+				return true;
+			}
+			else {
+				foundNonFolder = foundNonFolder || child.containsNonFolder();
+			}
+		}
+		return foundNonFolder;	
+	};
 };
\ No newline at end of file



More information about the Mapbender_commits mailing list