X-Git-Url: https://dev.renevier.net/?a=blobdiff_plain;f=public%2Fjs%2Fsyj.js;h=5400ff3afcd7b4fd20516aef480a178748c3d2f8;hb=ec061a75fe57a25eb7ef0894f5e723397ba35472;hp=65f6897fbd40f9d6d38f0ef922a1cfdd7029d71c;hpb=a64d41557a62ec6051d7fa08d1ba941e089aa5c2;p=syj.git diff --git a/public/js/syj.js b/public/js/syj.js index 65f6897..5400ff3 100644 --- a/public/js/syj.js +++ b/public/js/syj.js @@ -80,10 +80,6 @@ var SyjSaveUI = { }; var SyjEditUI = { - init: function() { - return this; - }, - hide: function() { $("edit-btn").blur(); $("edit-btn").hide(); @@ -229,9 +225,10 @@ var SYJView = { map: null, wkt: new OpenLayers.Format.WKT({ internalProjection: Mercator, externalProjection: WGS84 }), needsFormResubmit: false, + hasInitialGeom: false, init: function() { - var externalGraphic, baseURL, baseLayer, layerOptions, extent = null, hidemessenger; + var externalGraphic, baseURL, baseLayer, layerOptions, extent, hidemessenger; // is svg context, opera does not resolve links with base element is svg context externalGraphic = styleMap.edit.styles.select.defaultStyle.externalGraphic; @@ -263,7 +260,6 @@ var SYJView = { this.messenger.hide(); this.editMode(); }).bind(this)); - SyjEditUI.init().hide(); $("geomform").ajaxize({ presubmit: this.prepareForm.bind(this), @@ -283,18 +279,16 @@ var SYJView = { this.messenger.hide(); } - extent = null; if ($("geom_data").value) { this.viewLayer.addFeatures([this.wkt.read($("geom_data").value)]); extent = this.viewLayer.getDataExtent(); // XXX: ie has not guessed height of map main div yet during map // initialisation. Now, it will read it correctly. this.map.updateSize(); - SyjEditUI.show(); + this.hasInitialGeom = true; } else { extent = new OpenLayers.Bounds(gMaxExtent.minlon, gMaxExtent.minlat, gMaxExtent.maxlon, gMaxExtent.maxlat) .transform(WGS84, Mercator); - this.editMode(); } this.map.zoomToExtent(extent); document.observe('simplebox:shown', this.observer.bindAsEventListener(this)); @@ -402,12 +396,12 @@ var SYJView = { }, saveSuccess: function(transport) { - if (!$("geom_id").value) { + if (!this.hasInitialGeom) { // we have created a new path, change location location = "idx/" + transport.responseText; return; } - this.messenger.setMessage(SyjStrings.saveSuccess, "success"); + this.messenger.setMessage(SyjStrings.saveSuccess, "success"); SyjSaveUI.hide(); SyjEditUI.show(); document.title = $('geom_title').value; @@ -419,20 +413,15 @@ var SYJView = { if (transport) { httpCode = transport.getStatus(); } - message = ""; switch (httpCode) { case 0: message = SyjStrings.notReachedError; break; case 400: case 404: - case 410: - message = SyjStrings.requestError; // default message + message = SyjStrings.requestError; if (transport.responseJSON) { switch (transport.responseJSON.message) { - case "unreferenced": - message = SyjStrings.unreferencedError; - break; case "uniquepath": message = SyjStrings.uniquePathError; break; @@ -441,6 +430,15 @@ var SYJView = { } } break; + case 403: + message = ""; + SYJLogin.messenger.setMessage(SyjStrings.loginNeeded, "warn"); + SYJLogin.modalbox.show(); + this.needsFormResubmit = true; + break; + case 410: + message = SyjStrings.gonePathError; + break; case 500: message = SyjStrings.serverError; this.needsFormResubmit = true; @@ -780,10 +778,12 @@ var loginMgr = Object.extend(gLoggedInfo, { } if (this.logged) { this.controlsdeck.setIndex(1); - $("geom_accept_container").hide(); + $$(".logged-hide").invoke('hide'); + $$(".logged-show").invoke('show'); } else { this.controlsdeck.setIndex(0); - $("geom_accept_container").show(); + $$(".logged-hide").invoke('show'); + $$(".logged-show").invoke('hide'); } if (this.iscreator) {