diff options
| 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 |
| commit | e258552038a630cdfde44b3e39ec24d72914f180 (patch) | |
| tree | 3ddf0e0efa6f69b70e0657163f6b0350a1e459e8 | |
| parent | fd0c17b2f79c8167fd44677985a76dec6a2b4b40 (diff) | |
| download | Chimère-e258552038a630cdfde44b3e39ec24d72914f180.tar.bz2 Chimère-e258552038a630cdfde44b3e39ec24d72914f180.zip | |
Leaflet: display details on popup click
| -rw-r--r-- | chimere/static/chimere/js/jquery.chimere-leaflet.js | 35 |
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) { |
