diff options
author | Étienne Loks <etienne@peacefrogs.net> | 2019-02-07 18:20:11 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-04-24 19:38:56 +0200 |
commit | a39df7b6088527faf4108e9a50040e8165ab6a3d (patch) | |
tree | 92b1e3e2650434e5ee40a49b5249f32405b0f699 /ishtar_common/static/js | |
parent | 1b0d2c7558b5cf64a65d05eeba0be8f5c2388bf8 (diff) | |
download | Ishtar-a39df7b6088527faf4108e9a50040e8165ab6a3d.tar.bz2 Ishtar-a39df7b6088527faf4108e9a50040e8165ab6a3d.zip |
Map: manage show detail for simple map
Diffstat (limited to 'ishtar_common/static/js')
-rw-r--r-- | ishtar_common/static/js/ishtar-map.js | 24 | ||||
-rw-r--r-- | ishtar_common/static/js/ishtar.js | 5 |
2 files changed, 21 insertions, 8 deletions
diff --git a/ishtar_common/static/js/ishtar-map.js b/ishtar_common/static/js/ishtar-map.js index 0613ec285..c1bed2554 100644 --- a/ishtar_common/static/js/ishtar-map.js +++ b/ishtar_common/static/js/ishtar-map.js @@ -169,7 +169,11 @@ var manage_click_on_map = function(map_id){ }; }; +var current_event; + var click_on_feature = function(map_id, feature, e){ + // console.log("click_on_feature"); + current_event = e; if (!$(e.target).is($(popup_item[map_id])) && !$.contains($(popup_item[map_id])[0], e.target) ) { @@ -183,11 +187,11 @@ var click_on_feature = function(map_id, feature, e){ current_feature = feature; if (!feature) return; - var timeout = 200; + var timeout = 10; setTimeout(function(){ // zoom on aggregated var key = feature.get('key'); - if (key && key.length > 6 && key.substring(0, 7) == 'cluster'){ + if (feature.get('name') || feature.get('key')){ feature = click_on_cluster(map_id, feature); } }, timeout); @@ -197,6 +201,7 @@ var auto_zoom = false; var click_on_cluster = function(map_id, feature, zoom_level, duration, nb_zoom, current_nb_items){ + // console.log("click_on_cluster"); if (!duration){ // zoom animation must be slower duration = animation_duration * 2; @@ -271,9 +276,13 @@ var click_on_cluster = function(map_id, feature, zoom_level, duration, nb_zoom, var display_cluster_detail = function(map_id, cluster){ // console.log("display_cluster_detail"); var features = cluster.getProperties()['features'] + var offset_x = 0; var offset_y = -21; - if (features.length == 1){ + if (!features){ + features = [cluster]; + offset_y = -7; + } else if (features.length == 1){ offset_y = -54; } display_items(map_id, features, offset_x, offset_y); @@ -319,7 +328,12 @@ var _display_items = function(map_id, features, offset_x, offset_y){ $("#ishtar-map-window-" + map_id + " .modal-body").html(window_content); $(popup_item[map_id]).html(popup_content); $("." + ul_class + " .map-list-detail").click(open_map_window(map_id)); - popup[map_id].setPosition(geom.getCoordinates()); + + if (geom.getType() == "Point"){ + popup[map_id].setPosition(geom.getCoordinates()); + } else { + popup[map_id].setPosition(current_event.coordinate); + } popup[map_id].setOffset([offset_x, offset_y]); $(popup_item[map_id]).css({opacity: 0}); $(popup_item[map_id]).show(0, function(){ @@ -417,7 +431,7 @@ var display_map = function(map_id, points, lines_and_polys, layers){ if (points){ link_template[map_id] = points['link_template']; } else { - /// link_template = lines_and_polys['link_template']; + link_template[map_id] = lines_and_polys['link_template']; } if (map[map_id]){ redraw_map(map_id, layers); diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index 6600181e7..e7ec6850c 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -1250,13 +1250,12 @@ var render_map_list_modal = function(map_id){ return html; }; -var render_map = function(data_table, table_name, nb_select, map_id){ - //var html = render_paginate_select(table_name, 'map', nb_select); +var render_map = function(map_id){ var html = ""; html += "<div class='ishtar-table-map' id='" + map_id + "'></div>"; html += "<div class='ishtar-map-popup' id='ishtar-map-popup-" + map_id + "'></div>"; html += render_map_list_modal(map_id); - return {"points": data_table, "html": html}; + return html; }; var register_map = function(map_id, points){ |