]> dev.renevier.net Git - syj.git/blobdiff - public/js/syj.js
separate route to create a new path, and to update an existing one
[syj.git] / public / js / syj.js
index bb8ce117dab0e65263eff9496b0b0df920a71cc8..f2ae9e19125230221488fe2c8eb6654a50550533 100644 (file)
@@ -225,6 +225,7 @@ 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, hidemessenger;
@@ -284,6 +285,7 @@ var SYJView = {
             // 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);
@@ -394,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;
@@ -417,13 +419,9 @@ var SYJView = {
             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;
@@ -432,6 +430,9 @@ var SYJView = {
                     }
                 }
             break;
+            case 410:
+                message = SyjStrings.gonePathError;
+            break;
             case 500:
                 message = SyjStrings.serverError;
                 this.needsFormResubmit = true;