X-Git-Url: https://dev.renevier.net/?a=blobdiff_plain;f=public%2Fjs%2Flist.js;h=c30fa334aec09efeaca88f4a412c4d850bce9b9c;hb=facf74e6972eafb727833b85b38b061215dea833;hp=240ffcf66b0d72260a90fc61f387eab9073d8aee;hpb=2d66d0fe742edb3d91af7f76154619ecbcf75c6d;p=syj.git diff --git a/public/js/list.js b/public/js/list.js index 240ffcf..c30fa33 100644 --- a/public/js/list.js +++ b/public/js/list.js @@ -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),