]> dev.renevier.net Git - syj.git/blobdiff - public/js/syj.js
some jslint cleanup
[syj.git] / public / js / syj.js
index 112c6f762530d03ba2c67a0144dc98ab075911e3..190cc76ee4d7a192aa56cb298cad4289c7b99f96 100644 (file)
@@ -243,32 +243,32 @@ var SYJView = {
         this.map.addLayers([baseLayer, this.viewLayer]);
 
         if ($("edit-btn")) {
-            $("edit-btn").observe('click', (function() {
+            $("edit-btn").observe('click', function() {
                 $("geom_submit").value = SyjStrings.editAction;
                 this.messenger.hide();
                 this.editMode();
                 this.mode = 'edit';
-            }).bind(this));
+            }.bind(this));
         }
 
         if ($("create-btn")) {
-            $("create-btn").observe('click', (function() {
+            $("create-btn").observe('click', function() {
                 $("geom_submit").value = SyjStrings.createAction;
                 this.messenger.hide();
                 this.editMode();
                 this.mode = 'create';
-            }).bind(this));
+            }.bind(this));
         }
 
         if ($("clone-btn")) {
-            $("clone-btn").observe('click', (function() {
+            $("clone-btn").observe('click', function() {
                 $("geom_submit").value = SyjStrings.cloneAction;
                 $("geom_title").value = "";
                 this.messenger.hide();
                 this.editMode();
                 this.mode = 'create';
                 SyjSaveUI.enableSubmit();
-            }).bind(this));
+            }.bind(this));
         }
 
         $("geomform").ajaxize({
@@ -289,8 +289,8 @@ var SYJView = {
             this.messenger.hide();
         }
 
-        if ($("geom_data").value) {
-            this.viewLayer.addFeatures([this.wkt.read($("geom_data").value)]);
+        if (typeof gInitialGeom !== "undefined" && typeof gInitialGeom.data !== "undefined") {
+            this.viewLayer.addFeatures([this.wkt.read(gInitialGeom.data)]);
             extent = this.viewLayer.getDataExtent();
             // XXX: ie has not guessed height of map main div yet during map
             // initialisation. Now, it will read it correctly.
@@ -397,6 +397,9 @@ var SYJView = {
         this.editControl = new OpenLayers.Control.DrawFeature(new OpenLayers.Layer.Vector(), OpenLayers.Handler.SyjModifiablePath, {
             callbacks: {
                 modify: function(f, line) {
+                    if (!SYJView.unsavedRoute) {
+                        SYJView.unsavedRoute = {};
+                    }
                     if (this.handler.realPoints.length < 2) {
                         SyjSaveUI.show().disable();
                     } else {
@@ -429,10 +432,10 @@ var SYJView = {
                 SyjEditUI.show();
                 this.messenger.hide();
 
-                if (typeof this.unsavedRoute.features !== "undefined") {
+                if (this.unsavedRoute && typeof this.unsavedRoute.features !== "undefined") {
                     this.viewLayer.addFeatures(this.unsavedRoute.features);
                 }
-                if (typeof this.unsavedRoute.title !== "undefined") {
+                if (this.unsavedRoute && typeof this.unsavedRoute.title !== "undefined") {
                     $("geom_title").value = this.unsavedRoute.title;
                 } else {
                     $("geom_title").value = "";
@@ -443,6 +446,8 @@ var SYJView = {
     },
 
     saveSuccess: function(transport) {
+      this.unsavedRoute = null;
+
       if (transport.responseJSON && (typeof transport.responseJSON.redirect === "string")) {
           location = transport.responseJSON.redirect;
           return;
@@ -451,7 +456,6 @@ var SYJView = {
       this.messenger.setMessage(SyjStrings.saveSuccess, "success");
       SyjSaveUI.hide();
       SyjEditUI.show();
-      this.unsavedRoute = null;
       document.title = $('geom_title').value;
     },
 
@@ -975,3 +979,10 @@ document.observe("dom:loaded", function() {
     SYJNewpwd.init();
     LoginMgr.updateUI();
 });
+window.onbeforeunload = function() {
+    if (SYJView.unsavedRoute) {
+        return SyjStrings.unsavedConfirmExit;
+    } else {
+        return undefined;
+    }
+};