9 Commits

Author SHA1 Message Date
Markus Heiser
65c970bdf4 [build] /static 2024-12-16 11:39:38 +01:00
Bnyro
d4e3a5f2f2 [refactor] webapp.py: reuse get_client_settings() method to unify preference handling before render 2024-12-16 11:39:38 +01:00
Markus Heiser
1604a00b89 Revert "[weblate] add dummy string to trigger weblate.push.translations in CI"
This reverts commit 899edee5ec.
2024-12-16 09:27:19 +01:00
Markus Heiser
899edee5ec [weblate] add dummy string to trigger weblate.push.translations in CI
Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
2024-12-16 08:41:57 +01:00
Bnyro
523df1d7f4 [build] /static 2024-12-16 08:36:48 +01:00
Bnyro
c8e932647b [fix] settings: javascript crash when entering due to missing search form 2024-12-16 08:36:48 +01:00
Zhijie He
8d2c01e4ce [chore] cleanup 2024-12-16 08:32:35 +01:00
Zhijie He
12c27f416f [enh] add engine- prefix, replace blank space to - 2024-12-16 08:32:35 +01:00
Zhijie He
e90fa48018 [fix]: fix engine name may break some css style, contains "right", "left", "center" 2024-12-16 08:32:35 +01:00
5 changed files with 33 additions and 35 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -43,11 +43,11 @@
createClearButton(qinput);
// autocompleter
if (searxng.settings.autocomplete_provider) {
if (searxng.settings.autocomplete) {
searxng.autocomplete = AutoComplete.call(w, {
Url: "./autocompleter",
EmptyMessage: searxng.settings.translations.no_item_found,
HttpMethod: searxng.settings.http_method,
HttpMethod: searxng.settings.method,
HttpHeaders: {
"Content-type": "application/x-www-form-urlencoded",
"X-Requested-With": "XMLHttpRequest"
@@ -186,20 +186,22 @@
// override form submit action to update the actually selected categories
const form = d.querySelector("#search");
searxng.on(form, 'submit', (event) => {
event.preventDefault();
const categoryValuesInput = d.querySelector("#selected-categories");
if (categoryValuesInput) {
let categoryValues = [];
for (let categoryButton of categoryButtons) {
if (categoryButton.classList.contains("selected")) {
categoryValues.push(categoryButton.name.replace("category_", ""));
if (form != null) {
searxng.on(form, 'submit', (event) => {
event.preventDefault();
const categoryValuesInput = d.querySelector("#selected-categories");
if (categoryValuesInput) {
let categoryValues = [];
for (let categoryButton of categoryButtons) {
if (categoryButton.classList.contains("selected")) {
categoryValues.push(categoryButton.name.replace("category_", ""));
}
}
categoryValuesInput.value = categoryValues.join(",");
}
categoryValuesInput.value = categoryValues.join(",");
}
form.submit();
});
form.submit();
});
}
});
})(window, document, window.searxng);

View File

@@ -19,7 +19,7 @@
<!-- Draw result header -->
{% macro result_header(result, favicons, image_proxify) -%}
<article class="result {% if result['template'] %}result-{{ result.template|replace('.html', '') }}{% else %}result-default{% endif %} {% if result['category'] %}category-{{ result['category'] }}{% endif %}{% for e in result.engines %} {{ e }}{% endfor %}">
<article class="result {% if result['template'] %}result-{{ result.template|replace('.html', '') }}{% else %}result-default{% endif %} {% if result['category'] %}category-{{ result['category'] }}{% endif %}">
{{- result_open_link(result.url, "url_header") -}}
{%- if favicon_resolver != "" %}
<div class="favicon"><img loading="lazy" src="{{ favicon_url(result.parsed_url.netloc) }}"></div>

View File

@@ -357,29 +357,40 @@ def get_pretty_url(parsed_url: urllib.parse.ParseResult):
def get_client_settings():
req_pref = request.preferences
return {
'autocomplete_provider': req_pref.get_value('autocomplete'),
'autocomplete': req_pref.get_value('autocomplete'),
'autocomplete_min': get_setting('search.autocomplete_min'),
'http_method': req_pref.get_value('method'),
'method': req_pref.get_value('method'),
'infinite_scroll': req_pref.get_value('infinite_scroll'),
'translations': get_translations(),
'search_on_category_select': req_pref.get_value('search_on_category_select'),
'hotkeys': req_pref.get_value('hotkeys'),
'url_formatting': req_pref.get_value('url_formatting'),
'theme_static_path': custom_url_for('static', filename='themes/simple'),
'results_on_new_tab': req_pref.get_value('results_on_new_tab'),
'favicon_resolver': req_pref.get_value('favicon_resolver'),
'advanced_search': req_pref.get_value('advanced_search'),
'query_in_title': req_pref.get_value('query_in_title'),
'safesearch': str(req_pref.get_value('safesearch')),
'theme': req_pref.get_value('theme'),
'doi_resolver': get_doi_resolver(req_pref),
}
def render(template_name: str, **kwargs):
# values from the preferences
# pylint: disable=too-many-statements
client_settings = get_client_settings()
kwargs['client_settings'] = str(
base64.b64encode(
bytes(
json.dumps(get_client_settings()),
json.dumps(client_settings),
encoding='utf-8',
)
),
encoding='utf-8',
)
kwargs['preferences'] = request.preferences
kwargs.update(client_settings)
# values from the HTTP requests
kwargs['endpoint'] = 'results' if 'q' in kwargs else request.endpoint
@@ -387,20 +398,6 @@ def render(template_name: str, **kwargs):
kwargs['errors'] = request.errors
kwargs['link_token'] = link_token.get_token()
# values from the preferences
kwargs['preferences'] = request.preferences
kwargs['autocomplete'] = request.preferences.get_value('autocomplete')
kwargs['favicon_resolver'] = request.preferences.get_value('favicon_resolver')
kwargs['infinite_scroll'] = request.preferences.get_value('infinite_scroll')
kwargs['search_on_category_select'] = request.preferences.get_value('search_on_category_select')
kwargs['hotkeys'] = request.preferences.get_value('hotkeys')
kwargs['url_formatting'] = request.preferences.get_value('url_formatting')
kwargs['results_on_new_tab'] = request.preferences.get_value('results_on_new_tab')
kwargs['advanced_search'] = request.preferences.get_value('advanced_search')
kwargs['query_in_title'] = request.preferences.get_value('query_in_title')
kwargs['safesearch'] = str(request.preferences.get_value('safesearch'))
kwargs['theme'] = request.preferences.get_value('theme')
kwargs['method'] = request.preferences.get_value('method')
kwargs['categories_as_tabs'] = list(settings['categories_as_tabs'].keys())
kwargs['categories'] = get_enabled_categories(settings['categories_as_tabs'].keys())
kwargs['DEFAULT_CATEGORY'] = DEFAULT_CATEGORY
@@ -440,7 +437,6 @@ def render(template_name: str, **kwargs):
kwargs['proxify_results'] = settings['result_proxy']['proxify_results']
kwargs['cache_url'] = settings['ui']['cache_url']
kwargs['get_result_template'] = get_result_template
kwargs['doi_resolver'] = get_doi_resolver(request.preferences)
kwargs['opensearch_url'] = (
url_for('opensearch')
+ '?'