3 var WGS84 = new OpenLayers.Projection("EPSG:4326");
4 var Mercator = new OpenLayers.Projection("EPSG:900913");
7 document.observe("dom:loaded", function() {
10 $$(".item").each(function(elt) {
16 this.deleteHandler = elt.on('click', '.delete-link', this.remove.bindAsEventListener(this));
18 this.map = this.createmap(elt.down('.map'));
21 createmap: function(elt) {
22 var geom = elt.getAttribute('data-geom'),
23 baseLayer = new OpenLayers.Layer.OSM("OSM"),
24 map = new OpenLayers.Map(elt, { controls: [], theme: null}),
25 layerOptions = {format: OpenLayers.Format.WKT,
27 styleMap: new OpenLayers.StyleMap({
28 "default": new OpenLayers.Style({
34 wkt = new OpenLayers.Format.WKT({ internalProjection: Mercator, externalProjection: WGS84 }),
35 viewLayer = new OpenLayers.Layer.Vector("View Layer", layerOptions),
38 map.addLayers([baseLayer, viewLayer]);
39 viewLayer.addFeatures([wkt.read(geom)]);
40 map.zoomToExtent(viewLayer.getDataExtent());
44 deleteSuccess: function() {
46 $("message").setMessage(SyjStrings.deleteSuccess, "success");
49 deactivate: function() {
51 this.elt.down('.title').update();
52 this.elt.down('.geom').update().setStyle({backgroundColor: 'gray'});
53 this.deleteHandler.stop();
54 this.elt.on('click', 'a', function(evt) { evt.stop(); });
55 this.elt.select('a').invoke('setStyle', {textDecoration: 'line-through'});
58 deleteFailure: function(transport) {
59 var httpCode = 0, message = "";
61 httpCode = transport.getStatus();
65 message = SyjStrings.notReachedError;
69 location = loginlink();
73 message = SyjStrings.requestError;
77 message = SyjStrings.gonePathError;
80 message = SyjStrings.serverError;
83 message = SyjStrings.unknownError;
86 $("message").setMessage(message, "error");
89 remove: function(evt) {
91 if (!confirm(SyjStrings.confirmDelete)) {
94 var id = this.elt.getAttribute('data-id');
96 $("message").clearMessages();
97 new Ajax.Request('path/' + id.toString() + '/delete', {
99 onSuccess: this.deleteSuccess.bind(this),
100 onFailure: this.deleteFailure.bind(this)
105 function loginlink() {
107 if (location.search && location.search.length && location.search[0] === '?') {
108 lang = location.search.slice(1).split('&').find(function(str) {
109 return str.startsWith('lang=');
112 lang = lang.slice('lang='.length);
115 return 'login?redirect=' + encodeURIComponent(location.pathname + location.search) + ((lang) ? '&lang=' + lang: "");