2017-10-06 21:50:59 +02:00
{% from 'oscar/macros.html' import preferences_item_header, preferences_item_header_rtl, preferences_item_footer, preferences_item_footer_rtl, checkbox_toggle, support_toggle %}
2014-09-22 22:42:29 +02:00
{% extends "oscar/base.html" %}
2014-09-26 18:26:46 +02:00
{% block title %}{{ _('preferences') }} - {% endblock %}
2014-09-22 22:42:29 +02:00
{% block content %}
2017-10-06 21:50:59 +02:00
2014-09-22 22:42:29 +02:00
< div >
< h1 > {{ _('Preferences') }}< / h1 >
< form method = "post" action = "{{ url_for('preferences') }}" id = "search_form" >
2015-04-26 20:09:28 +02:00
<!-- Nav tabs -->
< ul class = "nav nav-tabs nav-justified hide_if_nojs" role = "tablist" style = "margin-bottom:20px;" >
< li class = "active" > < a href = "#tab_general" role = "tab" data-toggle = "tab" > {{ _('General') }}< / a > < / li >
< li > < a href = "#tab_engine" role = "tab" data-toggle = "tab" > {{ _('Engines') }}< / a > < / li >
< li > < a href = "#tab_plugins" role = "tab" data-toggle = "tab" > {{ _('Plugins') }}< / a > < / li >
2016-11-19 20:53:51 +01:00
{% if answerers %}< li > < a href = "#tab_answerers" role = "tab" data-toggle = "tab" > {{ _('Answerers') }}< / a > < / li > {% endif %}
2015-02-18 18:31:01 +01:00
< li > < a href = "#tab_cookies" role = "tab" data-toggle = "tab" > {{ _('Cookies') }}< / a > < / li >
2015-04-26 20:09:28 +02:00
< / ul >
2014-09-22 22:42:29 +02:00
2015-04-26 20:09:28 +02:00
<!-- Tab panes -->
< noscript >
< h3 > {{ _('General') }}< / h3 >
< / noscript >
< div class = "tab-content" >
< div class = "tab-pane active" id = "tab_general" >
< fieldset >
< div class = "container-fluid" >
< div class = "row form-group" >
{% if rtl %}
< div class = "col-sm-11 col-md-10" >
{% include 'oscar/categories.html' %}
< / div >
< label class = "col-sm-3 col-md-2" > {{ _('Default categories') }}< / label >
{% else %}
< label class = "col-sm-3 col-md-2" > {{ _('Default categories') }}< / label >
2016-07-17 18:43:47 +02:00
< div class = "col-sm-11 col-md-10 search-categories" >
2015-04-26 20:09:28 +02:00
{% include 'oscar/categories.html' %}
< / div >
{% endif %}
2014-09-22 22:42:29 +02:00
< / div >
2015-04-26 20:09:28 +02:00
{% set language_label = _('Search language') %}
{% set language_info = _('What language do you prefer for search?') %}
{{ preferences_item_header(language_info, language_label, rtl) }}
2016-08-06 06:34:56 +02:00
{% include 'oscar/languages.html' %}
2015-04-26 20:09:28 +02:00
{{ preferences_item_footer(language_info, language_label, rtl) }}
2015-01-16 16:58:44 +01:00
2015-04-26 20:09:28 +02:00
{% set locale_label = _('Interface language') %}
{% set locale_info = _('Change the language of the layout') %}
{{ preferences_item_header(locale_info, locale_label, rtl) }}
< select class = "form-control" name = 'locale' >
{% for locale_id,locale_name in locales.items() | sort %}
< option value = "{{ locale_id }}" { % if locale_id = = current_locale % } selected = "selected" { % endif % } > {{ locale_name }}< / option >
{% endfor %}
< / select >
{{ preferences_item_footer(locale_info, locale_label, rtl) }}
2015-02-10 15:23:56 +01:00
2015-04-26 20:09:28 +02:00
{% set autocomplete_label = _('Autocomplete') %}
{% set autocomplete_info = _('Find stuff as you type') %}
{{ preferences_item_header(autocomplete_info, autocomplete_label, rtl) }}
< select class = "form-control" name = "autocomplete" >
< option value = "" > - < / option >
{% for backend in autocomplete_backends %}
< option value = "{{ backend }}" { % if backend = = autocomplete % } selected = "selected" { % endif % } > {{ backend }}< / option >
{% endfor %}
< / select >
{{ preferences_item_footer(autocomplete_info, autocomplete_label, rtl) }}
2015-02-10 15:23:56 +01:00
2015-04-26 20:09:28 +02:00
{% set image_proxy_label = _('Image proxy') %}
{% set image_proxy_info = _('Proxying image results through searx') %}
{{ preferences_item_header(image_proxy_info, image_proxy_label, rtl) }}
< select class = "form-control" name = 'image_proxy' >
< option value = "1" { % if image_proxy % } selected = "selected" { % endif % } > {{ _('Enabled') }}< / option >
< option value = "" { % if not image_proxy % } selected = "selected" { % endif % } > {{ _('Disabled')}}< / option >
< / select >
{{ preferences_item_footer(image_proxy_info, image_proxy_label, rtl) }}
2015-02-10 15:23:56 +01:00
2015-04-26 20:09:28 +02:00
{% set method_label = _('Method') %}
{% set method_info = _('Change how forms are submited, < a href = "http://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods" rel = "external" > learn more about request methods< / a > ') %}
{{ preferences_item_header(method_info, method_label, rtl) }}
< select class = "form-control" name = 'method' >
< option value = "POST" { % if method = = ' POST ' % } selected = "selected" { % endif % } > POST< / option >
< option value = "GET" { % if method = = ' GET ' % } selected = "selected" { % endif % } > GET< / option >
< / select >
{{ preferences_item_footer(method_info, method_label, rtl) }}
2015-02-10 15:23:56 +01:00
2015-04-26 20:09:28 +02:00
{% set safesearch_label = _('SafeSearch') %}
{% set safesearch_info = _('Filter content') %}
{{ preferences_item_header(safesearch_info, safesearch_label, rtl) }}
< select class = "form-control" name = 'safesearch' >
< option value = "2" { % if safesearch = = ' 2 ' % } selected = "selected" { % endif % } > {{ _('Strict') }}< / option >
< option value = "1" { % if safesearch = = ' 1 ' % } selected = "selected" { % endif % } > {{ _('Moderate') }}< / option >
< option value = "0" { % if safesearch = = ' 0 ' % } selected = "selected" { % endif % } > {{ _('None') }}< / option >
< / select >
{{ preferences_item_footer(safesearch_info, safesearch_label, rtl) }}
2015-02-10 15:23:56 +01:00
2015-04-26 20:09:28 +02:00
{% set theme_label = _('Themes') %}
{% set theme_info = _('Change searx layout') %}
{{ preferences_item_header(theme_info, theme_label, rtl) }}
< select class = "form-control" name = "theme" >
{% for name in themes %}
< option value = "{{ name }}" { % if name = = theme % } selected = "selected" { % endif % } > {{ name }}< / option >
{% endfor %}
< / select >
{{ preferences_item_footer(theme_info, theme_label, rtl) }}
2016-06-26 01:57:43 +02:00
{{ preferences_item_header(_('Choose style for this theme'), _('Style'), rtl) }}
< select class = "form-control" name = 'oscar-style' >
< option value = "logicodev" > Logicodev< / option >
< option value = "pointhi" { % if cookies [ ' oscar-style ' ] = = ' pointhi ' % } selected = "selected" { % endif % } > Pointhi< / option >
< / select >
{{ preferences_item_footer(_('Choose style for this theme'), _('Style'), rtl) }}
2016-09-04 15:56:46 +02:00
{% set label = _('Results on new tabs') %}
{% set info = _('Open result links on new browser tabs') %}
{{ preferences_item_header(info, label, rtl) }}
< select class = "form-control" name = 'results_on_new_tab' >
< option value = "1" { % if results_on_new_tab % } selected = "selected" { % endif % } > {{ _('On') }}< / option >
< option value = "0" { % if not results_on_new_tab % } selected = "selected" { % endif % } > {{ _('Off')}}< / option >
< / select >
{{ preferences_item_footer(info, label, rtl) }}
2015-04-26 20:09:28 +02:00
< / div >
< / fieldset >
2014-09-22 22:42:29 +02:00
< / div >
2015-04-26 20:09:28 +02:00
< div class = "tab-pane active_if_nojs" id = "tab_engine" >
2015-01-16 16:58:44 +01:00
2015-04-26 20:09:28 +02:00
<!-- Nav tabs -->
< ul class = "nav nav-tabs nav-justified hide_if_nojs" role = "tablist" style = "margin-bottom:20px;" >
2015-06-05 08:48:47 +02:00
{% for categ in all_categories %}
2015-04-26 20:09:28 +02:00
< li { % if loop . first % } class = "active" { % endif % } > < a href = "#tab_engine_{{ categ|replace(' ', '_') }}" role = "tab" data-toggle = "tab" > {{ _(categ) }}< / a > < / li >
{% endfor %}
< / ul >
2015-01-16 16:58:44 +01:00
2015-04-26 20:09:28 +02:00
< noscript >
< h3 > {{ _('Engines') }}< / h3 >
2014-11-03 22:18:40 +01:00
< / noscript >
2015-04-26 20:09:28 +02:00
<!-- Tab panes -->
< div class = "tab-content" >
2015-06-05 08:48:47 +02:00
{% for categ in all_categories %}
2015-04-26 20:09:28 +02:00
< noscript > < label > {{ _(categ) }}< / label >
< / noscript >
< div class = "tab-pane{% if loop.first %} active{% endif %} active_if_nojs" id = "tab_engine_{{ categ|replace(' ', '_') }}" >
< div class = "container-fluid" >
< fieldset >
2015-05-30 12:15:23 +02:00
< div class = "table-responsive" >
< table class = "table table-hover table-condensed table-striped" >
< tr >
{% if not rtl %}
< th > {{ _("Allow") }}< / th >
< th > {{ _("Engine name") }}< / th >
< th > {{ _("Shortcut") }}< / th >
2017-10-06 21:50:59 +02:00
< th > {{ _("Selected language") }}< / th >
2015-05-30 12:15:23 +02:00
< th > {{ _("SafeSearch") }}< / th >
2016-10-30 20:49:45 +01:00
< th > {{ _("Time range") }}< / th >
2015-05-30 12:15:23 +02:00
< th > {{ _("Avg. time") }}< / th >
< th > {{ _("Max time") }}< / th >
{% else %}
< th > {{ _("Max time") }}< / th >
< th > {{ _("Avg. time") }}< / th >
2017-10-06 21:50:59 +02:00
< th > {{ _("Time range") }}< / th >
2015-05-30 12:15:23 +02:00
< th > {{ _("SafeSearch") }}< / th >
2017-10-06 21:50:59 +02:00
< th > {{ _("Selected language") }}< / th >
2015-05-30 12:15:23 +02:00
< th > {{ _("Shortcut") }}< / th >
< th > {{ _("Engine name") }}< / th >
< th > {{ _("Allow") }}< / th >
{% endif %}
< / tr >
2015-04-26 20:09:28 +02:00
{% for search_engine in engines_by_category[categ] %}
{% if not search_engine.private %}
2015-05-30 12:15:23 +02:00
< tr >
2015-04-26 20:09:28 +02:00
{% if not rtl %}
2016-08-07 23:25:27 +02:00
< td class = "onoff-checkbox" >
{{ checkbox_toggle('engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_'), (search_engine.name, categ) in disabled_engines) }}
< / td >
2015-05-30 12:15:23 +02:00
< th > {{ search_engine.name }}< / th >
2017-02-12 15:06:01 +01:00
< td class = "name" > {{ shortcuts[search_engine.name] }}< / td >
2017-10-06 21:50:59 +02:00
< td > {{ support_toggle(current_language == 'all' or current_language in search_engine.supported_languages or current_language.split('-')[0] in search_engine.supported_languages) }}< / td >
< td > {{ support_toggle(search_engine.safesearch==True) }}< / td >
< td > {{ support_toggle(search_engine.time_range_support==True) }}< / td >
< td class = "{{ 'danger' if stats[search_engine.name]['warn_time'] else '' }}" > {{ 'N/A' if stats[search_engine.name].time==None else stats[search_engine.name].time }}< / td >
< td class = "{{ 'danger' if stats[search_engine.name]['warn_timeout'] else '' }}" > {{ search_engine.timeout }}< / td >
{% else %}
< td class = "{{ 'danger' if stats[search_engine.name]['warn_timeout'] else '' }}" > {{ search_engine.timeout }}< / td >
< td class = "{{ 'danger' if stats[search_engine.name]['warn_time'] else '' }}" > {{ 'N/A' if stats[search_engine.name].time==None else stats[search_engine.name].time }}< / td >
< td > {{ support_toggle(search_engine.time_range_support==True) }}< / td >
< td > {{ support_toggle(search_engine.safesearch==True) }}< / td >
< td > {{ support_toggle(current_language == 'all' or current_language in search_engine.supported_languages or current_language.split('-')[0] in search_engine.supported_languages) }}< / td >
< td > {{ shortcuts[search_engine.name] }}< / td >
2015-05-30 12:15:23 +02:00
< th > {{ search_engine.name }}< / th >
2016-08-07 23:25:27 +02:00
< td class = "onoff-checkbox" >
{{ checkbox_toggle('engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_'), (search_engine.name, categ) in disabled_engines) }}
< / td >
2015-04-26 20:09:28 +02:00
{% endif %}
2015-05-30 12:15:23 +02:00
< / tr >
2015-04-26 20:09:28 +02:00
{% endif %}
{% endfor %}
2015-05-30 12:15:23 +02:00
< / table >
< / div >
2015-04-26 20:09:28 +02:00
< / fieldset >
< / div >
2014-09-26 21:43:12 +02:00
< / div >
2015-04-26 20:09:28 +02:00
{% endfor %}
2014-09-22 22:42:29 +02:00
< / div >
2014-09-26 21:43:12 +02:00
< / div >
2015-04-26 20:09:28 +02:00
< div class = "tab-pane active_if_nojs" id = "tab_plugins" >
< noscript >
< h3 > {{ _('Plugins') }}< / h3 >
< / noscript >
< fieldset >
2015-04-26 20:14:40 +02:00
< div class = "container-fluid" >
{% for plugin in plugins %}
< div class = "panel panel-default" >
< div class = "panel-heading" >
2016-03-02 17:16:46 +01:00
< h3 class = "panel-title" > {{ _(plugin.name) }}< / h3 >
2015-04-26 20:14:40 +02:00
< / div >
< div class = "panel-body" >
2016-03-02 17:16:46 +01:00
< div class = "col-xs-6 col-sm-4 col-md-6" > {{ _(plugin.description) }}< / div >
2015-04-26 20:14:40 +02:00
< div class = "col-xs-6 col-sm-4 col-md-6" >
2016-08-07 23:25:27 +02:00
< div class = "onoff-checkbox" >
2015-04-26 20:14:40 +02:00
{{ checkbox_toggle('plugin_' + plugin.id, plugin.id not in allowed_plugins) }}
2016-08-07 23:25:27 +02:00
< / div >
2015-04-26 20:14:40 +02:00
< / div >
2015-04-26 20:09:28 +02:00
< / div >
2015-03-11 18:57:36 +01:00
< / div >
2015-04-26 20:14:40 +02:00
{% endfor %}
2015-03-11 18:57:36 +01:00
< / div >
2015-04-26 20:14:40 +02:00
< / fieldset >
< / div >
2015-02-18 18:31:01 +01:00
2016-11-19 20:53:51 +01:00
{% if answerers %}
< div class = "tab-pane active_if_nojs" id = "tab_answerers" >
< noscript >
< h3 > {{ _('Answerers') }}< / h3 >
< / noscript >
< p class = "text-muted" style = "margin:20px 0;" >
{{ _('This is the list of searx\'s instant answering modules.') }}
< / p >
< table class = "table table-striped" >
< tr >
< th class = "text-muted" > {{ _('Name') }}< / th >
< th class = "text-muted" > {{ _('Keywords') }}< / th >
< th class = "text-muted" > {{ _('Description') }}< / th >
< th class = "text-muted" > {{ _('Examples') }}< / th >
< / tr >
{% for answerer in answerers %}
< tr >
< td class = "text-muted" > {{ answerer.info.name }}< / td >
< td class = "text-muted" > {{ answerer.keywords|join(', ') }}< / td >
< td class = "text-muted" > {{ answerer.info.description }}< / td >
< td class = "text-muted" > {{ answerer.info.examples|join(', ') }}< / td >
< / tr >
{% endfor %}
< / table >
< / div >
{% endif %}
2015-02-18 18:31:01 +01:00
< div class = "tab-pane active_if_nojs" id = "tab_cookies" >
< noscript >
< h3 > {{ _('Cookies') }}< / h3 >
< / noscript >
< p class = "text-muted" style = "margin:20px 0;" >
{{ _('This is the list of cookies and their values searx is storing on your computer.') }}< br / >
{{ _('With that list, you can assess searx transparency.') }}< br / >
< / p >
2015-06-05 09:07:59 +02:00
{% if cookies %}
< table class = "table table-striped" >
< tr >
< th class = "text-muted" style = "padding-right:40px;" > {{ _('Cookie name') }}< / th >
< th class = "text-muted" > {{ _('Value') }}< / th >
< / tr >
2015-02-18 18:31:01 +01:00
{% for cookie in cookies %}
2015-06-05 09:07:59 +02:00
< tr >
< td class = "text-muted" style = "padding-right:40px;" > {{ cookie }}< / td >
< td class = "text-muted" > {{ cookies[cookie] }}< / td >
< / tr >
2015-04-26 20:09:28 +02:00
{% endfor %}
2015-06-05 09:07:59 +02:00
< / table >
{% else %}
{% include 'oscar/messages/no_cookies.html' %}
{% endif %}
2015-03-11 18:57:36 +01:00
< / div >
< / div >
2015-04-26 20:09:28 +02:00
< p class = "text-muted" style = "margin:20px 0;" > {{ _('These settings are stored in your cookies, this allows us not to store this data about you.') }}
< br / >
{{ _("These cookies serve your sole convenience, we don't use these cookies to track you.") }}
< / p >
2017-07-10 12:47:25 +02:00
< p style = "margin:20px 0;" > {{ _('Search URL of the currently saved preferences') }} < small class = "text-muted" > ({{ _('Note: specifying custom settings in the search URL can reduce privacy by leaking data to the clicked result sites.') }})< / small > :< br / >
2017-10-25 23:56:37 +02:00
< input readonly = "" class = "form-control select-all-on-click cursor-text" type = "url" value = "{{ url_for('index', _external=True) }}?preferences={{ preferences_url_params|e }}{% raw %}&q=%s{% endraw %}" >
2017-07-10 12:47:25 +02:00
< / p >
2014-09-22 22:42:29 +02:00
2015-04-26 20:09:28 +02:00
< input type = "submit" class = "btn btn-primary" value = "{{ _('save') }}" / >
< a href = "{{ url_for('index') }}" > < div class = "btn btn-default" > {{ _('back') }}< / div > < / a >
< a href = "{{ url_for('clear_cookies') }}" > < div class = "btn btn-default" > {{ _('Reset defaults') }}< / div > < / a >
2015-01-16 16:58:44 +01:00
< / form >
2014-09-22 22:42:29 +02:00
< / div >
{% endblock %}