diff options
| -rw-r--r-- | ishtar_common/static/js/ishtar-map.js | 40 | ||||
| -rw-r--r-- | ishtar_common/static/js/ishtar.js | 32 | ||||
| -rw-r--r-- | ishtar_common/templates/ishtar/blocks/sheet_map.html | 5 | 
3 files changed, 44 insertions, 33 deletions
| diff --git a/ishtar_common/static/js/ishtar-map.js b/ishtar_common/static/js/ishtar-map.js index e2090eec6..c21cd890e 100644 --- a/ishtar_common/static/js/ishtar-map.js +++ b/ishtar_common/static/js/ishtar-map.js @@ -720,9 +720,9 @@ var display_map = function(map_id, points, lines_and_polys, layers){      } else {          initialize_base_map(map_id, layers);      } -    if (lines_and_polys) display_lines_and_polys(map_id, lines_and_polys, true); -    if (points) display_points(map_id, points, true); - +    if (lines_and_polys) display_lines_and_polys(map_id, lines_and_polys); +    if (points) display_points(map_id, points); +    zoom_to_extent(map_id);      init_popup(map_id);      map[map_id].on('click', manage_click_on_map(map_id)); @@ -733,7 +733,7 @@ var display_map = function(map_id, points, lines_and_polys, layers){      }  }; -var display_points = function(map_id, points, first_init){ +var display_points = function(map_id, points){      if (!points) return;      point_features[map_id] = geojson_format.readFeatures(points);      if (!cluster_source[map_id]){ @@ -742,15 +742,9 @@ var display_points = function(map_id, points, first_init){          reinit_clustering(map_id);      }      cluster_source[map_id].getSource().addFeatures(point_features[map_id]); -    if (first_init && points.features && points.features.length){ -        map_view[map_id].fit(cluster_source[map_id].getSource().getExtent()); -        if (map_view[map_id].getZoom() > 14){ -            map_view[map_id].setZoom(14); -        } -    }  }; -var display_lines_and_polys = function(map_id, lines_and_polys, first_init){ +var display_lines_and_polys = function(map_id, lines_and_polys){      if (!lines_and_polys) return;      vector_features[map_id] = geojson_format.readFeatures(lines_and_polys);      if (!vector_source[map_id]){ @@ -766,11 +760,29 @@ var display_lines_and_polys = function(map_id, lines_and_polys, first_init){      });      map[map_id].addLayer(vector_layer[map_id]); -    if (first_init && lines_and_polys.features && lines_and_polys.features.length){ -        map_view[map_id].fit(vector_source[map_id].getExtent()); -    }  }; +var zoom_to_extent = function(map_id){ +    let extent; +    if (cluster_source[map_id]) extent = cluster_source[map_id].getSource().getExtent(); +    if (vector_source[map_id]){ +        let vector_extent = vector_source[map_id].getExtent(); +        if (vector_extent){ +            if (extent){ +                ol.extent.extend(extent, vector_extent); +            } else { +                extent = vector_extent; +            } +        } +    } +    if (extent) { +        map_view[map_id].fit(extent); +        if (map_view[map_id].getZoom() > 14){ +            map_view[map_id].setZoom(14); +        } +    } +} +  var _geo_points = new Array();  var _geo_other = new Array(); diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index e59ce4f2c..2a2b4fa9f 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -1456,29 +1456,27 @@ var register_map = function(map_id, result){          }          $(".search_button").click();      }); -    if (points){ -        var lbl = ""; -        if (points['features'].length){ -            lbl += displayed_map_msg.format( -                number_with_commas(points['features'].length) -            ); -        } -        if (points['no-geo'].length){ -            if (points['features'].length){ -                lbl += " - "; +    if (points || line_and_polys){ +        let lbl = ""; +        let feature_nb = 0; +        if (points && points['features'].length) feature_nb = points['features'].length; +        if (line_and_polys && line_and_polys['features'].length) feature_nb += line_and_polys['features'].length; + +        if (feature_nb > 0) lbl += displayed_map_msg.format(number_with_commas(feature_nb)); +        if (result['no-geo'].length){ +            if (lbl != ""){ +                lbl += "<br>";              } -            lbl += non_displayed_map_msg.format( -                number_with_commas(points['no-geo'].length) -            ); +            lbl += non_displayed_map_msg.format(number_with_commas(result['no-geo'].length));              lbl += " <a href='#' id='no-geo-" + map_id + "'>" + non_displayed_map_link_msg + "</a>";          }          $("#ishtar-map-info-" + map_id).html(lbl);          no_geo_window_content = "<ul>"; -        for (var idx in points['no-geo']){ -            no_geo = points['no-geo'][idx]; -            var link = link_template[map_id].replace("<pk>", no_geo["id"]); -            var txt = "<li>" + link + " " + no_geo['name'] + "</li>"; +        for (const idx in result['no-geo']){ +            no_geo = result['no-geo'][idx]; +            let link = link_template[map_id].replace("<pk>", no_geo["id"]); +            let txt = "<li>" + link + " " + no_geo['name'] + "</li>";              no_geo_window_content += txt;          }          no_geo_window_content += "</ul>"; diff --git a/ishtar_common/templates/ishtar/blocks/sheet_map.html b/ishtar_common/templates/ishtar/blocks/sheet_map.html index 4a380ed13..954a7337d 100644 --- a/ishtar_common/templates/ishtar/blocks/sheet_map.html +++ b/ishtar_common/templates/ishtar/blocks/sheet_map.html @@ -47,8 +47,9 @@ const refresh_map_{{geo_item.SLUG}}_{{geo_item.pk}} = function(first_init) {      let url{% if geo_item.SLUG == "operation" or geo_item.SLUG == "contextrecord" %} = "{% url 'api-get-geo' %}"{% endif %};      let attrs{% if geo_item.SLUG == "operation" %} = {"operation_id": "{{geo_item.pk}}"}{% elif geo_item.SLUG == "contextrecord" %} = {"context_record_id": "{{geo_item.pk}}"}{% endif %};      refresh_map(idx, geodata_list, url, attrs); -    display_lines_and_polys("map-{{window_id}}-" + idx, _geo_other[idx], first_init); -    display_points("map-{{window_id}}-" + idx, _geo_points[idx], first_init); +    display_lines_and_polys("map-{{window_id}}-" + idx, _geo_other[idx]); +    display_points("map-{{window_id}}-" + idx, _geo_points[idx]); +    if (first_init) zoom_to_extent("map-{{window_id}}-" + idx);  }  const display_map_{{geo_item.SLUG}}_{{geo_item.pk}} = function() { | 
