diff --git a/pycsw/ogc/api/templates/items.html b/pycsw/ogc/api/templates/items.html index 5f4f8d868..28ade46f4 100644 --- a/pycsw/ogc/api/templates/items.html +++ b/pycsw/ogc/api/templates/items.html @@ -26,31 +26,95 @@ {% set nav_links = namespace(prev=None, next=None, self=None) %} {% for link in data['links'] %} -{% if link['rel'] == 'prev' %} -{% set nav_links.prev = link['href'] %} -{% endif %} -{% if link['rel'] == 'self' %} -{% set nav_links.self = link['href'] %} -{% endif %} -{% if link['rel'] == 'next' %} -{% set nav_links.next = link['href'] %} -{% endif %} + {% if link['rel'] == 'prev' %} + {% set nav_links.prev = link['href'] %} + {% endif %} + {% if link['rel'] == 'self' %} + {% set nav_links.self = link['href'] %} + {% endif %} + {% if link['rel'] == 'next' %} + {% set nav_links.next = link['href'] %} + {% endif %} {% endfor %} +{# parse the querystring as dict #} +{% set attrs = {} %} +{% if '?' in nav_links.self %} + {% for kv in nav_links.self.split('#')[0].split('?').pop().split('&') %} + {% if kv.split('=')[0] not in [None,''] %} + {{ attrs.update({kv.split('=')[0] : kv.split('=')[1]}) or '' }} + {% endif %} + {% endfor %} +{% else %} + {% set nav_links.self = link['href'].split('#')[0] + '?' %} +{% endif %} + +{# update existing url with new key,val. indent prevents spaces in output #} +{% macro updateurl(key=None,val=None) %}{{ nav_links.self.split('?')[0] }}?{% + for at in attrs.keys() %}{% + if attrs[at] not in [None,''] %}{% + if key not in [None,''] and key == at %}&{{ at }}={{ val }}{% + else %}&{{ at }}={{ attrs[at] }}{% + endif %}{% + endif %}{% + if key not in attr %}&{{ key }}={{ val }}{% endif %}{% + endfor %}{% +endmacro %} + +{% macro reseturl(key,val) %}{{ + nav_links.self.split('?')[0]}}?facets=true{% + if 'q' in attrs %}&q={{ attrs['q'] }}{% endif %}{% + if 'sortby' in attrs %}&sortby={{ attrs['sortby'] }}{% endif %}{% +endmacro %} +
-
+
+ +
+
+
+
+ + +
+
+
+
+
+
+
+
+ {{ data['numberMatched'] }} results. +
-
+
+
+
+ + +
+
+ {% if 'facets=true' in nav_links.self %} + Reset + {% endif %} +
+
{% if data['facets'] %} {% for facet in data['facets'].keys() %}
{{ facet }}
{% for bucket in data['facets'][facet].buckets %} - {{bucket['value']}} + {% if bucket['value'] %} + {{(bucket['value'] or "") | truncate(20, False, '..') | capitalize }} {{bucket['count']}}
+ {% endif %} {% endfor %}
@@ -58,22 +122,8 @@ {% endif %}
-
- {% if nav_links.prev %} - - {% else %} - - {% endif %} - {% if nav_links.next %} - - {% else %} - - {% endif %} - -
- -
-
+
+
@@ -116,23 +166,38 @@ {% endfor %}
+
+
+ {% if nav_links.prev %} + + {% else %} + + {% endif %}
+
+ Showing {{ data['numberReturned'] }} of {{ data['numberMatched'] }} results.
+
+ {% if nav_links.next %} + + {% else %} + + {% endif %}
- {% if nav_links.prev %} - - {% else %} - - {% endif %} - {% if nav_links.next %} - - {% else %} - - {% endif %} +
+ + {% endblock %} {% block extrafoot %}