Extract function to get popup in map JavaScript

This commit is contained in:
Javi Martín
2023-04-24 17:11:50 +02:00
parent 4087066c59
commit f8053c9532

View File

@@ -16,9 +16,8 @@
},
initializeMap: function(element) {
var addMarkerInvestments, centerData, clearFormfields, createMarker,
editable, getPopupContent, markerData, map, mapCenterLatLng, marker,
markerIcon, moveOrPlaceMarker, openMarkerPopup, removeMarker,
removeMarkerSelector, updateFormfields;
editable, markerData, map, mapCenterLatLng, marker, markerIcon,
moveOrPlaceMarker, removeMarker, removeMarkerSelector, updateFormfields;
App.Map.cleanInvestmentCoordinates(element);
removeMarkerSelector = $(element).data("marker-remove-selector");
addMarkerInvestments = $(element).data("marker-investments-coordinates");
@@ -73,19 +72,6 @@
inputs.long.val("");
inputs.zoom.val("");
};
openMarkerPopup = function(e) {
marker = e.target;
$.ajax("/investments/" + marker.options.id + "/json_data", {
type: "GET",
dataType: "json",
success: function(data) {
e.target.bindPopup(getPopupContent(data)).openPopup();
}
});
};
getPopupContent = function(data) {
return "<a href='/budgets/" + data.budget_id + "/investments/" + data.investment_id + "'>" + data.investment_title + "</a>";
};
centerData = App.Map.centerData(element);
mapCenterLatLng = new L.LatLng(centerData.lat, centerData.long);
@@ -111,7 +97,7 @@
if (App.Map.validCoordinates(coordinates)) {
marker = createMarker(coordinates.lat, coordinates.long);
marker.options.id = coordinates.investment_id;
marker.on("click", openMarkerPopup);
marker.on("click", App.Map.openMarkerPopup);
}
});
}
@@ -196,6 +182,20 @@
map.attributionControl.setPrefix(App.Map.attributionPrefix());
L.tileLayer(mapTilesProvider, { attribution: mapAttribution }).addTo(map);
},
openMarkerPopup: function(e) {
var marker = e.target;
$.ajax("/investments/" + marker.options.id + "/json_data", {
type: "GET",
dataType: "json",
success: function(data) {
e.target.bindPopup(App.Map.getPopupContent(data)).openPopup();
}
});
},
getPopupContent: function(data) {
return "<a href='/budgets/" + data.budget_id + "/investments/" + data.investment_id + "'>" +
data.investment_title + "</a>";
},
validZoom: function(zoom) {
return App.Map.isNumeric(zoom);
},