X-Git-Url: https://dev.renevier.net/?a=blobdiff_plain;f=public%2Fjs%2Fsyj.js;h=f2ae9e19125230221488fe2c8eb6654a50550533;hb=3ff82e2d9fa289beba4e965b82772cf83f905b2f;hp=e32bc06bc5d45942308a0364fee384f09e09a7de;hpb=549a86ba5724503f5a7768ed87008ab1e2cb5921;p=syj.git diff --git a/public/js/syj.js b/public/js/syj.js index e32bc06..f2ae9e1 100644 --- a/public/js/syj.js +++ b/public/js/syj.js @@ -225,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; @@ -278,13 +279,13 @@ 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(); + this.hasInitialGeom = true; } else { extent = new OpenLayers.Bounds(gMaxExtent.minlon, gMaxExtent.minlat, gMaxExtent.maxlon, gMaxExtent.maxlat) .transform(WGS84, Mercator); @@ -395,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; @@ -412,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 if (transport.responseJSON) { switch (transport.responseJSON.message) { - case "unreferenced": - message = SyjStrings.unreferencedError; - break; case "uniquepath": message = SyjStrings.uniquePathError; break; @@ -434,6 +430,9 @@ var SYJView = { } } break; + case 410: + message = SyjStrings.gonePathError; + break; case 500: message = SyjStrings.serverError; this.needsFormResubmit = true;