aboutsummaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorMatthew Somerville <matthew-github@dracos.co.uk>2018-08-09 12:56:53 +0100
committerMatthew Somerville <matthew-github@dracos.co.uk>2018-08-09 14:33:20 +0100
commit08acb4fa76587232eb9b73124582639db15607c1 (patch)
tree36f98b95226b0e6df34e6ed3a6ecdfe47318011d /web
parent8645ec250a0686b7b348b72d6acc82420fb6aaa8 (diff)
Fix inspector dragging of pins.
Diffstat (limited to 'web')
-rw-r--r--web/cobrands/fixmystreet/map.js6
-rw-r--r--web/js/map-OpenLayers.js14
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();
},