summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-02-14 13:12:14 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-02-14 13:12:14 +0100
commit447ad2af6171291b1d0c8627f60a2d865a5df591 (patch)
tree3290cbd9dde7b7d9a9c3fca80299101504701f47
parent34b3d8083239aa77fafe2a4f3ce1f908c4cfa270 (diff)
downloadChimère-447ad2af6171291b1d0c8627f60a2d865a5df591.tar.bz2
Chimère-447ad2af6171291b1d0c8627f60a2d865a5df591.zip
jquery.chimere.js: optimize category load - add a callback when category has finish loading
-rw-r--r--chimere/static/chimere/js/jquery.chimere.js25
1 files changed, 17 insertions, 8 deletions
diff --git a/chimere/static/chimere/js/jquery.chimere.js b/chimere/static/chimere/js/jquery.chimere.js
index e1c48a6..8809655 100644
--- a/chimere/static/chimere/js/jquery.chimere.js
+++ b/chimere/static/chimere/js/jquery.chimere.js
@@ -32,6 +32,9 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
CLASS_NAME: "OpenLayers.Layer.MapQuestOSM"
});
+function category_loaded_callback(cat_numbers){
+};
+
/*
* Little hasattr helper
*/
@@ -186,6 +189,7 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
}
settings.current_position = null;
+ settings.suspend_load = false;
/* Create map object */
settings.map = map = new OpenLayers.Map(map_element, map_options);
@@ -661,6 +665,7 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
methods.cleanCluster();
}
settings.map.resetLayersZIndex();
+ category_loaded_callback(ids.split("_"));
},
error: function (data, textStatus, errorThrown) {
settings.layerMarkers.clearMarkers();
@@ -752,16 +757,17 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
* Add event listener in categories DOM elements
*/
$('#categories #ul_categories > li > input').bind("click",
- function (e) {
- methods.hidePopup(e);
- _toggle_subcategories($(this));
- methods.loadGeoObjects();
- settings.permalink.updateLink();
- });
+ function (e) {
+ methods.hidePopup(e);
+ _toggle_subcategories($(this));
+ methods.loadGeoObjects();
+ settings.permalink.updateLink();
+ }
+ );
$('.subcategories li input').bind("click", function (e) {
$('#search-result').html('');
var c_name = $(this).attr('name');
- c_name = c_name.substr(c_name.lastIndexOf("_")+1);
+ c_name = c_name.substr(c_name.lastIndexOf("_") + 1);
if($(this).is(':checked')){
methods.subcategory_detail(c_name);
}
@@ -771,7 +777,7 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
} else {
par.removeClass('selected');
}
- methods.loadGeoObjects();
+ if (! settings.suspend_load) methods.loadGeoObjects();
_toggle_categories($(this));
settings.permalink.updateLink();
if ($('#layer_cat_'+c_name).length){
@@ -823,6 +829,7 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
/*
* Check all subcategory of a category
*/
+ settings.suspend_load = true;
$('#maincategory_' + cat_id + '.subcategories li input').each(
function(){
$(this).click();
@@ -830,6 +837,8 @@ OpenLayers.Layer.MapQuestOSM = OpenLayers.Class(OpenLayers.Layer.XYZ, {
$(this).parent().addClass('selected');
}
);
+ settings.suspend_load = false;
+ methods.loadGeoObjects();
},
/*
*