]> git.openstreetmap.org Git - rails.git/blob - app/assets/javascripts/browse.js
Port map key to new UI
[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.control.zoom({position: 'topright'})
9     .addTo(map);
10
11   $("#small_map").on("resized", function () {
12     map.invalidateSize();
13   });
14
15   var params = $("#small_map").data();
16   var object, bbox;
17   if (params.type == "changeset") {
18     bbox = L.latLngBounds([params.minlat, params.minlon],
19         [params.maxlat, params.maxlon]);
20
21     map.fitBounds(bbox);
22
23     L.rectangle(bbox, {
24       weight: 2,
25       color: '#e90',
26       fillOpacity: 0
27     }).addTo(map);
28
29     $("#loading").hide();
30     $("#browse_map .geolink").show();
31
32     $("a[data-editor=remote]").click(function () {
33       return remoteEditHandler(bbox);
34     });
35
36     updatelinks(map.getCenter(), 16, null, [[params.minlat, params.minlon],
37         [params.maxlat, params.maxlon]]);
38   } else if (params.type == "note") {
39     object = {type: params.type, id: params.id};
40
41     map.setView([params.lat, params.lon], 16);
42
43     L.marker([params.lat, params.lon], { icon: getUserIcon() }).addTo(map);
44
45     bbox = map.getBounds();
46
47     $("#loading").hide();
48     $("#browse_map .geolink").show();
49
50     $("a[data-editor=remote]").click(function () {
51       return remoteEditHandler(bbox);
52     });
53
54     updatelinks(params, 16, null,
55                 bbox.getWest(), bbox.getSouth(),
56                 bbox.getEast(), bbox.getNorth(),
57                 object);
58   } else {
59     $("#object_larger_map, #object_edit").hide();
60
61     object = {type: params.type, id: params.id};
62
63     if (!params.visible) {
64       object.version = params.version - 1;
65     }
66
67     addObjectToMap(object, map, {
68       zoom: true, 
69       callback: function(extent) {
70         $("#loading").hide();
71         $("#browse_map .geolink").show();
72
73         if (extent) {
74           $("a.bbox[data-editor=remote]").click(function () {
75             return remoteEditHandler(extent);
76           });
77
78           $("a.object[data-editor=remote]").click(function () {
79             return remoteEditHandler(extent, params.type + params.id);
80           });
81
82           $("#object_larger_map").show();
83           $("#object_edit").show();
84
85           updatelinks(map.getCenter(), 16, null, extent, object);
86         } else {
87           $("#small_map").hide();
88         }
89       }
90     });
91   }
92
93   createMenu("area_edit", "area_edit_menu", "right");
94   createMenu("object_edit", "object_edit_menu", "right");
95 });