5d2412183040ddcb76621aa843bbc829ec36eaac
[rails.git] / app / assets / javascripts / browse.js
1 $(document).ready(function () {
2
3   var map = L.map("small_map", {
4     attributionControl: false,
5     zoomControl: false
6   }).addLayer(new L.OSM.Mapnik());
7
8   L.OSM.zoom()
9     .addTo(map);
10
11   var params = $("#small_map").data();
12   var object, bbox;
13   if (params.type == "changeset") {
14     bbox = L.latLngBounds([params.minlat, params.minlon],
15         [params.maxlat, params.maxlon]);
16
17     map.fitBounds(bbox);
18
19     L.rectangle(bbox, {
20       weight: 2,
21       color: '#e90',
22       fillOpacity: 0
23     }).addTo(map);
24
25     $("#loading").hide();
26     $("#browse_map .geolink").show();
27
28     $("a[data-editor=remote]").click(function () {
29       return remoteEditHandler(bbox);
30     });
31
32     updatelinks(map.getCenter(), 16, null, [[params.minlat, params.minlon],
33         [params.maxlat, params.maxlon]]);
34   } else if (params.type == "note") {
35     object = {type: params.type, id: params.id};
36
37     map.setView([params.lat, params.lon], 16);
38
39     L.marker([params.lat, params.lon], { icon: getUserIcon() }).addTo(map);
40
41     bbox = map.getBounds();
42
43     $("#loading").hide();
44     $("#browse_map .geolink").show();
45
46     $("a[data-editor=remote]").click(function () {
47       return remoteEditHandler(bbox);
48     });
49
50     updatelinks(params, 16, null, bbox, object);
51   } else {
52     $("#object_larger_map, #object_edit").hide();
53
54     object = {type: params.type, id: params.id};
55
56     if (!params.visible) {
57       object.version = params.version - 1;
58     }
59
60     map.addObject(object, {
61       zoom: true,
62       callback: function(extent) {
63         $("#loading").hide();
64         $("#browse_map .geolink").show();
65
66         if (extent) {
67           $("a.bbox[data-editor=remote]").click(function () {
68             return remoteEditHandler(extent);
69           });
70
71           $("a.object[data-editor=remote]").click(function () {
72             return remoteEditHandler(extent, params.type + params.id);
73           });
74
75           $("#object_larger_map").show();
76           $("#object_edit").show();
77
78           updatelinks(map.getCenter(), 16, null, extent, object);
79         } else {
80           $("#small_map").hide();
81         }
82       }
83     });
84   }
85
86   createMenu("area_edit", "area_edit_menu", "right");
87   createMenu("object_edit", "object_edit_menu", "right");
88 });