diff --git a/searx/__init__.py b/searx/__init__.py index 11adbba73..15048bcc2 100644 --- a/searx/__init__.py +++ b/searx/__init__.py @@ -20,7 +20,6 @@ import searx.settings_loader from os import environ from os.path import realpath, dirname, join, abspath, isfile - searx_dir = abspath(dirname(__file__)) engine_dir = dirname(realpath(__file__)) static_path = abspath(join(dirname(__file__), 'static')) diff --git a/searx/search/checker/impl.py b/searx/search/checker/impl.py index 5cb289ec6..dd090c513 100644 --- a/searx/search/checker/impl.py +++ b/searx/search/checker/impl.py @@ -5,6 +5,7 @@ import types import functools import itertools from time import time +from timeit import default_timer from urllib.parse import urlparse import re @@ -386,7 +387,7 @@ class Checker: params = self.processor.get_params(search_query, engineref_category) if params is not None: counter_inc('engine', search_query.engineref_list[0].name, 'search', 'count', 'sent') - self.processor.search(search_query.query, params, result_container, time(), 5) + self.processor.search(search_query.query, params, result_container, default_timer(), 5) return result_container def get_result_container_tests(self, test_name: str, search_query: SearchQuery) -> ResultContainerTests: diff --git a/searx/static/themes/oscar/css/logicodev-dark.css b/searx/static/themes/oscar/css/logicodev-dark.css index 9bacb3c13..618de9327 100644 --- a/searx/static/themes/oscar/css/logicodev-dark.css +++ b/searx/static/themes/oscar/css/logicodev-dark.css @@ -923,12 +923,78 @@ input.cursor-text { padding: 0.5rem 1rem; margin: 0rem 0 0 2rem; border: 1px solid #ddd; + box-shadow: 2px 2px 2px 0px rgba(0, 0, 0, 0.1); background: white; font-size: 14px; font-weight: normal; z-index: 1000000; } +td:hover .engine-tooltip, th:hover .engine-tooltip, .engine-tooltip:hover { display: inline-block; } +/* stacked-bar-chart */ +.stacked-bar-chart { + margin: 0; + padding: 0 0.125rem 0 3rem; + width: 100%; + width: -moz-available; + width: -webkit-fill-available; + width: fill; + flex-direction: row; + flex-wrap: nowrap; + flex-grow: 1; + align-items: center; + display: inline-flex; +} +.stacked-bar-chart-value { + width: 3rem; + display: inline-block; + position: absolute; + padding: 0 0.5rem; + text-align: right; +} +.stacked-bar-chart-base { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; +} +.stacked-bar-chart-median { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: #000000; + border: 1px solid rgba(0, 0, 0, 0.9); + padding: 0.3rem 0; +} +.stacked-bar-chart-rate80 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border: 1px solid rgba(0, 0, 0, 0.3); + padding: 0.3rem 0; +} +.stacked-bar-chart-rate95 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border-bottom: 1px dotted rgba(0, 0, 0, 0.5); + padding: 0; +} +.stacked-bar-chart-rate100 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border-left: 1px solid rgba(0, 0, 0, 0.9); + padding: 0.4rem 0; + width: 1px; +} diff --git a/searx/static/themes/oscar/css/logicodev-dark.min.css b/searx/static/themes/oscar/css/logicodev-dark.min.css index a70a109f4..09aed0298 100644 Binary files a/searx/static/themes/oscar/css/logicodev-dark.min.css and b/searx/static/themes/oscar/css/logicodev-dark.min.css differ diff --git a/searx/static/themes/oscar/css/logicodev-dark.min.css.map b/searx/static/themes/oscar/css/logicodev-dark.min.css.map index 4cd2eb8c5..71062db2e 100644 Binary files a/searx/static/themes/oscar/css/logicodev-dark.min.css.map and b/searx/static/themes/oscar/css/logicodev-dark.min.css.map differ diff --git a/searx/static/themes/oscar/css/logicodev.css b/searx/static/themes/oscar/css/logicodev.css index 6e5bddce3..4f6b36b11 100644 --- a/searx/static/themes/oscar/css/logicodev.css +++ b/searx/static/themes/oscar/css/logicodev.css @@ -896,15 +896,81 @@ input.cursor-text { padding: 0.5rem 1rem; margin: 0rem 0 0 2rem; border: 1px solid #ddd; + box-shadow: 2px 2px 2px 0px rgba(0, 0, 0, 0.1); background: white; font-size: 14px; font-weight: normal; z-index: 1000000; } +td:hover .engine-tooltip, th:hover .engine-tooltip, .engine-tooltip:hover { display: inline-block; } +/* stacked-bar-chart */ +.stacked-bar-chart { + margin: 0; + padding: 0 0.125rem 0 3rem; + width: 100%; + width: -moz-available; + width: -webkit-fill-available; + width: fill; + flex-direction: row; + flex-wrap: nowrap; + flex-grow: 1; + align-items: center; + display: inline-flex; +} +.stacked-bar-chart-value { + width: 3rem; + display: inline-block; + position: absolute; + padding: 0 0.5rem; + text-align: right; +} +.stacked-bar-chart-base { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; +} +.stacked-bar-chart-median { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: #d5d8d7; + border: 1px solid rgba(213, 216, 215, 0.9); + padding: 0.3rem 0; +} +.stacked-bar-chart-rate80 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border: 1px solid rgba(213, 216, 215, 0.3); + padding: 0.3rem 0; +} +.stacked-bar-chart-rate95 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border-bottom: 1px dotted rgba(213, 216, 215, 0.5); + padding: 0; +} +.stacked-bar-chart-rate100 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border-left: 1px solid rgba(213, 216, 215, 0.9); + padding: 0.4rem 0; + width: 1px; +} /*Global*/ body { background: #1d1f21 none !important; diff --git a/searx/static/themes/oscar/css/logicodev.min.css b/searx/static/themes/oscar/css/logicodev.min.css index 12ddfe00e..db035aa75 100644 Binary files a/searx/static/themes/oscar/css/logicodev.min.css and b/searx/static/themes/oscar/css/logicodev.min.css differ diff --git a/searx/static/themes/oscar/css/logicodev.min.css.map b/searx/static/themes/oscar/css/logicodev.min.css.map index 3e15ed5ec..50598d2ef 100644 Binary files a/searx/static/themes/oscar/css/logicodev.min.css.map and b/searx/static/themes/oscar/css/logicodev.min.css.map differ diff --git a/searx/static/themes/oscar/css/pointhi.css b/searx/static/themes/oscar/css/pointhi.css index c648f2b60..64f612d79 100644 --- a/searx/static/themes/oscar/css/pointhi.css +++ b/searx/static/themes/oscar/css/pointhi.css @@ -688,6 +688,71 @@ input[type=checkbox]:not(:checked) + .label_hide_if_checked + .label_hide_if_not z-index: 1000000; } th:hover .engine-tooltip, +td:hover .engine-tooltip, .engine-tooltip:hover { display: inline-block; } +/* stacked-bar-chart */ +.stacked-bar-chart { + margin: 0; + padding: 0 0.125rem 0 3rem; + width: 100%; + width: -moz-available; + width: -webkit-fill-available; + width: fill; + flex-direction: row; + flex-wrap: nowrap; + flex-grow: 1; + align-items: center; + display: inline-flex; +} +.stacked-bar-chart-value { + width: 3rem; + display: inline-block; + position: absolute; + padding: 0 0.5rem; + text-align: right; +} +.stacked-bar-chart-base { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; +} +.stacked-bar-chart-median { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: #000000; + border: 1px solid rgba(0, 0, 0, 0.9); + padding: 0.3rem 0; +} +.stacked-bar-chart-rate80 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border: 1px solid rgba(0, 0, 0, 0.3); + padding: 0.3rem 0; +} +.stacked-bar-chart-rate95 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border-bottom: 1px dotted rgba(0, 0, 0, 0.5); + padding: 0; +} +.stacked-bar-chart-rate100 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border-left: 1px solid rgba(0, 0, 0, 0.9); + padding: 0.4rem 0; + width: 1px; +} diff --git a/searx/static/themes/oscar/css/pointhi.min.css b/searx/static/themes/oscar/css/pointhi.min.css index 02bee6ad7..4332e4767 100644 Binary files a/searx/static/themes/oscar/css/pointhi.min.css and b/searx/static/themes/oscar/css/pointhi.min.css differ diff --git a/searx/static/themes/oscar/css/pointhi.min.css.map b/searx/static/themes/oscar/css/pointhi.min.css.map index 1d18b1fd7..abb30817f 100644 Binary files a/searx/static/themes/oscar/css/pointhi.min.css.map and b/searx/static/themes/oscar/css/pointhi.min.css.map differ diff --git a/searx/static/themes/oscar/js/searx.min.js b/searx/static/themes/oscar/js/searx.min.js index 8b17d4f61..b31aad6f0 100644 Binary files a/searx/static/themes/oscar/js/searx.min.js and b/searx/static/themes/oscar/js/searx.min.js differ diff --git a/searx/static/themes/oscar/src/less/logicodev-dark/oscar.less b/searx/static/themes/oscar/src/less/logicodev-dark/oscar.less index ff37594c8..38a4424ac 100644 --- a/searx/static/themes/oscar/src/less/logicodev-dark/oscar.less +++ b/searx/static/themes/oscar/src/less/logicodev-dark/oscar.less @@ -1,4 +1,7 @@ @import "../logicodev/variables.less"; + +@stacked-bar-chart: rgb(213, 216, 215, 1); + @import "../logicodev/footer.less"; @import "../logicodev/checkbox.less"; @import "../logicodev/onoff.less"; diff --git a/searx/static/themes/oscar/src/less/logicodev/preferences.less b/searx/static/themes/oscar/src/less/logicodev/preferences.less index ccd0b0249..32e230413 100644 --- a/searx/static/themes/oscar/src/less/logicodev/preferences.less +++ b/searx/static/themes/oscar/src/less/logicodev/preferences.less @@ -20,12 +20,72 @@ input.cursor-text { padding: 0.5rem 1rem; margin: 0rem 0 0 2rem; border: 1px solid #ddd; + box-shadow: 2px 2px 2px 0px rgba(0,0,0,0.1); background: white; font-size: 14px; font-weight: normal; z-index: 1000000; } -th:hover .engine-tooltip, .engine-tooltip:hover { +td:hover .engine-tooltip, th:hover .engine-tooltip, .engine-tooltip:hover { display: inline-block; -} \ No newline at end of file +} + +/* stacked-bar-chart */ +.stacked-bar-chart { + margin: 0; + padding: 0 0.125rem 0 3rem; + width: 100%; + width: -moz-available; + width: -webkit-fill-available; + width: fill; + flex-direction: row; + flex-wrap: nowrap; + flex-grow: 1; + align-items: center; + display: inline-flex; +} + +.stacked-bar-chart-value { + width: 3rem; + display: inline-block; + position: absolute; + padding: 0 0.5rem; + text-align: right; +} + +.stacked-bar-chart-base { + display:flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; +} + +.stacked-bar-chart-median { + .stacked-bar-chart-base(); + background: @stacked-bar-chart; + border: 1px solid fade(@stacked-bar-chart, 90%); + padding: 0.3rem 0; +} + +.stacked-bar-chart-rate80 { + .stacked-bar-chart-base(); + background: transparent; + border: 1px solid fade(@stacked-bar-chart, 30%); + padding: 0.3rem 0; +} + +.stacked-bar-chart-rate95 { + .stacked-bar-chart-base(); + background: transparent; + border-bottom: 1px dotted fade(@stacked-bar-chart, 50%); + padding: 0; +} + +.stacked-bar-chart-rate100 { + .stacked-bar-chart-base(); + background: transparent; + border-left: 1px solid fade(@stacked-bar-chart, 90%); + padding: 0.4rem 0; + width: 1px; +} diff --git a/searx/static/themes/oscar/src/less/logicodev/variables.less b/searx/static/themes/oscar/src/less/logicodev/variables.less index 4ee8df8e7..ae2516c05 100644 --- a/searx/static/themes/oscar/src/less/logicodev/variables.less +++ b/searx/static/themes/oscar/src/less/logicodev/variables.less @@ -14,3 +14,5 @@ @light-green: #01D7D4; @orange: #FFA92F; @dark-red: #c9432f; + +@stacked-bar-chart: rgb(0, 0, 0); diff --git a/searx/static/themes/oscar/src/less/pointhi/oscar.less b/searx/static/themes/oscar/src/less/pointhi/oscar.less index 037bfa59b..6f92a0791 100644 --- a/searx/static/themes/oscar/src/less/pointhi/oscar.less +++ b/searx/static/themes/oscar/src/less/pointhi/oscar.less @@ -1,3 +1,5 @@ +@import "variables.less"; + @import "footer.less"; @import "checkbox.less"; diff --git a/searx/static/themes/oscar/src/less/pointhi/preferences.less b/searx/static/themes/oscar/src/less/pointhi/preferences.less index f3a6bee22..cb63674ed 100644 --- a/searx/static/themes/oscar/src/less/pointhi/preferences.less +++ b/searx/static/themes/oscar/src/less/pointhi/preferences.less @@ -14,6 +14,66 @@ z-index: 1000000; } -th:hover .engine-tooltip, .engine-tooltip:hover { +th:hover .engine-tooltip, td:hover .engine-tooltip, .engine-tooltip:hover { display: inline-block; } + +/* stacked-bar-chart */ +.stacked-bar-chart { + margin: 0; + padding: 0 0.125rem 0 3rem; + width: 100%; + width: -moz-available; + width: -webkit-fill-available; + width: fill; + flex-direction: row; + flex-wrap: nowrap; + flex-grow: 1; + align-items: center; + display: inline-flex; +} + +.stacked-bar-chart-value { + width: 3rem; + display: inline-block; + position: absolute; + padding: 0 0.5rem; + text-align: right; +} + +.stacked-bar-chart-base { + display:flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; +} + +.stacked-bar-chart-median { + .stacked-bar-chart-base(); + background: @stacked-bar-chart; + border: 1px solid fade(@stacked-bar-chart, 90%); + padding: 0.3rem 0; +} + +.stacked-bar-chart-rate80 { + .stacked-bar-chart-base(); + background: transparent; + border: 1px solid fade(@stacked-bar-chart, 30%); + padding: 0.3rem 0; +} + +.stacked-bar-chart-rate95 { + .stacked-bar-chart-base(); + background: transparent; + border-bottom: 1px dotted fade(@stacked-bar-chart, 50%); + padding: 0; +} + +.stacked-bar-chart-rate100 { + .stacked-bar-chart-base(); + background: transparent; + border-left: 1px solid fade(@stacked-bar-chart, 90%); + padding: 0.4rem 0; + width: 1px; +} + diff --git a/searx/static/themes/oscar/src/less/pointhi/variables.less b/searx/static/themes/oscar/src/less/pointhi/variables.less new file mode 100644 index 000000000..991f03098 --- /dev/null +++ b/searx/static/themes/oscar/src/less/pointhi/variables.less @@ -0,0 +1 @@ +@stacked-bar-chart: rgb(0, 0, 0); diff --git a/searx/static/themes/simple/css/searx-rtl.css b/searx/static/themes/simple/css/searx-rtl.css index 6b9b47d85..0da2850c5 100644 --- a/searx/static/themes/simple/css/searx-rtl.css +++ b/searx/static/themes/simple/css/searx-rtl.css @@ -1,4 +1,4 @@ -/*! searx | 23-03-2021 | */ +/*! searx | 21-04-2021 | */ /* * searx, A privacy-respecting, hackable metasearch engine * @@ -692,6 +692,12 @@ html.js .show_if_nojs { .danger { background-color: #fae1e1; } +.warning { + background: #faf5e1; +} +.success { + background: #e3fae1; +} .badge { display: inline-block; color: #fff; @@ -1147,6 +1153,69 @@ select:focus { transform: rotate(360deg); } } +/* -- stacked bar chart -- */ +.stacked-bar-chart { + margin: 0; + padding: 0 0.125rem 0 4rem; + width: 100%; + width: -moz-available; + width: -webkit-fill-available; + width: fill; + flex-direction: row; + flex-wrap: nowrap; + align-items: center; + display: inline-flex; +} +.stacked-bar-chart-value { + width: 3rem; + display: inline-block; + position: absolute; + padding: 0 0.5rem; + text-align: right; +} +.stacked-bar-chart-base { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; +} +.stacked-bar-chart-median { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: #000000; + border: 1px solid rgba(0, 0, 0, 0.9); + padding: 0.3rem 0; +} +.stacked-bar-chart-rate80 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border: 1px solid rgba(0, 0, 0, 0.3); + padding: 0.3rem 0; +} +.stacked-bar-chart-rate95 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border-bottom: 1px dotted rgba(0, 0, 0, 0.5); + padding: 0; +} +.stacked-bar-chart-rate100 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border-left: 1px solid rgba(0, 0, 0, 0.9); + padding: 0.4rem 0; + width: 1px; +} /*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */ .autocomplete { position: absolute; @@ -1435,8 +1504,10 @@ select:focus { font-size: 14px; font-weight: normal; z-index: 1000000; + text-align: left; } #main_preferences th:hover .engine-tooltip, +#main_preferences td:hover .engine-tooltip, #main_preferences .engine-tooltip:hover { display: inline-block; } diff --git a/searx/static/themes/simple/css/searx-rtl.min.css b/searx/static/themes/simple/css/searx-rtl.min.css index 3b5d7f753..615b88ec5 100644 Binary files a/searx/static/themes/simple/css/searx-rtl.min.css and b/searx/static/themes/simple/css/searx-rtl.min.css differ diff --git a/searx/static/themes/simple/css/searx.css b/searx/static/themes/simple/css/searx.css index 484fdc82d..15b9f0853 100644 --- a/searx/static/themes/simple/css/searx.css +++ b/searx/static/themes/simple/css/searx.css @@ -1,4 +1,4 @@ -/*! searx | 23-03-2021 | */ +/*! searx | 21-04-2021 | */ /* * searx, A privacy-respecting, hackable metasearch engine * @@ -692,6 +692,12 @@ html.js .show_if_nojs { .danger { background-color: #fae1e1; } +.warning { + background: #faf5e1; +} +.success { + background: #e3fae1; +} .badge { display: inline-block; color: #fff; @@ -1147,6 +1153,69 @@ select:focus { transform: rotate(360deg); } } +/* -- stacked bar chart -- */ +.stacked-bar-chart { + margin: 0; + padding: 0 0.125rem 0 4rem; + width: 100%; + width: -moz-available; + width: -webkit-fill-available; + width: fill; + flex-direction: row; + flex-wrap: nowrap; + align-items: center; + display: inline-flex; +} +.stacked-bar-chart-value { + width: 3rem; + display: inline-block; + position: absolute; + padding: 0 0.5rem; + text-align: right; +} +.stacked-bar-chart-base { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; +} +.stacked-bar-chart-median { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: #000000; + border: 1px solid rgba(0, 0, 0, 0.9); + padding: 0.3rem 0; +} +.stacked-bar-chart-rate80 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border: 1px solid rgba(0, 0, 0, 0.3); + padding: 0.3rem 0; +} +.stacked-bar-chart-rate95 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border-bottom: 1px dotted rgba(0, 0, 0, 0.5); + padding: 0; +} +.stacked-bar-chart-rate100 { + display: flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; + background: transparent; + border-left: 1px solid rgba(0, 0, 0, 0.9); + padding: 0.4rem 0; + width: 1px; +} /*! Autocomplete.js v2.6.3 | license MIT | (c) 2017, Baptiste Donaux | http://autocomplete-js.com */ .autocomplete { position: absolute; @@ -1435,8 +1504,10 @@ select:focus { font-size: 14px; font-weight: normal; z-index: 1000000; + text-align: left; } #main_preferences th:hover .engine-tooltip, +#main_preferences td:hover .engine-tooltip, #main_preferences .engine-tooltip:hover { display: inline-block; } diff --git a/searx/static/themes/simple/css/searx.min.css b/searx/static/themes/simple/css/searx.min.css index 2757ba434..52ad98ecd 100644 Binary files a/searx/static/themes/simple/css/searx.min.css and b/searx/static/themes/simple/css/searx.min.css differ diff --git a/searx/static/themes/simple/js/searx.head.min.js b/searx/static/themes/simple/js/searx.head.min.js index dd85086ee..043f25515 100644 Binary files a/searx/static/themes/simple/js/searx.head.min.js and b/searx/static/themes/simple/js/searx.head.min.js differ diff --git a/searx/static/themes/simple/js/searx.min.js b/searx/static/themes/simple/js/searx.min.js index 17daac2a4..8ae15bede 100644 Binary files a/searx/static/themes/simple/js/searx.min.js and b/searx/static/themes/simple/js/searx.min.js differ diff --git a/searx/static/themes/simple/less/definitions.less b/searx/static/themes/simple/less/definitions.less index 7a43720b8..c1465a579 100644 --- a/searx/static/themes/simple/less/definitions.less +++ b/searx/static/themes/simple/less/definitions.less @@ -19,6 +19,9 @@ @color-warning: #dbba34; @color-warning-background: lighten(@color-warning, 40%); +@color-success: #42db34; +@color-success-background: lighten(@color-success, 40%); + /// General @color-font: #444; diff --git a/searx/static/themes/simple/less/preferences.less b/searx/static/themes/simple/less/preferences.less index 26c4f6ddd..93bdaad27 100644 --- a/searx/static/themes/simple/less/preferences.less +++ b/searx/static/themes/simple/less/preferences.less @@ -105,9 +105,10 @@ font-size: 14px; font-weight: normal; z-index: 1000000; + text-align: left; } - th:hover .engine-tooltip, .engine-tooltip:hover { + th:hover .engine-tooltip, td:hover .engine-tooltip, .engine-tooltip:hover { display: inline-block; } diff --git a/searx/static/themes/simple/less/style.less b/searx/static/themes/simple/less/style.less index e00b2deff..55fb721c9 100644 --- a/searx/static/themes/simple/less/style.less +++ b/searx/static/themes/simple/less/style.less @@ -4,6 +4,8 @@ * To convert "style.less" to "style.css" run: $make styles */ +@stacked-bar-chart: rgb(0, 0, 0); + @import "normalize.less"; @import "definitions.less"; diff --git a/searx/static/themes/simple/less/toolkit.less b/searx/static/themes/simple/less/toolkit.less index 46ea17b3a..3999df3b6 100644 --- a/searx/static/themes/simple/less/toolkit.less +++ b/searx/static/themes/simple/less/toolkit.less @@ -36,6 +36,14 @@ html.js .show_if_nojs { background-color: @color-error-background; } +.warning { + background: @color-warning-background; +} + +.success { + background: @color-success-background; +} + .badge { display: inline-block; color: #fff; @@ -465,4 +473,62 @@ select { -webkit-transform: rotate(360deg); transform: rotate(360deg); } -} \ No newline at end of file +} + +/* -- stacked bar chart -- */ +.stacked-bar-chart { + margin: 0; + padding: 0 0.125rem 0 4rem; + width: 100%; + width: -moz-available; + width: -webkit-fill-available; + width: fill; + flex-direction: row; + flex-wrap: nowrap; + align-items: center; + display: inline-flex; +} + +.stacked-bar-chart-value { + width: 3rem; + display: inline-block; + position: absolute; + padding: 0 0.5rem; + text-align: right; +} + +.stacked-bar-chart-base { + display:flex; + flex-shrink: 0; + flex-grow: 0; + flex-basis: unset; +} + +.stacked-bar-chart-median { + .stacked-bar-chart-base(); + background: @stacked-bar-chart; + border: 1px solid fade(@stacked-bar-chart, 90%); + padding: 0.3rem 0; +} + +.stacked-bar-chart-rate80 { + .stacked-bar-chart-base(); + background: transparent; + border: 1px solid fade(@stacked-bar-chart, 30%); + padding: 0.3rem 0; +} + +.stacked-bar-chart-rate95 { + .stacked-bar-chart-base(); + background: transparent; + border-bottom: 1px dotted fade(@stacked-bar-chart, 50%); + padding: 0; +} + +.stacked-bar-chart-rate100 { + .stacked-bar-chart-base(); + background: transparent; + border-left: 1px solid fade(@stacked-bar-chart, 90%); + padding: 0.4rem 0; + width: 1px; +} diff --git a/searx/templates/oscar/macros.html b/searx/templates/oscar/macros.html index 1cf46074f..0e9dc227a 100644 --- a/searx/templates/oscar/macros.html +++ b/searx/templates/oscar/macros.html @@ -134,13 +134,11 @@ custom-select{% if rtl %}-rtl{% endif %} {%- endmacro %} {% macro support_toggle(supports) -%} - {%- if supports -%} - - {{- _("supported") -}} - + {%- if supports == '?' -%} + {{- "" -}} + {%- elif supports -%} + {{- "" -}} {%- else -%} - - {{- _("not supported") -}} - + {{- "" -}} {%- endif -%} {%- endmacro %} diff --git a/searx/templates/oscar/preferences.html b/searx/templates/oscar/preferences.html index 2602c19d9..9051f82aa 100644 --- a/searx/templates/oscar/preferences.html +++ b/searx/templates/oscar/preferences.html @@ -1,16 +1,92 @@ {% from 'oscar/macros.html' import preferences_item_header, preferences_item_header_rtl, preferences_item_footer, preferences_item_footer_rtl, checkbox_toggle, support_toggle, custom_select_class %} {% extends "oscar/base.html" %} -{% macro engine_about(search_engine, id) -%} -{% if search_engine.about is defined %} +{%- macro engine_about(search_engine, id) -%} +{% if search_engine.about is defined or stats[search_engine.name]['result_count'] > 0 %} {% set about = search_engine.about %} {%- endif -%} {%- endmacro %} -{% block title %}{{ _('preferences') }} - {% endblock %} + +{%- macro engine_time(engine_name, css_align_class) -%} + + {%- if stats[engine_name].time != None -%} + + {%- if stats[engine_name]['warn_time'] -%} + {{icon('exclamation-sign')}} + {%- endif -%} + {{- stats[engine_name].time -}} + {{- "" -}} + + {%- endif -%} + +{%- endmacro -%} + +{%- macro engine_time(engine_name, css_align_class) -%} +{{- "" -}} + {%- if stats[engine_name].time != None -%} + {{- stats[engine_name].time -}}{{- "" -}} + {{- "" -}} + + {%- endif -%} + +{%- endmacro -%} + +{%- macro engine_reliability(engine_name, css_align_class) -%} +{% set r = reliabilities.get(engine_name, {}).get('reliablity', None) %} +{% set checker_result = reliabilities.get(engine_name, {}).get('checker', []) %} +{% set errors = reliabilities.get(engine_name, {}).get('errors', []) %} +{% if r != None %} + {% if r <= 50 %}{% set label = 'danger' %} + {% elif r < 80 %}{% set label = 'warning' %} + {% elif r < 90 %}{% set label = 'default' %} + {% else %}{% set label = 'success' %} + {% endif %} +{% else %} + {% set r = '' %} +{% endif %} +{% if checker_result or errors %} +{{- "" -}} + + {%- if reliabilities[engine_name].checker %}{{ icon('exclamation-sign', 'The checker fails on the some tests') }}{% endif %} {{ r -}} + {{- "" -}} + {{- "" -}} + +{%- else -%} +{{ r }} +{%- endif -%} +{%- endmacro -%} + +{%- block title %}{{ _('preferences') }} - {% endblock -%} + {% block content %}
@@ -182,7 +258,6 @@
-