wallabag/templates/layout.html.twig
2024-03-22 10:27:46 +01:00

195 lines
11 KiB
Twig
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{% extends "base.html.twig" %}
{% block css %}
{{ parent() }}
{% if not app.debug %}
<link rel="stylesheet" href="{{ asset('wallassets/material.css') }}">
{% endif %}
{% endblock %}
{% block scripts %}
{{ parent() }}
<script src="{{ asset('wallassets/material' ~ (app.debug ? '.dev' : '') ~ '.js') }}"></script>
{% endblock %}
{% block header %}
{% endblock %}
{% block messages %}
{% for flash_message in app.session.flashbag.get('notice') %}
<script>
Materialize.toast('{{ flash_message|trans }}', 4000);
</script>
{% endfor %}
{% endblock %}
{% block body_class %}index{% endblock %}
{% block menu %}
<nav class="cyan darken-1">
<ul id="slide-out" class="left-bar side-nav fixed">
{% block logo %}
<li class="logo border-bottom">
<a title="{{ 'menu.left.back_to_unread'|trans }}" href="{{ path('unread') }}">
<img src="{{ asset('img/logo-square.svg') }}" alt="wallabag logo" />
</a>
</li>
{% endblock %}
{% set current_route = app.request.attributes.get('_route') %}
{% set current_route_from_query_params = app.request.query.get('currentRoute') %}
{% set active_route = null %}
{% if current_route == 'all' or current_route_from_query_params == 'all' %}
{% set active_route = 'all' %}
{% elseif current_route == 'annotated' or current_route_from_query_params == 'annotated' %}
{% set active_route = 'annotated' %}
{% elseif current_route == 'archive' or current_route_from_query_params == 'archive' %}
{% set active_route = 'archive' %}
{% elseif current_route == 'starred' or current_route_from_query_params == 'starred' %}
{% set active_route = 'starred' %}
{% elseif current_route == 'unread' or current_route == 'homepage' or current_route_from_query_params == 'unread' %}
{% set active_route = 'unread' %}
{% elseif current_route == 'untagged' %}
{% set active_route = 'untagged' %}
{% endif %}
<li class="bold {% if active_route == 'unread' %}active{% endif %}">
<a class="waves-effect" href="{{ path('unread') }}">{{ 'menu.left.unread'|trans }} <span class="items-number grey-text">{{ count_entries('unread') }}</span></a>
</li>
<li class="bold {% if active_route == 'starred' %}active{% endif %}">
<a class="waves-effect" href="{{ path('starred') }}">{{ 'menu.left.starred'|trans }} <span class="items-number grey-text">{{ count_entries('starred') }}</span></a>
</li>
<li class="bold {% if active_route == 'archive' %}active{% endif %}">
<a class="waves-effect" href="{{ path('archive') }}">{{ 'menu.left.archive'|trans }} <span class="items-number grey-text">{{ count_entries('archive') }}</span></a>
</li>
<li class="bold {% if active_route == 'annotated' %}active{% endif %}">
<a class="waves-effect" href="{{ path('annotated') }}">{{ 'menu.left.with_annotations'|trans }} <span class="items-number grey-text">{{ count_entries('annotated') }}</span></a>
</li>
<li class="bold {% if active_route == 'all' %}active{% endif %}">
<a class="waves-effect" href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }} <span class="items-number grey-text">{{ count_entries('all') }}</span></a>
</li>
<li class="bold {% if current_route == 'tags' %}active{% endif %}">
<a class="waves-effect" href="{{ path('tag') }}">{{ 'menu.left.tags'|trans }} <span class="items-number grey-text">{{ count_tags() }}</span></a>
</li>
</ul>
<div class="nav-panels">
<div class="nav-panel-actions nav-panel-item">
<div class="nav-panel-top">
<button data-activates="slide-out" class="nav-panel-menu button-collapse"><i class="material-icons">menu</i></button>
<h1 class="left action">
{% block title %}
{% endblock %}
</h1>
</div>
<ul class="input-field nav-panel-buttom">
<li class="bold toggle-add-url-container">
<a class="waves-effect tooltipped toggle-add-url" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.add_new_entry'|trans }}" href="{{ path('new') }}" id="nav-btn-add">
<i class="material-icons">add</i>
</a>
</li>
<li>
<a class="waves-effect tooltipped" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.search'|trans }}" href="javascript: void(null);" id="nav-btn-search">
<i class="material-icons">search</i>
</a>
</li>
{% if active_route %}
<li id="button_random">
<a class="waves-effect tooltipped js-random-action" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.random_entry'|trans }}" href="{{ path('random_entry', {'type': active_route}) }}">
<i class="material-icons">casino</i>
</a>
</li>
{% endif %}
<li id="button_filters" class="button-filters">
<a class="nav-panel-menu button-collapse-right tooltipped js-filters-action" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.filter_entries'|trans }}" href="#" data-activates="filters">
<i class="material-icons">filter_list</i>
</a>
</li>
<li id="button_export" class="button-export">
<a class="nav-panel-menu button-collapse-right tooltipped js-export-action" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.export'|trans }}" href="#" data-activates="export">
<i class="material-icons">file_download</i>
</a>
</li>
<li class="bold">
<a class="wave-effect tooltipped dropdown-button" data-beloworigin="true" data-constrainwidth="false" data-activates="dropdown-account" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.account'|trans }}" href="#" id="news_menu">
<i class="material-icons" id="news_link">account_circle</i>
</a>
</li>
</ul>
<ul id="dropdown-account" class="dropdown-content">
<li><a href="{{ path('config') }}"><i class="material-icons">settings</i> {{ 'menu.left.config'|trans }}</a></li>
<li><a href="{{ path('developer') }}"><i class="material-icons">smartphone</i> {{ 'menu.left.developer'|trans }}</a></li>
<li><a href="{{ path('import') }}"><i class="material-icons">import_export</i> {{ 'menu.left.import'|trans }}</a></li>
{% if craue_setting('restricted_access') %}
<li><a href="{{ path('site_credentials_index') }}"><i class="material-icons">vpn_key</i> {{ 'menu.left.site_credentials'|trans }}</a></li>
{% endif %}
<li class="divider"></li>
{% set can_list_user = is_granted('LIST_USERS') %}
{% set is_super_admin = is_granted('ROLE_SUPER_ADMIN') %}
{% set can_list_ignore_origin_instance_rules = is_granted('LIST_IGNORE_ORIGIN_INSTANCE_RULES') %}
{% if can_list_user %}
<li><a href="{{ path('user_index') }}"><i class="material-icons">people</i>{{ 'menu.left.users_management'|trans }}</a></li>
{% endif %}
{% if is_super_admin %}
<li><a href="{{ path('craue_config_settings_modify') }}"><i class="material-icons">settings</i> {{ 'menu.left.internal_settings'|trans }}</a></li>
{% endif %}
{% if can_list_ignore_origin_instance_rules %}
<li><a href="{{ path('ignore_origin_instance_rules_index') }}"><i class="material-icons">build</i> {{ 'menu.left.ignore_origin_instance_rules'|trans }}</a></li>
{% endif %}
{% if can_list_user or is_super_admin or can_list_ignore_origin_instance_rules %}
<li class="divider"></li>
{% endif %}
<li>
<a href="#" class="js-theme-toggle" data-theme="light">
<i class="theme-toggle-icon material-icons tiny">brightness_high</i>
<span>{{ 'menu.left.theme_toggle_light'|trans }}</span>
</a>
</li>
<li>
<a href="#" class="js-theme-toggle" data-theme="dark">
<i class="theme-toggle-icon material-icons tiny">brightness_low</i>
<span>{{ 'menu.left.theme_toggle_dark'|trans }}</span>
</a>
</li>
<li>
<a href="#" class="js-theme-toggle" data-theme="auto">
<i class="theme-toggle-icon material-icons tiny">brightness_auto</i>
<span>{{ 'menu.left.theme_toggle_auto'|trans }}</span>
</a>
</li>
<li class="divider"></li>
<li><a href="{{ path('howto') }}"><i class="material-icons">live_help</i> {{ 'menu.left.howto'|trans }}</a></li>
<li><a href="{{ path('quickstart') }}"><i class="material-icons">assistant_photo</i> {{ 'menu.left.quickstart'|trans }}</a></li>
<li class="divider"></li>
<li><a href="{{ path('fos_user_security_logout') }}"><i class="material-icons">input</i> {{ 'menu.left.logout'|trans }}</a></li>
</ul>
</div>
{{ render(controller('Wallabag\\Controller\\EntryController::searchFormAction', {'currentRoute': current_route})) }}
{{ render(controller('Wallabag\\Controller\\EntryController::addEntryFormAction')) }}
</div>
</nav>
{% endblock %}
{% block footer %}
<footer class="page-footer cyan darken-2">
<div class="footer-copyright">
<div class="container">
<div class="row">
<div class="col m12 l8">
<p class="footer-text">
{{ display_stats() }}
</p>
</div>
<div class="col s12 l4">
<p class="footer-text">
{{ 'footer.wallabag.powered_by'|trans }} <a target="_blank" rel="noopener" href="https://wallabag.org" class="grey-text text-lighten-4">wallabag</a>
<a class="grey-text text-lighten-4" href="{{ path('about') }}">{{ 'footer.wallabag.about'|trans|lower }}</a>
</p>
</div>
</div>
</div>
</div>
</footer>
{% endblock %}