diff --git a/pycsw/ogc/api/templates/items.html b/pycsw/ogc/api/templates/items.html index a7b916781..d2162a5a6 100644 --- a/pycsw/ogc/api/templates/items.html +++ b/pycsw/ogc/api/templates/items.html @@ -211,14 +211,16 @@ function facet(val){ location.href="{{updateurl('facets','facetprop')}}".replace('facetprop',val); } + //if url has a bbox, enable the spatial filter -{% if 'bbox' in attrs.keys() and (attrs['bbox'].split('%2C')|length) == 4 %} -var bbox = [ - [{{ attrs['bbox'].split('%2C')[1] }}, {{ attrs['bbox'].split('%2C')[0] }}], - [{{ attrs['bbox'].split('%2C')[3] }}, {{ attrs['bbox'].split('%2C')[2] }}] - ] -{% else %} -var bbox = null; +var bbox; +{% if 'bbox' in attrs.keys() %} + {% set bbox_tokens = attrs['bbox'].split('%2C') %} + {% if bbox_tokens|length == 4 %} + bbox = [[{{ + bbox_tokens[1] }}, {{ bbox_tokens[0] }}], [{{ + bbox_tokens[3] }}, {{ bbox_tokens[2] }}]]; + {% endif %} {% endif %} //if filter enabled, apply the spatial filter @@ -298,16 +300,15 @@ }); {% endif %} -//generates a pycsw bbox from leaflet bounds +// Generates a pycsw bbox from leaflet bounds function yx (b){ if (b && b._southWest){ return [b._southWest.lng,b._southWest.lat,b._northEast.lng,b._northEast.lat].join(','); } } +// Creates or sets the filter rectangle and adds it to map var rectangle; - -// creates or sets the filter rectangle and adds it to map function setRectangle(bbox){ if (rectangle){ rectangle.setBounds(bbox) @@ -319,7 +320,7 @@ map.addLayer(rectangle); } -// en/disables the spatial filter, the layer is removed or added at 95% map bounds +// Dis/en-ables the spatial filter, the layer is removed or added at 95% map bounds function trigger_spatial_filter(){ if (map.hasLayer(rectangle)){ rectangle.remove(); @@ -327,7 +328,5 @@ setRectangle(map.getBounds().pad(-0.95)); } } - - {% endblock %}