From d2b2300ee1a4c7efa66960d78d3f38c35fdc6630 Mon Sep 17 00:00:00 2001 From: llmII Date: Wed, 4 Jan 2023 20:18:48 -0600 Subject: [PATCH] Feature: Pagination Widget with list of numbers. Adds to the navigation widget, preserving forward/backward nav, and inserting a list of clickable page numbers between them. Phone sized devices continue without this widget as deterministic display under small screen sizes has not been solved. The widget is agnostic to the actual amount of pages there are that one can navigate to and as such shows all plausible, albeit not necessarilly valid, possibilities. This widget does not interfere with infinite scroll in any fashion. --- AUTHORS.rst | 3 +- .../static/themes/simple/src/less/style.less | 30 +++++++++++++++++++ searx/templates/simple/results.html | 29 ++++++++++++++++++ 3 files changed, 61 insertions(+), 1 deletion(-) diff --git a/AUTHORS.rst b/AUTHORS.rst index 82188cb7..75bc9f87 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -166,4 +166,5 @@ features or generally made searx better: - Sam A. ``_ - @XavierHorwood - Ahmad Alkadri ``_ -- Milad Laly @Milad-Laly \ No newline at end of file +- Milad Laly @Milad-Laly +- @llmII diff --git a/searx/static/themes/simple/src/less/style.less b/searx/static/themes/simple/src/less/style.less index e43508dd..d5fb7301 100644 --- a/searx/static/themes/simple/src/less/style.less +++ b/searx/static/themes/simple/src/less/style.less @@ -734,6 +734,36 @@ article[data-vim-selected].category-social { } } +.numbered_pagination { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + overflow: hidden; +} + +@media screen and (max-width: calc(@phone - 0.5px)) { + .numbered_pagination { + display: none; + } +} + +.page_number { + background: none !important; + border: none !important; + color: var(--color-result-link-font) !important; + text-decoration: underline !important; + cursor: pointer !important; +} + +.page_number_current { + background: none !important; + border: none !important; + color: var(--color-result-link-visited-font) !important; + text-decoration: none !important; + cursor: pointer !important; +} + #apis { margin-top: 8px; clear: both; diff --git a/searx/templates/simple/results.html b/searx/templates/simple/results.html index b05841bb..b7a6cb9e 100644 --- a/searx/templates/simple/results.html +++ b/searx/templates/simple/results.html @@ -187,6 +187,35 @@ + {% set pstart = 1 %} + {% set pend = 11 %} + {% if pageno > 5 %} + {% set pstart = pageno - 4 %} + {% set pend = pageno + 6 %} + {% endif %} + +
+ {% for x in range(pstart, pend) %} +
+ + {% for category in selected_categories %} + + {% endfor %} + + + + + + {% if timeout_limit %}{% endif %} + {{- engine_data_form(engine_data) -}} + {% if pageno == x %} + + {% else %} + + {% endif %} +
+ {% endfor %} +
{% endif %}