aboutsummaryrefslogtreecommitdiffstats
path: root/python/fatcat_web/templates
diff options
context:
space:
mode:
authorMartin Czygan <martin.czygan@gmail.com>2019-11-08 23:00:29 +0100
committerMartin Czygan <martin.czygan@gmail.com>2019-11-08 23:12:12 +0100
commited72027bbf36e933c8db069bd02b0163a84aef83 (patch)
treedc0568703c43eec59d4ddb3cefec50f0d38f22c8 /python/fatcat_web/templates
parent5748f3241117b52f5295dc589374ec0c219534e4 (diff)
downloadfatcat-ed72027bbf36e933c8db069bd02b0163a84aef83.tar.gz
fatcat-ed72027bbf36e933c8db069bd02b0163a84aef83.zip
Add basic pagination to search results
The "deep paging problem" imposes some limit, which currently is a hardcoded default value, `deep_page_limit=2000` in `do_search`. Elasticsearch can be configured, too: > Note that from + size can not be more than the index.max_result_window index setting, which defaults to 10,000. -- https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-body.html#request-body-search-from-size
Diffstat (limited to 'python/fatcat_web/templates')
-rw-r--r--python/fatcat_web/templates/container_search.html21
-rw-r--r--python/fatcat_web/templates/release_search.html24
2 files changed, 42 insertions, 3 deletions
diff --git a/python/fatcat_web/templates/container_search.html b/python/fatcat_web/templates/container_search.html
index 7f6799dd..9e2aa10a 100644
--- a/python/fatcat_web/templates/container_search.html
+++ b/python/fatcat_web/templates/container_search.html
@@ -30,7 +30,26 @@
{% if found %}
{% if found.results %}
- <i>Showing top {{ found.count_returned }} out of {{ found.count_found }} results for: <code>{{ found.query.q }}</code></i>
+ <i>Showing
+ {% if found.offset == 0 %}
+ first
+ {% else %}
+ results {{ found.offset }} &mdash;
+ {% endif %}
+ {{ found.offset + found.count_returned }} out of {{ found.count_found }} results for: <code>{{ found.query.q }}</code></i>
+ <br>
+ {% if found.offset > 0 %}
+ {% if found.offset - found.limit < 0 %}
+ <a href="{{ url_for('release_search', q=query, offset=0) }}">Prev</a>
+ {% else %}
+ <a href="{{ url_for('release_search', q=query, offset=found.offset - found.limit) }}">Prev</a>
+ {% endif %}
+ {% endif %}
+
+ {% if found.offset + found.limit < found.count_found and found.offset + found.limit < found.deep_page_limit %}
+ <a href="{{ url_for('release_search', q=query, offset=found.offset + found.limit) }}">Next</a>
+ {% endif %}
+
{% for entity in found.results %}
<div>
<h4 style="margin-top: 1em; margin-bottom: 4px; font-size: 1.1em;">
diff --git a/python/fatcat_web/templates/release_search.html b/python/fatcat_web/templates/release_search.html
index 7d6b0443..359038dc 100644
--- a/python/fatcat_web/templates/release_search.html
+++ b/python/fatcat_web/templates/release_search.html
@@ -36,8 +36,28 @@
{% if found %}
{% if found.results %}
- <i>Showing top {{ found.count_returned }} out of {{ found.count_found }} results for: <code>{{ found.query.q }}</code></i>
-{% for paper in found.results %}
+ <i>Showing
+ {% if found.offset == 0 %}
+ first
+ {% else %}
+ results {{ found.offset }} &mdash;
+ {% endif %}
+ {{ found.offset + found.count_returned }} out of {{ found.count_found }} results for: <code>{{ found.query.q }}</code></i>
+
+ <br>
+ {% if found.offset > 0 %}
+ {% if found.offset - found.limit < 0 %}
+ <a href="{{ url_for('release_search', q=query, offset=0) }}">Prev</a>
+ {% else %}
+ <a href="{{ url_for('release_search', q=query, offset=found.offset - found.limit) }}">Prev</a>
+ {% endif %}
+ {% endif %}
+
+ {% if found.offset + found.limit < found.count_found and found.offset + found.limit < found.deep_page_limit %}
+ <a href="{{ url_for('release_search', q=query, offset=found.offset + found.limit) }}">Next</a>
+ {% endif %}
+
+ {% for paper in found.results %}
{{ entity_macros.release_search_result_row(paper) }}
{% endfor %}
{% if found.results|length > 8 %}