1 var WGS84 = new OpenLayers.Projection("EPSG:4326");
2 var Mercator = new OpenLayers.Projection("EPSG:900913");
5 document.observe("dom:loaded", function() {
7 $$(".map").each(function(elt) {
8 var geom = elt.getAttribute('data-geom'),
9 baseLayer = new OpenLayers.Layer.OSM("OSM"),
10 map = new OpenLayers.Map(elt, { controls: [], theme: null}),
11 layerOptions = {format: OpenLayers.Format.WKT,
13 styleMap: new OpenLayers.StyleMap({
14 "default": new OpenLayers.Style({
20 wkt = new OpenLayers.Format.WKT({ internalProjection: Mercator, externalProjection: WGS84 }),
21 viewLayer = new OpenLayers.Layer.Vector("View Layer", layerOptions),
24 map.addLayers([baseLayer, viewLayer]);
25 viewLayer.addFeatures([wkt.read(geom)]);
26 map.zoomToExtent(viewLayer.getDataExtent());
29 $$(".item").each(function(elt) {
35 this.deleteHandler = elt.on('click', '.delete-link', this.remove.bindAsEventListener(this));
39 deleteSuccess: function() {
40 this.elt.down('.title').update();
41 this.elt.down('.geom').update().setStyle({backgroundColor: 'gray'});
42 this.deleteHandler.stop();
43 this.elt.on('click', 'a', function(evt) { evt.stop(); });
44 this.elt.select('a').invoke('setStyle', {textDecoration: 'line-through'});
45 $("message").setMessage(SyjStrings.deleteSuccess, "success");
48 deleteFailure: function(transport) {
49 var httpCode = 0, message = "";
51 httpCode = transport.getStatus();
55 message = SyjStrings.notReachedError;
59 location = loginlink();
63 message = SyjStrings.requestError;
66 message = SyjStrings.gonePathError;
69 message = SyjStrings.serverError;
72 message = SyjStrings.unknownError;
75 $("message").setMessage(message, "error");
78 remove: function(evt) {
80 if (!confirm(SyjStrings.confirmDelete)) {
83 var id = this.elt.getAttribute('data-id');
86 new Ajax.Request('path/' + id.toString() + '/delete', {
88 onSuccess: this.deleteSuccess.bind(this),
89 onFailure: this.deleteFailure.bind(this)
94 function loginlink() {
96 if (location.search && location.search.length && location.search[0] === '?') {
97 lang = location.search.slice(1).split('&').find(function(str) {
98 return str.startsWith('lang=');
101 lang = lang.slice('lang='.length);
104 return 'login?redirect=' + encodeURIComponent(location.pathname + location.search) + ((lang) ? '&lang=' + lang: "");