]> dev.renevier.net Git - syj.git/blobdiff - public/js/list.js
js strict mode in development files
[syj.git] / public / js / list.js
index 240ffcf66b0d72260a90fc61f387eab9073d8aee..c30fa334aec09efeaca88f4a412c4d850bce9b9c 100644 (file)
@@ -1,10 +1,24 @@
+"use strict";
+
 var WGS84 = new OpenLayers.Projection("EPSG:4326");
 var Mercator = new OpenLayers.Projection("EPSG:900913");
 
 
 document.observe("dom:loaded", function() {
     $("message").hide();
-    $$(".map").each(function(elt) {
+
+    $$(".item").each(function(elt) {
+        new item(elt);
+    });
+});
+
+function item(elt) {
+    this.deleteHandler = elt.on('click', '.delete-link', this.remove.bindAsEventListener(this));
+    this.elt = elt;
+    this.map = this.createmap(elt.down('.map'));
+}
+item.prototype = {
+    createmap: function(elt) {
         var geom = elt.getAttribute('data-geom'),
             baseLayer = new OpenLayers.Layer.OSM("OSM"),
             map = new OpenLayers.Map(elt, { controls: [], theme: null}),
@@ -24,25 +38,21 @@ document.observe("dom:loaded", function() {
         map.addLayers([baseLayer, viewLayer]);
         viewLayer.addFeatures([wkt.read(geom)]);
         map.zoomToExtent(viewLayer.getDataExtent());
-    });
-
-    $$(".item").each(function(elt) {
-        new item(elt);
-    });
-});
+        return map;
+    },
 
-function item(elt) {
-    this.deleteHandler = elt.on('click', '.delete-link', this.remove.bindAsEventListener(this));
-    this.elt = elt;
-}
-item.prototype = {
     deleteSuccess: function() {
+        this.deactivate();
+        $("message").setMessage(SyjStrings.deleteSuccess, "success");
+    },
+
+    deactivate: function() {
+        this.map.destroy();
         this.elt.down('.title').update();
         this.elt.down('.geom').update().setStyle({backgroundColor: 'gray'});
         this.deleteHandler.stop();
         this.elt.on('click', 'a', function(evt) { evt.stop(); });
         this.elt.select('a').invoke('setStyle', {textDecoration: 'line-through'});
-        $("message").setMessage(SyjStrings.deleteSuccess, "success");
     },
 
     deleteFailure: function(transport) {
@@ -63,6 +73,7 @@ item.prototype = {
                  message = SyjStrings.requestError;
             break;
             case 410:
+                this.deactivate();
                 message = SyjStrings.gonePathError;
             break;
             case 500:
@@ -82,7 +93,7 @@ item.prototype = {
         }
         var id = this.elt.getAttribute('data-id');
 
-        $("message").hide();
+        $("message").clearMessages();
         new Ajax.Request('path/' + id.toString() + '/delete', {
             method: 'post',
             onSuccess: this.deleteSuccess.bind(this),