mirror of
https://github.com/wallabag/wallabag.git
synced 2024-06-03 05:49:22 +00:00
445 lines
27 KiB
Twig
445 lines
27 KiB
Twig
{% extends "WallabagCoreBundle::layout.html.twig" %}
|
||
|
||
{% block title %}{{ 'config.page_title'|trans }}{% endblock %}
|
||
|
||
{% block content %}
|
||
|
||
<div class="row">
|
||
<div class="col s12">
|
||
<div class="card-panel settings">
|
||
|
||
<div class="row">
|
||
<div class="div_tabs col s12">
|
||
<ul class="tabs">
|
||
<li class="tab col s12 m6 l3"><a class="active" href="#set1">{{ 'config.tab_menu.settings'|trans }}</a></li>
|
||
<li class="tab col s12 m6 l3"><a href="#set2">{{ 'config.tab_menu.feed'|trans }}</a></li>
|
||
<li class="tab col s12 m6 l3"><a href="#set3">{{ 'config.tab_menu.user_info'|trans }}</a></li>
|
||
<li class="tab col s12 m6 l3"><a href="#set4">{{ 'config.tab_menu.password'|trans }}</a></li>
|
||
<li class="tab col s12 m6 l3"><a href="#set5">{{ 'config.tab_menu.rules'|trans }}</a></li>
|
||
<li class="tab col s12 m6 l3"><a href="#set6">{{ 'config.tab_menu.reset'|trans }}</a></li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div id="set1" class="col s12">
|
||
{{ form_start(form.config) }}
|
||
{{ form_errors(form.config) }}
|
||
|
||
<div class="row">
|
||
<div class="input-field col s11">
|
||
{{ form_errors(form.config.theme) }}
|
||
{{ form_widget(form.config.theme) }}
|
||
{{ form_label(form.config.theme) }}
|
||
</div>
|
||
<div class="input-field col s1">
|
||
<a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_theme'|trans }}">
|
||
<i class="material-icons">live_help</i>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row">
|
||
<div class="input-field col s11">
|
||
{{ form_errors(form.config.items_per_page) }}
|
||
{{ form_widget(form.config.items_per_page) }}
|
||
{{ form_label(form.config.items_per_page) }}
|
||
</div>
|
||
<div class="input-field col s1">
|
||
<a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_items_per_page'|trans }}">
|
||
<i class="material-icons">live_help</i>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row">
|
||
<div class="input-field col s11">
|
||
{{ form_errors(form.config.reading_speed) }}
|
||
{{ form_widget(form.config.reading_speed) }}
|
||
{{ form_label(form.config.reading_speed) }}
|
||
<p>
|
||
{{ 'config.form_settings.reading_speed.help_message'|trans }}
|
||
<a href="http://www.myreadspeed.com/calculate/">myreadspeed</a>
|
||
</p>
|
||
</div>
|
||
<div class="input-field col s1">
|
||
<a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_reading_speed'|trans }}">
|
||
<i class="material-icons">live_help</i>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row">
|
||
<div class="input-field col s12">
|
||
{{ form_errors(form.config.action_mark_as_read) }}
|
||
{{ form_widget(form.config.action_mark_as_read) }}
|
||
{{ form_label(form.config.action_mark_as_read) }}
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row">
|
||
<div class="input-field col s11">
|
||
{{ form_errors(form.config.language) }}
|
||
{{ form_widget(form.config.language) }}
|
||
{{ form_label(form.config.language) }}
|
||
</div>
|
||
<div class="input-field col s1">
|
||
<a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_language'|trans }}">
|
||
<i class="material-icons">live_help</i>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row">
|
||
<div class="input-field col s11">
|
||
{{ form_errors(form.config.pocket_consumer_key) }}
|
||
{{ form_widget(form.config.pocket_consumer_key) }}
|
||
{{ form_label(form.config.pocket_consumer_key) }}
|
||
<p>
|
||
»
|
||
<a href="https://getpocket.com/developer/docs/authentication">https://getpocket.com/developer/docs/authentication</a>
|
||
</p>
|
||
</div>
|
||
<div class="input-field col s1">
|
||
<a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_pocket_consumer_key'|trans }}">
|
||
<i class="material-icons">live_help</i>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row">
|
||
<div class="input-field col s12">
|
||
<h5>{{ 'config.form_settings.android_configuration'|trans }}</h5>
|
||
<a href="wallabag://{{ app.user.username }}@{{ wallabag_url }}" class="waves-effect waves-light btn hide-on-large-only">{{ 'config.form_settings.android_instruction' | trans }}</a>
|
||
<img id="androidQrcode" class="hide-on-med-and-down" />
|
||
</div>
|
||
<script>
|
||
document.getElementById('androidQrcode').src = jrQrcode.getQrBase64('wallabag://{{ app.user.username }}@{{ wallabag_url }}');
|
||
</script>
|
||
</div>
|
||
|
||
{{ form_widget(form.config.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
|
||
{{ form_rest(form.config) }}
|
||
</form>
|
||
</div>
|
||
|
||
<div id="set2" class="col s12">
|
||
{{ form_start(form.feed) }}
|
||
{{ form_errors(form.feed) }}
|
||
|
||
<div class="row">
|
||
<div class="input-field col s12">
|
||
{{ 'config.form_feed.description'|trans }}
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row">
|
||
<div class="col s12">
|
||
<h6 class="grey-text">{{ 'config.form_feed.token_label'|trans }}</h6>
|
||
<div>
|
||
{% if feed.token %}
|
||
{{ feed.token }}
|
||
{% else %}
|
||
<em>{{ 'config.form_feed.no_token'|trans }}</em>
|
||
{% endif %}
|
||
– <a href="{{ path('generate_token') }}">
|
||
{% if feed.token %}
|
||
{{ 'config.form_feed.token_reset'|trans }}
|
||
{% else %}
|
||
{{ 'config.form_feed.token_create'|trans }}
|
||
{% endif %}</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{% if feed.token %}
|
||
<div class="row">
|
||
<div class="col s12">
|
||
<h6 class="grey-text">{{ 'config.form_feed.feed_links'|trans }}</h6>
|
||
<ul>
|
||
<li><a href="{{ path('unread_feed', {'username': feed.username, 'token': feed.token}) }}">{{ 'config.form_feed.feed_link.unread'|trans }}</a></li>
|
||
<li><a href="{{ path('starred_feed', {'username': feed.username, 'token': feed.token}) }}">{{ 'config.form_feed.feed_link.starred'|trans }}</a></li>
|
||
<li><a href="{{ path('archive_feed', {'username': feed.username, 'token': feed.token}) }}">{{ 'config.form_feed.feed_link.archive'|trans }}</a></li>
|
||
<li><a href="{{ path('all_feed', {'username': feed.username, 'token': feed.token}) }}">{{ 'config.form_feed.feed_link.all'|trans }}</a></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
{% endif %}
|
||
|
||
<div class="row">
|
||
<div class="input-field col s12">
|
||
{{ form_label(form.feed.feed_limit) }}
|
||
{{ form_errors(form.feed.feed_limit) }}
|
||
{{ form_widget(form.feed.feed_limit) }}
|
||
</div>
|
||
</div>
|
||
|
||
{{ form_widget(form.feed.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
|
||
{{ form_rest(form.feed) }}
|
||
</form>
|
||
</div>
|
||
|
||
<div id="set3" class="col s12">
|
||
{{ form_start(form.user) }}
|
||
{{ form_errors(form.user) }}
|
||
|
||
<div class="row">
|
||
<div class="input-field col s12">
|
||
{{ form_label(form.user.name) }}
|
||
{{ form_errors(form.user.name) }}
|
||
{{ form_widget(form.user.name) }}
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row">
|
||
<div class="input-field col s12">
|
||
{{ form_label(form.user.email) }}
|
||
{{ form_errors(form.user.email) }}
|
||
{{ form_widget(form.user.email) }}
|
||
</div>
|
||
</div>
|
||
|
||
{{ form_widget(form.user.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
|
||
|
||
{% if twofactor_auth %}
|
||
<br/>
|
||
<br/>
|
||
<div class="row">
|
||
<h5>{{ 'config.otp.page_title'|trans }}</h5>
|
||
|
||
<p>{{ 'config.form_user.two_factor_description'|trans }}</p>
|
||
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>{{ 'config.form_user.two_factor.table_method'|trans }}</th>
|
||
<th>{{ 'config.form_user.two_factor.table_state'|trans }}</th>
|
||
<th>{{ 'config.form_user.two_factor.table_action'|trans }}</th>
|
||
</tr>
|
||
</thead>
|
||
|
||
<tbody>
|
||
<tr>
|
||
<td>{{ 'config.form_user.two_factor.emailTwoFactor_label'|trans }}</td>
|
||
<td>{% if app.user.isEmailTwoFactor %}<b>{{ 'config.form_user.two_factor.state_enabled'|trans }}</b>{% else %}{{ 'config.form_user.two_factor.state_disabled'|trans }}{% endif %}</td>
|
||
<td><a href="{{ path('config_otp_email') }}" class="waves-effect waves-light btn{% if app.user.isEmailTwoFactor %} disabled{% endif %}">{{ 'config.form_user.two_factor.action_email'|trans }}</a></td>
|
||
</tr>
|
||
<tr>
|
||
<td>{{ 'config.form_user.two_factor.googleTwoFactor_label'|trans }}</td>
|
||
<td>{% if app.user.isGoogleTwoFactor %}<b>{{ 'config.form_user.two_factor.state_enabled'|trans }}</b>{% else %}{{ 'config.form_user.two_factor.state_disabled'|trans }}{% endif %}</td>
|
||
<td><a href="{{ path('config_otp_app') }}" class="waves-effect waves-light btn{% if app.user.isGoogleTwoFactor %} disabled{% endif %}">{{ 'config.form_user.two_factor.action_app'|trans }}</a></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
{% endif %}
|
||
{{ form_widget(form.user._token) }}
|
||
</form>
|
||
</div>
|
||
|
||
<div id="set4" class="col s12">
|
||
{{ form_start(form.pwd) }}
|
||
{{ form_errors(form.pwd) }}
|
||
|
||
<div class="row">
|
||
<div class="input-field col s12">
|
||
{{ 'config.form_password.description'|trans }}
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row">
|
||
<div class="input-field col s12">
|
||
{{ form_label(form.pwd.old_password) }}
|
||
{{ form_errors(form.pwd.old_password) }}
|
||
{{ form_widget(form.pwd.old_password) }}
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row">
|
||
<div class="input-field col s12">
|
||
{{ form_label(form.pwd.new_password.first) }}
|
||
{{ form_errors(form.pwd.new_password.first) }}
|
||
{{ form_widget(form.pwd.new_password.first) }}
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row">
|
||
<div class="input-field col s12">
|
||
{{ form_label(form.pwd.new_password.second) }}
|
||
{{ form_errors(form.pwd.new_password.second) }}
|
||
{{ form_widget(form.pwd.new_password.second) }}
|
||
</div>
|
||
</div>
|
||
|
||
{{ form_widget(form.pwd.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
|
||
{{ form_rest(form.pwd) }}
|
||
</form>
|
||
</div>
|
||
|
||
<div id="set5" class="col s12">
|
||
{% if app.user.config.taggingRules is not empty %}
|
||
<div class="row">
|
||
<div class="input-field col s12">
|
||
<ul>
|
||
{% for tagging_rule in app.user.config.taggingRules %}
|
||
<li>
|
||
{{ 'config.form_rules.if_label'|trans }}
|
||
« {{ tagging_rule.rule }} »
|
||
{{ 'config.form_rules.then_tag_as_label'|trans }}
|
||
« {{ tagging_rule.tags|join(', ') }} »
|
||
<a href="{{ path('edit_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.edit_rule_label'|trans }}">
|
||
<i class="tool grey-text mode_edit material-icons">mode_edit</i>
|
||
</a>
|
||
<a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.delete_rule_label'|trans }}">
|
||
<i class="tool grey-text delete material-icons">delete</i>
|
||
</a>
|
||
</li>
|
||
{% endfor %}
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
{% endif %}
|
||
|
||
{{ form_start(form.new_tagging_rule) }}
|
||
{{ form_errors(form.new_tagging_rule) }}
|
||
|
||
<div class="row">
|
||
<div class="input-field col s12">
|
||
{{ form_label(form.new_tagging_rule.rule) }}
|
||
{{ form_errors(form.new_tagging_rule.rule) }}
|
||
{{ form_widget(form.new_tagging_rule.rule) }}
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row">
|
||
<div class="input-field col s12">
|
||
{{ form_label(form.new_tagging_rule.tags) }}
|
||
{{ form_errors(form.new_tagging_rule.tags) }}
|
||
{{ form_widget(form.new_tagging_rule.tags) }}
|
||
</div>
|
||
</div>
|
||
|
||
{{ form_widget(form.new_tagging_rule.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
|
||
{{ form_rest(form.new_tagging_rule) }}
|
||
</form>
|
||
|
||
<div class="row">
|
||
<div class="input-field col s12">
|
||
<h4>{{ 'config.form_rules.faq.title'|trans }}</h4>
|
||
|
||
<h5>{{ 'config.form_rules.faq.tagging_rules_definition_title'|trans }}</h5>
|
||
<p class="help">{{ 'config.form_rules.faq.tagging_rules_definition_description'|trans|raw }}</p>
|
||
|
||
<h5>{{ 'config.form_rules.faq.how_to_use_them_title'|trans }}</h5>
|
||
<p class="help">{{ 'config.form_rules.faq.how_to_use_them_description'|trans|raw }}</p>
|
||
|
||
<h5>{{ 'config.form_rules.faq.variables_available_title'|trans }}</h5>
|
||
<p class="help">
|
||
{{ 'config.form_rules.faq.variables_available_description'|trans }}
|
||
</p>
|
||
|
||
<table class="bordered">
|
||
<thead>
|
||
<tr>
|
||
<th>{{ 'config.form_rules.faq.variable_description.label'|trans }}</th>
|
||
<th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
|
||
<th>{{ 'config.form_rules.faq.operator_description.label'|trans }}</th>
|
||
<th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
|
||
</tr>
|
||
</thead>
|
||
|
||
<tbody>
|
||
<tr>
|
||
<td>title</td>
|
||
<td>{{ 'config.form_rules.faq.variable_description.title'|trans }}</td>
|
||
<td><=</td>
|
||
<td>{{ 'config.form_rules.faq.operator_description.less_than'|trans }}</td>
|
||
</tr>
|
||
<tr>
|
||
<td>url</td>
|
||
<td>{{ 'config.form_rules.faq.variable_description.url'|trans }}</td>
|
||
<td><</td>
|
||
<td>{{ 'config.form_rules.faq.operator_description.strictly_less_than'|trans }}</td>
|
||
</tr>
|
||
<tr>
|
||
<td>isArchived</td>
|
||
<td>{{ 'config.form_rules.faq.variable_description.isArchived'|trans }}</td>
|
||
<td>>=</td>
|
||
<td>{{ 'config.form_rules.faq.operator_description.greater_than'|trans }}</td>
|
||
</tr>
|
||
<tr>
|
||
<td>isStarred</td>
|
||
<td>{{ 'config.form_rules.faq.variable_description.isStarred'|trans }}</td>
|
||
<td>></td>
|
||
<td>{{ 'config.form_rules.faq.operator_description.strictly_greater_than'|trans }}</td>
|
||
</tr>
|
||
<tr>
|
||
<td>content</td>
|
||
<td>{{ 'config.form_rules.faq.variable_description.content'|trans }}</td>
|
||
<td>=</td>
|
||
<td>{{ 'config.form_rules.faq.operator_description.equal_to'|trans }}</td>
|
||
</tr>
|
||
<tr>
|
||
<td>language</td>
|
||
<td>{{ 'config.form_rules.faq.variable_description.language'|trans }}</td>
|
||
<td>!=</td>
|
||
<td>{{ 'config.form_rules.faq.operator_description.not_equal_to'|trans }}</td>
|
||
</tr>
|
||
<tr>
|
||
<td>mimetype</td>
|
||
<td>{{ 'config.form_rules.faq.variable_description.mimetype'|trans }}</td>
|
||
<td>OR</td>
|
||
<td>{{ 'config.form_rules.faq.operator_description.or'|trans }}</td>
|
||
</tr>
|
||
<tr>
|
||
<td>readingTime</td>
|
||
<td>{{ 'config.form_rules.faq.variable_description.readingTime'|trans }}</td>
|
||
<td>AND</td>
|
||
<td>{{ 'config.form_rules.faq.operator_description.and'|trans }}</td>
|
||
</tr>
|
||
<tr>
|
||
<td>domainName</td>
|
||
<td>{{ 'config.form_rules.faq.variable_description.domainName'|trans }}</td>
|
||
<td>matches<br />notmaches</td>
|
||
<td>{{ 'config.form_rules.faq.operator_description.matches'|trans|raw }}<br />{{ 'config.form_rules.faq.operator_description.notmatches'|trans|raw }}</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="set6" class="col s12">
|
||
<div class="row">
|
||
<h5>{{ 'config.reset.title'|trans }}</h5>
|
||
<p>{{ 'config.reset.description'|trans }}</p>
|
||
<a href="{{ path('config_reset', { type: 'annotations'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
|
||
{{ 'config.reset.annotations'|trans }}
|
||
</a>
|
||
<a href="{{ path('config_reset', { type: 'tags'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
|
||
{{ 'config.reset.tags'|trans }}
|
||
</a>
|
||
<a href="{{ path('config_reset', { type: 'archived'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
|
||
{{ 'config.reset.archived'|trans }}
|
||
</a>
|
||
<a href="{{ path('config_reset', { type: 'entries'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
|
||
{{ 'config.reset.entries'|trans }}
|
||
</a>
|
||
</div>
|
||
|
||
{% if enabled_users > 1 %}
|
||
<br /><hr /><br />
|
||
|
||
<div class="row">
|
||
<h5>{{ 'config.form_user.delete.title'|trans }}</h5>
|
||
<p>{{ 'config.form_user.delete.description'|trans }}</p>
|
||
<a href="{{ path('delete_account') }}" onclick="return confirm('{{ 'config.form_user.delete.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red delete-account">
|
||
{{ 'config.form_user.delete.button'|trans }}
|
||
</a>
|
||
</div>
|
||
{% endif %}
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{% endblock %}
|