summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-06-18 18:59:14 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-06-18 18:59:14 +0200
commite258552038a630cdfde44b3e39ec24d72914f180 (patch)
tree3ddf0e0efa6f69b70e0657163f6b0350a1e459e8
parentfd0c17b2f79c8167fd44677985a76dec6a2b4b40 (diff)
downloadChimère-e258552038a630cdfde44b3e39ec24d72914f180.tar.bz2
Chimère-e258552038a630cdfde44b3e39ec24d72914f180.zip
Leaflet: display details on popup click
-rw-r--r--chimere/static/chimere/js/jquery.chimere-leaflet.js35
1 files changed, 34 insertions, 1 deletions
diff --git a/chimere/static/chimere/js/jquery.chimere-leaflet.js b/chimere/static/chimere/js/jquery.chimere-leaflet.js
index 73b86a2..c75a3b7 100644
--- a/chimere/static/chimere/js/jquery.chimere-leaflet.js
+++ b/chimere/static/chimere/js/jquery.chimere-leaflet.js
@@ -254,10 +254,15 @@ See the file COPYING for details.
settings.layerClusters.addLayer(marker);
return settings.layerClusters;
} else {*/
+ marker.properties = feature.properties;
return marker;
//}
}
}).addTo(map);
+ map.on('popupopen', function(e) {
+ var marker = e.popup._source;
+ methods.display_feature_detail(marker.properties.pk);
+ });
}
settings.layerMarkers.addTo(map);
settings.layerVectors = L.geoJson().addTo(map);
@@ -553,7 +558,35 @@ See the file COPYING for details.
} else if ($.hasattr("area", options)) {
helpers.zoom_to_area(options["area"]);
}
- } // end of init
+ },
+ display_feature_detail: function (pk) {
+ /*
+ * update current detail panel with an AJAX request
+ */
+ var uri = extra_url
+ if (settings.map_id) uri += settings.map_id + "/"
+ uri += "getDetail/" + pk;
+ var params = {}
+ if (settings.simple) { params["simple"] = 1; }
+ $.ajax({url: uri,
+ data: params,
+ dataType: "html",
+ success: function (data) {
+ if ( settings.display_feature_detail_fx ) {
+ // Custom function ?
+ settings.display_feature_detail_fx(data, settings);
+ }
+ else {
+ if (!settings.popupContentFull) {
+ $('#detail').html(data).show();
+ }
+ else {
+ settings.current_popup.setContentHTML("<div class='cloud'>" + data + "</div>");
+ }
+ }
+ }
+ });
+ },
}; // End of public methods
var helpers = {
getSubcategories: function (category_id) {