diff --git a/frontend/js/ng.js b/frontend/js/ng.js index c0000305..c241efb8 100644 --- a/frontend/js/ng.js +++ b/frontend/js/ng.js @@ -310,6 +310,28 @@ }) }; + $scope.moveMarker = function(marker) { + var message = $scope.showMessage("info", "Click somewhere on the map to reposition the marker there.", [ + { label: "Cancel", click: function() { + $scope.closeMessage(message); + listener.cancel(); + }} + ]); + + $scope.currentMarker = null; + + var listener = fp.addClickListener(function(pos) { + $scope.closeMessage(message); + + socket.emit("editMarker", { id: marker.id, position: pos }, function(err) { + if(err) + return $scope.showMessage("error", err); + + $scope.currentMarker = $scope.markers[marker.id]; + }); + }); + }; + $scope.deleteMarker = function(marker) { socket.emit("deleteMarker", marker, function(err) { if(err) diff --git a/frontend/js/pad.js b/frontend/js/pad.js index bb3dd4fb..1411cc8a 100644 --- a/frontend/js/pad.js +++ b/frontend/js/pad.js @@ -183,6 +183,7 @@ var FacilPad = { graphicYOffset: -25 }; var feature = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(marker.position.lon, marker.position.lat).transform(_p(), fp.map.getProjectionObject()), null, style); + feature.fpMarker = marker; feature.fpOnClick = function() { fp.mapEvents.trigger("clickMarker", [ marker ]); }; @@ -254,7 +255,9 @@ var FacilPad = { listener(pos); } - fp.mapEvents.on("click", handler); + setTimeout(function() { + fp.mapEvents.on("click", handler); + }, 0); return ret; }; diff --git a/frontend/pad.html b/frontend/pad.html index a105d888..85cb69c9 100644 --- a/frontend/pad.html +++ b/frontend/pad.html @@ -78,6 +78,8 @@
+ +
× @@ -114,7 +116,6 @@
-