Merge pull request #1153 from return42/drop-oscar
[theme] peel out oscar from SearXNG development
7
.github/dependabot.yml
vendored
@ -8,13 +8,6 @@ updates:
|
|||||||
day: "friday"
|
day: "friday"
|
||||||
open-pull-requests-limit: 5
|
open-pull-requests-limit: 5
|
||||||
target-branch: "master"
|
target-branch: "master"
|
||||||
- package-ecosystem: "npm"
|
|
||||||
directory: "/searx/static/themes/oscar"
|
|
||||||
schedule:
|
|
||||||
interval: "weekly"
|
|
||||||
day: "friday"
|
|
||||||
open-pull-requests-limit: 5
|
|
||||||
target-branch: "master"
|
|
||||||
- package-ecosystem: "npm"
|
- package-ecosystem: "npm"
|
||||||
directory: "/searx/static/themes/simple"
|
directory: "/searx/static/themes/simple"
|
||||||
schedule:
|
schedule:
|
||||||
|
2
Makefile
@ -87,7 +87,7 @@ MANAGE += pyenv pyenv.install pyenv.uninstall
|
|||||||
MANAGE += pypi.upload pypi.upload.test
|
MANAGE += pypi.upload pypi.upload.test
|
||||||
MANAGE += format.python
|
MANAGE += format.python
|
||||||
MANAGE += test.yamllint test.pylint test.pyright test.black test.pybabel test.unit test.coverage test.robot test.rst test.clean
|
MANAGE += test.yamllint test.pylint test.pyright test.black test.pybabel test.unit test.coverage test.robot test.rst test.clean
|
||||||
MANAGE += themes.all themes.oscar themes.simple themes.simple.test pygments.less
|
MANAGE += themes.all themes.simple themes.simple.test pygments.less
|
||||||
MANAGE += static.build.commit static.build.drop static.build.restore
|
MANAGE += static.build.commit static.build.drop static.build.restore
|
||||||
MANAGE += nvm.install nvm.clean nvm.status nvm.nodejs
|
MANAGE += nvm.install nvm.clean nvm.status nvm.nodejs
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ Sample response
|
|||||||
"images",
|
"images",
|
||||||
],
|
],
|
||||||
"default_locale": "",
|
"default_locale": "",
|
||||||
"default_theme": "oscar",
|
"default_theme": "simple",
|
||||||
"engines": [
|
"engines": [
|
||||||
{
|
{
|
||||||
"categories": [
|
"categories": [
|
||||||
|
@ -18,9 +18,8 @@ All of the engines above are just commented out in the :origin:`settings.yml
|
|||||||
dependencies before using them.
|
dependencies before using them.
|
||||||
|
|
||||||
By default, the engines use the ``key-value`` template for displaying results /
|
By default, the engines use the ``key-value`` template for displaying results /
|
||||||
see :origin:`oscar <searx/templates/oscar/result_templates/key-value.html>` &
|
see :origin:`simple <searx/templates/simple/result_templates/key-value.html>`
|
||||||
:origin:`simple <searx/templates/simple/result_templates/key-value.html>`
|
theme. If you are not satisfied with the original result layout, you can use
|
||||||
themes. If you are not satisfied with the original result layout, you can use
|
|
||||||
your own template, set ``result_template`` attribute to ``{template_name}`` and
|
your own template, set ``result_template`` attribute to ``{template_name}`` and
|
||||||
place the templates at::
|
place the templates at::
|
||||||
|
|
||||||
|
@ -30,9 +30,8 @@ engines, e.g. ``database:`` ...
|
|||||||
query_str: ...
|
query_str: ...
|
||||||
|
|
||||||
By default, the engines use the ``key-value`` template for displaying results /
|
By default, the engines use the ``key-value`` template for displaying results /
|
||||||
see :origin:`oscar <searx/templates/oscar/result_templates/key-value.html>` &
|
see :origin:`simple <searx/templates/simple/result_templates/key-value.html>`
|
||||||
:origin:`simple <searx/templates/simple/result_templates/key-value.html>`
|
theme. If you are not satisfied with the original result layout, you can use
|
||||||
themes. If you are not satisfied with the original result layout, you can use
|
|
||||||
your own template, set ``result_template`` attribute to ``{template_name}`` and
|
your own template, set ``result_template`` attribute to ``{template_name}`` and
|
||||||
place the templates at::
|
place the templates at::
|
||||||
|
|
||||||
|
@ -75,8 +75,8 @@ Parameters
|
|||||||
Filter search results of engines which support safe search. See if an engine
|
Filter search results of engines which support safe search. See if an engine
|
||||||
supports safe search in the preferences page of an instance.
|
supports safe search in the preferences page of an instance.
|
||||||
|
|
||||||
``theme`` : default ``oscar``
|
``theme`` : default ``simple``
|
||||||
[ ``oscar``, ``simple`` ]
|
[ ``simple`` ]
|
||||||
|
|
||||||
Theme of instance.
|
Theme of instance.
|
||||||
|
|
||||||
@ -84,16 +84,6 @@ Parameters
|
|||||||
instance administrator deleted, created or renamed themes on their instance.
|
instance administrator deleted, created or renamed themes on their instance.
|
||||||
See the available options in the preferences page of the instance.
|
See the available options in the preferences page of the instance.
|
||||||
|
|
||||||
``oscar-style`` : default ``logicodev``
|
|
||||||
[ ``pointhi``, ``logicodev`` ]
|
|
||||||
|
|
||||||
Style of Oscar theme. It is only parsed if the theme of an instance is
|
|
||||||
``oscar``.
|
|
||||||
|
|
||||||
Please note, available styles depend on an instance. It is possible that an
|
|
||||||
instance administrator deleted, created or renamed styles on their
|
|
||||||
instance. See the available options in the preferences page of the instance.
|
|
||||||
|
|
||||||
``enabled_plugins`` : optional
|
``enabled_plugins`` : optional
|
||||||
List of enabled plugins.
|
List of enabled plugins.
|
||||||
|
|
||||||
|
16
manage
@ -115,7 +115,6 @@ test.:
|
|||||||
clean : clean intermediate test stuff
|
clean : clean intermediate test stuff
|
||||||
themes.:
|
themes.:
|
||||||
all : build all themes
|
all : build all themes
|
||||||
oscar : build oscar theme
|
|
||||||
simple : build simple theme
|
simple : build simple theme
|
||||||
pygments.:
|
pygments.:
|
||||||
less : build LESS files for pygments
|
less : build LESS files for pygments
|
||||||
@ -554,9 +553,6 @@ node.env() {
|
|||||||
nodejs.ensure
|
nodejs.ensure
|
||||||
( set -e
|
( set -e
|
||||||
|
|
||||||
build_msg INSTALL "searx/static/themes/oscar/package.json"
|
|
||||||
npm --prefix searx/static/themes/oscar install
|
|
||||||
|
|
||||||
build_msg INSTALL "searx/static/themes/simple/package.json"
|
build_msg INSTALL "searx/static/themes/simple/package.json"
|
||||||
npm --prefix searx/static/themes/simple install
|
npm --prefix searx/static/themes/simple install
|
||||||
)
|
)
|
||||||
@ -576,7 +572,6 @@ node.clean() {
|
|||||||
fi
|
fi
|
||||||
build_msg CLEAN "themes -- locally installed npm dependencies"
|
build_msg CLEAN "themes -- locally installed npm dependencies"
|
||||||
( set -e
|
( set -e
|
||||||
npm --prefix searx/static/themes/oscar run clean
|
|
||||||
npm --prefix searx/static/themes/simple run clean
|
npm --prefix searx/static/themes/simple run clean
|
||||||
)
|
)
|
||||||
dump_return $?
|
dump_return $?
|
||||||
@ -762,7 +757,6 @@ themes.all() {
|
|||||||
( set -e
|
( set -e
|
||||||
pygments.less
|
pygments.less
|
||||||
node.env
|
node.env
|
||||||
themes.oscar
|
|
||||||
themes.simple
|
themes.simple
|
||||||
)
|
)
|
||||||
dump_return $?
|
dump_return $?
|
||||||
@ -771,14 +765,14 @@ themes.all() {
|
|||||||
themes.live() {
|
themes.live() {
|
||||||
local LIVE_THEME="${LIVE_THEME:-${1}}"
|
local LIVE_THEME="${LIVE_THEME:-${1}}"
|
||||||
case "${LIVE_THEME}" in
|
case "${LIVE_THEME}" in
|
||||||
simple|oscar)
|
simple)
|
||||||
theme="searx/static/themes/${LIVE_THEME}"
|
theme="searx/static/themes/${LIVE_THEME}"
|
||||||
;;
|
;;
|
||||||
'')
|
'')
|
||||||
die_caller 42 "missing theme argument"
|
die_caller 42 "missing theme argument"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
die_caller 42 "unknown theme '${LIVE_THEME}' // [simple|oscar]'"
|
die_caller 42 "unknown theme '${LIVE_THEME}' // [simple]'"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
build_msg GRUNT "theme: $1 (live build)"
|
build_msg GRUNT "theme: $1 (live build)"
|
||||||
@ -792,12 +786,6 @@ themes.live() {
|
|||||||
| grep -E --ignore-case --color 'error[s]?[:]? |warning[s]?[:]? |'
|
| grep -E --ignore-case --color 'error[s]?[:]? |warning[s]?[:]? |'
|
||||||
}
|
}
|
||||||
|
|
||||||
themes.oscar() {
|
|
||||||
build_msg GRUNT "theme: oscar"
|
|
||||||
npm --prefix searx/static/themes/oscar run build
|
|
||||||
dump_return $?
|
|
||||||
}
|
|
||||||
|
|
||||||
themes.simple() {
|
themes.simple() {
|
||||||
( set -e
|
( set -e
|
||||||
build_msg GRUNT "theme: simple"
|
build_msg GRUNT "theme: simple"
|
||||||
|
@ -362,11 +362,6 @@ class Preferences:
|
|||||||
locked=is_locked('doi_resolver'),
|
locked=is_locked('doi_resolver'),
|
||||||
choices=DOI_RESOLVERS
|
choices=DOI_RESOLVERS
|
||||||
),
|
),
|
||||||
'oscar-style': EnumStringSetting(
|
|
||||||
settings['ui']['theme_args']['oscar_style'],
|
|
||||||
locked=is_locked('oscar-style'),
|
|
||||||
choices=['', 'logicodev', 'logicodev-dark', 'pointhi']
|
|
||||||
),
|
|
||||||
'simple_style': EnumStringSetting(
|
'simple_style': EnumStringSetting(
|
||||||
settings['ui']['theme_args']['simple_style'],
|
settings['ui']['theme_args']['simple_style'],
|
||||||
locked=is_locked('simple_style'),
|
locked=is_locked('simple_style'),
|
||||||
|
@ -86,8 +86,6 @@ ui:
|
|||||||
# Open result links in a new tab by default
|
# Open result links in a new tab by default
|
||||||
# results_on_new_tab: false
|
# results_on_new_tab: false
|
||||||
theme_args:
|
theme_args:
|
||||||
# default style of oscar
|
|
||||||
oscar_style: logicodev
|
|
||||||
# style of simple theme: auto, light, dark
|
# style of simple theme: auto, light, dark
|
||||||
simple_style: auto
|
simple_style: auto
|
||||||
|
|
||||||
|
@ -18,7 +18,6 @@ searx_dir = abspath(dirname(__file__))
|
|||||||
logger = logging.getLogger('searx')
|
logger = logging.getLogger('searx')
|
||||||
OUTPUT_FORMATS = ['html', 'csv', 'json', 'rss']
|
OUTPUT_FORMATS = ['html', 'csv', 'json', 'rss']
|
||||||
LANGUAGE_CODES = ['all'] + list(l[0] for l in languages)
|
LANGUAGE_CODES = ['all'] + list(l[0] for l in languages)
|
||||||
OSCAR_STYLE = ('logicodev', 'logicodev-dark', 'pointhi')
|
|
||||||
SIMPLE_STYLE = ('auto', 'light', 'dark')
|
SIMPLE_STYLE = ('auto', 'light', 'dark')
|
||||||
CATEGORIES_AS_TABS = {
|
CATEGORIES_AS_TABS = {
|
||||||
'general': {},
|
'general': {},
|
||||||
@ -181,7 +180,6 @@ SCHEMA = {
|
|||||||
'default_theme': SettingsValue(str, 'simple'),
|
'default_theme': SettingsValue(str, 'simple'),
|
||||||
'default_locale': SettingsValue(str, ''),
|
'default_locale': SettingsValue(str, ''),
|
||||||
'theme_args': {
|
'theme_args': {
|
||||||
'oscar_style': SettingsValue(OSCAR_STYLE, 'logicodev'),
|
|
||||||
'simple_style': SettingsValue(SIMPLE_STYLE, 'auto'),
|
'simple_style': SettingsValue(SIMPLE_STYLE, 'auto'),
|
||||||
},
|
},
|
||||||
'results_on_new_tab': SettingsValue(bool, False),
|
'results_on_new_tab': SettingsValue(bool, False),
|
||||||
|
2
searx/static/themes/oscar/.gitignore
vendored
@ -1,2 +0,0 @@
|
|||||||
/node_modules
|
|
||||||
package-lock.json
|
|
@ -1,56 +0,0 @@
|
|||||||
install dependencies
|
|
||||||
~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
run this command in the directory ``searx/static/themes/oscar``
|
|
||||||
|
|
||||||
``npm install``
|
|
||||||
|
|
||||||
compile sources
|
|
||||||
~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
run this command in the directory ``searx/static/themes/oscar``
|
|
||||||
|
|
||||||
``grunt``
|
|
||||||
|
|
||||||
or in the root directory:
|
|
||||||
|
|
||||||
``make grunt``
|
|
||||||
|
|
||||||
directory structure
|
|
||||||
~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
see:
|
|
||||||
|
|
||||||
- gruntfile.js
|
|
||||||
- package.json
|
|
||||||
|
|
||||||
*************
|
|
||||||
css directory
|
|
||||||
*************
|
|
||||||
|
|
||||||
- ``bootstrap*``: bootstrap NPM package,
|
|
||||||
- ``leaflet.*``: leaflet NPM package
|
|
||||||
- ``leaflet.min.css``: minimized version of ``leaflet.css`` (see gruntfile.js)
|
|
||||||
- ``logicodev.*``: compiled from ``src/less/logicodev``
|
|
||||||
- ``logicodev-dark*``: compiled from ``src/less/logicodev-dark``
|
|
||||||
- ``pointhi*``: compiled from ``src/less/pointhi``
|
|
||||||
- ``images``: leaflet NPM package
|
|
||||||
|
|
||||||
**************
|
|
||||||
font directory
|
|
||||||
**************
|
|
||||||
|
|
||||||
- from bootstrap NPM package
|
|
||||||
|
|
||||||
************
|
|
||||||
js directory
|
|
||||||
************
|
|
||||||
|
|
||||||
- ``searx.*``: compiled from ``src/js``
|
|
||||||
- other files are from NPM packages
|
|
||||||
|
|
||||||
*************
|
|
||||||
img directory
|
|
||||||
*************
|
|
||||||
|
|
||||||
- images for the oscar theme
|
|
587
searx/static/themes/oscar/css/bootstrap-theme.css
vendored
@ -1,587 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Bootstrap v3.4.1 (https://getbootstrap.com/)
|
|
||||||
* Copyright 2011-2019 Twitter, Inc.
|
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
||||||
*/
|
|
||||||
.btn-default,
|
|
||||||
.btn-primary,
|
|
||||||
.btn-success,
|
|
||||||
.btn-info,
|
|
||||||
.btn-warning,
|
|
||||||
.btn-danger {
|
|
||||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
|
|
||||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
|
|
||||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
|
|
||||||
}
|
|
||||||
.btn-default:active,
|
|
||||||
.btn-primary:active,
|
|
||||||
.btn-success:active,
|
|
||||||
.btn-info:active,
|
|
||||||
.btn-warning:active,
|
|
||||||
.btn-danger:active,
|
|
||||||
.btn-default.active,
|
|
||||||
.btn-primary.active,
|
|
||||||
.btn-success.active,
|
|
||||||
.btn-info.active,
|
|
||||||
.btn-warning.active,
|
|
||||||
.btn-danger.active {
|
|
||||||
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
|
||||||
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
|
||||||
}
|
|
||||||
.btn-default.disabled,
|
|
||||||
.btn-primary.disabled,
|
|
||||||
.btn-success.disabled,
|
|
||||||
.btn-info.disabled,
|
|
||||||
.btn-warning.disabled,
|
|
||||||
.btn-danger.disabled,
|
|
||||||
.btn-default[disabled],
|
|
||||||
.btn-primary[disabled],
|
|
||||||
.btn-success[disabled],
|
|
||||||
.btn-info[disabled],
|
|
||||||
.btn-warning[disabled],
|
|
||||||
.btn-danger[disabled],
|
|
||||||
fieldset[disabled] .btn-default,
|
|
||||||
fieldset[disabled] .btn-primary,
|
|
||||||
fieldset[disabled] .btn-success,
|
|
||||||
fieldset[disabled] .btn-info,
|
|
||||||
fieldset[disabled] .btn-warning,
|
|
||||||
fieldset[disabled] .btn-danger {
|
|
||||||
-webkit-box-shadow: none;
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
.btn-default .badge,
|
|
||||||
.btn-primary .badge,
|
|
||||||
.btn-success .badge,
|
|
||||||
.btn-info .badge,
|
|
||||||
.btn-warning .badge,
|
|
||||||
.btn-danger .badge {
|
|
||||||
text-shadow: none;
|
|
||||||
}
|
|
||||||
.btn:active,
|
|
||||||
.btn.active {
|
|
||||||
background-image: none;
|
|
||||||
}
|
|
||||||
.btn-default {
|
|
||||||
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #fff 0%, #e0e0e0 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#e0e0e0));
|
|
||||||
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
border-color: #dbdbdb;
|
|
||||||
text-shadow: 0 1px 0 #fff;
|
|
||||||
border-color: #ccc;
|
|
||||||
}
|
|
||||||
.btn-default:hover,
|
|
||||||
.btn-default:focus {
|
|
||||||
background-color: #e0e0e0;
|
|
||||||
background-position: 0 -15px;
|
|
||||||
}
|
|
||||||
.btn-default:active,
|
|
||||||
.btn-default.active {
|
|
||||||
background-color: #e0e0e0;
|
|
||||||
border-color: #dbdbdb;
|
|
||||||
}
|
|
||||||
.btn-default.disabled,
|
|
||||||
.btn-default[disabled],
|
|
||||||
fieldset[disabled] .btn-default,
|
|
||||||
.btn-default.disabled:hover,
|
|
||||||
.btn-default[disabled]:hover,
|
|
||||||
fieldset[disabled] .btn-default:hover,
|
|
||||||
.btn-default.disabled:focus,
|
|
||||||
.btn-default[disabled]:focus,
|
|
||||||
fieldset[disabled] .btn-default:focus,
|
|
||||||
.btn-default.disabled.focus,
|
|
||||||
.btn-default[disabled].focus,
|
|
||||||
fieldset[disabled] .btn-default.focus,
|
|
||||||
.btn-default.disabled:active,
|
|
||||||
.btn-default[disabled]:active,
|
|
||||||
fieldset[disabled] .btn-default:active,
|
|
||||||
.btn-default.disabled.active,
|
|
||||||
.btn-default[disabled].active,
|
|
||||||
fieldset[disabled] .btn-default.active {
|
|
||||||
background-color: #e0e0e0;
|
|
||||||
background-image: none;
|
|
||||||
}
|
|
||||||
.btn-primary {
|
|
||||||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));
|
|
||||||
background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
border-color: #245580;
|
|
||||||
}
|
|
||||||
.btn-primary:hover,
|
|
||||||
.btn-primary:focus {
|
|
||||||
background-color: #265a88;
|
|
||||||
background-position: 0 -15px;
|
|
||||||
}
|
|
||||||
.btn-primary:active,
|
|
||||||
.btn-primary.active {
|
|
||||||
background-color: #265a88;
|
|
||||||
border-color: #245580;
|
|
||||||
}
|
|
||||||
.btn-primary.disabled,
|
|
||||||
.btn-primary[disabled],
|
|
||||||
fieldset[disabled] .btn-primary,
|
|
||||||
.btn-primary.disabled:hover,
|
|
||||||
.btn-primary[disabled]:hover,
|
|
||||||
fieldset[disabled] .btn-primary:hover,
|
|
||||||
.btn-primary.disabled:focus,
|
|
||||||
.btn-primary[disabled]:focus,
|
|
||||||
fieldset[disabled] .btn-primary:focus,
|
|
||||||
.btn-primary.disabled.focus,
|
|
||||||
.btn-primary[disabled].focus,
|
|
||||||
fieldset[disabled] .btn-primary.focus,
|
|
||||||
.btn-primary.disabled:active,
|
|
||||||
.btn-primary[disabled]:active,
|
|
||||||
fieldset[disabled] .btn-primary:active,
|
|
||||||
.btn-primary.disabled.active,
|
|
||||||
.btn-primary[disabled].active,
|
|
||||||
fieldset[disabled] .btn-primary.active {
|
|
||||||
background-color: #265a88;
|
|
||||||
background-image: none;
|
|
||||||
}
|
|
||||||
.btn-success {
|
|
||||||
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
|
|
||||||
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
border-color: #3e8f3e;
|
|
||||||
}
|
|
||||||
.btn-success:hover,
|
|
||||||
.btn-success:focus {
|
|
||||||
background-color: #419641;
|
|
||||||
background-position: 0 -15px;
|
|
||||||
}
|
|
||||||
.btn-success:active,
|
|
||||||
.btn-success.active {
|
|
||||||
background-color: #419641;
|
|
||||||
border-color: #3e8f3e;
|
|
||||||
}
|
|
||||||
.btn-success.disabled,
|
|
||||||
.btn-success[disabled],
|
|
||||||
fieldset[disabled] .btn-success,
|
|
||||||
.btn-success.disabled:hover,
|
|
||||||
.btn-success[disabled]:hover,
|
|
||||||
fieldset[disabled] .btn-success:hover,
|
|
||||||
.btn-success.disabled:focus,
|
|
||||||
.btn-success[disabled]:focus,
|
|
||||||
fieldset[disabled] .btn-success:focus,
|
|
||||||
.btn-success.disabled.focus,
|
|
||||||
.btn-success[disabled].focus,
|
|
||||||
fieldset[disabled] .btn-success.focus,
|
|
||||||
.btn-success.disabled:active,
|
|
||||||
.btn-success[disabled]:active,
|
|
||||||
fieldset[disabled] .btn-success:active,
|
|
||||||
.btn-success.disabled.active,
|
|
||||||
.btn-success[disabled].active,
|
|
||||||
fieldset[disabled] .btn-success.active {
|
|
||||||
background-color: #419641;
|
|
||||||
background-image: none;
|
|
||||||
}
|
|
||||||
.btn-info {
|
|
||||||
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
|
|
||||||
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
border-color: #28a4c9;
|
|
||||||
}
|
|
||||||
.btn-info:hover,
|
|
||||||
.btn-info:focus {
|
|
||||||
background-color: #2aabd2;
|
|
||||||
background-position: 0 -15px;
|
|
||||||
}
|
|
||||||
.btn-info:active,
|
|
||||||
.btn-info.active {
|
|
||||||
background-color: #2aabd2;
|
|
||||||
border-color: #28a4c9;
|
|
||||||
}
|
|
||||||
.btn-info.disabled,
|
|
||||||
.btn-info[disabled],
|
|
||||||
fieldset[disabled] .btn-info,
|
|
||||||
.btn-info.disabled:hover,
|
|
||||||
.btn-info[disabled]:hover,
|
|
||||||
fieldset[disabled] .btn-info:hover,
|
|
||||||
.btn-info.disabled:focus,
|
|
||||||
.btn-info[disabled]:focus,
|
|
||||||
fieldset[disabled] .btn-info:focus,
|
|
||||||
.btn-info.disabled.focus,
|
|
||||||
.btn-info[disabled].focus,
|
|
||||||
fieldset[disabled] .btn-info.focus,
|
|
||||||
.btn-info.disabled:active,
|
|
||||||
.btn-info[disabled]:active,
|
|
||||||
fieldset[disabled] .btn-info:active,
|
|
||||||
.btn-info.disabled.active,
|
|
||||||
.btn-info[disabled].active,
|
|
||||||
fieldset[disabled] .btn-info.active {
|
|
||||||
background-color: #2aabd2;
|
|
||||||
background-image: none;
|
|
||||||
}
|
|
||||||
.btn-warning {
|
|
||||||
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
|
|
||||||
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
border-color: #e38d13;
|
|
||||||
}
|
|
||||||
.btn-warning:hover,
|
|
||||||
.btn-warning:focus {
|
|
||||||
background-color: #eb9316;
|
|
||||||
background-position: 0 -15px;
|
|
||||||
}
|
|
||||||
.btn-warning:active,
|
|
||||||
.btn-warning.active {
|
|
||||||
background-color: #eb9316;
|
|
||||||
border-color: #e38d13;
|
|
||||||
}
|
|
||||||
.btn-warning.disabled,
|
|
||||||
.btn-warning[disabled],
|
|
||||||
fieldset[disabled] .btn-warning,
|
|
||||||
.btn-warning.disabled:hover,
|
|
||||||
.btn-warning[disabled]:hover,
|
|
||||||
fieldset[disabled] .btn-warning:hover,
|
|
||||||
.btn-warning.disabled:focus,
|
|
||||||
.btn-warning[disabled]:focus,
|
|
||||||
fieldset[disabled] .btn-warning:focus,
|
|
||||||
.btn-warning.disabled.focus,
|
|
||||||
.btn-warning[disabled].focus,
|
|
||||||
fieldset[disabled] .btn-warning.focus,
|
|
||||||
.btn-warning.disabled:active,
|
|
||||||
.btn-warning[disabled]:active,
|
|
||||||
fieldset[disabled] .btn-warning:active,
|
|
||||||
.btn-warning.disabled.active,
|
|
||||||
.btn-warning[disabled].active,
|
|
||||||
fieldset[disabled] .btn-warning.active {
|
|
||||||
background-color: #eb9316;
|
|
||||||
background-image: none;
|
|
||||||
}
|
|
||||||
.btn-danger {
|
|
||||||
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
|
|
||||||
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
border-color: #b92c28;
|
|
||||||
}
|
|
||||||
.btn-danger:hover,
|
|
||||||
.btn-danger:focus {
|
|
||||||
background-color: #c12e2a;
|
|
||||||
background-position: 0 -15px;
|
|
||||||
}
|
|
||||||
.btn-danger:active,
|
|
||||||
.btn-danger.active {
|
|
||||||
background-color: #c12e2a;
|
|
||||||
border-color: #b92c28;
|
|
||||||
}
|
|
||||||
.btn-danger.disabled,
|
|
||||||
.btn-danger[disabled],
|
|
||||||
fieldset[disabled] .btn-danger,
|
|
||||||
.btn-danger.disabled:hover,
|
|
||||||
.btn-danger[disabled]:hover,
|
|
||||||
fieldset[disabled] .btn-danger:hover,
|
|
||||||
.btn-danger.disabled:focus,
|
|
||||||
.btn-danger[disabled]:focus,
|
|
||||||
fieldset[disabled] .btn-danger:focus,
|
|
||||||
.btn-danger.disabled.focus,
|
|
||||||
.btn-danger[disabled].focus,
|
|
||||||
fieldset[disabled] .btn-danger.focus,
|
|
||||||
.btn-danger.disabled:active,
|
|
||||||
.btn-danger[disabled]:active,
|
|
||||||
fieldset[disabled] .btn-danger:active,
|
|
||||||
.btn-danger.disabled.active,
|
|
||||||
.btn-danger[disabled].active,
|
|
||||||
fieldset[disabled] .btn-danger.active {
|
|
||||||
background-color: #c12e2a;
|
|
||||||
background-image: none;
|
|
||||||
}
|
|
||||||
.thumbnail,
|
|
||||||
.img-thumbnail {
|
|
||||||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
|
|
||||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
|
|
||||||
}
|
|
||||||
.dropdown-menu > li > a:hover,
|
|
||||||
.dropdown-menu > li > a:focus {
|
|
||||||
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
|
|
||||||
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
background-color: #e8e8e8;
|
|
||||||
}
|
|
||||||
.dropdown-menu > .active > a,
|
|
||||||
.dropdown-menu > .active > a:hover,
|
|
||||||
.dropdown-menu > .active > a:focus {
|
|
||||||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
|
|
||||||
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
background-color: #2e6da4;
|
|
||||||
}
|
|
||||||
.navbar-default {
|
|
||||||
background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#f8f8f8));
|
|
||||||
background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
|
||||||
border-radius: 4px;
|
|
||||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
|
|
||||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
|
|
||||||
}
|
|
||||||
.navbar-default .navbar-nav > .open > a,
|
|
||||||
.navbar-default .navbar-nav > .active > a {
|
|
||||||
background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
|
|
||||||
background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
|
|
||||||
box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
|
|
||||||
}
|
|
||||||
.navbar-brand,
|
|
||||||
.navbar-nav > li > a {
|
|
||||||
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
|
|
||||||
}
|
|
||||||
.navbar-inverse {
|
|
||||||
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #3c3c3c 0%, #222 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222));
|
|
||||||
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
|
||||||
border-radius: 4px;
|
|
||||||
}
|
|
||||||
.navbar-inverse .navbar-nav > .open > a,
|
|
||||||
.navbar-inverse .navbar-nav > .active > a {
|
|
||||||
background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
|
|
||||||
background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
|
|
||||||
box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
|
|
||||||
}
|
|
||||||
.navbar-inverse .navbar-brand,
|
|
||||||
.navbar-inverse .navbar-nav > li > a {
|
|
||||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
|
|
||||||
}
|
|
||||||
.navbar-static-top,
|
|
||||||
.navbar-fixed-top,
|
|
||||||
.navbar-fixed-bottom {
|
|
||||||
border-radius: 0;
|
|
||||||
}
|
|
||||||
@media (max-width: 767px) {
|
|
||||||
.navbar .navbar-nav .open .dropdown-menu > .active > a,
|
|
||||||
.navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
|
|
||||||
.navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
|
|
||||||
color: #fff;
|
|
||||||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
|
|
||||||
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.alert {
|
|
||||||
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
|
|
||||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
|
|
||||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
|
|
||||||
}
|
|
||||||
.alert-success {
|
|
||||||
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
|
|
||||||
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
border-color: #b2dba1;
|
|
||||||
}
|
|
||||||
.alert-info {
|
|
||||||
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
|
|
||||||
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
border-color: #9acfea;
|
|
||||||
}
|
|
||||||
.alert-warning {
|
|
||||||
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
|
|
||||||
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
border-color: #f5e79e;
|
|
||||||
}
|
|
||||||
.alert-danger {
|
|
||||||
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
|
|
||||||
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
border-color: #dca7a7;
|
|
||||||
}
|
|
||||||
.progress {
|
|
||||||
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
|
|
||||||
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
}
|
|
||||||
.progress-bar {
|
|
||||||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));
|
|
||||||
background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
}
|
|
||||||
.progress-bar-success {
|
|
||||||
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
|
|
||||||
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
}
|
|
||||||
.progress-bar-info {
|
|
||||||
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
|
|
||||||
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
}
|
|
||||||
.progress-bar-warning {
|
|
||||||
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
|
|
||||||
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
}
|
|
||||||
.progress-bar-danger {
|
|
||||||
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
|
|
||||||
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
}
|
|
||||||
.progress-bar-striped {
|
|
||||||
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
|
||||||
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
|
||||||
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
|
||||||
}
|
|
||||||
.list-group {
|
|
||||||
border-radius: 4px;
|
|
||||||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
|
|
||||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
|
|
||||||
}
|
|
||||||
.list-group-item.active,
|
|
||||||
.list-group-item.active:hover,
|
|
||||||
.list-group-item.active:focus {
|
|
||||||
text-shadow: 0 -1px 0 #286090;
|
|
||||||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));
|
|
||||||
background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
border-color: #2b669a;
|
|
||||||
}
|
|
||||||
.list-group-item.active .badge,
|
|
||||||
.list-group-item.active:hover .badge,
|
|
||||||
.list-group-item.active:focus .badge {
|
|
||||||
text-shadow: none;
|
|
||||||
}
|
|
||||||
.panel {
|
|
||||||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
|
|
||||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
|
|
||||||
}
|
|
||||||
.panel-default > .panel-heading {
|
|
||||||
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
|
|
||||||
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
}
|
|
||||||
.panel-primary > .panel-heading {
|
|
||||||
background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
|
|
||||||
background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
}
|
|
||||||
.panel-success > .panel-heading {
|
|
||||||
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
|
|
||||||
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
}
|
|
||||||
.panel-info > .panel-heading {
|
|
||||||
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
|
|
||||||
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
}
|
|
||||||
.panel-warning > .panel-heading {
|
|
||||||
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
|
|
||||||
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
}
|
|
||||||
.panel-danger > .panel-heading {
|
|
||||||
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
|
|
||||||
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
}
|
|
||||||
.well {
|
|
||||||
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
|
|
||||||
background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
|
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
|
|
||||||
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
|
|
||||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
|
|
||||||
background-repeat: repeat-x;
|
|
||||||
border-color: #dcdcdc;
|
|
||||||
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
|
|
||||||
box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
|
|
||||||
}
|
|
||||||
/*# sourceMappingURL=bootstrap-theme.css.map */
|
|
6990
searx/static/themes/oscar/css/bootstrap.css
vendored
BIN
searx/static/themes/oscar/css/bootstrap.min.css
vendored
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 696 B |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 618 B |
@ -1,657 +0,0 @@
|
|||||||
/* required styles */
|
|
||||||
|
|
||||||
.leaflet-pane,
|
|
||||||
.leaflet-tile,
|
|
||||||
.leaflet-marker-icon,
|
|
||||||
.leaflet-marker-shadow,
|
|
||||||
.leaflet-tile-container,
|
|
||||||
.leaflet-pane > svg,
|
|
||||||
.leaflet-pane > canvas,
|
|
||||||
.leaflet-zoom-box,
|
|
||||||
.leaflet-image-layer,
|
|
||||||
.leaflet-layer {
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
}
|
|
||||||
.leaflet-container {
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
.leaflet-tile,
|
|
||||||
.leaflet-marker-icon,
|
|
||||||
.leaflet-marker-shadow {
|
|
||||||
-webkit-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
user-select: none;
|
|
||||||
-webkit-user-drag: none;
|
|
||||||
}
|
|
||||||
/* Prevents IE11 from highlighting tiles in blue */
|
|
||||||
.leaflet-tile::selection {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
|
|
||||||
.leaflet-safari .leaflet-tile {
|
|
||||||
image-rendering: -webkit-optimize-contrast;
|
|
||||||
}
|
|
||||||
/* hack that prevents hw layers "stretching" when loading new tiles */
|
|
||||||
.leaflet-safari .leaflet-tile-container {
|
|
||||||
width: 1600px;
|
|
||||||
height: 1600px;
|
|
||||||
-webkit-transform-origin: 0 0;
|
|
||||||
}
|
|
||||||
.leaflet-marker-icon,
|
|
||||||
.leaflet-marker-shadow {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
|
|
||||||
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
|
|
||||||
.leaflet-container .leaflet-overlay-pane svg {
|
|
||||||
max-width: none !important;
|
|
||||||
max-height: none !important;
|
|
||||||
}
|
|
||||||
.leaflet-container .leaflet-marker-pane img,
|
|
||||||
.leaflet-container .leaflet-shadow-pane img,
|
|
||||||
.leaflet-container .leaflet-tile-pane img,
|
|
||||||
.leaflet-container img.leaflet-image-layer,
|
|
||||||
.leaflet-container .leaflet-tile {
|
|
||||||
max-width: none !important;
|
|
||||||
max-height: none !important;
|
|
||||||
width: auto;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.leaflet-container.leaflet-touch-zoom {
|
|
||||||
-ms-touch-action: pan-x pan-y;
|
|
||||||
touch-action: pan-x pan-y;
|
|
||||||
}
|
|
||||||
.leaflet-container.leaflet-touch-drag {
|
|
||||||
-ms-touch-action: pinch-zoom;
|
|
||||||
/* Fallback for FF which doesn't support pinch-zoom */
|
|
||||||
touch-action: none;
|
|
||||||
touch-action: pinch-zoom;
|
|
||||||
}
|
|
||||||
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
|
|
||||||
-ms-touch-action: none;
|
|
||||||
touch-action: none;
|
|
||||||
}
|
|
||||||
.leaflet-container {
|
|
||||||
-webkit-tap-highlight-color: transparent;
|
|
||||||
}
|
|
||||||
.leaflet-container a {
|
|
||||||
-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
|
|
||||||
}
|
|
||||||
.leaflet-tile {
|
|
||||||
filter: inherit;
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
.leaflet-tile-loaded {
|
|
||||||
visibility: inherit;
|
|
||||||
}
|
|
||||||
.leaflet-zoom-box {
|
|
||||||
width: 0;
|
|
||||||
height: 0;
|
|
||||||
-moz-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
z-index: 800;
|
|
||||||
}
|
|
||||||
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
|
|
||||||
.leaflet-overlay-pane svg {
|
|
||||||
-moz-user-select: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.leaflet-pane { z-index: 400; }
|
|
||||||
|
|
||||||
.leaflet-tile-pane { z-index: 200; }
|
|
||||||
.leaflet-overlay-pane { z-index: 400; }
|
|
||||||
.leaflet-shadow-pane { z-index: 500; }
|
|
||||||
.leaflet-marker-pane { z-index: 600; }
|
|
||||||
.leaflet-tooltip-pane { z-index: 650; }
|
|
||||||
.leaflet-popup-pane { z-index: 700; }
|
|
||||||
|
|
||||||
.leaflet-map-pane canvas { z-index: 100; }
|
|
||||||
.leaflet-map-pane svg { z-index: 200; }
|
|
||||||
|
|
||||||
.leaflet-vml-shape {
|
|
||||||
width: 1px;
|
|
||||||
height: 1px;
|
|
||||||
}
|
|
||||||
.lvml {
|
|
||||||
behavior: url(#default#VML);
|
|
||||||
display: inline-block;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* control positioning */
|
|
||||||
|
|
||||||
.leaflet-control {
|
|
||||||
position: relative;
|
|
||||||
z-index: 800;
|
|
||||||
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
|
|
||||||
pointer-events: auto;
|
|
||||||
}
|
|
||||||
.leaflet-top,
|
|
||||||
.leaflet-bottom {
|
|
||||||
position: absolute;
|
|
||||||
z-index: 1000;
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
.leaflet-top {
|
|
||||||
top: 0;
|
|
||||||
}
|
|
||||||
.leaflet-right {
|
|
||||||
right: 0;
|
|
||||||
}
|
|
||||||
.leaflet-bottom {
|
|
||||||
bottom: 0;
|
|
||||||
}
|
|
||||||
.leaflet-left {
|
|
||||||
left: 0;
|
|
||||||
}
|
|
||||||
.leaflet-control {
|
|
||||||
float: left;
|
|
||||||
clear: both;
|
|
||||||
}
|
|
||||||
.leaflet-right .leaflet-control {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
.leaflet-top .leaflet-control {
|
|
||||||
margin-top: 10px;
|
|
||||||
}
|
|
||||||
.leaflet-bottom .leaflet-control {
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}
|
|
||||||
.leaflet-left .leaflet-control {
|
|
||||||
margin-left: 10px;
|
|
||||||
}
|
|
||||||
.leaflet-right .leaflet-control {
|
|
||||||
margin-right: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* zoom and fade animations */
|
|
||||||
|
|
||||||
.leaflet-fade-anim .leaflet-popup {
|
|
||||||
opacity: 0;
|
|
||||||
-webkit-transition: opacity 0.2s linear;
|
|
||||||
-moz-transition: opacity 0.2s linear;
|
|
||||||
transition: opacity 0.2s linear;
|
|
||||||
}
|
|
||||||
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
.leaflet-zoom-animated {
|
|
||||||
-webkit-transform-origin: 0 0;
|
|
||||||
-ms-transform-origin: 0 0;
|
|
||||||
transform-origin: 0 0;
|
|
||||||
}
|
|
||||||
svg.leaflet-zoom-animated {
|
|
||||||
will-change: transform;
|
|
||||||
}
|
|
||||||
|
|
||||||
.leaflet-zoom-anim .leaflet-zoom-animated {
|
|
||||||
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
|
|
||||||
-moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
|
|
||||||
transition: transform 0.25s cubic-bezier(0,0,0.25,1);
|
|
||||||
}
|
|
||||||
.leaflet-zoom-anim .leaflet-tile,
|
|
||||||
.leaflet-pan-anim .leaflet-tile {
|
|
||||||
-webkit-transition: none;
|
|
||||||
-moz-transition: none;
|
|
||||||
transition: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.leaflet-zoom-anim .leaflet-zoom-hide {
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* cursors */
|
|
||||||
|
|
||||||
.leaflet-interactive {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.leaflet-grab {
|
|
||||||
cursor: -webkit-grab;
|
|
||||||
cursor: -moz-grab;
|
|
||||||
cursor: grab;
|
|
||||||
}
|
|
||||||
.leaflet-crosshair,
|
|
||||||
.leaflet-crosshair .leaflet-interactive {
|
|
||||||
cursor: crosshair;
|
|
||||||
}
|
|
||||||
.leaflet-popup-pane,
|
|
||||||
.leaflet-control {
|
|
||||||
cursor: auto;
|
|
||||||
}
|
|
||||||
.leaflet-dragging .leaflet-grab,
|
|
||||||
.leaflet-dragging .leaflet-grab .leaflet-interactive,
|
|
||||||
.leaflet-dragging .leaflet-marker-draggable {
|
|
||||||
cursor: move;
|
|
||||||
cursor: -webkit-grabbing;
|
|
||||||
cursor: -moz-grabbing;
|
|
||||||
cursor: grabbing;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* marker & overlays interactivity */
|
|
||||||
.leaflet-marker-icon,
|
|
||||||
.leaflet-marker-shadow,
|
|
||||||
.leaflet-image-layer,
|
|
||||||
.leaflet-pane > svg path,
|
|
||||||
.leaflet-tile-container {
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.leaflet-marker-icon.leaflet-interactive,
|
|
||||||
.leaflet-image-layer.leaflet-interactive,
|
|
||||||
.leaflet-pane > svg path.leaflet-interactive,
|
|
||||||
svg.leaflet-image-layer.leaflet-interactive path {
|
|
||||||
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
|
|
||||||
pointer-events: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* visual tweaks */
|
|
||||||
|
|
||||||
.leaflet-container {
|
|
||||||
background: #ddd;
|
|
||||||
outline-offset: 1px;
|
|
||||||
}
|
|
||||||
.leaflet-container a {
|
|
||||||
color: #0078A8;
|
|
||||||
}
|
|
||||||
.leaflet-zoom-box {
|
|
||||||
border: 2px dotted #38f;
|
|
||||||
background: rgba(255,255,255,0.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* general typography */
|
|
||||||
.leaflet-container {
|
|
||||||
font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
|
|
||||||
font-size: 12px;
|
|
||||||
font-size: 0.75rem;
|
|
||||||
line-height: 1.5;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* general toolbar styles */
|
|
||||||
|
|
||||||
.leaflet-bar {
|
|
||||||
box-shadow: 0 1px 5px rgba(0,0,0,0.65);
|
|
||||||
border-radius: 4px;
|
|
||||||
}
|
|
||||||
.leaflet-bar a {
|
|
||||||
background-color: #fff;
|
|
||||||
border-bottom: 1px solid #ccc;
|
|
||||||
width: 26px;
|
|
||||||
height: 26px;
|
|
||||||
line-height: 26px;
|
|
||||||
display: block;
|
|
||||||
text-align: center;
|
|
||||||
text-decoration: none;
|
|
||||||
color: black;
|
|
||||||
}
|
|
||||||
.leaflet-bar a,
|
|
||||||
.leaflet-control-layers-toggle {
|
|
||||||
background-position: 50% 50%;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.leaflet-bar a:hover,
|
|
||||||
.leaflet-bar a:focus {
|
|
||||||
background-color: #f4f4f4;
|
|
||||||
}
|
|
||||||
.leaflet-bar a:first-child {
|
|
||||||
border-top-left-radius: 4px;
|
|
||||||
border-top-right-radius: 4px;
|
|
||||||
}
|
|
||||||
.leaflet-bar a:last-child {
|
|
||||||
border-bottom-left-radius: 4px;
|
|
||||||
border-bottom-right-radius: 4px;
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
.leaflet-bar a.leaflet-disabled {
|
|
||||||
cursor: default;
|
|
||||||
background-color: #f4f4f4;
|
|
||||||
color: #bbb;
|
|
||||||
}
|
|
||||||
|
|
||||||
.leaflet-touch .leaflet-bar a {
|
|
||||||
width: 30px;
|
|
||||||
height: 30px;
|
|
||||||
line-height: 30px;
|
|
||||||
}
|
|
||||||
.leaflet-touch .leaflet-bar a:first-child {
|
|
||||||
border-top-left-radius: 2px;
|
|
||||||
border-top-right-radius: 2px;
|
|
||||||
}
|
|
||||||
.leaflet-touch .leaflet-bar a:last-child {
|
|
||||||
border-bottom-left-radius: 2px;
|
|
||||||
border-bottom-right-radius: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* zoom control */
|
|
||||||
|
|
||||||
.leaflet-control-zoom-in,
|
|
||||||
.leaflet-control-zoom-out {
|
|
||||||
font: bold 18px 'Lucida Console', Monaco, monospace;
|
|
||||||
text-indent: 1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {
|
|
||||||
font-size: 22px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* layers control */
|
|
||||||
|
|
||||||
.leaflet-control-layers {
|
|
||||||
box-shadow: 0 1px 5px rgba(0,0,0,0.4);
|
|
||||||
background: #fff;
|
|
||||||
border-radius: 5px;
|
|
||||||
}
|
|
||||||
.leaflet-control-layers-toggle {
|
|
||||||
background-image: url(images/layers.png);
|
|
||||||
width: 36px;
|
|
||||||
height: 36px;
|
|
||||||
}
|
|
||||||
.leaflet-retina .leaflet-control-layers-toggle {
|
|
||||||
background-image: url(images/layers-2x.png);
|
|
||||||
background-size: 26px 26px;
|
|
||||||
}
|
|
||||||
.leaflet-touch .leaflet-control-layers-toggle {
|
|
||||||
width: 44px;
|
|
||||||
height: 44px;
|
|
||||||
}
|
|
||||||
.leaflet-control-layers .leaflet-control-layers-list,
|
|
||||||
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.leaflet-control-layers-expanded .leaflet-control-layers-list {
|
|
||||||
display: block;
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.leaflet-control-layers-expanded {
|
|
||||||
padding: 6px 10px 6px 6px;
|
|
||||||
color: #333;
|
|
||||||
background: #fff;
|
|
||||||
}
|
|
||||||
.leaflet-control-layers-scrollbar {
|
|
||||||
overflow-y: scroll;
|
|
||||||
overflow-x: hidden;
|
|
||||||
padding-right: 5px;
|
|
||||||
}
|
|
||||||
.leaflet-control-layers-selector {
|
|
||||||
margin-top: 2px;
|
|
||||||
position: relative;
|
|
||||||
top: 1px;
|
|
||||||
}
|
|
||||||
.leaflet-control-layers label {
|
|
||||||
display: block;
|
|
||||||
font-size: 13px;
|
|
||||||
font-size: 1.08333em;
|
|
||||||
}
|
|
||||||
.leaflet-control-layers-separator {
|
|
||||||
height: 0;
|
|
||||||
border-top: 1px solid #ddd;
|
|
||||||
margin: 5px -10px 5px -6px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Default icon URLs */
|
|
||||||
.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */
|
|
||||||
background-image: url(images/marker-icon.png);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* attribution and scale controls */
|
|
||||||
|
|
||||||
.leaflet-container .leaflet-control-attribution {
|
|
||||||
background: #fff;
|
|
||||||
background: rgba(255, 255, 255, 0.8);
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
.leaflet-control-attribution,
|
|
||||||
.leaflet-control-scale-line {
|
|
||||||
padding: 0 5px;
|
|
||||||
color: #333;
|
|
||||||
line-height: 1.4;
|
|
||||||
}
|
|
||||||
.leaflet-control-attribution a {
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
.leaflet-control-attribution a:hover,
|
|
||||||
.leaflet-control-attribution a:focus {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
.leaflet-control-attribution svg {
|
|
||||||
display: inline !important;
|
|
||||||
}
|
|
||||||
.leaflet-left .leaflet-control-scale {
|
|
||||||
margin-left: 5px;
|
|
||||||
}
|
|
||||||
.leaflet-bottom .leaflet-control-scale {
|
|
||||||
margin-bottom: 5px;
|
|
||||||
}
|
|
||||||
.leaflet-control-scale-line {
|
|
||||||
border: 2px solid #777;
|
|
||||||
border-top: none;
|
|
||||||
line-height: 1.1;
|
|
||||||
padding: 2px 5px 1px;
|
|
||||||
white-space: nowrap;
|
|
||||||
overflow: hidden;
|
|
||||||
-moz-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
|
|
||||||
background: #fff;
|
|
||||||
background: rgba(255, 255, 255, 0.5);
|
|
||||||
}
|
|
||||||
.leaflet-control-scale-line:not(:first-child) {
|
|
||||||
border-top: 2px solid #777;
|
|
||||||
border-bottom: none;
|
|
||||||
margin-top: -2px;
|
|
||||||
}
|
|
||||||
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
|
|
||||||
border-bottom: 2px solid #777;
|
|
||||||
}
|
|
||||||
|
|
||||||
.leaflet-touch .leaflet-control-attribution,
|
|
||||||
.leaflet-touch .leaflet-control-layers,
|
|
||||||
.leaflet-touch .leaflet-bar {
|
|
||||||
box-shadow: none;
|
|
||||||
}
|
|
||||||
.leaflet-touch .leaflet-control-layers,
|
|
||||||
.leaflet-touch .leaflet-bar {
|
|
||||||
border: 2px solid rgba(0,0,0,0.2);
|
|
||||||
background-clip: padding-box;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* popup */
|
|
||||||
|
|
||||||
.leaflet-popup {
|
|
||||||
position: absolute;
|
|
||||||
text-align: center;
|
|
||||||
margin-bottom: 20px;
|
|
||||||
}
|
|
||||||
.leaflet-popup-content-wrapper {
|
|
||||||
padding: 1px;
|
|
||||||
text-align: left;
|
|
||||||
border-radius: 12px;
|
|
||||||
}
|
|
||||||
.leaflet-popup-content {
|
|
||||||
margin: 13px 24px 13px 20px;
|
|
||||||
line-height: 1.3;
|
|
||||||
font-size: 13px;
|
|
||||||
font-size: 1.08333em;
|
|
||||||
min-height: 1px;
|
|
||||||
}
|
|
||||||
.leaflet-popup-content p {
|
|
||||||
margin: 17px 0;
|
|
||||||
margin: 1.3em 0;
|
|
||||||
}
|
|
||||||
.leaflet-popup-tip-container {
|
|
||||||
width: 40px;
|
|
||||||
height: 20px;
|
|
||||||
position: absolute;
|
|
||||||
left: 50%;
|
|
||||||
margin-top: -1px;
|
|
||||||
margin-left: -20px;
|
|
||||||
overflow: hidden;
|
|
||||||
pointer-events: none;
|
|
||||||
}
|
|
||||||
.leaflet-popup-tip {
|
|
||||||
width: 17px;
|
|
||||||
height: 17px;
|
|
||||||
padding: 1px;
|
|
||||||
|
|
||||||
margin: -10px auto 0;
|
|
||||||
pointer-events: auto;
|
|
||||||
|
|
||||||
-webkit-transform: rotate(45deg);
|
|
||||||
-moz-transform: rotate(45deg);
|
|
||||||
-ms-transform: rotate(45deg);
|
|
||||||
transform: rotate(45deg);
|
|
||||||
}
|
|
||||||
.leaflet-popup-content-wrapper,
|
|
||||||
.leaflet-popup-tip {
|
|
||||||
background: white;
|
|
||||||
color: #333;
|
|
||||||
box-shadow: 0 3px 14px rgba(0,0,0,0.4);
|
|
||||||
}
|
|
||||||
.leaflet-container a.leaflet-popup-close-button {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
border: none;
|
|
||||||
text-align: center;
|
|
||||||
width: 24px;
|
|
||||||
height: 24px;
|
|
||||||
font: 16px/24px Tahoma, Verdana, sans-serif;
|
|
||||||
color: #757575;
|
|
||||||
text-decoration: none;
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
.leaflet-container a.leaflet-popup-close-button:hover,
|
|
||||||
.leaflet-container a.leaflet-popup-close-button:focus {
|
|
||||||
color: #585858;
|
|
||||||
}
|
|
||||||
.leaflet-popup-scrolled {
|
|
||||||
overflow: auto;
|
|
||||||
border-bottom: 1px solid #ddd;
|
|
||||||
border-top: 1px solid #ddd;
|
|
||||||
}
|
|
||||||
|
|
||||||
.leaflet-oldie .leaflet-popup-content-wrapper {
|
|
||||||
-ms-zoom: 1;
|
|
||||||
}
|
|
||||||
.leaflet-oldie .leaflet-popup-tip {
|
|
||||||
width: 24px;
|
|
||||||
margin: 0 auto;
|
|
||||||
|
|
||||||
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
|
|
||||||
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
|
|
||||||
}
|
|
||||||
|
|
||||||
.leaflet-oldie .leaflet-control-zoom,
|
|
||||||
.leaflet-oldie .leaflet-control-layers,
|
|
||||||
.leaflet-oldie .leaflet-popup-content-wrapper,
|
|
||||||
.leaflet-oldie .leaflet-popup-tip {
|
|
||||||
border: 1px solid #999;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* div icon */
|
|
||||||
|
|
||||||
.leaflet-div-icon {
|
|
||||||
background: #fff;
|
|
||||||
border: 1px solid #666;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Tooltip */
|
|
||||||
/* Base styles for the element that has a tooltip */
|
|
||||||
.leaflet-tooltip {
|
|
||||||
position: absolute;
|
|
||||||
padding: 6px;
|
|
||||||
background-color: #fff;
|
|
||||||
border: 1px solid #fff;
|
|
||||||
border-radius: 3px;
|
|
||||||
color: #222;
|
|
||||||
white-space: nowrap;
|
|
||||||
-webkit-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
user-select: none;
|
|
||||||
pointer-events: none;
|
|
||||||
box-shadow: 0 1px 3px rgba(0,0,0,0.4);
|
|
||||||
}
|
|
||||||
.leaflet-tooltip.leaflet-interactive {
|
|
||||||
cursor: pointer;
|
|
||||||
pointer-events: auto;
|
|
||||||
}
|
|
||||||
.leaflet-tooltip-top:before,
|
|
||||||
.leaflet-tooltip-bottom:before,
|
|
||||||
.leaflet-tooltip-left:before,
|
|
||||||
.leaflet-tooltip-right:before {
|
|
||||||
position: absolute;
|
|
||||||
pointer-events: none;
|
|
||||||
border: 6px solid transparent;
|
|
||||||
background: transparent;
|
|
||||||
content: "";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Directions */
|
|
||||||
|
|
||||||
.leaflet-tooltip-bottom {
|
|
||||||
margin-top: 6px;
|
|
||||||
}
|
|
||||||
.leaflet-tooltip-top {
|
|
||||||
margin-top: -6px;
|
|
||||||
}
|
|
||||||
.leaflet-tooltip-bottom:before,
|
|
||||||
.leaflet-tooltip-top:before {
|
|
||||||
left: 50%;
|
|
||||||
margin-left: -6px;
|
|
||||||
}
|
|
||||||
.leaflet-tooltip-top:before {
|
|
||||||
bottom: 0;
|
|
||||||
margin-bottom: -12px;
|
|
||||||
border-top-color: #fff;
|
|
||||||
}
|
|
||||||
.leaflet-tooltip-bottom:before {
|
|
||||||
top: 0;
|
|
||||||
margin-top: -12px;
|
|
||||||
margin-left: -6px;
|
|
||||||
border-bottom-color: #fff;
|
|
||||||
}
|
|
||||||
.leaflet-tooltip-left {
|
|
||||||
margin-left: -6px;
|
|
||||||
}
|
|
||||||
.leaflet-tooltip-right {
|
|
||||||
margin-left: 6px;
|
|
||||||
}
|
|
||||||
.leaflet-tooltip-left:before,
|
|
||||||
.leaflet-tooltip-right:before {
|
|
||||||
top: 50%;
|
|
||||||
margin-top: -6px;
|
|
||||||
}
|
|
||||||
.leaflet-tooltip-left:before {
|
|
||||||
right: 0;
|
|
||||||
margin-right: -12px;
|
|
||||||
border-left-color: #fff;
|
|
||||||
}
|
|
||||||
.leaflet-tooltip-right:before {
|
|
||||||
left: 0;
|
|
||||||
margin-left: -12px;
|
|
||||||
border-right-color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Printing */
|
|
||||||
|
|
||||||
@media print {
|
|
||||||
/* Prevent printers from removing background-images of controls. */
|
|
||||||
.leaflet-control {
|
|
||||||
-webkit-print-color-adjust: exact;
|
|
||||||
color-adjust: exact;
|
|
||||||
}
|
|
||||||
}
|
|
BIN
searx/static/themes/oscar/css/leaflet.min.css
vendored
BIN
searx/static/themes/oscar/css/logicodev-dark.min.css
vendored
BIN
searx/static/themes/oscar/css/logicodev.min.css
vendored
BIN
searx/static/themes/oscar/css/pointhi.min.css
vendored
Before Width: | Height: | Size: 106 KiB |
@ -1,155 +0,0 @@
|
|||||||
/*jshint esversion: 6 */
|
|
||||||
module.exports = function(grunt) {
|
|
||||||
|
|
||||||
grunt.initConfig({
|
|
||||||
pkg: grunt.file.readJSON('package.json'),
|
|
||||||
copy: {
|
|
||||||
js: {
|
|
||||||
expand: true,
|
|
||||||
cwd: './node_modules',
|
|
||||||
dest: './js/',
|
|
||||||
flatten: true,
|
|
||||||
filter: 'isFile',
|
|
||||||
timestamp: true,
|
|
||||||
src: [
|
|
||||||
'./bootstrap/dist/js/bootstrap.min.js',
|
|
||||||
'./corejs-typeahead/dist/typeahead.bundle.min.js',
|
|
||||||
'./jquery/dist/jquery.min.js',
|
|
||||||
'./leaflet/dist/leaflet.js',
|
|
||||||
]
|
|
||||||
},
|
|
||||||
css: {
|
|
||||||
expand: true,
|
|
||||||
cwd: './node_modules',
|
|
||||||
dest: './css/',
|
|
||||||
flatten: true,
|
|
||||||
filter: 'isFile',
|
|
||||||
timestamp: true,
|
|
||||||
src: [
|
|
||||||
'./bootstrap/dist/css/bootstrap-theme.css',
|
|
||||||
'./bootstrap/dist/css/bootstrap-theme.min.css',
|
|
||||||
'./bootstrap/dist/css/bootstrap-theme.min.css.map',
|
|
||||||
'./leaflet/dist/leaflet.css',
|
|
||||||
]
|
|
||||||
},
|
|
||||||
fonts: {
|
|
||||||
expand: true,
|
|
||||||
cwd: './node_modules',
|
|
||||||
dest: './fonts/',
|
|
||||||
flatten: true,
|
|
||||||
filter: 'isFile',
|
|
||||||
timestamp: true,
|
|
||||||
src: [
|
|
||||||
'./bootstrap/dist/fonts/glyphicons-*.*',
|
|
||||||
]
|
|
||||||
},
|
|
||||||
leaflet_images: {
|
|
||||||
expand: true,
|
|
||||||
cwd: './node_modules',
|
|
||||||
dest: './css/images/',
|
|
||||||
flatten: true,
|
|
||||||
filter: 'isFile',
|
|
||||||
timestamp: true,
|
|
||||||
src: [
|
|
||||||
'./leaflet/dist/images/*.png',
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
concat: {
|
|
||||||
options: {
|
|
||||||
separator: ';'
|
|
||||||
},
|
|
||||||
dist: {
|
|
||||||
src: ['src/js/*.js'],
|
|
||||||
dest: 'js/searxng.js'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
uglify: {
|
|
||||||
options: {
|
|
||||||
output: {
|
|
||||||
comments: 'some'
|
|
||||||
},
|
|
||||||
sourceMap: true,
|
|
||||||
},
|
|
||||||
dist: {
|
|
||||||
files: {
|
|
||||||
'js/searxng.min.js': ['<%= concat.dist.dest %>']
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
jshint: {
|
|
||||||
files: ['gruntfile.js', 'src/js/*.js'], // files in __common__ are linted by es lint in simple theme
|
|
||||||
options: {
|
|
||||||
reporterOutput: "",
|
|
||||||
esversion: 6,
|
|
||||||
// options here to override JSHint defaults
|
|
||||||
globals: {
|
|
||||||
jQuery: true,
|
|
||||||
console: true,
|
|
||||||
module: true,
|
|
||||||
document: true,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
less: {
|
|
||||||
development: {
|
|
||||||
options: {
|
|
||||||
paths: ["src/less/pointhi", "src/less/logicodev", "src/less/logicodev-dark", "src/less/bootstrap"]
|
|
||||||
},
|
|
||||||
files: {
|
|
||||||
"css/bootstrap.css": "src/less/bootstrap/bootstrap.less",
|
|
||||||
"css/pointhi.css": "src/less/pointhi/oscar.less",
|
|
||||||
"css/logicodev.css": "src/less/logicodev/oscar.less",
|
|
||||||
"css/logicodev-dark.css": "src/less/logicodev-dark/oscar.less"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
production: {
|
|
||||||
options: {
|
|
||||||
paths: ["src/less/pointhi", "src/less/logicodev", "src/less/logicodev-dark", "src/less/bootstrap"],
|
|
||||||
plugins: [
|
|
||||||
new (require('less-plugin-clean-css'))()
|
|
||||||
],
|
|
||||||
sourceMap: true,
|
|
||||||
sourceMapURL: (name) => { const s = name.split('/'); return s[s.length - 1] + '.map';},
|
|
||||||
outputSourceFiles: false,
|
|
||||||
sourceMapRootpath: '../'
|
|
||||||
},
|
|
||||||
files: {
|
|
||||||
"css/bootstrap.min.css": "css/bootstrap.css",
|
|
||||||
"css/leaflet.min.css": "css/leaflet.css",
|
|
||||||
"css/pointhi.min.css": "src/less/pointhi/oscar.less",
|
|
||||||
"css/logicodev.min.css": "src/less/logicodev/oscar.less",
|
|
||||||
"css/logicodev-dark.min.css": "src/less/logicodev-dark/oscar.less"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
scripts: {
|
|
||||||
files: ['<%= jshint.files %>'],
|
|
||||||
tasks: ['jshint', 'concat', 'uglify']
|
|
||||||
},
|
|
||||||
oscar_styles: {
|
|
||||||
files: ['src/less/pointhi/**/*.less'],
|
|
||||||
tasks: ['less:development', 'less:production']
|
|
||||||
},
|
|
||||||
bootstrap_styles: {
|
|
||||||
files: ['less/bootstrap/**/*.less'],
|
|
||||||
tasks: ['less:bootstrap']
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
grunt.loadNpmTasks('grunt-contrib-copy');
|
|
||||||
grunt.loadNpmTasks('grunt-contrib-uglify');
|
|
||||||
grunt.loadNpmTasks('grunt-contrib-jshint');
|
|
||||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
|
||||||
grunt.loadNpmTasks('grunt-contrib-concat');
|
|
||||||
grunt.loadNpmTasks('grunt-contrib-less');
|
|
||||||
|
|
||||||
grunt.registerTask('test', ['jshint']);
|
|
||||||
|
|
||||||
grunt.registerTask('default', ['copy', 'jshint', 'concat', 'uglify', 'less']);
|
|
||||||
|
|
||||||
grunt.registerTask('styles', ['less']);
|
|
||||||
|
|
||||||
};
|
|
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 1.2 KiB |
@ -1,2 +0,0 @@
|
|||||||
Source: http://www.iconspedia.com/pack/flat-gradient-social-icons-4384/
|
|
||||||
License: Free for non commercial use.
|
|
Before Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 919 B |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 957 B |
Before Width: | Height: | Size: 3.6 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 3.8 KiB |
Before Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 587 B |
Before Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 10 KiB |
BIN
searx/static/themes/oscar/js/bootstrap.bundle.min.js
vendored
BIN
searx/static/themes/oscar/js/bootstrap.min.js
vendored
BIN
searx/static/themes/oscar/js/jquery.min.js
vendored
@ -1,594 +0,0 @@
|
|||||||
/**
|
|
||||||
* @license
|
|
||||||
* (C) Copyright Contributors to the SearXNG project.
|
|
||||||
* (C) Copyright Contributors to the searx project (2014 - 2021).
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
*/
|
|
||||||
|
|
||||||
window.searxng = (function(d) {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
//
|
|
||||||
d.getElementsByTagName("html")[0].className = "js";
|
|
||||||
|
|
||||||
// add data- properties
|
|
||||||
var script = d.currentScript || (function() {
|
|
||||||
var scripts = d.getElementsByTagName('script');
|
|
||||||
return scripts[scripts.length - 1];
|
|
||||||
})();
|
|
||||||
|
|
||||||
return {
|
|
||||||
autocompleter: script.getAttribute('data-autocompleter') === 'true',
|
|
||||||
infinite_scroll: script.getAttribute('data-infinite-scroll') === 'true',
|
|
||||||
method: script.getAttribute('data-method'),
|
|
||||||
translations: JSON.parse(script.getAttribute('data-translations'))
|
|
||||||
};
|
|
||||||
})(document);
|
|
||||||
;/**
|
|
||||||
* @license
|
|
||||||
* (C) Copyright Contributors to the SearXNG project.
|
|
||||||
* (C) Copyright Contributors to the searx project (2014 - 2021).
|
|
||||||
* (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
*/
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
|
||||||
var original_search_value = '';
|
|
||||||
if(searxng.autocompleter) {
|
|
||||||
var searchResults = new Bloodhound({
|
|
||||||
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
|
|
||||||
queryTokenizer: Bloodhound.tokenizers.whitespace,
|
|
||||||
remote: {
|
|
||||||
url: './autocompleter?q=%QUERY',
|
|
||||||
wildcard: '%QUERY'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
searchResults.initialize();
|
|
||||||
|
|
||||||
$("#q").on('keydown', function(e) {
|
|
||||||
if(e.which == 13) {
|
|
||||||
original_search_value = $('#q').val();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$('#q').typeahead({
|
|
||||||
name: 'search-results',
|
|
||||||
highlight: false,
|
|
||||||
hint: true,
|
|
||||||
displayKey: function(result) {
|
|
||||||
return result;
|
|
||||||
},
|
|
||||||
classNames: {
|
|
||||||
input: 'tt-input',
|
|
||||||
hint: 'tt-hint',
|
|
||||||
menu: 'tt-dropdown-menu',
|
|
||||||
dataset: 'tt-dataset-search-results',
|
|
||||||
},
|
|
||||||
}, {
|
|
||||||
name: 'autocomplete',
|
|
||||||
source: searchResults,
|
|
||||||
});
|
|
||||||
$('#q').bind('typeahead:select', function(ev, suggestion) {
|
|
||||||
if(original_search_value) {
|
|
||||||
$('#q').val(original_search_value);
|
|
||||||
}
|
|
||||||
$("#search_form").submit();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
;/**
|
|
||||||
* @license
|
|
||||||
* (C) Copyright Contributors to the SearXNG project.
|
|
||||||
* (C) Copyright Contributors to the searx project (2014 - 2021).
|
|
||||||
* (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
*/
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
|
||||||
/**
|
|
||||||
* focus element if class="autofocus" and id="q"
|
|
||||||
*/
|
|
||||||
$('#q.autofocus').focus();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Empty search bar when click on reset button
|
|
||||||
*/
|
|
||||||
$("#clear_search").click(function () {
|
|
||||||
document.getElementById("q").value = "";
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* select full content on click if class="select-all-on-click"
|
|
||||||
*/
|
|
||||||
$(".select-all-on-click").click(function () {
|
|
||||||
$(this).select();
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* change text during btn-collapse click if possible
|
|
||||||
*/
|
|
||||||
$('.btn-collapse').click(function() {
|
|
||||||
var btnTextCollapsed = $(this).data('btn-text-collapsed');
|
|
||||||
var btnTextNotCollapsed = $(this).data('btn-text-not-collapsed');
|
|
||||||
|
|
||||||
if(btnTextCollapsed !== '' && btnTextNotCollapsed !== '') {
|
|
||||||
if($(this).hasClass('collapsed')) {
|
|
||||||
new_html = $(this).html().replace(btnTextCollapsed, btnTextNotCollapsed);
|
|
||||||
} else {
|
|
||||||
new_html = $(this).html().replace(btnTextNotCollapsed, btnTextCollapsed);
|
|
||||||
}
|
|
||||||
$(this).html(new_html);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* change text during btn-toggle click if possible
|
|
||||||
*/
|
|
||||||
$('.btn-toggle .btn').click(function() {
|
|
||||||
var btnClass = 'btn-' + $(this).data('btn-class');
|
|
||||||
var btnLabelDefault = $(this).data('btn-label-default');
|
|
||||||
var btnLabelToggled = $(this).data('btn-label-toggled');
|
|
||||||
if(btnLabelToggled !== '') {
|
|
||||||
if($(this).hasClass('btn-default')) {
|
|
||||||
new_html = $(this).html().replace(btnLabelDefault, btnLabelToggled);
|
|
||||||
} else {
|
|
||||||
new_html = $(this).html().replace(btnLabelToggled, btnLabelDefault);
|
|
||||||
}
|
|
||||||
$(this).html(new_html);
|
|
||||||
}
|
|
||||||
$(this).toggleClass(btnClass);
|
|
||||||
$(this).toggleClass('btn-default');
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* change text during btn-toggle click if possible
|
|
||||||
*/
|
|
||||||
$('.media-loader').click(function() {
|
|
||||||
var target = $(this).data('target');
|
|
||||||
var iframe_load = $(target + ' > iframe');
|
|
||||||
var srctest = iframe_load.attr('src');
|
|
||||||
if(srctest === undefined || srctest === false){
|
|
||||||
iframe_load.attr('src', iframe_load.data('src'));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Select or deselect every categories on double clic
|
|
||||||
*/
|
|
||||||
$(".btn-sm").dblclick(function() {
|
|
||||||
var btnClass = 'btn-' + $(this).data('btn-class'); // primary
|
|
||||||
if($(this).hasClass('btn-default')) {
|
|
||||||
$(".btn-sm > input").attr('checked', 'checked');
|
|
||||||
$(".btn-sm > input").prop("checked", true);
|
|
||||||
$(".btn-sm").addClass(btnClass);
|
|
||||||
$(".btn-sm").addClass('active');
|
|
||||||
$(".btn-sm").removeClass('btn-default');
|
|
||||||
} else {
|
|
||||||
$(".btn-sm > input").attr('checked', '');
|
|
||||||
$(".btn-sm > input").removeAttr('checked');
|
|
||||||
$(".btn-sm > input").checked = false;
|
|
||||||
$(".btn-sm").removeClass(btnClass);
|
|
||||||
$(".btn-sm").removeClass('active');
|
|
||||||
$(".btn-sm").addClass('btn-default');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$(".nav-tabs").click(function(a) {
|
|
||||||
var tabs = $(a.target).parents("ul");
|
|
||||||
tabs.children().attr("aria-selected", "false");
|
|
||||||
$(a.target).parent().attr("aria-selected", "true");
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Layout images according to their sizes
|
|
||||||
*/
|
|
||||||
searxng.image_thumbnail_layout = new searxng.ImageLayout('#main_results', '#main_results .result-images', 'img.img-thumbnail', 15, 3, 200);
|
|
||||||
searxng.image_thumbnail_layout.watch();
|
|
||||||
});
|
|
||||||
;/**
|
|
||||||
*
|
|
||||||
* Google Image Layout v0.0.1
|
|
||||||
* Description, by Anh Trinh.
|
|
||||||
* Heavily modified for searx
|
|
||||||
* https://ptgamr.github.io/2014-09-12-google-image-layout/
|
|
||||||
* https://ptgamr.github.io/google-image-layout/src/google-image-layout.js
|
|
||||||
*
|
|
||||||
* @license Free to use under the MIT License.
|
|
||||||
*
|
|
||||||
* @example <caption>Example usage of searxng.ImageLayout class.</caption>
|
|
||||||
* searxng.image_thumbnail_layout = new searxng.ImageLayout(
|
|
||||||
* '#urls', // container_selector
|
|
||||||
* '#urls .result-images', // results_selector
|
|
||||||
* 'img.image_thumbnail', // img_selector
|
|
||||||
* 14, // verticalMargin
|
|
||||||
* 6, // horizontalMargin
|
|
||||||
* 200 // maxHeight
|
|
||||||
* );
|
|
||||||
* searxng.image_thumbnail_layout.watch();
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
(function (w, d) {
|
|
||||||
function ImageLayout (container_selector, results_selector, img_selector, verticalMargin, horizontalMargin, maxHeight) {
|
|
||||||
this.container_selector = container_selector;
|
|
||||||
this.results_selector = results_selector;
|
|
||||||
this.img_selector = img_selector;
|
|
||||||
this.verticalMargin = verticalMargin;
|
|
||||||
this.horizontalMargin = horizontalMargin;
|
|
||||||
this.maxHeight = maxHeight;
|
|
||||||
this.trottleCallToAlign = null;
|
|
||||||
this.alignAfterThrotteling = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the height that make all images fit the container
|
|
||||||
*
|
|
||||||
* width = w1 + w2 + w3 + ... = r1*h + r2*h + r3*h + ...
|
|
||||||
*
|
|
||||||
* @param {[type]} images the images to be calculated
|
|
||||||
* @param {[type]} width the container witdth
|
|
||||||
* @param {[type]} margin the margin between each image
|
|
||||||
*
|
|
||||||
* @return {[type]} the height
|
|
||||||
*/
|
|
||||||
ImageLayout.prototype._getHeigth = function (images, width) {
|
|
||||||
var i, img;
|
|
||||||
var r = 0;
|
|
||||||
|
|
||||||
for (i = 0; i < images.length; i++) {
|
|
||||||
img = images[i];
|
|
||||||
if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) {
|
|
||||||
r += img.naturalWidth / img.naturalHeight;
|
|
||||||
} else {
|
|
||||||
// assume that not loaded images are square
|
|
||||||
r += 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return (width - images.length * this.verticalMargin) / r; // have to round down because Firefox will automatically roundup value with number of decimals > 3
|
|
||||||
};
|
|
||||||
|
|
||||||
ImageLayout.prototype._setSize = function (images, height) {
|
|
||||||
var i, img, imgWidth;
|
|
||||||
var imagesLength = images.length, resultNode;
|
|
||||||
|
|
||||||
for (i = 0; i < imagesLength; i++) {
|
|
||||||
img = images[i];
|
|
||||||
if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) {
|
|
||||||
imgWidth = height * img.naturalWidth / img.naturalHeight;
|
|
||||||
} else {
|
|
||||||
// not loaded image : make it square as _getHeigth said it
|
|
||||||
imgWidth = height;
|
|
||||||
}
|
|
||||||
img.setAttribute('width', Math.round(imgWidth));
|
|
||||||
img.setAttribute('height', Math.round(height));
|
|
||||||
img.style.marginLeft = Math.round(this.horizontalMargin) + 'px';
|
|
||||||
img.style.marginTop = Math.round(this.horizontalMargin) + 'px';
|
|
||||||
img.style.marginRight = Math.round(this.verticalMargin - 7) + 'px'; // -4 is the negative margin of the inline element
|
|
||||||
img.style.marginBottom = Math.round(this.verticalMargin - 7) + 'px';
|
|
||||||
resultNode = img.parentNode.parentNode;
|
|
||||||
if (!resultNode.classList.contains('js')) {
|
|
||||||
resultNode.classList.add('js');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
ImageLayout.prototype._alignImgs = function (imgGroup) {
|
|
||||||
var isSearching, slice, i, h;
|
|
||||||
var containerElement = d.querySelector(this.container_selector);
|
|
||||||
var containerCompStyles = window.getComputedStyle(containerElement);
|
|
||||||
var containerPaddingLeft = parseInt(containerCompStyles.getPropertyValue('padding-left'), 10);
|
|
||||||
var containerPaddingRight = parseInt(containerCompStyles.getPropertyValue('padding-right'), 10);
|
|
||||||
var containerWidth = containerElement.clientWidth - containerPaddingLeft - containerPaddingRight;
|
|
||||||
|
|
||||||
while (imgGroup.length > 0) {
|
|
||||||
isSearching = true;
|
|
||||||
for (i = 1; i <= imgGroup.length && isSearching; i++) {
|
|
||||||
slice = imgGroup.slice(0, i);
|
|
||||||
h = this._getHeigth(slice, containerWidth);
|
|
||||||
if (h < this.maxHeight) {
|
|
||||||
this._setSize(slice, h);
|
|
||||||
// continue with the remaining images
|
|
||||||
imgGroup = imgGroup.slice(i);
|
|
||||||
isSearching = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isSearching) {
|
|
||||||
this._setSize(slice, Math.min(this.maxHeight, h));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
ImageLayout.prototype.throttleAlign = function () {
|
|
||||||
var obj = this;
|
|
||||||
if (obj.trottleCallToAlign) {
|
|
||||||
obj.alignAfterThrotteling = true;
|
|
||||||
} else {
|
|
||||||
obj.alignAfterThrotteling = false;
|
|
||||||
obj.align();
|
|
||||||
obj.trottleCallToAlign = setTimeout(function () {
|
|
||||||
if (obj.alignAfterThrotteling) {
|
|
||||||
obj.align();
|
|
||||||
}
|
|
||||||
obj.alignAfterThrotteling = false;
|
|
||||||
obj.trottleCallToAlign = null;
|
|
||||||
}, 20);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
ImageLayout.prototype.align = function () {
|
|
||||||
var i;
|
|
||||||
var results_selectorNode = d.querySelectorAll(this.results_selector);
|
|
||||||
var results_length = results_selectorNode.length;
|
|
||||||
var previous = null;
|
|
||||||
var current = null;
|
|
||||||
var imgGroup = [];
|
|
||||||
|
|
||||||
for (i = 0; i < results_length; i++) {
|
|
||||||
current = results_selectorNode[i];
|
|
||||||
if (current.previousElementSibling !== previous && imgGroup.length > 0) {
|
|
||||||
// the current image is not connected to previous one
|
|
||||||
// so the current image is the start of a new group of images.
|
|
||||||
// so call _alignImgs to align the current group
|
|
||||||
this._alignImgs(imgGroup);
|
|
||||||
// and start a new empty group of images
|
|
||||||
imgGroup = [];
|
|
||||||
}
|
|
||||||
// add the current image to the group (only the img tag)
|
|
||||||
imgGroup.push(current.querySelector(this.img_selector));
|
|
||||||
// update the previous variable
|
|
||||||
previous = current;
|
|
||||||
}
|
|
||||||
// align the remaining images
|
|
||||||
if (imgGroup.length > 0) {
|
|
||||||
this._alignImgs(imgGroup);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
ImageLayout.prototype._monitorImages = function () {
|
|
||||||
var i, img;
|
|
||||||
var objthrottleAlign = this.throttleAlign.bind(this);
|
|
||||||
var results_nodes = d.querySelectorAll(this.results_selector);
|
|
||||||
var results_length = results_nodes.length;
|
|
||||||
|
|
||||||
function img_load_error (event) {
|
|
||||||
// console.log("ERROR can't load: " + event.originalTarget.src);
|
|
||||||
event.originalTarget.src = w.searxng.static_path + w.searxng.theme.img_load_error;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < results_length; i++) {
|
|
||||||
img = results_nodes[i].querySelector(this.img_selector);
|
|
||||||
if (img !== null && img !== undefined && !img.classList.contains('aligned')) {
|
|
||||||
img.addEventListener('load', objthrottleAlign);
|
|
||||||
// https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror
|
|
||||||
img.addEventListener('error', objthrottleAlign);
|
|
||||||
img.addEventListener('timeout', objthrottleAlign);
|
|
||||||
if (w.searxng.theme.img_load_error) {
|
|
||||||
img.addEventListener('error', img_load_error, {once: true});
|
|
||||||
}
|
|
||||||
img.classList.add('aligned');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
ImageLayout.prototype.watch = function () {
|
|
||||||
var objthrottleAlign = this.throttleAlign.bind(this);
|
|
||||||
|
|
||||||
// https://developer.mozilla.org/en-US/docs/Web/API/Window/pageshow_event
|
|
||||||
w.addEventListener('pageshow', objthrottleAlign);
|
|
||||||
// https://developer.mozilla.org/en-US/docs/Web/API/FileReader/load_event
|
|
||||||
w.addEventListener('load', objthrottleAlign);
|
|
||||||
// https://developer.mozilla.org/en-US/docs/Web/API/Window/resize_event
|
|
||||||
w.addEventListener('resize', objthrottleAlign);
|
|
||||||
|
|
||||||
this._monitorImages();
|
|
||||||
|
|
||||||
var obj = this;
|
|
||||||
|
|
||||||
let observer = new MutationObserver(entries => {
|
|
||||||
let newElement = false;
|
|
||||||
for (let i = 0; i < entries.length; i++) {
|
|
||||||
if (entries[i].addedNodes.length > 0 && entries[i].addedNodes[0].classList.contains('result')) {
|
|
||||||
newElement = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (newElement) {
|
|
||||||
obj._monitorImages();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
observer.observe(d.querySelector(this.container_selector), {
|
|
||||||
childList: true,
|
|
||||||
subtree: true,
|
|
||||||
attributes: false,
|
|
||||||
characterData: false,
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
w.searxng.ImageLayout = ImageLayout;
|
|
||||||
|
|
||||||
}(window, document));
|
|
||||||
;/**
|
|
||||||
* @license
|
|
||||||
* (C) Copyright Contributors to the SearXNG project.
|
|
||||||
* (C) Copyright Contributors to the searx project (2014 - 2021).
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
*/
|
|
||||||
|
|
||||||
$(document).ready(function() {
|
|
||||||
function hasScrollbar() {
|
|
||||||
var root = document.compatMode=='BackCompat'? document.body : document.documentElement;
|
|
||||||
return root.scrollHeight>root.clientHeight;
|
|
||||||
}
|
|
||||||
|
|
||||||
function loadNextPage() {
|
|
||||||
var formData = $('#pagination form:last').serialize();
|
|
||||||
if (formData) {
|
|
||||||
$('#pagination').html('<div class="loading-spinner"></div>');
|
|
||||||
$.ajax({
|
|
||||||
type: "POST",
|
|
||||||
url: $('#search_form').prop('action'),
|
|
||||||
data: formData,
|
|
||||||
dataType: 'html',
|
|
||||||
success: function(data) {
|
|
||||||
var body = $(data);
|
|
||||||
$('#pagination').remove();
|
|
||||||
$('#main_results').append('<hr/>');
|
|
||||||
$('#main_results').append(body.find('.result'));
|
|
||||||
$('#main_results').append(body.find('#pagination'));
|
|
||||||
if(!hasScrollbar()) {
|
|
||||||
loadNextPage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (searxng.infinite_scroll) {
|
|
||||||
var win = $(window);
|
|
||||||
$("html").addClass('infinite_scroll');
|
|
||||||
if(!hasScrollbar()) {
|
|
||||||
loadNextPage();
|
|
||||||
}
|
|
||||||
win.on('scroll', function() {
|
|
||||||
if ($(document).height() - win.height() - win.scrollTop() < 150) {
|
|
||||||
loadNextPage();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
;/**
|
|
||||||
* @license
|
|
||||||
* (C) Copyright Contributors to the SearXNG project.
|
|
||||||
* (C) Copyright Contributors to the searx project (2014 - 2021).
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
*/
|
|
||||||
|
|
||||||
window.addEventListener('load', function() {
|
|
||||||
// Hide infobox toggle if shrunk size already fits all content.
|
|
||||||
$('.infobox').each(function() {
|
|
||||||
var infobox_body = $(this).find('.infobox_body');
|
|
||||||
var total_height = infobox_body.prop('scrollHeight') + infobox_body.find('img.infobox_part').height();
|
|
||||||
var max_height = infobox_body.css('max-height').replace('px', '');
|
|
||||||
if (total_height <= max_height) {
|
|
||||||
$(this).find('.infobox_toggle').hide();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
;/**
|
|
||||||
* @license
|
|
||||||
* (C) Copyright Contributors to the SearXNG project.
|
|
||||||
* (C) Copyright Contributors to the searx project (2014 - 2021).
|
|
||||||
* (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
*/
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
|
||||||
$(".searxng_init_map").on( "click", function( event ) {
|
|
||||||
var leaflet_target = $(this).data('leaflet-target');
|
|
||||||
var map_lon = $(this).data('map-lon');
|
|
||||||
var map_lat = $(this).data('map-lat');
|
|
||||||
var map_zoom = $(this).data('map-zoom');
|
|
||||||
var map_boundingbox = $(this).data('map-boundingbox');
|
|
||||||
var map_geojson = $(this).data('map-geojson');
|
|
||||||
|
|
||||||
if(map_boundingbox) {
|
|
||||||
southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);
|
|
||||||
northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);
|
|
||||||
map_bounds = L.latLngBounds(southWest, northEast);
|
|
||||||
}
|
|
||||||
|
|
||||||
// change default imagePath
|
|
||||||
L.Icon.Default.imagePath = "./static/themes/oscar/css/images/";
|
|
||||||
|
|
||||||
// init map
|
|
||||||
var map = L.map(leaflet_target);
|
|
||||||
|
|
||||||
// create the tile layer with correct attribution
|
|
||||||
var osmMapnikUrl='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
|
|
||||||
var osmMapnikAttrib='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
|
|
||||||
var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});
|
|
||||||
|
|
||||||
var osmWikimediaUrl='https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';
|
|
||||||
var osmWikimediaAttrib = 'Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
|
|
||||||
var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});
|
|
||||||
|
|
||||||
// init map view
|
|
||||||
setTimeout(function() {
|
|
||||||
if(map_bounds) {
|
|
||||||
map.fitBounds(map_bounds, {
|
|
||||||
maxZoom:17
|
|
||||||
});
|
|
||||||
} else if (map_lon && map_lat) {
|
|
||||||
if(map_zoom)
|
|
||||||
map.setView(new L.LatLng(map_lat, map_lon),map_zoom);
|
|
||||||
else
|
|
||||||
map.setView(new L.LatLng(map_lat, map_lon),8);
|
|
||||||
}
|
|
||||||
}, 0);
|
|
||||||
|
|
||||||
map.addLayer(osmMapnik);
|
|
||||||
|
|
||||||
var baseLayers = {
|
|
||||||
"OSM Mapnik": osmMapnik/*,
|
|
||||||
"OSM Wikimedia": osmWikimedia*/
|
|
||||||
};
|
|
||||||
|
|
||||||
L.control.layers(baseLayers).addTo(map);
|
|
||||||
|
|
||||||
if(map_geojson)
|
|
||||||
L.geoJson(map_geojson).addTo(map);
|
|
||||||
/*else if(map_bounds)
|
|
||||||
L.rectangle(map_bounds, {color: "#ff7800", weight: 3, fill:false}).addTo(map);*/
|
|
||||||
|
|
||||||
// this event occour only once per element
|
|
||||||
$( this ).off( event );
|
|
||||||
});
|
|
||||||
});
|
|
||||||
;/**
|
|
||||||
* @license
|
|
||||||
* (C) Copyright Contributors to the SearXNG project.
|
|
||||||
* (C) Copyright Contributors to the searx project (2014 - 2021).
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
*/
|
|
||||||
|
|
||||||
$(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>' + searxng.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();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
;/**
|
|
||||||
* @license
|
|
||||||
* (C) Copyright Contributors to the SearXNG project.
|
|
||||||
* (C) Copyright Contributors to the searx project (2014 - 2021).
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
*/
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
|
||||||
$("#allow-all-engines").click(function() {
|
|
||||||
$(".onoffswitch-checkbox").each(function() { this.checked = false;});
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#disable-all-engines").click(function() {
|
|
||||||
$(".onoffswitch-checkbox").each(function() { this.checked = true;});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
BIN
searx/static/themes/oscar/js/searxng.min.js
vendored
BIN
searx/static/themes/oscar/js/typeahead.bundle.min.js
vendored
@ -1,27 +0,0 @@
|
|||||||
{
|
|
||||||
"devDependencies": {
|
|
||||||
"grunt": "~1.4.1",
|
|
||||||
"grunt-cli": "^1.4.3",
|
|
||||||
"grunt-contrib-concat": "~2.0.0",
|
|
||||||
"grunt-contrib-copy": "^1.0.0",
|
|
||||||
"grunt-contrib-jshint": "~3.1.1",
|
|
||||||
"grunt-contrib-less": "~3.0.0",
|
|
||||||
"grunt-contrib-uglify": "~5.1.0",
|
|
||||||
"grunt-contrib-watch": "~1.1.0",
|
|
||||||
"jslint": "^0.12.1",
|
|
||||||
"less": "^4.1.1",
|
|
||||||
"less-plugin-clean-css": "^1.5.1"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"bootstrap": "^3.4.1",
|
|
||||||
"corejs-typeahead": "^1.3.1",
|
|
||||||
"jquery": "^3.6.0",
|
|
||||||
"leaflet": "^1.7.1"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"all": "npm install && grunt",
|
|
||||||
"build": "grunt",
|
|
||||||
"watch": "grunt watch",
|
|
||||||
"clean": "rm -Rf node_modules package-lock.json"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,99 +0,0 @@
|
|||||||
/*
|
|
||||||
this file is generated automatically by searxng_extra/update/update_pygments.py
|
|
||||||
using pygments version 2.12.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
.code-highlight .linenos {
|
|
||||||
-webkit-touch-callout: none;
|
|
||||||
-webkit-user-select: none;
|
|
||||||
-khtml-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
user-select: none;
|
|
||||||
cursor: default;
|
|
||||||
|
|
||||||
&::selection {
|
|
||||||
background: transparent; /* WebKit/Blink Browsers */
|
|
||||||
}
|
|
||||||
&::-moz-selection {
|
|
||||||
background: transparent; /* Gecko Browsers */
|
|
||||||
}
|
|
||||||
|
|
||||||
margin-right: 8px;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.code-highlight pre { line-height: 125%; }
|
|
||||||
.code-highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
|
||||||
.code-highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
|
||||||
.code-highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
|
||||||
.code-highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
|
||||||
.code-highlight .hll { background-color: #ffffcc }
|
|
||||||
.code-highlight { background: #282C34; }
|
|
||||||
.code-highlight .c { color: #556366; font-style: italic } /* Comment */
|
|
||||||
.code-highlight .err { border: 1px solid #ff0000 } /* Error */
|
|
||||||
.code-highlight .k { color: #BE74D5; font-weight: bold } /* Keyword */
|
|
||||||
.code-highlight .o { color: #D19A66 } /* Operator */
|
|
||||||
.code-highlight .ch { color: #556366; font-style: italic } /* Comment.Hashbang */
|
|
||||||
.code-highlight .cm { color: #556366; font-style: italic } /* Comment.Multiline */
|
|
||||||
.code-highlight .cp { color: #BC7A00; font-style: italic } /* Comment.Preproc */
|
|
||||||
.code-highlight .cpf { color: #556366; font-style: italic } /* Comment.PreprocFile */
|
|
||||||
.code-highlight .c1 { color: #556366; font-style: italic } /* Comment.Single */
|
|
||||||
.code-highlight .cs { color: #556366; font-style: italic } /* Comment.Special */
|
|
||||||
.code-highlight .gd { color: #A00000 } /* Generic.Deleted */
|
|
||||||
.code-highlight .ge { font-style: italic } /* Generic.Emph */
|
|
||||||
.code-highlight .gr { color: #FF0000 } /* Generic.Error */
|
|
||||||
.code-highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
|
||||||
.code-highlight .gi { color: #00A000 } /* Generic.Inserted */
|
|
||||||
.code-highlight .go { color: #888888 } /* Generic.Output */
|
|
||||||
.code-highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
|
|
||||||
.code-highlight .gs { font-weight: bold } /* Generic.Strong */
|
|
||||||
.code-highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
|
||||||
.code-highlight .gt { color: #0044DD } /* Generic.Traceback */
|
|
||||||
.code-highlight .kc { color: #BE74D5; font-weight: bold } /* Keyword.Constant */
|
|
||||||
.code-highlight .kd { color: #BE74D5; font-weight: bold } /* Keyword.Declaration */
|
|
||||||
.code-highlight .kn { color: #BE74D5; font-weight: bold } /* Keyword.Namespace */
|
|
||||||
.code-highlight .kp { color: #BE74D5; font-weight: bold } /* Keyword.Pseudo */
|
|
||||||
.code-highlight .kr { color: #BE74D5; font-weight: bold } /* Keyword.Reserved */
|
|
||||||
.code-highlight .kt { color: #D46C72; font-weight: bold } /* Keyword.Type */
|
|
||||||
.code-highlight .m { color: #D19A66 } /* Literal.Number */
|
|
||||||
.code-highlight .s { color: #86C372 } /* Literal.String */
|
|
||||||
.code-highlight .na { color: #7D9029 } /* Name.Attribute */
|
|
||||||
.code-highlight .nb { color: #BE74D5 } /* Name.Builtin */
|
|
||||||
.code-highlight .nc { color: #61AFEF; font-weight: bold } /* Name.Class */
|
|
||||||
.code-highlight .no { color: #D19A66 } /* Name.Constant */
|
|
||||||
.code-highlight .nd { color: #AA22FF } /* Name.Decorator */
|
|
||||||
.code-highlight .ni { color: #999999; font-weight: bold } /* Name.Entity */
|
|
||||||
.code-highlight .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
|
|
||||||
.code-highlight .nf { color: #61AFEF } /* Name.Function */
|
|
||||||
.code-highlight .nl { color: #A0A000 } /* Name.Label */
|
|
||||||
.code-highlight .nn { color: #61AFEF; font-weight: bold } /* Name.Namespace */
|
|
||||||
.code-highlight .nt { color: #BE74D5; font-weight: bold } /* Name.Tag */
|
|
||||||
.code-highlight .nv { color: #DFC06F } /* Name.Variable */
|
|
||||||
.code-highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
|
|
||||||
.code-highlight .w { color: #D7DAE0 } /* Text.Whitespace */
|
|
||||||
.code-highlight .mb { color: #D19A66 } /* Literal.Number.Bin */
|
|
||||||
.code-highlight .mf { color: #D19A66 } /* Literal.Number.Float */
|
|
||||||
.code-highlight .mh { color: #D19A66 } /* Literal.Number.Hex */
|
|
||||||
.code-highlight .mi { color: #D19A66 } /* Literal.Number.Integer */
|
|
||||||
.code-highlight .mo { color: #D19A66 } /* Literal.Number.Oct */
|
|
||||||
.code-highlight .sa { color: #86C372 } /* Literal.String.Affix */
|
|
||||||
.code-highlight .sb { color: #86C372 } /* Literal.String.Backtick */
|
|
||||||
.code-highlight .sc { color: #86C372 } /* Literal.String.Char */
|
|
||||||
.code-highlight .dl { color: #86C372 } /* Literal.String.Delimiter */
|
|
||||||
.code-highlight .sd { color: #86C372; font-style: italic } /* Literal.String.Doc */
|
|
||||||
.code-highlight .s2 { color: #86C372 } /* Literal.String.Double */
|
|
||||||
.code-highlight .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
|
|
||||||
.code-highlight .sh { color: #86C372 } /* Literal.String.Heredoc */
|
|
||||||
.code-highlight .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
|
|
||||||
.code-highlight .sx { color: #BE74D5 } /* Literal.String.Other */
|
|
||||||
.code-highlight .sr { color: #BB6688 } /* Literal.String.Regex */
|
|
||||||
.code-highlight .s1 { color: #86C372 } /* Literal.String.Single */
|
|
||||||
.code-highlight .ss { color: #DFC06F } /* Literal.String.Symbol */
|
|
||||||
.code-highlight .bp { color: #BE74D5 } /* Name.Builtin.Pseudo */
|
|
||||||
.code-highlight .fm { color: #61AFEF } /* Name.Function.Magic */
|
|
||||||
.code-highlight .vc { color: #DFC06F } /* Name.Variable.Class */
|
|
||||||
.code-highlight .vg { color: #DFC06F } /* Name.Variable.Global */
|
|
||||||
.code-highlight .vi { color: #DFC06F } /* Name.Variable.Instance */
|
|
||||||
.code-highlight .vm { color: #DFC06F } /* Name.Variable.Magic */
|
|
||||||
.code-highlight .il { color: #D19A66 } /* Literal.Number.Integer.Long */
|
|
@ -1,99 +0,0 @@
|
|||||||
/*
|
|
||||||
this file is generated automatically by searxng_extra/update/update_pygments.py
|
|
||||||
using pygments version 2.12.0
|
|
||||||
*/
|
|
||||||
|
|
||||||
.code-highlight .linenos {
|
|
||||||
-webkit-touch-callout: none;
|
|
||||||
-webkit-user-select: none;
|
|
||||||
-khtml-user-select: none;
|
|
||||||
-moz-user-select: none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
user-select: none;
|
|
||||||
cursor: default;
|
|
||||||
|
|
||||||
&::selection {
|
|
||||||
background: transparent; /* WebKit/Blink Browsers */
|
|
||||||
}
|
|
||||||
&::-moz-selection {
|
|
||||||
background: transparent; /* Gecko Browsers */
|
|
||||||
}
|
|
||||||
|
|
||||||
margin-right: 8px;
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.code-highlight pre { line-height: 125%; }
|
|
||||||
.code-highlight td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
|
||||||
.code-highlight span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
|
|
||||||
.code-highlight td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
|
||||||
.code-highlight span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
|
|
||||||
.code-highlight .hll { background-color: #ffffcc }
|
|
||||||
.code-highlight { background: #f8f8f8; }
|
|
||||||
.code-highlight .c { color: #3D7B7B; font-style: italic } /* Comment */
|
|
||||||
.code-highlight .err { border: 1px solid #FF0000 } /* Error */
|
|
||||||
.code-highlight .k { color: #008000; font-weight: bold } /* Keyword */
|
|
||||||
.code-highlight .o { color: #666666 } /* Operator */
|
|
||||||
.code-highlight .ch { color: #3D7B7B; font-style: italic } /* Comment.Hashbang */
|
|
||||||
.code-highlight .cm { color: #3D7B7B; font-style: italic } /* Comment.Multiline */
|
|
||||||
.code-highlight .cp { color: #9C6500 } /* Comment.Preproc */
|
|
||||||
.code-highlight .cpf { color: #3D7B7B; font-style: italic } /* Comment.PreprocFile */
|
|
||||||
.code-highlight .c1 { color: #3D7B7B; font-style: italic } /* Comment.Single */
|
|
||||||
.code-highlight .cs { color: #3D7B7B; font-style: italic } /* Comment.Special */
|
|
||||||
.code-highlight .gd { color: #A00000 } /* Generic.Deleted */
|
|
||||||
.code-highlight .ge { font-style: italic } /* Generic.Emph */
|
|
||||||
.code-highlight .gr { color: #E40000 } /* Generic.Error */
|
|
||||||
.code-highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */
|
|
||||||
.code-highlight .gi { color: #008400 } /* Generic.Inserted */
|
|
||||||
.code-highlight .go { color: #717171 } /* Generic.Output */
|
|
||||||
.code-highlight .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
|
|
||||||
.code-highlight .gs { font-weight: bold } /* Generic.Strong */
|
|
||||||
.code-highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
|
|
||||||
.code-highlight .gt { color: #0044DD } /* Generic.Traceback */
|
|
||||||
.code-highlight .kc { color: #008000; font-weight: bold } /* Keyword.Constant */
|
|
||||||
.code-highlight .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */
|
|
||||||
.code-highlight .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */
|
|
||||||
.code-highlight .kp { color: #008000 } /* Keyword.Pseudo */
|
|
||||||
.code-highlight .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */
|
|
||||||
.code-highlight .kt { color: #B00040 } /* Keyword.Type */
|
|
||||||
.code-highlight .m { color: #666666 } /* Literal.Number */
|
|
||||||
.code-highlight .s { color: #BA2121 } /* Literal.String */
|
|
||||||
.code-highlight .na { color: #687822 } /* Name.Attribute */
|
|
||||||
.code-highlight .nb { color: #008000 } /* Name.Builtin */
|
|
||||||
.code-highlight .nc { color: #0000FF; font-weight: bold } /* Name.Class */
|
|
||||||
.code-highlight .no { color: #880000 } /* Name.Constant */
|
|
||||||
.code-highlight .nd { color: #AA22FF } /* Name.Decorator */
|
|
||||||
.code-highlight .ni { color: #717171; font-weight: bold } /* Name.Entity */
|
|
||||||
.code-highlight .ne { color: #CB3F38; font-weight: bold } /* Name.Exception */
|
|
||||||
.code-highlight .nf { color: #0000FF } /* Name.Function */
|
|
||||||
.code-highlight .nl { color: #767600 } /* Name.Label */
|
|
||||||
.code-highlight .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
|
|
||||||
.code-highlight .nt { color: #008000; font-weight: bold } /* Name.Tag */
|
|
||||||
.code-highlight .nv { color: #19177C } /* Name.Variable */
|
|
||||||
.code-highlight .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
|
|
||||||
.code-highlight .w { color: #bbbbbb } /* Text.Whitespace */
|
|
||||||
.code-highlight .mb { color: #666666 } /* Literal.Number.Bin */
|
|
||||||
.code-highlight .mf { color: #666666 } /* Literal.Number.Float */
|
|
||||||
.code-highlight .mh { color: #666666 } /* Literal.Number.Hex */
|
|
||||||
.code-highlight .mi { color: #666666 } /* Literal.Number.Integer */
|
|
||||||
.code-highlight .mo { color: #666666 } /* Literal.Number.Oct */
|
|
||||||
.code-highlight .sa { color: #BA2121 } /* Literal.String.Affix */
|
|
||||||
.code-highlight .sb { color: #BA2121 } /* Literal.String.Backtick */
|
|
||||||
.code-highlight .sc { color: #BA2121 } /* Literal.String.Char */
|
|
||||||
.code-highlight .dl { color: #BA2121 } /* Literal.String.Delimiter */
|
|
||||||
.code-highlight .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */
|
|
||||||
.code-highlight .s2 { color: #BA2121 } /* Literal.String.Double */
|
|
||||||
.code-highlight .se { color: #AA5D1F; font-weight: bold } /* Literal.String.Escape */
|
|
||||||
.code-highlight .sh { color: #BA2121 } /* Literal.String.Heredoc */
|
|
||||||
.code-highlight .si { color: #A45A77; font-weight: bold } /* Literal.String.Interpol */
|
|
||||||
.code-highlight .sx { color: #008000 } /* Literal.String.Other */
|
|
||||||
.code-highlight .sr { color: #A45A77 } /* Literal.String.Regex */
|
|
||||||
.code-highlight .s1 { color: #BA2121 } /* Literal.String.Single */
|
|
||||||
.code-highlight .ss { color: #19177C } /* Literal.String.Symbol */
|
|
||||||
.code-highlight .bp { color: #008000 } /* Name.Builtin.Pseudo */
|
|
||||||
.code-highlight .fm { color: #0000FF } /* Name.Function.Magic */
|
|
||||||
.code-highlight .vc { color: #19177C } /* Name.Variable.Class */
|
|
||||||
.code-highlight .vg { color: #19177C } /* Name.Variable.Global */
|
|
||||||
.code-highlight .vi { color: #19177C } /* Name.Variable.Instance */
|
|
||||||
.code-highlight .vm { color: #19177C } /* Name.Variable.Magic */
|
|
||||||
.code-highlight .il { color: #666666 } /* Literal.Number.Integer.Long */
|
|
@ -1,26 +0,0 @@
|
|||||||
/**
|
|
||||||
* @license
|
|
||||||
* (C) Copyright Contributors to the SearXNG project.
|
|
||||||
* (C) Copyright Contributors to the searx project (2014 - 2021).
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
*/
|
|
||||||
|
|
||||||
window.searxng = (function(d) {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
//
|
|
||||||
d.getElementsByTagName("html")[0].className = "js";
|
|
||||||
|
|
||||||
// add data- properties
|
|
||||||
var script = d.currentScript || (function() {
|
|
||||||
var scripts = d.getElementsByTagName('script');
|
|
||||||
return scripts[scripts.length - 1];
|
|
||||||
})();
|
|
||||||
|
|
||||||
return {
|
|
||||||
autocompleter: script.getAttribute('data-autocompleter') === 'true',
|
|
||||||
infinite_scroll: script.getAttribute('data-infinite-scroll') === 'true',
|
|
||||||
method: script.getAttribute('data-method'),
|
|
||||||
translations: JSON.parse(script.getAttribute('data-translations'))
|
|
||||||
};
|
|
||||||
})(document);
|
|
@ -1,51 +0,0 @@
|
|||||||
/**
|
|
||||||
* @license
|
|
||||||
* (C) Copyright Contributors to the SearXNG project.
|
|
||||||
* (C) Copyright Contributors to the searx project (2014 - 2021).
|
|
||||||
* (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
*/
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
|
||||||
var original_search_value = '';
|
|
||||||
if(searxng.autocompleter) {
|
|
||||||
var searchResults = new Bloodhound({
|
|
||||||
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
|
|
||||||
queryTokenizer: Bloodhound.tokenizers.whitespace,
|
|
||||||
remote: {
|
|
||||||
url: './autocompleter?q=%QUERY',
|
|
||||||
wildcard: '%QUERY'
|
|
||||||
}
|
|
||||||
});
|
|
||||||
searchResults.initialize();
|
|
||||||
|
|
||||||
$("#q").on('keydown', function(e) {
|
|
||||||
if(e.which == 13) {
|
|
||||||
original_search_value = $('#q').val();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$('#q').typeahead({
|
|
||||||
name: 'search-results',
|
|
||||||
highlight: false,
|
|
||||||
hint: true,
|
|
||||||
displayKey: function(result) {
|
|
||||||
return result;
|
|
||||||
},
|
|
||||||
classNames: {
|
|
||||||
input: 'tt-input',
|
|
||||||
hint: 'tt-hint',
|
|
||||||
menu: 'tt-dropdown-menu',
|
|
||||||
dataset: 'tt-dataset-search-results',
|
|
||||||
},
|
|
||||||
}, {
|
|
||||||
name: 'autocomplete',
|
|
||||||
source: searchResults,
|
|
||||||
});
|
|
||||||
$('#q').bind('typeahead:select', function(ev, suggestion) {
|
|
||||||
if(original_search_value) {
|
|
||||||
$('#q').val(original_search_value);
|
|
||||||
}
|
|
||||||
$("#search_form").submit();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
@ -1,108 +0,0 @@
|
|||||||
/**
|
|
||||||
* @license
|
|
||||||
* (C) Copyright Contributors to the SearXNG project.
|
|
||||||
* (C) Copyright Contributors to the searx project (2014 - 2021).
|
|
||||||
* (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
*/
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
|
||||||
/**
|
|
||||||
* focus element if class="autofocus" and id="q"
|
|
||||||
*/
|
|
||||||
$('#q.autofocus').focus();
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Empty search bar when click on reset button
|
|
||||||
*/
|
|
||||||
$("#clear_search").click(function () {
|
|
||||||
document.getElementById("q").value = "";
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* select full content on click if class="select-all-on-click"
|
|
||||||
*/
|
|
||||||
$(".select-all-on-click").click(function () {
|
|
||||||
$(this).select();
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* change text during btn-collapse click if possible
|
|
||||||
*/
|
|
||||||
$('.btn-collapse').click(function() {
|
|
||||||
var btnTextCollapsed = $(this).data('btn-text-collapsed');
|
|
||||||
var btnTextNotCollapsed = $(this).data('btn-text-not-collapsed');
|
|
||||||
|
|
||||||
if(btnTextCollapsed !== '' && btnTextNotCollapsed !== '') {
|
|
||||||
if($(this).hasClass('collapsed')) {
|
|
||||||
new_html = $(this).html().replace(btnTextCollapsed, btnTextNotCollapsed);
|
|
||||||
} else {
|
|
||||||
new_html = $(this).html().replace(btnTextNotCollapsed, btnTextCollapsed);
|
|
||||||
}
|
|
||||||
$(this).html(new_html);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* change text during btn-toggle click if possible
|
|
||||||
*/
|
|
||||||
$('.btn-toggle .btn').click(function() {
|
|
||||||
var btnClass = 'btn-' + $(this).data('btn-class');
|
|
||||||
var btnLabelDefault = $(this).data('btn-label-default');
|
|
||||||
var btnLabelToggled = $(this).data('btn-label-toggled');
|
|
||||||
if(btnLabelToggled !== '') {
|
|
||||||
if($(this).hasClass('btn-default')) {
|
|
||||||
new_html = $(this).html().replace(btnLabelDefault, btnLabelToggled);
|
|
||||||
} else {
|
|
||||||
new_html = $(this).html().replace(btnLabelToggled, btnLabelDefault);
|
|
||||||
}
|
|
||||||
$(this).html(new_html);
|
|
||||||
}
|
|
||||||
$(this).toggleClass(btnClass);
|
|
||||||
$(this).toggleClass('btn-default');
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* change text during btn-toggle click if possible
|
|
||||||
*/
|
|
||||||
$('.media-loader').click(function() {
|
|
||||||
var target = $(this).data('target');
|
|
||||||
var iframe_load = $(target + ' > iframe');
|
|
||||||
var srctest = iframe_load.attr('src');
|
|
||||||
if(srctest === undefined || srctest === false){
|
|
||||||
iframe_load.attr('src', iframe_load.data('src'));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Select or deselect every categories on double clic
|
|
||||||
*/
|
|
||||||
$(".btn-sm").dblclick(function() {
|
|
||||||
var btnClass = 'btn-' + $(this).data('btn-class'); // primary
|
|
||||||
if($(this).hasClass('btn-default')) {
|
|
||||||
$(".btn-sm > input").attr('checked', 'checked');
|
|
||||||
$(".btn-sm > input").prop("checked", true);
|
|
||||||
$(".btn-sm").addClass(btnClass);
|
|
||||||
$(".btn-sm").addClass('active');
|
|
||||||
$(".btn-sm").removeClass('btn-default');
|
|
||||||
} else {
|
|
||||||
$(".btn-sm > input").attr('checked', '');
|
|
||||||
$(".btn-sm > input").removeAttr('checked');
|
|
||||||
$(".btn-sm > input").checked = false;
|
|
||||||
$(".btn-sm").removeClass(btnClass);
|
|
||||||
$(".btn-sm").removeClass('active');
|
|
||||||
$(".btn-sm").addClass('btn-default');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
$(".nav-tabs").click(function(a) {
|
|
||||||
var tabs = $(a.target).parents("ul");
|
|
||||||
tabs.children().attr("aria-selected", "false");
|
|
||||||
$(a.target).parent().attr("aria-selected", "true");
|
|
||||||
});
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Layout images according to their sizes
|
|
||||||
*/
|
|
||||||
searxng.image_thumbnail_layout = new searxng.ImageLayout('#main_results', '#main_results .result-images', 'img.img-thumbnail', 15, 3, 200);
|
|
||||||
searxng.image_thumbnail_layout.watch();
|
|
||||||
});
|
|
@ -1,224 +0,0 @@
|
|||||||
/**
|
|
||||||
*
|
|
||||||
* Google Image Layout v0.0.1
|
|
||||||
* Description, by Anh Trinh.
|
|
||||||
* Heavily modified for searx
|
|
||||||
* https://ptgamr.github.io/2014-09-12-google-image-layout/
|
|
||||||
* https://ptgamr.github.io/google-image-layout/src/google-image-layout.js
|
|
||||||
*
|
|
||||||
* @license Free to use under the MIT License.
|
|
||||||
*
|
|
||||||
* @example <caption>Example usage of searxng.ImageLayout class.</caption>
|
|
||||||
* searxng.image_thumbnail_layout = new searxng.ImageLayout(
|
|
||||||
* '#urls', // container_selector
|
|
||||||
* '#urls .result-images', // results_selector
|
|
||||||
* 'img.image_thumbnail', // img_selector
|
|
||||||
* 14, // verticalMargin
|
|
||||||
* 6, // horizontalMargin
|
|
||||||
* 200 // maxHeight
|
|
||||||
* );
|
|
||||||
* searxng.image_thumbnail_layout.watch();
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
(function (w, d) {
|
|
||||||
function ImageLayout (container_selector, results_selector, img_selector, verticalMargin, horizontalMargin, maxHeight) {
|
|
||||||
this.container_selector = container_selector;
|
|
||||||
this.results_selector = results_selector;
|
|
||||||
this.img_selector = img_selector;
|
|
||||||
this.verticalMargin = verticalMargin;
|
|
||||||
this.horizontalMargin = horizontalMargin;
|
|
||||||
this.maxHeight = maxHeight;
|
|
||||||
this.trottleCallToAlign = null;
|
|
||||||
this.alignAfterThrotteling = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the height that make all images fit the container
|
|
||||||
*
|
|
||||||
* width = w1 + w2 + w3 + ... = r1*h + r2*h + r3*h + ...
|
|
||||||
*
|
|
||||||
* @param {[type]} images the images to be calculated
|
|
||||||
* @param {[type]} width the container witdth
|
|
||||||
* @param {[type]} margin the margin between each image
|
|
||||||
*
|
|
||||||
* @return {[type]} the height
|
|
||||||
*/
|
|
||||||
ImageLayout.prototype._getHeigth = function (images, width) {
|
|
||||||
var i, img;
|
|
||||||
var r = 0;
|
|
||||||
|
|
||||||
for (i = 0; i < images.length; i++) {
|
|
||||||
img = images[i];
|
|
||||||
if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) {
|
|
||||||
r += img.naturalWidth / img.naturalHeight;
|
|
||||||
} else {
|
|
||||||
// assume that not loaded images are square
|
|
||||||
r += 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return (width - images.length * this.verticalMargin) / r; // have to round down because Firefox will automatically roundup value with number of decimals > 3
|
|
||||||
};
|
|
||||||
|
|
||||||
ImageLayout.prototype._setSize = function (images, height) {
|
|
||||||
var i, img, imgWidth;
|
|
||||||
var imagesLength = images.length, resultNode;
|
|
||||||
|
|
||||||
for (i = 0; i < imagesLength; i++) {
|
|
||||||
img = images[i];
|
|
||||||
if ((img.naturalWidth > 0) && (img.naturalHeight > 0)) {
|
|
||||||
imgWidth = height * img.naturalWidth / img.naturalHeight;
|
|
||||||
} else {
|
|
||||||
// not loaded image : make it square as _getHeigth said it
|
|
||||||
imgWidth = height;
|
|
||||||
}
|
|
||||||
img.setAttribute('width', Math.round(imgWidth));
|
|
||||||
img.setAttribute('height', Math.round(height));
|
|
||||||
img.style.marginLeft = Math.round(this.horizontalMargin) + 'px';
|
|
||||||
img.style.marginTop = Math.round(this.horizontalMargin) + 'px';
|
|
||||||
img.style.marginRight = Math.round(this.verticalMargin - 7) + 'px'; // -4 is the negative margin of the inline element
|
|
||||||
img.style.marginBottom = Math.round(this.verticalMargin - 7) + 'px';
|
|
||||||
resultNode = img.parentNode.parentNode;
|
|
||||||
if (!resultNode.classList.contains('js')) {
|
|
||||||
resultNode.classList.add('js');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
ImageLayout.prototype._alignImgs = function (imgGroup) {
|
|
||||||
var isSearching, slice, i, h;
|
|
||||||
var containerElement = d.querySelector(this.container_selector);
|
|
||||||
var containerCompStyles = window.getComputedStyle(containerElement);
|
|
||||||
var containerPaddingLeft = parseInt(containerCompStyles.getPropertyValue('padding-left'), 10);
|
|
||||||
var containerPaddingRight = parseInt(containerCompStyles.getPropertyValue('padding-right'), 10);
|
|
||||||
var containerWidth = containerElement.clientWidth - containerPaddingLeft - containerPaddingRight;
|
|
||||||
|
|
||||||
while (imgGroup.length > 0) {
|
|
||||||
isSearching = true;
|
|
||||||
for (i = 1; i <= imgGroup.length && isSearching; i++) {
|
|
||||||
slice = imgGroup.slice(0, i);
|
|
||||||
h = this._getHeigth(slice, containerWidth);
|
|
||||||
if (h < this.maxHeight) {
|
|
||||||
this._setSize(slice, h);
|
|
||||||
// continue with the remaining images
|
|
||||||
imgGroup = imgGroup.slice(i);
|
|
||||||
isSearching = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (isSearching) {
|
|
||||||
this._setSize(slice, Math.min(this.maxHeight, h));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
ImageLayout.prototype.throttleAlign = function () {
|
|
||||||
var obj = this;
|
|
||||||
if (obj.trottleCallToAlign) {
|
|
||||||
obj.alignAfterThrotteling = true;
|
|
||||||
} else {
|
|
||||||
obj.alignAfterThrotteling = false;
|
|
||||||
obj.align();
|
|
||||||
obj.trottleCallToAlign = setTimeout(function () {
|
|
||||||
if (obj.alignAfterThrotteling) {
|
|
||||||
obj.align();
|
|
||||||
}
|
|
||||||
obj.alignAfterThrotteling = false;
|
|
||||||
obj.trottleCallToAlign = null;
|
|
||||||
}, 20);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
ImageLayout.prototype.align = function () {
|
|
||||||
var i;
|
|
||||||
var results_selectorNode = d.querySelectorAll(this.results_selector);
|
|
||||||
var results_length = results_selectorNode.length;
|
|
||||||
var previous = null;
|
|
||||||
var current = null;
|
|
||||||
var imgGroup = [];
|
|
||||||
|
|
||||||
for (i = 0; i < results_length; i++) {
|
|
||||||
current = results_selectorNode[i];
|
|
||||||
if (current.previousElementSibling !== previous && imgGroup.length > 0) {
|
|
||||||
// the current image is not connected to previous one
|
|
||||||
// so the current image is the start of a new group of images.
|
|
||||||
// so call _alignImgs to align the current group
|
|
||||||
this._alignImgs(imgGroup);
|
|
||||||
// and start a new empty group of images
|
|
||||||
imgGroup = [];
|
|
||||||
}
|
|
||||||
// add the current image to the group (only the img tag)
|
|
||||||
imgGroup.push(current.querySelector(this.img_selector));
|
|
||||||
// update the previous variable
|
|
||||||
previous = current;
|
|
||||||
}
|
|
||||||
// align the remaining images
|
|
||||||
if (imgGroup.length > 0) {
|
|
||||||
this._alignImgs(imgGroup);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
ImageLayout.prototype._monitorImages = function () {
|
|
||||||
var i, img;
|
|
||||||
var objthrottleAlign = this.throttleAlign.bind(this);
|
|
||||||
var results_nodes = d.querySelectorAll(this.results_selector);
|
|
||||||
var results_length = results_nodes.length;
|
|
||||||
|
|
||||||
function img_load_error (event) {
|
|
||||||
// console.log("ERROR can't load: " + event.originalTarget.src);
|
|
||||||
event.originalTarget.src = w.searxng.static_path + w.searxng.theme.img_load_error;
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 0; i < results_length; i++) {
|
|
||||||
img = results_nodes[i].querySelector(this.img_selector);
|
|
||||||
if (img !== null && img !== undefined && !img.classList.contains('aligned')) {
|
|
||||||
img.addEventListener('load', objthrottleAlign);
|
|
||||||
// https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror
|
|
||||||
img.addEventListener('error', objthrottleAlign);
|
|
||||||
img.addEventListener('timeout', objthrottleAlign);
|
|
||||||
if (w.searxng.theme.img_load_error) {
|
|
||||||
img.addEventListener('error', img_load_error, {once: true});
|
|
||||||
}
|
|
||||||
img.classList.add('aligned');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
ImageLayout.prototype.watch = function () {
|
|
||||||
var objthrottleAlign = this.throttleAlign.bind(this);
|
|
||||||
|
|
||||||
// https://developer.mozilla.org/en-US/docs/Web/API/Window/pageshow_event
|
|
||||||
w.addEventListener('pageshow', objthrottleAlign);
|
|
||||||
// https://developer.mozilla.org/en-US/docs/Web/API/FileReader/load_event
|
|
||||||
w.addEventListener('load', objthrottleAlign);
|
|
||||||
// https://developer.mozilla.org/en-US/docs/Web/API/Window/resize_event
|
|
||||||
w.addEventListener('resize', objthrottleAlign);
|
|
||||||
|
|
||||||
this._monitorImages();
|
|
||||||
|
|
||||||
var obj = this;
|
|
||||||
|
|
||||||
let observer = new MutationObserver(entries => {
|
|
||||||
let newElement = false;
|
|
||||||
for (let i = 0; i < entries.length; i++) {
|
|
||||||
if (entries[i].addedNodes.length > 0 && entries[i].addedNodes[0].classList.contains('result')) {
|
|
||||||
newElement = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (newElement) {
|
|
||||||
obj._monitorImages();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
observer.observe(d.querySelector(this.container_selector), {
|
|
||||||
childList: true,
|
|
||||||
subtree: true,
|
|
||||||
attributes: false,
|
|
||||||
characterData: false,
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
w.searxng.ImageLayout = ImageLayout;
|
|
||||||
|
|
||||||
}(window, document));
|
|
@ -1,50 +0,0 @@
|
|||||||
/**
|
|
||||||
* @license
|
|
||||||
* (C) Copyright Contributors to the SearXNG project.
|
|
||||||
* (C) Copyright Contributors to the searx project (2014 - 2021).
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
*/
|
|
||||||
|
|
||||||
$(document).ready(function() {
|
|
||||||
function hasScrollbar() {
|
|
||||||
var root = document.compatMode=='BackCompat'? document.body : document.documentElement;
|
|
||||||
return root.scrollHeight>root.clientHeight;
|
|
||||||
}
|
|
||||||
|
|
||||||
function loadNextPage() {
|
|
||||||
var formData = $('#pagination form:last').serialize();
|
|
||||||
if (formData) {
|
|
||||||
$('#pagination').html('<div class="loading-spinner"></div>');
|
|
||||||
$.ajax({
|
|
||||||
type: "POST",
|
|
||||||
url: $('#search_form').prop('action'),
|
|
||||||
data: formData,
|
|
||||||
dataType: 'html',
|
|
||||||
success: function(data) {
|
|
||||||
var body = $(data);
|
|
||||||
$('#pagination').remove();
|
|
||||||
$('#main_results').append('<hr/>');
|
|
||||||
$('#main_results').append(body.find('.result'));
|
|
||||||
$('#main_results').append(body.find('#pagination'));
|
|
||||||
if(!hasScrollbar()) {
|
|
||||||
loadNextPage();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (searxng.infinite_scroll) {
|
|
||||||
var win = $(window);
|
|
||||||
$("html").addClass('infinite_scroll');
|
|
||||||
if(!hasScrollbar()) {
|
|
||||||
loadNextPage();
|
|
||||||
}
|
|
||||||
win.on('scroll', function() {
|
|
||||||
if ($(document).height() - win.height() - win.scrollTop() < 150) {
|
|
||||||
loadNextPage();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
@ -1,18 +0,0 @@
|
|||||||
/**
|
|
||||||
* @license
|
|
||||||
* (C) Copyright Contributors to the SearXNG project.
|
|
||||||
* (C) Copyright Contributors to the searx project (2014 - 2021).
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
*/
|
|
||||||
|
|
||||||
window.addEventListener('load', function() {
|
|
||||||
// Hide infobox toggle if shrunk size already fits all content.
|
|
||||||
$('.infobox').each(function() {
|
|
||||||
var infobox_body = $(this).find('.infobox_body');
|
|
||||||
var total_height = infobox_body.prop('scrollHeight') + infobox_body.find('img.infobox_part').height();
|
|
||||||
var max_height = infobox_body.css('max-height').replace('px', '');
|
|
||||||
if (total_height <= max_height) {
|
|
||||||
$(this).find('.infobox_toggle').hide();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
@ -1,70 +0,0 @@
|
|||||||
/**
|
|
||||||
* @license
|
|
||||||
* (C) Copyright Contributors to the SearXNG project.
|
|
||||||
* (C) Copyright Contributors to the searx project (2014 - 2021).
|
|
||||||
* (C) 2014 by Thomas Pointhuber, <thomas.pointhuber@gmx.at>
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
*/
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
|
||||||
$(".searxng_init_map").on( "click", function( event ) {
|
|
||||||
var leaflet_target = $(this).data('leaflet-target');
|
|
||||||
var map_lon = $(this).data('map-lon');
|
|
||||||
var map_lat = $(this).data('map-lat');
|
|
||||||
var map_zoom = $(this).data('map-zoom');
|
|
||||||
var map_boundingbox = $(this).data('map-boundingbox');
|
|
||||||
var map_geojson = $(this).data('map-geojson');
|
|
||||||
|
|
||||||
if(map_boundingbox) {
|
|
||||||
southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);
|
|
||||||
northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);
|
|
||||||
map_bounds = L.latLngBounds(southWest, northEast);
|
|
||||||
}
|
|
||||||
|
|
||||||
// change default imagePath
|
|
||||||
L.Icon.Default.imagePath = "./static/themes/oscar/css/images/";
|
|
||||||
|
|
||||||
// init map
|
|
||||||
var map = L.map(leaflet_target);
|
|
||||||
|
|
||||||
// create the tile layer with correct attribution
|
|
||||||
var osmMapnikUrl='https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
|
|
||||||
var osmMapnikAttrib='Map data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
|
|
||||||
var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});
|
|
||||||
|
|
||||||
var osmWikimediaUrl='https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';
|
|
||||||
var osmWikimediaAttrib = 'Wikimedia maps beta | Maps data © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors';
|
|
||||||
var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});
|
|
||||||
|
|
||||||
// init map view
|
|
||||||
setTimeout(function() {
|
|
||||||
if(map_bounds) {
|
|
||||||
map.fitBounds(map_bounds, {
|
|
||||||
maxZoom:17
|
|
||||||
});
|
|
||||||
} else if (map_lon && map_lat) {
|
|
||||||
if(map_zoom)
|
|
||||||
map.setView(new L.LatLng(map_lat, map_lon),map_zoom);
|
|
||||||
else
|
|
||||||
map.setView(new L.LatLng(map_lat, map_lon),8);
|
|
||||||
}
|
|
||||||
}, 0);
|
|
||||||
|
|
||||||
map.addLayer(osmMapnik);
|
|
||||||
|
|
||||||
var baseLayers = {
|
|
||||||
"OSM Mapnik": osmMapnik/*,
|
|
||||||
"OSM Wikimedia": osmWikimedia*/
|
|
||||||
};
|
|
||||||
|
|
||||||
L.control.layers(baseLayers).addTo(map);
|
|
||||||
|
|
||||||
if(map_geojson)
|
|
||||||
L.geoJson(map_geojson).addTo(map);
|
|
||||||
/*else if(map_bounds)
|
|
||||||
L.rectangle(map_bounds, {color: "#ff7800", weight: 3, fill:false}).addTo(map);*/
|
|
||||||
|
|
||||||
// this event occour only once per element
|
|
||||||
$( this ).off( event );
|
|
||||||
});
|
|
||||||
});
|
|
@ -1,30 +0,0 @@
|
|||||||
/**
|
|
||||||
* @license
|
|
||||||
* (C) Copyright Contributors to the SearXNG project.
|
|
||||||
* (C) Copyright Contributors to the searx project (2014 - 2021).
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
*/
|
|
||||||
|
|
||||||
$(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>' + searxng.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();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
@ -1,17 +0,0 @@
|
|||||||
/**
|
|
||||||
* @license
|
|
||||||
* (C) Copyright Contributors to the SearXNG project.
|
|
||||||
* (C) Copyright Contributors to the searx project (2014 - 2021).
|
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
|
||||||
*/
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
|
||||||
$("#allow-all-engines").click(function() {
|
|
||||||
$(".onoffswitch-checkbox").each(function() { this.checked = false;});
|
|
||||||
});
|
|
||||||
|
|
||||||
$("#disable-all-engines").click(function() {
|
|
||||||
$(".onoffswitch-checkbox").each(function() { this.checked = true;});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
@import "../../../node_modules/bootstrap/less/bootstrap.less";
|
|
||||||
|
|
||||||
@import "typeahead.less";
|
|
@ -1,154 +0,0 @@
|
|||||||
/*
|
|
||||||
* typehead.js-bootstrap3.less
|
|
||||||
* @version 0.2.3
|
|
||||||
* https://github.com/hyspace/typeahead.js-bootstrap3.less
|
|
||||||
*
|
|
||||||
* Licensed under the MIT license:
|
|
||||||
* http://www.opensource.org/licenses/MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
//custom mixin for .form-control-validation
|
|
||||||
.typeahead-form-control(@border-color: #ccc;) {
|
|
||||||
border-color: @border-color;
|
|
||||||
.box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
|
|
||||||
&:focus {
|
|
||||||
border-color: darken(@border-color, 10%);
|
|
||||||
@shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);
|
|
||||||
.box-shadow(@shadow);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//main styles for control
|
|
||||||
.tt-input,
|
|
||||||
.tt-hint {
|
|
||||||
.twitter-typeahead &{
|
|
||||||
//validation states
|
|
||||||
.has-warning &{
|
|
||||||
.typeahead-form-control(@state-warning-text);
|
|
||||||
}
|
|
||||||
.has-error &{
|
|
||||||
.typeahead-form-control(@state-danger-text);
|
|
||||||
}
|
|
||||||
.has-success &{
|
|
||||||
.typeahead-form-control(@state-success-text);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//border
|
|
||||||
.input-group .twitter-typeahead:first-child &{
|
|
||||||
.border-left-radius(@border-radius-base);
|
|
||||||
}
|
|
||||||
.input-group .twitter-typeahead:last-child &{
|
|
||||||
.border-right-radius(@border-radius-base);
|
|
||||||
}
|
|
||||||
|
|
||||||
//sizing - small:size and border
|
|
||||||
.input-group.input-group-sm .twitter-typeahead &{
|
|
||||||
.input-size(@input-height-small; @padding-small-vertical; @padding-small-horizontal; @font-size-small; @line-height-small; @border-radius-small);
|
|
||||||
}
|
|
||||||
.input-group.input-group-sm .twitter-typeahead:not(:first-child):not(:last-child) &{
|
|
||||||
border-radius: 0;
|
|
||||||
}
|
|
||||||
.input-group.input-group-sm .twitter-typeahead:first-child &{
|
|
||||||
.border-left-radius(@border-radius-small);
|
|
||||||
.border-right-radius(0);
|
|
||||||
}
|
|
||||||
.input-group.input-group-sm .twitter-typeahead:last-child &{
|
|
||||||
.border-left-radius(0);
|
|
||||||
.border-right-radius(@border-radius-small);
|
|
||||||
}
|
|
||||||
|
|
||||||
//sizing - large:size and border
|
|
||||||
.input-group.input-group-lg .twitter-typeahead &{
|
|
||||||
.input-size(@input-height-large; @padding-large-vertical; @padding-large-horizontal; @font-size-large; @line-height-large; @border-radius-large);
|
|
||||||
}
|
|
||||||
.input-group.input-group-lg .twitter-typeahead:not(:first-child):not(:last-child) &{
|
|
||||||
border-radius: 0;
|
|
||||||
}
|
|
||||||
.input-group.input-group-lg .twitter-typeahead:first-child &{
|
|
||||||
.border-left-radius(@border-radius-large);
|
|
||||||
.border-right-radius(0);
|
|
||||||
}
|
|
||||||
.input-group.input-group-lg .twitter-typeahead:last-child &{
|
|
||||||
.border-left-radius(0);
|
|
||||||
.border-right-radius(@border-radius-large);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//for wrapper
|
|
||||||
.twitter-typeahead {
|
|
||||||
width: 100%;
|
|
||||||
.input-group &{
|
|
||||||
//overwrite `display:inline-block` style
|
|
||||||
display: table-cell!important;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//particular style for each other
|
|
||||||
.twitter-typeahead .tt-hint {
|
|
||||||
color: @text-muted;//color - hint
|
|
||||||
}
|
|
||||||
.twitter-typeahead .tt-input {
|
|
||||||
z-index: 2;
|
|
||||||
//disabled status
|
|
||||||
//overwrite inline styles of .tt-query
|
|
||||||
&[disabled],
|
|
||||||
&[readonly],
|
|
||||||
fieldset[disabled] & {
|
|
||||||
cursor: not-allowed;
|
|
||||||
//overwirte inline style
|
|
||||||
background-color: @input-bg-disabled!important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//dropdown styles
|
|
||||||
.tt-dropdown-menu {
|
|
||||||
//dropdown menu
|
|
||||||
position: absolute;
|
|
||||||
top: 100%;
|
|
||||||
left: 0;
|
|
||||||
z-index: @zindex-dropdown;
|
|
||||||
min-width: 160px;
|
|
||||||
width: 100%;
|
|
||||||
padding: 5px 0;
|
|
||||||
margin: 2px 0 0;
|
|
||||||
list-style: none;
|
|
||||||
font-size: @font-size-base;
|
|
||||||
background-color: @dropdown-bg;
|
|
||||||
border: 1px solid @dropdown-fallback-border;
|
|
||||||
border: 1px solid @dropdown-border;
|
|
||||||
border-radius: @border-radius-base;
|
|
||||||
.box-shadow(0 6px 12px rgba(0,0,0,.175));
|
|
||||||
background-clip: padding-box;
|
|
||||||
*border-right-width: 2px;
|
|
||||||
*border-bottom-width: 2px;
|
|
||||||
|
|
||||||
.tt-suggestion {
|
|
||||||
//item
|
|
||||||
display: block;
|
|
||||||
padding: 3px 20px;
|
|
||||||
clear: both;
|
|
||||||
font-weight: normal;
|
|
||||||
line-height: @line-height-base;
|
|
||||||
color: @dropdown-link-color;
|
|
||||||
white-space: nowrap;
|
|
||||||
text-align: left;
|
|
||||||
cursor: pointer !important;
|
|
||||||
&.tt-cursor {
|
|
||||||
//item selected
|
|
||||||
text-decoration: none;
|
|
||||||
outline: 0;
|
|
||||||
background-color: @dropdown-link-hover-bg;
|
|
||||||
color: @dropdown-link-hover-color;
|
|
||||||
a {
|
|
||||||
//link in item selected
|
|
||||||
color: @dropdown-link-hover-color;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
p {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
|||||||
@keyframes rotate-forever {
|
|
||||||
0% { transform: rotate(0deg) }
|
|
||||||
100% { transform: rotate(360deg) }
|
|
||||||
}
|
|
||||||
|
|
||||||
.loading-spinner {
|
|
||||||
animation-duration: 0.75s;
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
animation-name: rotate-forever;
|
|
||||||
animation-timing-function: linear;
|
|
||||||
height: 30px;
|
|
||||||
width: 30px;
|
|
||||||
border: 8px solid #666;
|
|
||||||
border-right-color: transparent;
|
|
||||||
border-radius: 50% !important;
|
|
||||||
margin: 0 auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
html.infinite_scroll #pagination button {
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
@ -1,269 +0,0 @@
|
|||||||
@import "../logicodev/variables.less";
|
|
||||||
@import "../../../../__common__/less/new_issue.less";
|
|
||||||
@import "../../../../__common__/less/stats.less";
|
|
||||||
@import "../../../../__common__/less/result_templates.less";
|
|
||||||
@import "../../less/result_templates.less";
|
|
||||||
@import "../../less/preferences.less";
|
|
||||||
@import "../infinite_scroll.less";
|
|
||||||
@import "../../generated/pygments-logicodev.less";
|
|
||||||
|
|
||||||
@stacked-bar-chart: rgb(213, 216, 215, 1);
|
|
||||||
|
|
||||||
@import "../logicodev/footer.less";
|
|
||||||
@import "../logicodev/checkbox.less";
|
|
||||||
@import "../logicodev/onoff.less";
|
|
||||||
@import "../logicodev/results.less";
|
|
||||||
@import "../logicodev/infobox.less";
|
|
||||||
@import "../logicodev/search.less";
|
|
||||||
@import "../logicodev/advanced.less";
|
|
||||||
@import "../logicodev/cursor.less";
|
|
||||||
@import "../logicodev/code.less";
|
|
||||||
@import "../logicodev/preferences.less";
|
|
||||||
|
|
||||||
@import (inline) "../safari.css";
|
|
||||||
|
|
||||||
/*Global*/
|
|
||||||
body {
|
|
||||||
background:#1d1f21 none !important;
|
|
||||||
color:#D5D8D7 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
color:#41a2ce !important;
|
|
||||||
text-decoration: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
a:hover {
|
|
||||||
color:#5F89AC !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
input, button, textarea, select {
|
|
||||||
border: 1px solid #282a2e !important;
|
|
||||||
background-color: #444 !important;
|
|
||||||
color: #BBB !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
input:focus, button:focus, textarea:focus, select:focus {
|
|
||||||
border: 1px solid #C5C8C6 !important;
|
|
||||||
box-shadow: initial !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
div#advanced-search-container div#categories label{
|
|
||||||
background:none;
|
|
||||||
border: 1px solid #282a2e;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul.nav li a {
|
|
||||||
border: 0 !important;
|
|
||||||
border-bottom: 1px solid #4d3f43 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#categories *, .modal-wrapper * {
|
|
||||||
background:#1d1f21 none !important;
|
|
||||||
color:#D5D8D7 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#categories *, {
|
|
||||||
border: 1px solid #3d3f43 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
#categories *:checked + label {
|
|
||||||
border-bottom: 4px solid #3d9f94 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.result-content, .result-source, .result-format {
|
|
||||||
color:#B5B8B7 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.external-link {
|
|
||||||
color:#35B887 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-striped tr td, .table-striped tr th {
|
|
||||||
border-color: #4d3f43 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*nav*/
|
|
||||||
.navbar{
|
|
||||||
background:#1d1f21 none;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar .active, .menu {
|
|
||||||
background: none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label-default {
|
|
||||||
background: none;
|
|
||||||
color: #BBB;
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus, .nav-tabs.nav-justified > .active > a{
|
|
||||||
background-color: #282a2e !important;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/*Search Page*/
|
|
||||||
.result-default:hover, .result-code:hover, .result-torrent:hover, .result-videos:hover, .result-map:hover {
|
|
||||||
background-color: #222426;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*buttons*/
|
|
||||||
.btn {
|
|
||||||
color: #BBB;
|
|
||||||
background-color: #444 ;
|
|
||||||
border: 1px solid #282a2e;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn:hover {
|
|
||||||
color:#444 !important;
|
|
||||||
background-color: #BBB !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-primary.active {
|
|
||||||
color: #C5C8C6;
|
|
||||||
background-color: #5F89AC;
|
|
||||||
border-color: #5F89AC;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*Right Pannels*/
|
|
||||||
.panel {
|
|
||||||
border: 1px solid #111;
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.panel-heading {
|
|
||||||
color: #C5C8C6 !important;
|
|
||||||
background: #282a2e !important;
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.panel-body {
|
|
||||||
color: #C5C8C6 !important;
|
|
||||||
background: #1d1f21 !important;
|
|
||||||
border-color: #111 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.panel-footer {
|
|
||||||
color: #C5C8C6 !important;
|
|
||||||
background: #282a2e !important;
|
|
||||||
border-top: 1px solid #111 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.infobox_toggle:hover {
|
|
||||||
background: #3d3f43 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
p.btn.btn-default{
|
|
||||||
background: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-striped>tbody>tr:nth-child(odd)>td, .table-striped>tbody>tr:nth-child(odd)>th, .table-striped>thead>tr:nth-child(odd)>th {
|
|
||||||
background:#2d2f32 none !important;
|
|
||||||
color:#D5D8D7 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label-success {
|
|
||||||
background:#1d6f42 none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.label-danger {
|
|
||||||
background:#ad1f12 none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.searxng-navbar {
|
|
||||||
background: #333334;
|
|
||||||
height: 2.3rem;
|
|
||||||
font-size: 1.3rem;
|
|
||||||
line-height: 1.3rem;
|
|
||||||
padding: 0.5rem;
|
|
||||||
font-weight: bold;
|
|
||||||
margin-bottom: 0.8rem;
|
|
||||||
|
|
||||||
a, a:hover {
|
|
||||||
margin-right: 2.0rem;
|
|
||||||
color: white;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.instance a {
|
|
||||||
color: @light-green;
|
|
||||||
margin-left: 2.0rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#main-logo {
|
|
||||||
margin-top: 20vh;
|
|
||||||
margin-bottom: 25px;
|
|
||||||
|
|
||||||
& > img {
|
|
||||||
max-width: 350px;
|
|
||||||
width: 80%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.onoffswitch-inner:before, .onoffswitch-inner:after {
|
|
||||||
background:#1d1f21 none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.onoffswitch-switch, .onoffswitch-label {
|
|
||||||
border: 2px solid #3d3f43 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav>li>a:hover, .nav>li>a:focus {
|
|
||||||
background-color: #3d3f43 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*Images search*/
|
|
||||||
.img-thumbnail, .thumbnail {
|
|
||||||
padding: 0px;
|
|
||||||
line-height: 1.42857143;
|
|
||||||
background: none;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modal-content {
|
|
||||||
background:#1d1f21 none !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*Preferences*/
|
|
||||||
|
|
||||||
.table > thead > tr > td.danger, .table > tbody > tr > td.danger, .table > tfoot > tr > td.danger, .table > thead > tr > th.danger, .table > tbody > tr > th.danger, .table > tfoot > tr > th.danger, .table > thead > tr.danger > td, .table > tbody > tr.danger > td, .table > tfoot > tr.danger > td, .table > thead > tr.danger > th, .table > tbody > tr.danger > th, .table > tfoot > tr.danger > th {
|
|
||||||
background: RGBA(240, 0, 0, 0.56) !important;
|
|
||||||
color: #C5C8C6 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-hover > tbody > tr > td.danger:hover, .table-hover > tbody > tr > th.danger:hover, .table-hover > tbody > tr.danger:hover > td, .table-hover > tbody > tr:hover > .danger, .table-hover > tbody > tr.danger:hover > th {
|
|
||||||
background: RGBA(237, 59, 59, 0.61) !important;
|
|
||||||
color: #C5C8C6 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-hover > tbody > tr:hover > td, .table-hover > tbody > tr:hover > th {
|
|
||||||
background: rgb(102, 105, 110) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-success {
|
|
||||||
color: #C5C8C6;
|
|
||||||
background: #449d44;
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn-danger {
|
|
||||||
color: #C5C8C6;
|
|
||||||
background: #d9534f;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.well {
|
|
||||||
background: #444;
|
|
||||||
border-color: #282a2e;
|
|
||||||
}
|
|
||||||
|
|
||||||
.highlight {
|
|
||||||
background-color: transparent !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* engine tooltip */
|
|
||||||
.engine-tooltip {
|
|
||||||
border: 1px solid #3d3f43;
|
|
||||||
background: #1d1f21 ;
|
|
||||||
}
|
|
@ -1,49 +0,0 @@
|
|||||||
#advanced-search-container {
|
|
||||||
display: none;
|
|
||||||
text-align: left;
|
|
||||||
margin-bottom: 1rem;
|
|
||||||
clear: both;
|
|
||||||
|
|
||||||
label, .input-group-addon {
|
|
||||||
font-size: 1.2rem;
|
|
||||||
font-weight:normal;
|
|
||||||
background-color: white;
|
|
||||||
border: @mild-gray 1px solid;
|
|
||||||
border-right: none;
|
|
||||||
color: @dark-gray;
|
|
||||||
padding-bottom: 0.4rem;
|
|
||||||
padding-right: 0.7rem;
|
|
||||||
padding-left: 0.7rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
label:last-child, .input-group-addon:last-child {
|
|
||||||
border-right: @mild-gray 1px solid;
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="radio"] {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="radio"]:checked + label{
|
|
||||||
color: @black;
|
|
||||||
font-weight: bold;
|
|
||||||
border-bottom: @light-green 5px solid;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#check-advanced:focus + label {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
#check-advanced:checked ~ #advanced-search-container {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.advanced {
|
|
||||||
padding: 0;
|
|
||||||
margin-top: 0.3rem;
|
|
||||||
text-align: right;
|
|
||||||
label, select {
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
// Hide element if checkbox is checked
|
|
||||||
input[type=checkbox]:checked + .label_hide_if_checked, input[type=checkbox]:checked + .label_hide_if_not_checked + .label_hide_if_checked {
|
|
||||||
display:none;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Hide element if checkbox is not checked
|
|
||||||
input[type=checkbox]:not(:checked) + .label_hide_if_not_checked, input[type=checkbox]:not(:checked) + .label_hide_if_checked + .label_hide_if_not_checked {
|
|
||||||
display:none;
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
pre, code {
|
|
||||||
font-family: 'Ubuntu Mono', 'Courier New', 'Lucida Console', monospace !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.code-highlight pre {
|
|
||||||
margin-bottom: 25px;
|
|
||||||
padding: 20px 10px;
|
|
||||||
background-color: inherit;
|
|
||||||
color: inherit;
|
|
||||||
border: inherit;
|
|
||||||
color: #D7DAE0;
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
// display cursor
|
|
||||||
.cursor-text {
|
|
||||||
cursor: text !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cursor-pointer {
|
|
||||||
cursor: pointer !important;
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
// Sticky footer styles
|
|
||||||
*{
|
|
||||||
border-radius: 0 !important;
|
|
||||||
}
|
|
||||||
html {
|
|
||||||
position: relative;
|
|
||||||
min-height: 100%;
|
|
||||||
color: @black;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
/* Margin bottom by footer height */
|
|
||||||
font-family: 'Roboto', Helvetica, Arial, sans-serif;
|
|
||||||
margin-bottom: 80px;
|
|
||||||
background-color: white;
|
|
||||||
|
|
||||||
a{
|
|
||||||
color: @blue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
width: 100%;
|
|
||||||
/* Set the fixed height of the footer here */
|
|
||||||
height: 60px;
|
|
||||||
text-align: center;
|
|
||||||
color: #999;
|
|
||||||
}
|
|
@ -1,92 +0,0 @@
|
|||||||
.infobox {
|
|
||||||
|
|
||||||
.panel-heading{
|
|
||||||
background-color: @dim-gray;
|
|
||||||
|
|
||||||
.panel-title{
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.header_url {
|
|
||||||
white-space: nowrap;
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
p{
|
|
||||||
font-family: "DejaVu Serif", Georgia, Cambria, "Times New Roman", Times, serif !important;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
|
|
||||||
img{
|
|
||||||
max-height: "250px";
|
|
||||||
}
|
|
||||||
|
|
||||||
.btn{
|
|
||||||
background-color: @dark-blue;
|
|
||||||
border: none;
|
|
||||||
|
|
||||||
a{
|
|
||||||
color: white;
|
|
||||||
margin: 5px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.infobox_part {
|
|
||||||
margin-bottom: 20px;
|
|
||||||
word-wrap: break-word;
|
|
||||||
table-layout: fixed;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
.infobox_part:last-child {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.infobox_toggle {
|
|
||||||
width: 100%;
|
|
||||||
text-align: center;
|
|
||||||
margin-bottom: 0px;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
.infobox_toggle:hover {
|
|
||||||
background: @mild-gray;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Shrink infobox size when toggle is off
|
|
||||||
.infobox_checkbox ~ .infobox_body {
|
|
||||||
max-height: 300px;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
.infobox_checkbox:checked ~ .infobox_body {
|
|
||||||
max-height: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show toggle button as down when infobox is shrunk
|
|
||||||
.infobox_checkbox ~ .infobox_toggle .infobox_label_down {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.infobox_checkbox ~ .infobox_toggle .infobox_label_up {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show toggle button as up when infobox is expanded
|
|
||||||
.infobox_checkbox:checked ~ .infobox_toggle .infobox_label_up {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
.infobox_checkbox:checked ~ .infobox_toggle .infobox_label_down {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Hide main image when toggle is off
|
|
||||||
.infobox_checkbox ~ .infobox_body img.infobox_part {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
.infobox_checkbox:checked ~ .infobox_body img.infobox_part {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
.searxng-navbar {
|
|
||||||
background: @black;
|
|
||||||
height: 2.3rem;
|
|
||||||
font-size: 1.3rem;
|
|
||||||
line-height: 1.3rem;
|
|
||||||
padding: 0.5rem;
|
|
||||||
font-weight: bold;
|
|
||||||
margin-bottom: 0.8rem;
|
|
||||||
|
|
||||||
a, a:hover {
|
|
||||||
margin-right: 2.0rem;
|
|
||||||
color: white;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.instance a {
|
|
||||||
color: @light-green;
|
|
||||||
margin-left: 2.0rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#main-logo {
|
|
||||||
margin-top: 20vh;
|
|
||||||
margin-bottom: 25px;
|
|
||||||
|
|
||||||
& > img {
|
|
||||||
max-width: 350px;
|
|
||||||
width: 80%;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,74 +0,0 @@
|
|||||||
.onoff-checkbox {
|
|
||||||
width:15%;
|
|
||||||
}
|
|
||||||
.onoffswitch {
|
|
||||||
position: relative;
|
|
||||||
width: 110px;
|
|
||||||
-webkit-user-select:none;
|
|
||||||
-moz-user-select:none;
|
|
||||||
-ms-user-select: none;
|
|
||||||
}
|
|
||||||
.onoffswitch-checkbox {
|
|
||||||
opacity: 0;
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
.onoffswitch-checkbox:before {
|
|
||||||
content: "";
|
|
||||||
display: inline-block;
|
|
||||||
width: 16px;
|
|
||||||
height: 16px;
|
|
||||||
margin-right: 10px;
|
|
||||||
position: absolute;
|
|
||||||
left: 0;
|
|
||||||
bottom: 1px;
|
|
||||||
background-color: #fff;
|
|
||||||
border: 1px solid #ccc;
|
|
||||||
border-radius: 0px;
|
|
||||||
}
|
|
||||||
.onoffswitch-label {
|
|
||||||
display: block;
|
|
||||||
overflow: hidden;
|
|
||||||
cursor: pointer;
|
|
||||||
border: 2px solid #FFFFFF !important;
|
|
||||||
border-radius: 50px !important;
|
|
||||||
}
|
|
||||||
.onoffswitch-inner {
|
|
||||||
display: block;
|
|
||||||
transition: margin 0.3s ease-in 0s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.onoffswitch-inner:before, .onoffswitch-inner:after {
|
|
||||||
display: block;
|
|
||||||
float: left;
|
|
||||||
width: 50%;
|
|
||||||
height: 30px;
|
|
||||||
padding: 0;
|
|
||||||
line-height: 40px;
|
|
||||||
font-size: 20px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
content: "";
|
|
||||||
background-color: #EEEEEE;
|
|
||||||
}
|
|
||||||
|
|
||||||
.onoffswitch-switch {
|
|
||||||
display: block;
|
|
||||||
width: 37px;
|
|
||||||
background-color: @light-green;
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
bottom: 0;
|
|
||||||
right: 0px;
|
|
||||||
border: 2px solid #FFFFFF;
|
|
||||||
border-radius: 50px !important;
|
|
||||||
transition: all 0.3s ease-in 0s;
|
|
||||||
}
|
|
||||||
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-inner {
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
.onoffswitch-checkbox:checked + .onoffswitch-label .onoffswitch-switch {
|
|
||||||
right: 71px;
|
|
||||||
background-color: #A1A1A1;
|
|
||||||
}
|
|
||||||
.onoffswitch-checkbox:focus + .onoffswitch-label .onoffswitch-switch {
|
|
||||||
border: 3px solid #444444;
|
|
||||||
}
|
|
@ -1,22 +0,0 @@
|
|||||||
@import "variables.less";
|
|
||||||
@import "../../../../__common__/less/new_issue.less";
|
|
||||||
@import "../../../../__common__/less/stats.less";
|
|
||||||
@import "../../../../__common__/less/result_templates.less";
|
|
||||||
@import "../../less/result_templates.less";
|
|
||||||
@import "../../less/preferences.less";
|
|
||||||
@import "../infinite_scroll.less";
|
|
||||||
@import "../../generated/pygments-logicodev.less";
|
|
||||||
|
|
||||||
@import "navbar.less";
|
|
||||||
@import "footer.less";
|
|
||||||
@import "checkbox.less";
|
|
||||||
@import "onoff.less";
|
|
||||||
@import "results.less";
|
|
||||||
@import "infobox.less";
|
|
||||||
@import "search.less";
|
|
||||||
@import "advanced.less";
|
|
||||||
@import "cursor.less";
|
|
||||||
@import "code.less";
|
|
||||||
@import "preferences.less";
|
|
||||||
|
|
||||||
@import (inline) "../safari.css";
|
|