diff options
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 |
commit | 447ad2af6171291b1d0c8627f60a2d865a5df591 (patch) | |
tree | 3290cbd9dde7b7d9a9c3fca80299101504701f47 | |
parent | 34b3d8083239aa77fafe2a4f3ce1f908c4cfa270 (diff) | |
download | Chimè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.js | 25 |
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(); }, /* * |