X-Git-Url: https://dev.renevier.net/gitweb.cgi?a=blobdiff_plain;f=public%2Fjs%2Fsyj.js;h=4032cca7989f10060fcbd970f7528f016bedee82;hb=ecc2a5e8ea444b4a0f2384355e4fa21c6571ab2e;hp=112c6f762530d03ba2c67a0144dc98ab075911e3;hpb=925b83c0d6703c33469ec668171ac11f36db7980;p=syj.git diff --git a/public/js/syj.js b/public/js/syj.js index 112c6f7..4032cca 100644 --- a/public/js/syj.js +++ b/public/js/syj.js @@ -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. @@ -394,9 +394,13 @@ var SYJView = { return; } + var self = this; this.editControl = new OpenLayers.Control.DrawFeature(new OpenLayers.Layer.Vector(), OpenLayers.Handler.SyjModifiablePath, { callbacks: { modify: function(f, line) { + if (!self.unsavedRoute) { + self.unsavedRoute = {}; + } if (this.handler.realPoints.length < 2) { SyjSaveUI.show().disable(); } else { @@ -429,10 +433,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 +447,8 @@ var SYJView = { }, saveSuccess: function(transport) { + this.unsavedRoute = null; + if (transport.responseJSON && (typeof transport.responseJSON.redirect === "string")) { location = transport.responseJSON.redirect; return; @@ -451,7 +457,6 @@ var SYJView = { this.messenger.setMessage(SyjStrings.saveSuccess, "success"); SyjSaveUI.hide(); SyjEditUI.show(); - this.unsavedRoute = null; document.title = $('geom_title').value; }, @@ -975,3 +980,10 @@ document.observe("dom:loaded", function() { SYJNewpwd.init(); LoginMgr.updateUI(); }); +window.onbeforeunload = function() { + if (SYJView.unsavedRoute) { + return SyjStrings.unsavedConfirmExit; + } else { + return undefined; + } +}