Commit df9cf9d0 authored by Adam Tauber's avatar Adam Tauber

Merge branch 'rtl' of github.com:Cqoicebordel/searx

parent c7112126
...@@ -46,7 +46,9 @@ minimal: bin/buildout minimal.cfg setup.py ...@@ -46,7 +46,9 @@ minimal: bin/buildout minimal.cfg setup.py
styles: styles:
@lessc -x searx/static/themes/default/less/style.less > searx/static/themes/default/css/style.css @lessc -x searx/static/themes/default/less/style.less > searx/static/themes/default/css/style.css
@lessc -x searx/static/themes/default/less/style-rtl.less > searx/static/themes/default/css/style-rtl.css
@lessc -x searx/static/themes/courgette/less/style.less > searx/static/themes/courgette/css/style.css @lessc -x searx/static/themes/courgette/less/style.less > searx/static/themes/courgette/css/style.css
@lessc -x searx/static/themes/courgette/less/style-rtl.less > searx/static/themes/courgette/css/style-rtl.css
@lessc -x searx/static/less/bootstrap/bootstrap.less > searx/static/css/bootstrap.min.css @lessc -x searx/static/less/bootstrap/bootstrap.less > searx/static/css/bootstrap.min.css
@lessc -x searx/static/themes/oscar/less/oscar/oscar.less > searx/static/themes/oscar/css/oscar.min.css @lessc -x searx/static/themes/oscar/less/oscar/oscar.less > searx/static/themes/oscar/css/oscar.min.css
......
.q{padding:.5em 1em .5em 3em}#search_submit{left:0;right:auto}.result .favicon{float:right;margin-left:.5em;margin-right:0}#sidebar{right:auto;left:0}#results{padding:0 32px 0 272px}.search.center{padding-right:0;padding-left:17em}.right{right:auto;left:0}#pagination form+form{float:left;margin-top:-2em}
\ No newline at end of file
This diff is collapsed.
.q {
padding: 0.5em 1em 0.5em 3em;
}
#search_submit {
left: 0;
right:auto;
}
.result .favicon {
float: right;
margin-left: 0.5em;
margin-right: 0;
}
#sidebar {
right: auto;
left: 0;
}
#results {
padding: 0px 32px 0px 272px;
}
.search.center {
padding-right: 0;
padding-left: 17em;
}
.right {
right: auto;
left: 0;
}
#pagination form + form {
float: left;
margin-top: -2em;
}
\ No newline at end of file
...@@ -278,7 +278,7 @@ a { ...@@ -278,7 +278,7 @@ a {
} }
#preferences { #preferences {
background: url(../img/preference-icon.png) no-repeat right 0 / 12% auto; background: url("../img/preference-icon.png") no-repeat right center / 12% auto;
padding-right: 1.8em; padding-right: 1.8em;
} }
......
#search_submit{left:1px;right:auto}.result .favicon{float:right;margin-left:.5em;margin-right:0}
\ No newline at end of file
#search_submit {
left: 1px;
right:auto;
}
.result .favicon {
float: right;
margin-left: 0.5em;
margin-right: 0;
}
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"{% if rtl %} dir="rtl"{% endif %}>
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="description" content="Searx - a privacy-respecting, hackable metasearch engine" /> <meta name="description" content="Searx - a privacy-respecting, hackable metasearch engine" />
...@@ -8,6 +8,9 @@ ...@@ -8,6 +8,9 @@
<meta name="viewport" content="width=device-width, maximum-scale=1.0, user-scalable=1" /> <meta name="viewport" content="width=device-width, maximum-scale=1.0, user-scalable=1" />
<title>{% block title %}{% endblock %}searx</title> <title>{% block title %}{% endblock %}searx</title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}" type="text/css" media="screen" /> <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}" type="text/css" media="screen" />
{% if rtl %}
<link rel="stylesheet" href="{{ url_for('static', filename='css/style-rtl.css') }}" type="text/css" media="screen" />
{% endif %}
{% if cookies['courgette-color'] %} {% if cookies['courgette-color'] %}
<style type="text/css"> <style type="text/css">
{% include 'courgette/color.css' %} {% include 'courgette/color.css' %}
......
...@@ -5,8 +5,13 @@ ...@@ -5,8 +5,13 @@
<div class="title"><h1>searx</h1></div> <div class="title"><h1>searx</h1></div>
{% include 'courgette/search.html' %} {% include 'courgette/search.html' %}
<p class="top_margin"> <p class="top_margin">
{% if rtl %}
<a href="{{ url_for('preferences') }}" class="hmarg">{{ _('preferences') }}</a>
{% endif %}
<a href="{{ url_for('about') }}" class="hmarg">{{ _('about') }}</a> <a href="{{ url_for('about') }}" class="hmarg">{{ _('about') }}</a>
{% if not rtl %}
<a href="{{ url_for('preferences') }}" class="hmarg">{{ _('preferences') }}</a> <a href="{{ url_for('preferences') }}" class="hmarg">{{ _('preferences') }}</a>
{% endif %}
</p> </p>
</div> </div>
{% endblock %} {% endblock %}
\ No newline at end of file
...@@ -106,7 +106,7 @@ ...@@ -106,7 +106,7 @@
{% if not search_engine.private %} {% if not search_engine.private %}
<tr> <tr>
<td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})</td> <td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})&lrm;</td>
<td>{{ _(categ) }}</td> <td>{{ _(categ) }}</td>
<td class="engine_checkbox"> <td class="engine_checkbox">
<input type="checkbox" id="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}" name="engine_{{ search_engine.name }}__{{ categ }}"{% if (search_engine.name, categ) in blocked_engines %} checked="checked"{% endif %} /> <input type="checkbox" id="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}" name="engine_{{ search_engine.name }}__{{ categ }}"{% if (search_engine.name, categ) in blocked_engines %} checked="checked"{% endif %} />
......
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
</div> </div>
<div id="results"> <div id="results">
<div id="sidebar"> <div id="sidebar">
<div id="search_url"> <div id="search_url">
{{ _('Search URL') }}: {{ _('Search URL') }}:
<input type="text" value="{{ base_url }}?q={{ q|urlencode }}&amp;pageno={{ pageno }}{% if selected_categories %}&amp;category_{{ selected_categories|join("&category_")|replace(' ','+') }}{% endif %}" readonly /> <input type="text" value="{{ base_url }}?q={{ q|urlencode }}&amp;pageno={{ pageno }}{% if selected_categories %}&amp;category_{{ selected_categories|join("&category_")|replace(' ','+') }}{% endif %}" readonly />
......
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"{% if rtl %} dir="rtl"{% endif %}>
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="description" content="Searx - a privacy-respecting, hackable metasearch engine" /> <meta name="description" content="Searx - a privacy-respecting, hackable metasearch engine" />
...@@ -8,6 +8,9 @@ ...@@ -8,6 +8,9 @@
<meta name="viewport" content="width=device-width, maximum-scale=1.0, user-scalable=1" /> <meta name="viewport" content="width=device-width, maximum-scale=1.0, user-scalable=1" />
<title>{% block title %}{% endblock %}searx</title> <title>{% block title %}{% endblock %}searx</title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}" type="text/css" media="screen" /> <link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}" type="text/css" media="screen" />
{% if rtl %}
<link rel="stylesheet" href="{{ url_for('static', filename='css/style-rtl.css') }}" type="text/css" media="screen" />
{% endif %}
<link rel="shortcut icon" href="{{ url_for('static', filename='img/favicon.png') }}?v=2" /> <link rel="shortcut icon" href="{{ url_for('static', filename='img/favicon.png') }}?v=2" />
{% block styles %} {% block styles %}
{% endblock %} {% endblock %}
......
...@@ -4,8 +4,13 @@ ...@@ -4,8 +4,13 @@
<div class="title"><h1>searx</h1></div> <div class="title"><h1>searx</h1></div>
{% include 'default/search.html' %} {% include 'default/search.html' %}
<p class="top_margin"> <p class="top_margin">
{% if rtl %}
<a href="{{ url_for('preferences') }}" class="hmarg">{{ _('preferences') }}</a>
{% endif %}
<a href="{{ url_for('about') }}" class="hmarg">{{ _('about') }}</a> <a href="{{ url_for('about') }}" class="hmarg">{{ _('about') }}</a>
{% if not rtl %}
<a href="{{ url_for('preferences') }}" class="hmarg">{{ _('preferences') }}</a> <a href="{{ url_for('preferences') }}" class="hmarg">{{ _('preferences') }}</a>
{% endif %}
</p> </p>
</div> </div>
{% include 'default/github_ribbon.html' %} {% include 'default/github_ribbon.html' %}
......
...@@ -94,7 +94,7 @@ ...@@ -94,7 +94,7 @@
{% if not search_engine.private %} {% if not search_engine.private %}
<tr> <tr>
<td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})</td> <td>{{ search_engine.name }} ({{ shortcuts[search_engine.name] }})&lrm;</td>
<td>{{ _(categ) }}</td> <td>{{ _(categ) }}</td>
<td class="engine_checkbox"> <td class="engine_checkbox">
<input type="checkbox" id="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}" name="engine_{{ search_engine.name }}__{{ categ }}"{% if (search_engine.name, categ) in blocked_engines %} checked="checked"{% endif %} /> <input type="checkbox" id="engine_{{ categ|replace(' ', '_') }}_{{ search_engine.name|replace(' ', '_') }}" name="engine_{{ search_engine.name }}__{{ categ }}"{% if (search_engine.name, categ) in blocked_engines %} checked="checked"{% endif %} />
...@@ -113,7 +113,7 @@ ...@@ -113,7 +113,7 @@
</p> </p>
<input type="submit" value="{{ _('save') }}" /> <input type="submit" value="{{ _('save') }}" />
<div class="right preferences_back"><a href="{{ url_for('index') }}">{{ _('back') }}</a></div> <div class="{% if rtl %}left{% else %}right{% endif %} preferences_back"><a href="{{ url_for('index') }}">{{ _('back') }}</a></div>
</form> </form>
</div> </div>
{% endblock %} {% endblock %}
...@@ -72,7 +72,7 @@ ...@@ -72,7 +72,7 @@
<div id="pagination"> <div id="pagination">
{% if pageno > 1 %} {% if pageno > 1 %}
<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}"> <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
<div class="left"> <div class="{% if rtl %}right{% else %}left{% endif %}">
<input type="hidden" name="q" value="{{ q }}" /> <input type="hidden" name="q" value="{{ q }}" />
{% for category in selected_categories %} {% for category in selected_categories %}
<input type="hidden" name="category_{{ category }}" value="1"/> <input type="hidden" name="category_{{ category }}" value="1"/>
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
</form> </form>
{% endif %} {% endif %}
<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}"> <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}">
<div class="right"> <div class="{% if rtl %}left{% else %}right{% endif %}">
{% for category in selected_categories %} {% for category in selected_categories %}
<input type="hidden" name="category_{{ category }}" value="1"/> <input type="hidden" name="category_{{ category }}" value="1"/>
{% endfor %} {% endfor %}
......
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"{% if rtl %} dir="rtl"{% endif %}>
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<meta name="description" content="Searx - a privacy-respecting, hackable metasearch engine" /> <meta name="description" content="Searx - a privacy-respecting, hackable metasearch engine" />
......
<!-- used if scripts are disabled --> <!-- used if scripts are disabled -->
<noscript> <noscript>
<div id="categories" class="btn-group btn-toggle"> <div id="categories" class="btn-group btn-toggle">
{% if rtl %}
{% for category in categories | reverse %}
<!--<div class="checkbox">-->
<input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}_nojs" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} />
<label class="btn btn-sm btn-primary active label_hide_if_not_checked" for="checkbox_{{ category|replace(' ', '_') }}_nojs">{{ _(category) }}</label>
<label class="btn btn-sm btn-default label_hide_if_checked" for="checkbox_{{ category|replace(' ', '_') }}_nojs">{{ _(category) }}</label>
<!--</div>-->
{% if category in selected_categories %}<input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}_dis_activation" name="category_{{ category }}" value="off" checked="checked"/>{% endif %}
{% endfor %}
{% else %}
{% for category in categories %} {% for category in categories %}
<!--<div class="checkbox">--> <!--<div class="checkbox">-->
<input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}_nojs" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} /> <input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}_nojs" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} />
...@@ -9,14 +19,24 @@ ...@@ -9,14 +19,24 @@
<!--</div>--> <!--</div>-->
{% if category in selected_categories %}<input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}_dis_activation" name="category_{{ category }}" value="off" checked="checked"/>{% endif %} {% if category in selected_categories %}<input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}_dis_activation" name="category_{{ category }}" value="off" checked="checked"/>{% endif %}
{% endfor %} {% endfor %}
{% endif %}
</div> </div>
</noscript> </noscript>
<div id="categories" class="btn-group btn-toggle hide_if_nojs" data-toggle="buttons"> <div id="categories" class="btn-group btn-toggle hide_if_nojs" data-toggle="buttons">
{% if rtl %}
{% for category in categories | reverse %}
<label class="btn btn-sm {% if category in selected_categories %}btn-primary active{% else %}btn-default{% endif %}" data-btn-class="primary">
<input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} />{{ _(category) }}
</label>
{% endfor %}
{% else %}
{% for category in categories %} {% for category in categories %}
<label class="btn btn-sm {% if category in selected_categories %}btn-primary active{% else %}btn-default{% endif %}" data-btn-class="primary"> <label class="btn btn-sm {% if category in selected_categories %}btn-primary active{% else %}btn-default{% endif %}" data-btn-class="primary">
<input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} />{{ _(category) }}</label> <input class="hidden" type="checkbox" id="checkbox_{{ category|replace(' ', '_') }}" name="category_{{ category }}" {% if category in selected_categories %}checked="checked"{% endif %} />{{ _(category) }}
</label>
{% endfor %} {% endfor %}
{% endif %}
</div> </div>
...@@ -28,3 +28,34 @@ ...@@ -28,3 +28,34 @@
<span class="label label-default pull-right">{{ result.engine }}</span> <span class="label label-default pull-right">{{ result.engine }}</span>
<p class="text-muted">{{ result.pretty_url }}</p> <p class="text-muted">{{ result.pretty_url }}</p>
{%- endmacro %} {%- endmacro %}
<!-- Draw result footer -->
{% macro result_footer_rtl(result) -%}
<div class="clearfix"></div>
<span class="label label-default pull-left">{{ result.engine }}</span>
<p class="text-muted">{{ result.pretty_url }}</p>
{%- endmacro %}
{% macro preferences_item_header(info, label) -%}
{% if not rtl %}
<div class="row form-group">
<label class="col-sm-3 col-md-2">{{ label }}</label>
<div class="col-sm-4 col-md-4">
{% else %}
<div class="row form-group">
<span class="col-sm-5 col-md-6 help-block">{{ info }}</span>
<div class="col-sm-4 col-md-4">
{% endif %}
{%- endmacro %}
{% macro preferences_item_footer(info, label) -%}
{% if not rtl %}
</div>
<span class="col-sm-5 col-md-6 help-block">{{ info }}</span>
</div>
{% else %}
</div>
<label class="col-sm-3 col-md-2">{{ label }}</label>
</div>
{% endif %}
{%- endmacro %}
<!-- Static navbar --> <!-- Static navbar -->
<div class="navbar navbar-default" role="navigation"> <div class="navbar navbar-default" role="navigation">
<div class="container-fluid"> <div class="container-fluid">
{% if rtl %}
<div class="navbar-collapse collapse navbar-left">
<ul class="nav navbar-nav navbar-left"> <!-- results.html -->
<li{% if template_name == 'preferences.html' %} class="active"{% endif %}><a href="{{ url_for('preferences') }}" class="hmarg">{{ _('preferences') }}</a></li>
<li{% if template_name == 'about.html' %} class="active"{% endif %}><a href="{{ url_for('about') }}" class="hmarg">{{ _('about') }}</a></li>
<li{% if template_name == 'index.html' %} class="active"{% endif %}><a href="{{ url_for('index') }}" class="hmarg">{{ _('home') }}</a></li>
</ul>
</div>
<div class="navbar-header navbar-right">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">{{ _('Toggle navigation') }}</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="{{ url_for('index') }}">searx</a>
</div>
{% else %}
<div class="navbar-header"> <div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">{{ _('Toggle navigation') }}</span> <span class="sr-only">{{ _('Toggle navigation') }}</span>
...@@ -17,5 +35,6 @@ ...@@ -17,5 +35,6 @@
<li{% if template_name == 'preferences.html' %} class="active"{% endif %}><a href="{{ url_for('preferences') }}" class="hmarg">{{ _('preferences') }}</a></li> <li{% if template_name == 'preferences.html' %} class="active"{% endif %}><a href="{{ url_for('preferences') }}" class="hmarg">{{ _('preferences') }}</a></li>
</ul> </ul>
</div><!--/.nav-collapse --> </div><!--/.nav-collapse -->
{% endif %}
</div><!--/.container-fluid --> </div><!--/.container-fluid -->
</div> </div>
This diff is collapsed.
{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, icon %} {% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, result_footer_rtl, icon %}
{{ result_header(result, favicons) }} {{ result_header(result, favicons) }}
{{ result_sub_header(result) }} {{ result_sub_header(result) }}
...@@ -9,4 +9,8 @@ ...@@ -9,4 +9,8 @@
{{ result.codelines|code_highlighter(result.code_language)|safe }} {{ result.codelines|code_highlighter(result.code_language)|safe }}
{% if rtl %}
{{ result_footer_rtl(result) }}
{% else %}
{{ result_footer(result) }} {{ result_footer(result) }}
{% endif %}
{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, icon %} {% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, result_footer_rtl, icon %}
{{ result_header(result, favicons) }} {{ result_header(result, favicons) }}
{{ result_sub_header(result) }} {{ result_sub_header(result) }}
...@@ -15,4 +15,8 @@ ...@@ -15,4 +15,8 @@
{% if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif %} {% if result.content %}<p class="result-content">{{ result.content|safe }}</p>{% endif %}
{% if rtl %}
{{ result_footer_rtl(result) }}
{% else %}
{{ result_footer(result) }} {{ result_footer(result) }}
{% endif %}
{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, icon %} {% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, result_footer_rtl, icon %}
{{ result_header(result, favicons) }} {{ result_header(result, favicons) }}
{{ result_sub_header(result) }} {{ result_sub_header(result) }}
...@@ -65,4 +65,8 @@ ...@@ -65,4 +65,8 @@
</div> </div>
{% endif %} {% endif %}
{% if rtl %}
{{ result_footer_rtl(result) }}
{% else %}
{{ result_footer(result) }} {{ result_footer(result) }}
{% endif %}
{% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, icon %} {% from 'oscar/macros.html' import result_header, result_sub_header, result_footer, result_footer_rtl, icon %}
{{ result_header(result, favicons) }} {{ result_header(result, favicons) }}
{{ result_sub_header(result) }} {{ result_sub_header(result) }}
...@@ -18,4 +18,8 @@ ...@@ -18,4 +18,8 @@
</p> </p>
{% if rtl %}
{{ result_footer_rtl(result) }}
{% else %}
{{ result_footer(result) }} {{ result_footer(result) }}
{% endif %}
...@@ -20,4 +20,8 @@ ...@@ -20,4 +20,8 @@
</div> </div>
</div> </div>
{% if rtl %}
{{ result_footer_rtl(result) }}
{% else %}
{{ result_footer(result) }} {{ result_footer(result) }}
{% endif %}
...@@ -33,6 +33,27 @@ ...@@ -33,6 +33,27 @@
<div class="clearfix"></div> <div class="clearfix"></div>
{% if paging %} {% if paging %}
{% if rtl %}
<div id="pagination">
<div class="pull-left">
<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="pull-left">
<input type="hidden" name="q" value="{{ q }}" />
{% for category in selected_categories %}<input type="hidden" name="category_{{ category }}" value="1"/>{% endfor %}
<input type="hidden" name="q" value="{{ q }}" />
<input type="hidden" name="pageno" value="{{ pageno+1 }}" />
<button type="submit" class="btn btn-default"><span class="glyphicon glyphicon-backward"></span> {{ _('next page') }}</button>
</form>
</div>
<div class="pull-right">
<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="pull-left">
{% for category in selected_categories %}<input type="hidden" name="category_{{ category }}" value="1"/>{% endfor %}
<input type="hidden" name="pageno" value="{{ pageno-1 }}" />
<button type="submit" class="btn btn-default" {% if pageno == 1 %}disabled{% endif %}><span class="glyphicon glyphicon-forward"></span> {{ _('previous page') }}</button>
</form>
</div>
</div><!-- /#pagination -->
<div class="clearfix"></div>
{% else %}
<div id="pagination"> <div id="pagination">
<div class="pull-left"> <div class="pull-left">
<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="pull-left"> <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" class="pull-left">
...@@ -53,6 +74,7 @@ ...@@ -53,6 +74,7 @@
</div><!-- /#pagination --> </div><!-- /#pagination -->
<div class="clearfix"></div> <div class="clearfix"></div>
{% endif %} {% endif %}
{% endif %}
</div><!-- /#main_results --> </div><!-- /#main_results -->
<div class="col-sm-4" id="sidebar_results"> <div class="col-sm-4" id="sidebar_results">
......
{% from 'oscar/macros.html' import icon %} {% from 'oscar/macros.html' import icon %}
<form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" id="search_form" role="search"> <form method="{{ method or 'POST' }}" action="{{ url_for('index') }}" id="search_form" role="search">
{% if rtl %}
<div class="input-group">
{% else %}
<div class="input-group col-md-8 col-md-offset-2"> <div class="input-group col-md-8 col-md-offset-2">
{% endif %}
<input type="search" name="q" class="form-control input-lg autofocus" id="q" placeholder="{{ _('Search for...') }}" autocomplete="off" value="{{ q }}"> <input type="search" name="q" class="form-control input-lg autofocus" id="q" placeholder="{{ _('Search for...') }}" autocomplete="off" value="{{ q }}">
<span class="input-group-btn"> <span class="input-group-btn">
<button type="submit" class="btn btn-default input-lg"><span class="hide_if_nojs">{{ icon('search') }}</span><span class="hidden active_if_nojs">{{ _('Start search') }}</span></button> <button type="submit" class="btn btn-default input-lg"><span class="hide_if_nojs">{{ icon('search') }}</span><span class="hidden active_if_nojs">{{ _('Start search') }}</span></button>
......
...@@ -20,7 +20,7 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >. ...@@ -20,7 +20,7 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
if __name__ == '__main__': if __name__ == '__main__':
from sys import path from sys import path
from os.path import realpath, dirname from os.path import realpath, dirname
path.append(realpath(dirname(realpath(__file__))+'/../')) path.append(realpath(dirname(realpath(__file__)) + '/../'))
import json import json
import cStringIO import cStringIO
...@@ -85,10 +85,13 @@ app.secret_key = settings['server']['secret_key'] ...@@ -85,10 +85,13 @@ app.secret_key = settings['server']['secret_key']
babel = Babel(app) babel = Babel(app)
rtl_locales = ['ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk', 'he',
'ku', 'mzn', 'pnb'', ''ps', 'sd', 'ug', 'ur', 'yi']
global_favicons = [] global_favicons = []
for indice, theme in enumerate(themes): for indice, theme in enumerate(themes):
global_favicons.append([]) global_favicons.append([])
theme_img_path = searx_dir+"/static/themes/"+theme+"/img/icons/" theme_img_path = searx_dir + "/static/themes/" + theme + "/img/icons/"
for (dirpath, dirnames, filenames) in os.walk(theme_img_path): for (dirpath, dirnames, filenames) in os.walk(theme_img_path):
global_favicons[indice].extend(filenames) global_favicons[indice].extend(filenames)
...@@ -262,6 +265,9 @@ def render(template_name, override_theme=None, **kwargs): ...@@ -262,6 +265,9 @@ def render(template_name, override_theme=None, **kwargs):
if 'autocomplete' not in kwargs: if 'autocomplete' not in kwargs:
kwargs['autocomplete'] = autocomplete kwargs['autocomplete'] = autocomplete
if get_locale() in rtl_locales and 'rtl' not in kwargs:
kwargs['rtl'] = True
kwargs['searx_version'] = VERSION_STRING kwargs['searx_version'] = VERSION_STRING
kwargs['method'] = request.cookies.get('method', 'POST') kwargs['method'] = request.cookies.get('method', 'POST')
...@@ -396,6 +402,7 @@ def about(): ...@@ -396,6 +402,7 @@ def about():
"""Render about page""" """Render about page"""
return render( return render(
'about.html', 'about.html',
rtl=False,
) )
...@@ -592,7 +599,7 @@ def image_proxy(): ...@@ -592,7 +599,7 @@ def image_proxy():
img = '' img = ''
chunk_counter = 0 chunk_counter = 0
for chunk in resp.iter_content(1024*1024): for chunk in resp.iter_content(1024 * 1024):
chunk_counter += 1 chunk_counter += 1
if chunk_counter > 5: if chunk_counter > 5:
return '', 502 # Bad gateway - file is too big (>5M) return '', 502 # Bad gateway - file is too big (>5M)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment