diff options
author | Matthew Somerville <matthew-github@dracos.co.uk> | 2018-08-09 12:56:53 +0100 |
---|---|---|
committer | Matthew Somerville <matthew-github@dracos.co.uk> | 2018-08-09 14:33:20 +0100 |
commit | 08acb4fa76587232eb9b73124582639db15607c1 (patch) | |
tree | 36f98b95226b0e6df34e6ed3a6ecdfe47318011d /web | |
parent | 8645ec250a0686b7b348b72d6acc82420fb6aaa8 (diff) |
Fix inspector dragging of pins.
Diffstat (limited to 'web')
-rw-r--r-- | web/cobrands/fixmystreet/map.js | 6 | ||||
-rw-r--r-- | web/js/map-OpenLayers.js | 14 |
2 files changed, 15 insertions, 5 deletions
diff --git a/web/cobrands/fixmystreet/map.js b/web/cobrands/fixmystreet/map.js index 7c3aeb55e..048e180b6 100644 --- a/web/cobrands/fixmystreet/map.js +++ b/web/cobrands/fixmystreet/map.js @@ -5,7 +5,8 @@ var fixmystreet = fixmystreet || {}; var map_data = document.getElementById('js-map-data'), map_keys = [ 'area', 'latitude', 'longitude', 'zoomToBounds', 'zoom', 'pin_prefix', 'pin_new_report_colour', 'numZoomLevels', 'zoomOffset', 'map_type', 'key', 'bodies' ], numeric = { zoom: 1, numZoomLevels: 1, zoomOffset: 1, id: 1 }, - pin_keys = [ 'lat', 'lon', 'colour', 'id', 'title', 'type' ]; + bool = { draggable: 1 }, + pin_keys = [ 'lat', 'lon', 'colour', 'id', 'title', 'type', 'draggable' ]; if (!map_data) { return; @@ -39,6 +40,9 @@ var fixmystreet = fixmystreet || {}; if (numeric[key]) { val = +val; } + if (bool[key]) { + val = !!val; + } arr.push(val); }); fixmystreet.pins.push(arr); diff --git a/web/js/map-OpenLayers.js b/web/js/map-OpenLayers.js index 7253d46c8..fd69e034d 100644 --- a/web/js/map-OpenLayers.js +++ b/web/js/map-OpenLayers.js @@ -198,13 +198,14 @@ $.extend(fixmystreet.utils, { } var id = pin[3] === undefined ? pin[3] : +pin[3]; var marker_size = (id === window.selected_problem_id) ? selected_size : size; + var draggable = (id === window.selected_problem_id) ? true : (pin[6] === false ? false : true); var marker = new OpenLayers.Feature.Vector(loc, { colour: pin[2], size: pin[5] || marker_size, faded: 0, id: id, title: pin[4] || '', - draggable: pin[6] === false ? false : true + draggable: draggable }); markers.push( marker ); } @@ -215,10 +216,13 @@ $.extend(fixmystreet.utils, { var size = fixmystreet.maps.marker_size(); var selected_size = fixmystreet.maps.selected_marker_size(); for (var i = 0; i < fixmystreet.markers.features.length; i++) { - if (fixmystreet.markers.features[i].attributes.id == window.selected_problem_id) { - fixmystreet.markers.features[i].attributes.size = selected_size; + var attr = fixmystreet.markers.features[i].attributes; + if (attr.id == window.selected_problem_id) { + attr.size = selected_size; + attr.draggable = true; } else { - fixmystreet.markers.features[i].attributes.size = size; + attr.size = size; + attr.draggable = false; } } fixmystreet.markers.redraw(); @@ -277,6 +281,8 @@ $.extend(fixmystreet.utils, { } } } ); + // Allow handled feature click propagation to other click handlers + drag.handlers.feature.stopClick = false; fixmystreet.map.addControl( drag ); drag.activate(); }, |