diff options
author | QuentinAndre <quentin.andre@imt-atlantique.net> | 2021-08-14 01:08:04 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-10-25 12:06:02 +0200 |
commit | aabdb477b1a261085e045328a62165a48d3c0f90 (patch) | |
tree | 57b97103cd1ad51ea2e63cef38955d3bdc7244c9 | |
parent | 6772ecdf2e5911e3a5c5ddde7e5b5ef42d17fecd (diff) | |
download | Ishtar-aabdb477b1a261085e045328a62165a48d3c0f90.tar.bz2 Ishtar-aabdb477b1a261085e045328a62165a48d3c0f90.zip |
with checkbox buttons
-rw-r--r-- | ishtar_common/static/js/ishtar-map.js | 36 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/blocks/sheet_geo_items.html | 60 | ||||
-rw-r--r-- | ishtar_common/templates/ishtar/blocks/sheet_simple_map.html | 62 |
3 files changed, 96 insertions, 62 deletions
diff --git a/ishtar_common/static/js/ishtar-map.js b/ishtar_common/static/js/ishtar-map.js index 56694772b..4d6ebcd48 100644 --- a/ishtar_common/static/js/ishtar-map.js +++ b/ishtar_common/static/js/ishtar-map.js @@ -619,12 +619,12 @@ var display_map = function(map_id, points, lines_and_polys, layers){ } else { initialize_base_map(map_id, layers); } - console.log('map init') - console.log(map[map_id]); + //console.log('map init') + //console.log(map[map_id]); display_points(map_id, points); display_lines_and_polys(map_id, lines_and_polys); - console.log('map after points'); - console.log(map[map_id]); + //console.log('map after points'); + //console.log(map[map_id]); init_popup(map_id); @@ -637,8 +637,8 @@ var display_map = function(map_id, points, lines_and_polys, layers){ }; var display_points = function(map_id, points){ - console.log('points'); - console.log(points); + //console.log('points'); + //console.log(points); if (!points) return; point_features[map_id] = geojson_format.readFeatures(points); enable_clustering(map_id); @@ -667,8 +667,8 @@ var display_lines_and_polys = function(map_id, lines_and_polys){ } }; -var disp_geo_items = function(map_id, base_url, slug, pk, - display_both, get_poly) { +var display_geo_items = function(map_id, base_url, slug, pk, + disp_cr, disp_bf, get_poly) { var url = base_url; if (slug === "operation") { url += "?operation_pk="; @@ -683,7 +683,7 @@ var disp_geo_items = function(map_id, base_url, slug, pk, httpRequest.onreadystatechange = function() { if (httpRequest.readyState === XMLHttpRequest.DONE) { if (httpRequest.status === 200) { - geo_items = to_geo_items(JSON.parse(httpRequest.responseText), slug, display_both) + geo_items = to_geo_items(JSON.parse(httpRequest.responseText), slug, disp_cr, disp_bf) if (current_test) { geo_items_features[map_id] = []; } @@ -718,17 +718,19 @@ var disp_geo_items = function(map_id, base_url, slug, pk, httpRequest.send(); }; -var to_geo_items = function (obj, slug, display_both) { - var objects = {'context-records': [], 'base-finds': []}; +var to_geo_items = function (obj, slug, disp_cr, disp_bf) { + const objects = {'context-records': [], 'base-finds': []}; if (slug === "operation") { - var crs = obj['properties']['context-records']; - for (cr of crs['features']) { - if (display_both) { + const crs = obj['properties']['context-records']; + for (const cr of crs['features']) { + if (disp_bf) { objects['base-finds'].push(cr['properties']['base-finds']) } delete cr['properties']; } - objects['context-records'].push(crs); + if (disp_cr) { + objects['context-records'].push(crs); + } } else { objects['base-finds'].push(obj['properties']['base-finds']) @@ -778,8 +780,8 @@ var get_associated_context_record_style = function (feature) { }; var display_associated_points = function (map_id, points, slug) { - console.log('geo items points') - console.log(points); + //console.log('geo items points') + //console.log(points); /*_point_features = geojson_format.readFeatures(points); _cluster_source = new ol.source.Cluster({ distance: 40, diff --git a/ishtar_common/templates/ishtar/blocks/sheet_geo_items.html b/ishtar_common/templates/ishtar/blocks/sheet_geo_items.html index 99fc7b866..3d76a5aa5 100644 --- a/ishtar_common/templates/ishtar/blocks/sheet_geo_items.html +++ b/ishtar_common/templates/ishtar/blocks/sheet_geo_items.html @@ -3,39 +3,61 @@ <dl class="col-12"> <dt>{% trans "Display geo items" %}</dt> <dd> - <label for="display-geo-items">{% trans "Display associated features: " %}</label> - <select name="display-geo-items" id="display-geo-items"> - <option value="" selected="selected">{% trans "None" %}</option> + <fieldset> {% if geo_item.SLUG == "operation" %} - <option id="disp-context-records" value="contextrecords">{% trans "Context records" %}</option> - <option value="basefinds">{% trans "Everything" %}</option> + <input type="checkbox" name="display-cr-for-ope" id="display-cr-for-ope"> + <label for="display-cr-for-ope">{% trans "Display context records" %}</label> + <input type="checkbox" name="display-bf-for-ope" id="display-bf-for-ope"> + <label for="display-bf-for-ope">{% trans "Display base finds" %}</label> {% else %} - <option value="basefinds">{% trans "Base finds" %}</option> + <input type="checkbox" name="display-bf-for-cr" id="display-bf-for-cr"> + <label for="display-bf-for-cr">{% trans "Display base finds" %}</label> {% endif %} - </select> + </fieldset> </dd> <dd> - <label for="get-polygons" id="label-get-polygons">{% trans "Geometry: " %}</label> - <select name="get-polygons" id="get-polygons"> + {% if geo_item.SLUG == "operation" %} + <label for="get-poly-ope" id="label-get-poly-ope">{% trans "Geometry: " %}</label> + <select name="get-poly-ope" id="get-poly-ope"> + <option value="polygons" selected="selected">{% trans "Display polygons" %}</option> + <option value="points">{% trans "Display points" %}</option> + </select> + {% else %} + <label for="get-poly-cr" id="label-get-poly-cr">{% trans "Geometry: " %}</label> + <select name="get-poly-cr" id="get-poly-cr"> <option value="polygons" selected="selected">{% trans "Display polygons" %}</option> <option value="points">{% trans "Display points" %}</option> </select> + {% endif %} </dd> </dl> <script> -var hide_get_polygons = function() { - var disp = $("#display-geo-items"); - var get_poly = $("#get-polygons"); - var label = $("#label-get-polygons"); +const hide_get_polygons = function() { + {% if geo_item.SLUG == "operation" %} + const disp_cr = $("#display-cr-for-ope"); + const disp_bf = $("#display-bf-for-ope"); + const get_poly = $("#get-poly-ope"); + const label = $("#label-get-poly-ope"); + {% else %} + const disp_cr = null; + const disp_bf = $("#display-bf-for-cr"); + const get_poly = $("#get-poly-cr"); + const label = $("#label-get-poly-cr"); + {% endif %} get_poly.hide(); label.hide(); - disp.change( function () { - if (disp.val() === "") { + const display_get_poly = function () { + if (disp_bf.prop('checked') || ((disp_cr != null) && disp_cr.prop('checked'))) { + get_poly.show(); + label.show(); + } else { get_poly.hide(); - label.hide(); - } else { get_poly.show(); - label.show();} - }) + label.hide();} + } + if (disp_cr != null) { + disp_cr.change( display_get_poly ); + } + disp_bf.change( display_get_poly ) } hide_get_polygons(); diff --git a/ishtar_common/templates/ishtar/blocks/sheet_simple_map.html b/ishtar_common/templates/ishtar/blocks/sheet_simple_map.html index e8a33ae68..b44eb5724 100644 --- a/ishtar_common/templates/ishtar/blocks/sheet_simple_map.html +++ b/ishtar_common/templates/ishtar/blocks/sheet_simple_map.html @@ -6,57 +6,67 @@ <div id="map-content-{{window_id}}-{{geo_item.SLUG}}-{{geo_item.pk}}"></div> </div> <script type="text/javascript"> -var disp_map = function() { - var html = render_map("map-{{window_id}}-{{geo_item.SLUG}}-{{geo_item.pk}}", false, true); +const disp_map = function() { + const html = render_map("map-{{window_id}}-{{geo_item.SLUG}}-{{geo_item.pk}}", false, true); $("#map-content-{{window_id}}-{{geo_item.SLUG}}-{{geo_item.pk}}").html(html); {% if geo_item.most_precise_geo == 'point' %} - var {{geo_item.SLUG}}{{geo_item.pk}} = {{geo_item.point_2d_geojson|safe}}; + const {{geo_item.SLUG}}{{geo_item.pk}} = {{geo_item.point_2d_geojson|safe}}; display_map("map-{{window_id}}-{{geo_item.SLUG}}-{{geo_item.pk}}", {{geo_item.SLUG}}{{geo_item.pk}}); {% else %} - var {{geo_item.SLUG}}{{geo_item.pk}} = {{geo_item.multi_polygon_geojson|safe}}; + const {{geo_item.SLUG}}{{geo_item.pk}} = {{geo_item.multi_polygon_geojson|safe}}; display_map("map-{{window_id}}-{{geo_item.SLUG}}-{{geo_item.pk}}", null, {{geo_item.SLUG}}{{geo_item.pk}}); {% endif %} } disp_map(); {% if geo_item.SLUG == "operation" or geo_item.SLUG == "contextrecord" %} -var display_geo_items = function(disp, get_polygons) { - var display_both = false; - if ((disp === "basefinds") && ("{{geo_item.SLUG}}" === "operation")) { - display_both = true; - } - var url = null; - var get_poly = (get_polygons === "polygons"); +const disp_geo_items = function(disp_cr, disp_bf, get_polygons) { + const get_poly = (get_polygons === "polygons"); + let url = null; if (get_poly) { url = "{% url 'api-get-geo-polygons' %}"; } else { url = "{% url 'api-get-geo-points' %}"; } - disp_geo_items("map-{{window_id}}-{{geo_item.SLUG}}-{{geo_item.pk}}", url, "{{geo_item.SLUG}}", - "{{geo_item.pk}}", display_both, get_poly); + display_geo_items("map-{{window_id}}-{{geo_item.SLUG}}-{{geo_item.pk}}", url, "{{geo_item.SLUG}}", + "{{geo_item.pk}}", disp_cr, disp_bf, get_poly); } -var geo_items_displayed_once = false; -var disp = $("#display-geo-items"); -var get_polygons = $("#get-polygons"); -disp.change( function () { +let geo_items_displayed_once = false; +{% if geo_item.SLUG == "operation" %} +const disp_cr = $("#display-cr-for-ope"); +const disp_bf = $("#display-bf-for-ope"); +const get_polygons = $("#get-poly-ope"); +const event_func_disp_geo_items = function () { if (geo_items_displayed_once) { disp_map(); } - if (disp.val() !== "") { - display_geo_items(disp.val(), get_polygons.val()); - geo_items_displayed_once = true; - } + else { geo_items_displayed_once = true; } + disp_geo_items(disp_cr.prop('checked'), disp_bf.prop('checked'), get_polygons.val()); +} +disp_cr.change( event_func_disp_geo_items ); +disp_bf.change( event_func_disp_geo_items ); +get_polygons.change( function () { + disp_map(); + disp_geo_items(disp_cr.prop('checked'), disp_bf.prop('checked'), get_polygons.val()); }) +{% else %} +const disp_bf = $("#display-bf-for-cr"); +const get_polygons = $("#get-poly-cr"); +const event_func_disp_geo_items = function () { + if (geo_items_displayed_once) { + disp_map(); + } + else { geo_items_displayed_once = true; } + disp_geo_items(false, disp_bf.prop('checked'), get_polygons.val()); +} +disp_bf.change( event_func_disp_geo_items ); get_polygons.change( function () { disp_map(); - display_geo_items(disp.val(), get_polygons.val()); + disp_geo_items(false, disp_bf.prop('checked'), get_polygons.val()); }) -console.log('points with base points'); -display_associated_points("map-{{window_id}}-{{geo_item.SLUG}}-{{geo_item.pk}}", - {{geo_item.point_2d_geojson|safe}}, "{{geo_item.SLUG}}"); - +{% endif %} {% endif %} </script> {% endif %} |