6ad1fd7fac35ce5da0b01d5edfd7c65f1ce4c302
[rails.git] / app / assets / javascripts / changeset.js
1 $(document).ready(function () {
2   var rects = {};
3   var map = createMap("changeset_list_map");
4   var group = L.featureGroup().addTo(map);
5
6   $("[data-changeset]").each(function () {
7     var changeset = $(this).data('changeset');
8     if (changeset.bbox) {
9       var rect = L.rectangle([[changeset.bbox.minlat, changeset.bbox.minlon],
10                               [changeset.bbox.maxlat, changeset.bbox.maxlon]],
11                              {weight: 2, color: "#ee9900", fillColor: "#ffff55", fillOpacity: 0});
12       rect.id = changeset.id;
13       rects[changeset.id] = rect;
14       rect.addTo(group);
15     }
16   });
17
18   function highlightChangeset(id) {
19     rects[id].setStyle({fillOpacity: 0.5});
20     $("#tr-changeset-" + id).addClass("selected");
21   }
22
23   function unHighlightChangeset(id) {
24     rects[id].setStyle({fillOpacity: 0});
25     $("#tr-changeset-" + id).removeClass("selected");
26   }
27
28   group.on({
29     mouseover: function (e) {
30       highlightChangeset(e.layer.id);
31     },
32     mouseout: function (e) {
33       unHighlightChangeset(e.layer.id);
34     }
35   });
36
37   $("[data-changeset]").on({
38     mouseover: function () {
39       highlightChangeset($(this).data("changeset").id);
40     },
41     mouseout: function () {
42       unHighlightChangeset($(this).data("changeset").id);
43     }
44   });
45
46   var params = OSM.mapParams();
47   if (params.bbox) {
48     map.fitBounds([[params.minlat, params.minlon],
49                    [params.maxlat, params.maxlon]]);
50   } else {
51     map.fitBounds(group.getBounds());
52   }
53 });