forked from zaclys/searxng
Merge pull request #2069 from llmII/feat-pagination-numbered
Feature: Support numbered pagination.
This commit is contained in:
commit
522ba9a14b
|
@ -166,4 +166,5 @@ features or generally made searx better:
|
||||||
- Sam A. `<https://samsapti.dev>`_
|
- Sam A. `<https://samsapti.dev>`_
|
||||||
- @XavierHorwood
|
- @XavierHorwood
|
||||||
- Ahmad Alkadri `<https://github.com/ahmad-alkadri>`_
|
- Ahmad Alkadri `<https://github.com/ahmad-alkadri>`_
|
||||||
- Milad Laly @Milad-Laly
|
- Milad Laly @Milad-Laly
|
||||||
|
- @llmII
|
||||||
|
|
|
@ -423,11 +423,8 @@ svg.leaflet-image-layer.leaflet-interactive path {
|
||||||
.leaflet-control-attribution a:focus {
|
.leaflet-control-attribution a:focus {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
.leaflet-attribution-flag {
|
.leaflet-control-attribution svg {
|
||||||
display: inline !important;
|
display: inline !important;
|
||||||
vertical-align: baseline !important;
|
|
||||||
width: 1em;
|
|
||||||
height: 0.6669em;
|
|
||||||
}
|
}
|
||||||
.leaflet-left .leaflet-control-scale {
|
.leaflet-left .leaflet-control-scale {
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
|
@ -441,10 +438,12 @@ svg.leaflet-image-layer.leaflet-interactive path {
|
||||||
line-height: 1.1;
|
line-height: 1.1;
|
||||||
padding: 2px 5px 1px;
|
padding: 2px 5px 1px;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
-moz-box-sizing: border-box;
|
-moz-box-sizing: border-box;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
background: rgba(255, 255, 255, 0.8);
|
|
||||||
text-shadow: 1px 1px #fff;
|
background: #fff;
|
||||||
|
background: rgba(255, 255, 255, 0.5);
|
||||||
}
|
}
|
||||||
.leaflet-control-scale-line:not(:first-child) {
|
.leaflet-control-scale-line:not(:first-child) {
|
||||||
border-top: 2px solid #777;
|
border-top: 2px solid #777;
|
||||||
|
@ -538,6 +537,8 @@ svg.leaflet-image-layer.leaflet-interactive path {
|
||||||
}
|
}
|
||||||
.leaflet-popup-scrolled {
|
.leaflet-popup-scrolled {
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
|
border-bottom: 1px solid #ddd;
|
||||||
|
border-top: 1px solid #ddd;
|
||||||
}
|
}
|
||||||
|
|
||||||
.leaflet-oldie .leaflet-popup-content-wrapper {
|
.leaflet-oldie .leaflet-popup-content-wrapper {
|
||||||
|
@ -651,6 +652,6 @@ svg.leaflet-image-layer.leaflet-interactive path {
|
||||||
/* Prevent printers from removing background-images of controls. */
|
/* Prevent printers from removing background-images of controls. */
|
||||||
.leaflet-control {
|
.leaflet-control {
|
||||||
-webkit-print-color-adjust: exact;
|
-webkit-print-color-adjust: exact;
|
||||||
print-color-adjust: exact;
|
color-adjust: exact;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"searxng.head.min.js","sources":["../src/js/head/00_init.js"],"sourcesContent":["/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d) {\n 'use strict';\n\n // add data- properties\n var script = d.currentScript || (function () {\n var scripts = d.getElementsByTagName('script');\n return scripts[scripts.length - 1];\n })();\n\n w.searxng = {\n settings: JSON.parse(atob(script.getAttribute('client_settings')))\n };\n\n // update the css\n var hmtlElement = d.getElementsByTagName(\"html\")[0];\n hmtlElement.classList.remove('no-js');\n hmtlElement.classList.add('js');\n\n})(window, document);\n"],"names":["w","d","script","currentScript","scripts","getElementsByTagName","length","searxng","settings","JSON","parse","atob","getAttribute","hmtlElement","classList","remove","add","window","document"],"mappings":"CACA,SAAWA,EAAGC,GACZ,aAGA,IAAIC,EAASD,EAAEE,eAAkB,WAC/B,IAAIC,EAAUH,EAAEI,qBAAqB,QAAQ,EAC7C,OAAOD,EAAQA,EAAQE,OAAS,EACjC,EAAE,EAEHN,EAAEO,QAAU,CACVC,SAAUC,KAAKC,MAAMC,KAAKT,EAAOU,aAAa,iBAAiB,CAAC,CAAC,CACnE,EAGA,IAAIC,EAAcZ,EAAEI,qBAAqB,MAAM,EAAE,GACjDQ,EAAYC,UAAUC,OAAO,OAAO,EACpCF,EAAYC,UAAUE,IAAI,IAAI,CAE/B,GAAEC,OAAQC,QAAQ"}
|
{"version":3,"file":"searxng.head.min.js","sources":["../src/js/head/00_init.js"],"sourcesContent":["/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d) {\n 'use strict';\n\n // add data- properties\n var script = d.currentScript || (function () {\n var scripts = d.getElementsByTagName('script');\n return scripts[scripts.length - 1];\n })();\n\n w.searxng = {\n settings: JSON.parse(atob(script.getAttribute('client_settings')))\n };\n\n // update the css\n var hmtlElement = d.getElementsByTagName(\"html\")[0];\n hmtlElement.classList.remove('no-js');\n hmtlElement.classList.add('js');\n\n})(window, document);\n"],"names":["w","d","script","currentScript","scripts","getElementsByTagName","length","searxng","settings","JSON","parse","atob","getAttribute","hmtlElement","classList","remove","add","window","document"],"mappings":"CACA,SAAWA,EAAGC,gBAIZ,IAAIC,EAASD,EAAEE,eAAkB,WAC/B,IAAIC,EAAUH,EAAEI,qBAAqB,UACrC,OAAOD,EAAQA,EAAQE,OAAS,GAFD,GAKjCN,EAAEO,QAAU,CACVC,SAAUC,KAAKC,MAAMC,KAAKT,EAAOU,aAAa,sBAIhD,IAAIC,EAAcZ,EAAEI,qBAAqB,QAAQ,GACjDQ,EAAYC,UAAUC,OAAO,SAC7BF,EAAYC,UAAUE,IAAI,OAhB5B,CAkBGC,OAAQC"}
|
File diff suppressed because one or more lines are too long
|
@ -362,7 +362,7 @@ article[data-vim-selected].category-social {
|
||||||
.category-files,
|
.category-files,
|
||||||
.category-social {
|
.category-social {
|
||||||
border: 1px solid var(--color-result-border);
|
border: 1px solid var(--color-result-border);
|
||||||
margin: 1rem @results-tablet-offset 0 @results-tablet-offset !important;
|
margin: 0 @results-tablet-offset 1rem @results-tablet-offset !important;
|
||||||
.rounded-corners;
|
.rounded-corners;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -734,6 +734,26 @@ article[data-vim-selected].category-social {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.numbered_pagination {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: row;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page_number {
|
||||||
|
background: transparent !important;
|
||||||
|
color: var(--color-result-link-font) !important;
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page_number_current {
|
||||||
|
background: transparent;
|
||||||
|
color: var(--color-result-link-visited-font);
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
#apis {
|
#apis {
|
||||||
margin-top: 8px;
|
margin-top: 8px;
|
||||||
clear: both;
|
clear: both;
|
||||||
|
@ -1009,6 +1029,10 @@ article[data-vim-selected].category-social {
|
||||||
background-color: var(--color-sidebar-background);
|
background-color: var(--color-sidebar-background);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.numbered_pagination {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.result-paper {
|
.result-paper {
|
||||||
.attributes {
|
.attributes {
|
||||||
display: block;
|
display: block;
|
||||||
|
|
|
@ -187,6 +187,35 @@
|
||||||
<button role="link" type="submit">{{ _('Next page') }} {{ icon_small('chevron-right') }}</button>
|
<button role="link" type="submit">{{ _('Next page') }} {{ icon_small('chevron-right') }}</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
{% set pstart = 1 %}
|
||||||
|
{% set pend = 11 %}
|
||||||
|
{% if pageno > 5 %}
|
||||||
|
{% set pstart = pageno - 4 %}
|
||||||
|
{% set pend = pageno + 6 %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="numbered_pagination">
|
||||||
|
{% for x in range(pstart, pend) %}
|
||||||
|
<form method="{{ method or 'POST' }}" action="{{ url_for('search') }}" class="page_number">
|
||||||
|
<input type="hidden" name="q" value="{{ q|e }}" >
|
||||||
|
{% for category in selected_categories %}
|
||||||
|
<input type="hidden" name="category_{{ category }}" value="1" >
|
||||||
|
{% endfor %}
|
||||||
|
<input type="hidden" name="pageno" value="{{ x }}" >
|
||||||
|
<input type="hidden" name="language" value="{{ current_language }}" >
|
||||||
|
<input type="hidden" name="time_range" value="{{ time_range }}" >
|
||||||
|
<input type="hidden" name="safesearch" value="{{ safesearch }}" >
|
||||||
|
<input type="hidden" name="theme" value="{{ theme }}" >
|
||||||
|
{% if timeout_limit %}<input type="hidden" name="timeout_limit" value="{{ timeout_limit|e }}" >{% endif %}
|
||||||
|
{{- engine_data_form(engine_data) -}}
|
||||||
|
{% if pageno == x %}
|
||||||
|
<input role="link" class="page_number_current" type="button" value="{{ x }}">
|
||||||
|
{% else %}
|
||||||
|
<input role="link" class="page_number" type="submit" value="{{ x }}">
|
||||||
|
{% endif %}
|
||||||
|
</form>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
Loading…
Reference in New Issue