mirror of
https://github.com/searxng/searxng.git
synced 2024-11-29 22:21:02 +00:00
[enh] themes: display the engine descriptions
This commit is contained in:
parent
bfd24d1226
commit
2f1384f198
7 changed files with 71 additions and 4 deletions
23
searx/static/themes/oscar/src/js/preferences.js
Normal file
23
searx/static/themes/oscar/src/js/preferences.js
Normal file
|
@ -0,0 +1,23 @@
|
|||
$(document).ready(function(){
|
||||
let engine_descriptions = null;
|
||||
function load_engine_descriptions() {
|
||||
if (engine_descriptions == null) {
|
||||
$.ajax("engine_descriptions.json", dataType="json").done(function(data) {
|
||||
engine_descriptions = data;
|
||||
for (const [engine_name, description] of Object.entries(data)) {
|
||||
let elements = $('[data-engine-name="' + engine_name + '"] .description');
|
||||
for(const element of elements) {
|
||||
let source = ' (<i>' + searx.translations['Source'] + ': ' + description[1] + '</i>)';
|
||||
element.innerHTML = description[0] + source;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (document.querySelector('body[class="preferences_endpoint"]')) {
|
||||
$('[data-engine-name]').hover(function() {
|
||||
load_engine_descriptions();
|
||||
});
|
||||
}
|
||||
});
|
|
@ -25,6 +25,7 @@ input.cursor-text {
|
|||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
z-index: 1000000;
|
||||
max-width: 40rem;
|
||||
}
|
||||
|
||||
td:hover .engine-tooltip, th:hover .engine-tooltip, .engine-tooltip:hover {
|
||||
|
|
27
searx/static/themes/simple/src/js/main/searx_preferences.js
Normal file
27
searx/static/themes/simple/src/js/main/searx_preferences.js
Normal file
|
@ -0,0 +1,27 @@
|
|||
(function (w, d, searx) {
|
||||
'use strict';
|
||||
|
||||
searx.ready(function() {
|
||||
let engine_descriptions = null;
|
||||
function load_engine_descriptions() {
|
||||
if (engine_descriptions == null) {
|
||||
searx.http("GET", "engine_descriptions.json").then(function(content) {
|
||||
engine_descriptions = JSON.parse(content);
|
||||
for (const [engine_name, description] of Object.entries(engine_descriptions)) {
|
||||
let elements = d.querySelectorAll('[data-engine-name="' + engine_name + '"] .engine-description');
|
||||
for(const element of elements) {
|
||||
let source = ' (<i>' + searx.translations['Source'] + ': ' + description[1] + '</i>)';
|
||||
element.innerHTML = description[0] + source;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (d.querySelector('body[class="preferences_endpoint"]')) {
|
||||
for(const el of d.querySelectorAll('[data-engine-name]')) {
|
||||
searx.on(el, 'mouseenter', load_engine_descriptions);
|
||||
}
|
||||
}
|
||||
});
|
||||
})(window, document, window.searx);
|
|
@ -108,6 +108,18 @@
|
|||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
th.name {
|
||||
.engine-tooltip {
|
||||
margin-top: 1.8rem;
|
||||
left: 20rem;
|
||||
max-width: 40rem;
|
||||
|
||||
.engine-description {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 75em) {
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
{% if search_engine.about is defined or stats[search_engine.name]['result_count'] > 0 %}
|
||||
{% set about = search_engine.about %}
|
||||
<div class="engine-tooltip" role="tooltip" id="{{ id }}">{{- "" -}}
|
||||
<p class="description"></p>
|
||||
{% if search_engine.about is defined %}
|
||||
<h5><a href="{{about.website}}" rel="noreferrer">{{about.website}}</a></h5>
|
||||
{%- if about.wikidata_id -%}<p><a href="https://www.wikidata.org/wiki/{{about.wikidata_id}}" rel="noreferrer">wikidata.org/wiki/{{about.wikidata_id}}</a></p>{%- endif -%}
|
||||
|
@ -343,7 +344,7 @@
|
|||
<td class="onoff-checkbox">
|
||||
{{- checkbox_toggle('engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_'), (search_engine.name, categ) in disabled_engines) -}}
|
||||
</td>
|
||||
<th scope="row"><span aria-labelledby="{{ 'tooltip_' + categ + '_' + search_engine.name }}">
|
||||
<th scope="row" data-engine-name="{{ search_engine.name }}"><span aria-labelledby="{{ 'tooltip_' + categ + '_' + search_engine.name }}">
|
||||
{%- if search_engine.enable_http %}{{ icon('exclamation-sign', 'No HTTPS') }}{% endif -%}
|
||||
{{- search_engine.name -}}</span>
|
||||
{{- engine_about(search_engine, 'tooltip_' + categ + '_' + search_engine.name) -}}
|
||||
|
@ -363,7 +364,7 @@
|
|||
<td>{{ support_toggle(supports[search_engine.name]['safesearch']) }}</td>
|
||||
<td>{{ support_toggle(supports[search_engine.name]['supports_selected_language']) }}</td>
|
||||
<td>{{ shortcuts[search_engine.name] }}</td>
|
||||
<th scope="row"><span>{% if search_engine.enable_http %}{{ icon('exclamation-sign', 'No HTTPS') }}{% endif %}{{ search_engine.name }}</span>{{ engine_about(search_engine) }}</th>
|
||||
<th scope="row" data-engine-name="{{ search_engine.name }}"><span>{% if search_engine.enable_http %}{{ icon('exclamation-sign', 'No HTTPS') }}{% endif %}{{ search_engine.name }}</span>{{ engine_about(search_engine) }}</th>
|
||||
<td class="onoff-checkbox">
|
||||
{{ checkbox_toggle('engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_'), (search_engine.name, categ) in disabled_engines) }}
|
||||
</td>
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
{% if search_engine.about is defined %}
|
||||
{% set about = search_engine.about %}
|
||||
<div class="engine-tooltip" role="tooltip">{{- "" -}}
|
||||
<p class="engine-description"></p>
|
||||
<p><a href="{{about.website}}" rel="noreferrer">{{about.website}}</a></p>
|
||||
{%- if about.wikidata_id -%}<p><a href="https://www.wikidata.org/wiki/{{about.wikidata_id}}" rel="noreferrer">wikidata.org/wiki/{{about.wikidata_id}}</a></p>{%- endif -%}
|
||||
{%- if search_engine.enable_http %}<p>{{ icon('exclamation-sign', 'No HTTPS') }}{{ _('No HTTPS')}}</p>{% endif -%}
|
||||
|
@ -262,7 +263,7 @@
|
|||
{% set engine_id = 'engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_') %}
|
||||
<tr>
|
||||
<td class="engine_checkbox">{{ checkbox_onoff(engine_id, (search_engine.name, categ) in disabled_engines) }}</td>
|
||||
<th class="name">{% if search_engine.enable_http %}{{ icon('warning', 'No HTTPS') }}{% endif %} {{ search_engine.name }} {{ engine_about(search_engine) }}</th>
|
||||
<th class="name" data-engine-name="{{ search_engine.name }}">{% if search_engine.enable_http %}{{ icon('warning', 'No HTTPS') }}{% endif %} {{ search_engine.name }} {{ engine_about(search_engine) }}</th>
|
||||
<td class="shortcut">{{ shortcuts[search_engine.name] }}</td>
|
||||
<td>{{ checkbox(engine_id + '_supported_languages', supports[search_engine.name]['supports_selected_language'], true, true) }}</td>
|
||||
<td>{{ checkbox(engine_id + '_safesearch', supports[search_engine.name]['safesearch'], true, true) }}</td>
|
||||
|
|
|
@ -394,7 +394,9 @@ def image_proxify(url):
|
|||
def get_translations():
|
||||
return {
|
||||
# when there is autocompletion
|
||||
'no_item_found': gettext('No item found')
|
||||
'no_item_found': gettext('No item found'),
|
||||
# /preferences: the source of the engine description (wikipedata, wikidata, website)
|
||||
'Source': gettext('Source'),
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue