1
0
Fork 0
mirror of https://github.com/wallabag/wallabag.git synced 2025-08-26 18:21:02 +00:00

Merge pull request #7268 from yguedidi/move-templates

Move templates
This commit is contained in:
Yassine Guedidi 2024-02-19 12:21:29 +01:00 committed by GitHub
commit ca587fb6b6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
90 changed files with 119 additions and 118 deletions

View file

@ -26,7 +26,7 @@ class DeveloperController extends AbstractController
{
$clients = $repo->findByUser($this->getUser()->getId());
return $this->render('@WallabagCore/Developer/index.html.twig', [
return $this->render('Developer/index.html.twig', [
'clients' => $clients,
]);
}
@ -54,14 +54,14 @@ class DeveloperController extends AbstractController
$translator->trans('flashes.developer.notice.client_created', ['%name%' => $client->getName()])
);
return $this->render('@WallabagCore/Developer/client_parameters.html.twig', [
return $this->render('Developer/client_parameters.html.twig', [
'client_id' => $client->getPublicId(),
'client_secret' => $client->getSecret(),
'client_name' => $client->getName(),
]);
}
return $this->render('@WallabagCore/Developer/client.html.twig', [
return $this->render('Developer/client.html.twig', [
'form' => $clientForm->createView(),
]);
}
@ -103,7 +103,7 @@ class DeveloperController extends AbstractController
*/
public function howtoFirstAppAction()
{
return $this->render('@WallabagCore/Developer/howto_app.html.twig', [
return $this->render('Developer/howto_app.html.twig', [
'wallabag_url' => $this->getParameter('domain_name'),
]);
}

View file

@ -243,7 +243,7 @@ class ConfigController extends AbstractController
return $this->redirect($this->generateUrl('config') . '#set6');
}
return $this->render('@WallabagCore/Config/index.html.twig', [
return $this->render('Config/index.html.twig', [
'form' => [
'config' => $configForm->createView(),
'feed' => $feedForm->createView(),
@ -373,7 +373,7 @@ class ConfigController extends AbstractController
'flashes.config.notice.otp_enabled'
);
return $this->render('@WallabagCore/Config/otp_app.html.twig', [
return $this->render('Config/otp_app.html.twig', [
'backupCodes' => $backupCodes,
'qr_code' => $googleAuthenticator->getQRContent($user),
'secret' => $secret,

View file

@ -156,7 +156,7 @@ class EntryController extends AbstractController
return $this->showEntries('search', $request, $page);
}
return $this->render('@WallabagCore/Entry/search_form.html.twig', [
return $this->render('Entry/search_form.html.twig', [
'form' => $form->createView(),
'currentRoute' => $currentRoute,
]);
@ -198,7 +198,7 @@ class EntryController extends AbstractController
return $this->redirect($this->generateUrl('homepage'));
}
return $this->render('@WallabagCore/Entry/new_form.html.twig', [
return $this->render('Entry/new_form.html.twig', [
'form' => $form->createView(),
]);
}
@ -233,7 +233,7 @@ class EntryController extends AbstractController
*/
public function addEntryAction()
{
return $this->render('@WallabagCore/Entry/new.html.twig');
return $this->render('Entry/new.html.twig');
}
/**
@ -263,7 +263,7 @@ class EntryController extends AbstractController
return $this->redirect($this->generateUrl('view', ['id' => $entry->getId()]));
}
return $this->render('@WallabagCore/Entry/edit.html.twig', [
return $this->render('Entry/edit.html.twig', [
'form' => $form->createView(),
]);
}
@ -390,7 +390,7 @@ class EntryController extends AbstractController
$this->checkUserAction($entry);
return $this->render(
'@WallabagCore/Entry/entry.html.twig',
'Entry/entry.html.twig',
['entry' => $entry]
);
}
@ -581,7 +581,7 @@ class EntryController extends AbstractController
}
return $this->render(
'@WallabagCore/Entry/share.html.twig',
'Entry/share.html.twig',
['entry' => $entry]
);
}
@ -671,7 +671,7 @@ class EntryController extends AbstractController
}
return $this->render(
'@WallabagCore/Entry/entries.html.twig', [
'Entry/entries.html.twig', [
'form' => $form->createView(),
'entries' => $entries,
'currentPage' => $page,

View file

@ -144,7 +144,7 @@ class FeedController extends AbstractController
}
return $this->render(
'@WallabagCore/Entry/entries.xml.twig',
'Entry/entries.xml.twig',
[
'type' => 'tag',
'url' => $url,
@ -226,7 +226,7 @@ class FeedController extends AbstractController
}
}
return $this->render('@WallabagCore/Entry/entries.xml.twig', [
return $this->render('Entry/entries.xml.twig', [
'type' => $type,
'url' => $url,
'entries' => $entries,

View file

@ -39,7 +39,7 @@ class IgnoreOriginInstanceRuleController extends AbstractController
{
$rules = $repository->findAll();
return $this->render('@WallabagCore/IgnoreOriginInstanceRule/index.html.twig', [
return $this->render('IgnoreOriginInstanceRule/index.html.twig', [
'rules' => $rules,
]);
}
@ -70,7 +70,7 @@ class IgnoreOriginInstanceRuleController extends AbstractController
return $this->redirectToRoute('ignore_origin_instance_rules_index');
}
return $this->render('@WallabagCore/IgnoreOriginInstanceRule/new.html.twig', [
return $this->render('IgnoreOriginInstanceRule/new.html.twig', [
'rule' => $ignoreOriginInstanceRule,
'form' => $form->createView(),
]);
@ -101,7 +101,7 @@ class IgnoreOriginInstanceRuleController extends AbstractController
return $this->redirectToRoute('ignore_origin_instance_rules_index');
}
return $this->render('@WallabagCore/IgnoreOriginInstanceRule/edit.html.twig', [
return $this->render('IgnoreOriginInstanceRule/edit.html.twig', [
'rule' => $ignoreOriginInstanceRule,
'edit_form' => $editForm->createView(),
'delete_form' => $deleteForm->createView(),

View file

@ -46,6 +46,6 @@ class ChromeController extends BrowserController
protected function getImportTemplate()
{
return '@WallabagCore/Import/Chrome/index.html.twig';
return 'Import/Chrome/index.html.twig';
}
}

View file

@ -76,7 +76,7 @@ class DeliciousController extends AbstractController
$this->addFlash('notice', 'flashes.import.notice.failed_on_file');
}
return $this->render('@WallabagCore/Import/Delicious/index.html.twig', [
return $this->render('Import/Delicious/index.html.twig', [
'form' => $form->createView(),
'import' => $delicious,
]);

View file

@ -46,6 +46,6 @@ class ElcuratorController extends WallabagController
protected function getImportTemplate()
{
return '@WallabagCore/Import/Elcurator/index.html.twig';
return 'Import/Elcurator/index.html.twig';
}
}

View file

@ -46,6 +46,6 @@ class FirefoxController extends BrowserController
protected function getImportTemplate()
{
return '@WallabagCore/Import/Firefox/index.html.twig';
return 'Import/Firefox/index.html.twig';
}
}

View file

@ -24,7 +24,7 @@ class ImportController extends AbstractController
*/
public function importAction(ImportChain $importChain)
{
return $this->render('@WallabagCore/Import/index.html.twig', [
return $this->render('Import/index.html.twig', [
'imports' => $importChain->getAll(),
]);
}
@ -41,7 +41,7 @@ class ImportController extends AbstractController
$rabbitNotInstalled = false;
if (!$authorizationChecker->isGranted('ROLE_SUPER_ADMIN')) {
return $this->render('@WallabagCore/Import/check_queue.html.twig');
return $this->render('Import/check_queue.html.twig');
}
if ($craueConfig->get('import_with_rabbitmq')) {
@ -85,7 +85,7 @@ class ImportController extends AbstractController
}
}
return $this->render('@WallabagCore/Import/check_queue.html.twig', [
return $this->render('Import/check_queue.html.twig', [
'nbRedisMessages' => $nbRedisMessages,
'nbRabbitMessages' => $nbRabbitMessages,
'redisNotInstalled' => $redisNotInstalled,

View file

@ -76,7 +76,7 @@ class InstapaperController extends AbstractController
$this->addFlash('notice', 'flashes.import.notice.failed_on_file');
}
return $this->render('@WallabagCore/Import/Instapaper/index.html.twig', [
return $this->render('Import/Instapaper/index.html.twig', [
'form' => $form->createView(),
'import' => $instapaper,
]);

View file

@ -76,7 +76,7 @@ class PinboardController extends AbstractController
$this->addFlash('notice', 'flashes.import.notice.failed_on_file');
}
return $this->render('@WallabagCore/Import/Pinboard/index.html.twig', [
return $this->render('Import/Pinboard/index.html.twig', [
'form' => $form->createView(),
'import' => $pinboard,
]);

View file

@ -43,7 +43,7 @@ class PocketController extends AbstractController
])
->getForm();
return $this->render('@WallabagCore/Import/Pocket/index.html.twig', [
return $this->render('Import/Pocket/index.html.twig', [
'import' => $pocket,
'has_consumer_key' => '' === trim($this->getUser()->getConfig()->getPocketConsumerKey()) ? false : true,
'form' => $form->createView(),

View file

@ -46,6 +46,6 @@ class PocketHtmlController extends HtmlController
protected function getImportTemplate()
{
return '@WallabagCore/Import/PocketHtml/index.html.twig';
return 'Import/PocketHtml/index.html.twig';
}
}

View file

@ -76,7 +76,7 @@ class ReadabilityController extends AbstractController
$this->addFlash('notice', 'flashes.import.notice.failed_on_file');
}
return $this->render('@WallabagCore/Import/Readability/index.html.twig', [
return $this->render('Import/Readability/index.html.twig', [
'form' => $form->createView(),
'import' => $readability,
]);

View file

@ -46,6 +46,6 @@ class ShaarliController extends HtmlController
protected function getImportTemplate()
{
return '@WallabagCore/Import/Shaarli/index.html.twig';
return 'Import/Shaarli/index.html.twig';
}
}

View file

@ -46,6 +46,6 @@ class WallabagV1Controller extends WallabagController
protected function getImportTemplate()
{
return '@WallabagCore/Import/WallabagV1/index.html.twig';
return 'Import/WallabagV1/index.html.twig';
}
}

View file

@ -46,6 +46,6 @@ class WallabagV2Controller extends WallabagController
protected function getImportTemplate()
{
return '@WallabagCore/Import/WallabagV2/index.html.twig';
return 'Import/WallabagV2/index.html.twig';
}
}

View file

@ -48,7 +48,7 @@ class SiteCredentialController extends AbstractController
$credentials = $repository->findByUser($this->getUser());
return $this->render('@WallabagCore/SiteCredential/index.html.twig', [
return $this->render('SiteCredential/index.html.twig', [
'credentials' => $credentials,
]);
}
@ -84,7 +84,7 @@ class SiteCredentialController extends AbstractController
return $this->redirectToRoute('site_credentials_index');
}
return $this->render('@WallabagCore/SiteCredential/new.html.twig', [
return $this->render('SiteCredential/new.html.twig', [
'credential' => $credential,
'form' => $form->createView(),
]);
@ -122,7 +122,7 @@ class SiteCredentialController extends AbstractController
return $this->redirectToRoute('site_credentials_index');
}
return $this->render('@WallabagCore/SiteCredential/edit.html.twig', [
return $this->render('SiteCredential/edit.html.twig', [
'credential' => $siteCredential,
'edit_form' => $editForm->createView(),
'delete_form' => $deleteForm->createView(),

View file

@ -14,7 +14,7 @@ class StaticController extends AbstractController
$addonsUrl = $this->getParameter('addons_url');
return $this->render(
'@WallabagCore/Static/howto.html.twig',
'Static/howto.html.twig',
[
'addonsUrl' => $addonsUrl,
]
@ -27,7 +27,7 @@ class StaticController extends AbstractController
public function aboutAction()
{
return $this->render(
'@WallabagCore/Static/about.html.twig',
'Static/about.html.twig',
[
'version' => $this->getParameter('wallabag_core.version'),
'paypal_url' => $this->getParameter('wallabag_core.paypal_url'),
@ -41,7 +41,7 @@ class StaticController extends AbstractController
public function quickstartAction()
{
return $this->render(
'@WallabagCore/Static/quickstart.html.twig'
'Static/quickstart.html.twig'
);
}
}

View file

@ -77,7 +77,7 @@ class TagController extends AbstractController
return $this->redirect($this->generateUrl('view', ['id' => $entry->getId()]));
}
return $this->render('@WallabagCore/Tag/new_form.html.twig', [
return $this->render('Tag/new_form.html.twig', [
'form' => $form->createView(),
'entry' => $entry,
]);
@ -125,7 +125,7 @@ class TagController extends AbstractController
$renameForms[$tag['id']] = $this->createForm(RenameTagType::class, new Tag())->createView();
}
return $this->render('@WallabagCore/Tag/tags.html.twig', [
return $this->render('Tag/tags.html.twig', [
'tags' => $tags,
'renameForms' => $renameForms,
'nbEntriesUntagged' => $nbEntriesUntagged,
@ -162,7 +162,7 @@ class TagController extends AbstractController
}
}
return $this->render('@WallabagCore/Entry/entries.html.twig', [
return $this->render('Entry/entries.html.twig', [
'form' => null,
'entries' => $entries,
'currentPage' => $page,

View file

@ -67,7 +67,7 @@ class UserController extends AbstractController
return $this->redirectToRoute('user_edit', ['id' => $user->getId()]);
}
return $this->render('@WallabagCore/User/new.html.twig', [
return $this->render('User/new.html.twig', [
'user' => $user,
'form' => $form->createView(),
]);
@ -108,7 +108,7 @@ class UserController extends AbstractController
return $this->redirectToRoute('user_edit', ['id' => $user->getId()]);
}
return $this->render('@WallabagCore/User/edit.html.twig', [
return $this->render('User/edit.html.twig', [
'user' => $user,
'edit_form' => $form->createView(),
'delete_form' => $deleteForm->createView(),
@ -173,7 +173,7 @@ class UserController extends AbstractController
}
}
return $this->render('@WallabagCore/User/index.html.twig', [
return $this->render('User/index.html.twig', [
'searchForm' => $form->createView(),
'users' => $pagerFanta,
]);

View file

@ -78,7 +78,7 @@ class AuthCodeMailer implements AuthCodeMailerInterface
*/
public function sendAuthCode(TwoFactorInterface $user): void
{
$template = $this->twig->load('@WallabagCore/TwoFactor/email_auth_code.html.twig');
$template = $this->twig->load('TwoFactor/email_auth_code.html.twig');
$subject = $template->renderBlock('subject', []);
$bodyHtml = $template->renderBlock('body_html', [

View file

@ -1,39 +0,0 @@
{# Override `vendor/scheb/two-factor-bundle/Resources/views/Authentication/form.html.twig` #}
{% extends "@FOSUser/layout.html.twig" %}
{% block fos_user_content %}
<form class="form" action="{{ path("2fa_login_check") }}" method="post">
<div class="card-content">
<div class="row">
{% for flash_message in app.session.flashbag.get("two_factor") %}
<p class="error">{{ flash_message|trans }}</p>
{% endfor %}
{# Authentication errors #}
{% if authenticationError %}
<p class="error">{{ authenticationError|trans(authenticationErrorData, 'SchebTwoFactorBundle') }}</p>
{% endif %}
<div class="input-field col s12">
<label for="_auth_code">{{ "auth_code"|trans({}, 'SchebTwoFactorBundle') }}</label>
<input id="_auth_code" type="text" autocomplete="off" name="{{ authCodeParameterName }}" />
</div>
{% if displayTrustedOption %}
<div class="input-field col s12">
<input id="_trusted" type="checkbox" name="{{ trustedParameterName }}" />
<label for="_trusted">{{ "trusted"|trans({}, 'SchebTwoFactorBundle') }}</label>
</div>
{% endif %}
</div>
</div>
<div class="card-action center">
<a href="{{ path('fos_user_security_logout') }}" class="waves-effect waves-light grey btn">{{ 'security.login.cancel'|trans }}</a>
<button class="btn waves-effect waves-light" type="submit" name="send">
{{ "login"|trans({}, 'SchebTwoFactorBundle') }}
<i class="material-icons right">send</i>
</button>
</div>
</form>
{% endblock %}

View file

@ -1,692 +0,0 @@
{% extends "@WallabagCore/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="tabs-container 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.ignore_origin'|trans }}</a></li>
<li class="tab col s12 m6 l3"><a href="#set7">{{ '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.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 settings-checkbox-col">
{{ form_errors(form.config.display_thumbnails) }}
{{ form_widget(form.config.display_thumbnails) }}
{{ form_label(form.config.display_thumbnails, null, {'label_attr': {'class': 'settings-checkbox-label'}}) }}
</div>
<div class="input-field col s1">
<a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_display_thumbnails'|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 target="_blank" href="https://wallabag.github.io/myreadspeed/">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 s11">
{{ 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>
&raquo;
<a target="_blank" 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" alt="{{ 'config.otp.app.qrcode_label'|trans }}" />
</div>
<script>
document.getElementById('androidQrcode').src = jrQrcode.getQrBase64('wallabag://{{ app.user.username }}@{{ wallabag_url }}');
</script>
</div>
<h5>{{ 'config.tab_menu.article_display'|trans }}</h5>
<div class="row">
<div class="input-field col s5">
{{ form_errors(form.config.font) }}
{{ form_widget(form.config.font) }}
{{ form_label(form.config.font) }}
</div>
<div class="input-field col s1">
<a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_font'|trans }}">
<i class="material-icons">live_help</i>
</a>
</div>
<div class="input-field col s5">
{{ form_errors(form.config.lineHeight) }}
{{ form_widget(form.config.lineHeight) }}
{{ form_label(form.config.lineHeight, null, {'label_attr': {'class': 'settings-range-label'}}) }}
</div>
<div class="input-field col s1">
<a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_lineheight'|trans }}">
<i class="material-icons">live_help</i>
</a>
</div>
</div>
<div class="row">
<div class="input-field col s5">
{{ form_errors(form.config.fontsize) }}
{{ form_widget(form.config.fontsize) }}
{{ form_label(form.config.fontsize, null, {'label_attr': {'class': 'settings-range-label'}}) }}
</div>
<div class="input-field col s1">
<a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_fontsize'|trans }}">
<i class="material-icons">live_help</i>
</a>
</div>
<div class="input-field col s5">
{{ form_errors(form.config.maxWidth) }}
{{ form_widget(form.config.maxWidth) }}
{{ form_label(form.config.maxWidth, null, {'label_attr': {'class': 'settings-range-label'}}) }}
</div>
<div class="input-field col s1">
<a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_maxwidth'|trans }}">
<i class="material-icons">live_help</i>
</a>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<div id="preview-article">
<article id="preview-content">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</article>
</div>
</div>
</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 %}
{% if feed.token %}
<a href="{{ path('generate_token') }}">{{ 'config.form_feed.token_reset'|trans }}</a>
<a href="{{ path('revoke_token') }}">{{ 'config.form_feed.token_revoke'|trans }}</a>
{% else %}
<a href="{{ path('generate_token') }}">{{ 'config.form_feed.token_create'|trans }}</a>
{% endif %}
</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="col s12">
<h6 class="grey-text">{{ 'config.form_user.login_label'|trans }}</h6>
<div>
{{ app.user.username }}
</div>
</div>
</div>
<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'}}) }}
{{ form_widget(form.user._token) }}
{{ form_end(form.user) }}
<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>
<form action="{{ path('config_otp_email') }}" method="post" name="config_otp_email">
<input type="hidden" name="token" value="{{ csrf_token('otp') }}" />
<button class="waves-effect waves-light btn{% if app.user.isEmailTwoFactor %} disabled{% endif %}" type="submit">{{ 'config.form_user.two_factor.action_email'|trans }}</button>
</form>
{% if app.user.isEmailTwoFactor %}
<form action="{{ path('disable_otp_email') }}" method="post" name="disable_otp_email">
<input type="hidden" name="token" value="{{ csrf_token('otp') }}" />
<button class="waves-effect waves-light btn red" type="submit">Disable</button>
</form>
{% endif %}
</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>
<form action="{{ path('config_otp_app') }}" method="post" name="config_otp_app">
<input type="hidden" name="token" value="{{ csrf_token('otp') }}" />
<button class="waves-effect waves-light btn{% if app.user.isGoogleTwoFactor %} disabled{% endif %}" type="submit">{{ 'config.form_user.two_factor.action_app'|trans }}</button>
</form>
{% if app.user.isGoogleTwoFactor %}
<form action="{{ path('disable_otp_app') }}" method="post" name="disable_otp_app">
<input type="hidden" name="token" value="{{ csrf_token('otp') }}" />
<button class="waves-effect waves-light btn red" type="submit">Disable</button>
</form>
{% endif %}
</td>
</tr>
</tbody>
</table>
</div>
</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 }}" class="mode_edit_tagging_rule">
<i class="tool grey-text material-icons">mode_edit</i>
</a>
<a href="{{ path('delete_tagging_rule', {id: tagging_rule.id}) }}" title="{{ 'config.form_rules.delete_rule_label'|trans }}" class="delete_tagging_rule">
<i class="tool grey-text material-icons">delete</i>
</a>
</li>
{% endfor %}
</ul>
</div>
</div>
{% endif %}
<ul class="row">
<li class="col l6 m6 s12">
<div class="card">
<div class="card-content">
<span class="card-title">{{ 'config.form_rules.card.new_tagging_rule'|trans }}</span>
{{ 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>
</div>
</li>
<li class="col l6 m6 s12">
<div class="card z-depth-1">
<div class="card-content">
<span class="card-title">{{ 'config.form_rules.card.import_tagging_rules'|trans }}</span>
<p>{{ 'config.form_rules.card.import_tagging_rules_detail'|trans }}</p>
{{ form_start(form.import_tagging_rule) }}
{{ form_errors(form.import_tagging_rule) }}
<div class="row">
<div class="file-field input-field col s12">
{{ form_errors(form.import_tagging_rule.file) }}
<div class="btn">
<span>{{ form.import_tagging_rule.file.vars.label|trans }}</span>
{{ form_widget(form.import_tagging_rule.file) }}
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text">
</div>
</div>
</div>
{{ form_widget(form.import_tagging_rule.import, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form.import_tagging_rule) }}
</form>
</div>
</div>
</li>
{% if app.user.config.taggingRules is not empty %}
<li class="col l6 m6 s12">
<div class="card z-depth-1">
<div class="card-content">
<span class="card-title">{{ 'config.form_rules.card.export_tagging_rules'|trans }}</span>
<p>{{ 'config.form_rules.card.export_tagging_rules_detail'|trans }}</p>
<br/>
<p><a href="{{ path('export_tagging_rule') }}" class="waves-effect waves-light btn">{{ 'config.form_rules.export'|trans }}</a></p>
</div>
</div>
</li>
{% endif %}
</ul>
<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>&lt;=</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>&lt;</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>&gt;=</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>&gt;</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">
{% if app.user.config.ignoreOriginRules is not empty %}
<div class="row">
<div class="input-field col s12">
<ul>
{% for ignore_origin_rule in app.user.config.ignoreOriginRules %}
<li>
{{ 'config.form_rules.if_label'|trans }}
« {{ ignore_origin_rule.rule }} »
<a href="{{ path('edit_ignore_origin_rule', {id: ignore_origin_rule.id}) }}" title="{{ 'config.form_rules.edit_rule_label'|trans }}" class="mode_edit">
<i class="tool grey-text material-icons">mode_edit</i>
</a>
<a href="{{ path('delete_ignore_origin_rule', {id: ignore_origin_rule.id}) }}" title="{{ 'config.form_rules.delete_rule_label'|trans }}" class="delete">
<i class="tool grey-text material-icons">delete</i>
</a>
</li>
{% endfor %}
</ul>
</div>
</div>
{% endif %}
{{ form_start(form.new_ignore_origin_user_rule) }}
{{ form_errors(form.new_ignore_origin_user_rule) }}
<div class="row">
<div class="input-field col s12">
{{ form_label(form.new_ignore_origin_user_rule.rule) }}
{{ form_errors(form.new_ignore_origin_user_rule.rule) }}
{{ form_widget(form.new_ignore_origin_user_rule.rule) }}
</div>
</div>
{{ form_widget(form.new_ignore_origin_user_rule.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form.new_ignore_origin_user_rule) }}
</form>
<div class="row">
<div class="input-field col s12">
<h4>{{ 'config.form_ignore_origin_rules.faq.title'|trans }}</h4>
<h5>{{ 'config.form_ignore_origin_rules.faq.ignore_origin_rules_definition_title'|trans }}</h5>
<p class="help">{{ 'config.form_ignore_origin_rules.faq.ignore_origin_rules_definition_description'|trans|raw }}</p>
<h5>{{ 'config.form_ignore_origin_rules.faq.how_to_use_them_title'|trans }}</h5>
<p class="help">{{ 'config.form_ignore_origin_rules.faq.how_to_use_them_description'|trans|raw }}</p>
<h5>{{ 'config.form_ignore_origin_rules.faq.variables_available_title'|trans }}</h5>
<p class="help">
{{ 'config.form_ignore_origin_rules.faq.variables_available_description'|trans }}
</p>
<table class="bordered">
<thead>
<tr>
<th>{{ 'config.form_ignore_origin_rules.faq.variable_description.label'|trans }}</th>
<th>{{ 'config.form_ignore_origin_rules.faq.meaning'|trans }}</th>
<th>{{ 'config.form_ignore_origin_rules.faq.operator_description.label'|trans }}</th>
<th>{{ 'config.form_ignore_origin_rules.faq.meaning'|trans }}</th>
</tr>
</thead>
<tbody>
<tr>
<td>host</td>
<td>{{ 'config.form_ignore_origin_rules.faq.variable_description.host'|trans }}</td>
<td>=</td>
<td>{{ 'config.form_ignore_origin_rules.faq.operator_description.equal_to'|trans }}</td>
</tr>
<tr>
<td>_all</td>
<td>{{ 'config.form_ignore_origin_rules.faq.variable_description._all'|trans }}</td>
<td>~</td>
<td>{{ 'config.form_ignore_origin_rules.faq.operator_description.matches'|trans|raw }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div id="set7" class="col s12">
<div class="row">
<h5>{{ 'config.reset.title'|trans }}</h5>
<p>{{ 'config.reset.description'|trans }}</p>
<p>
<form action="{{ path('config_reset', {type: 'annotations'}) }}" method="post" onsubmit="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" name="reset-annotations">
<input type="hidden" name="token" value="{{ csrf_token('reset-area') }}" />
<button class="waves-effect waves-light btn red" type="submit">{{ 'config.reset.annotations'|trans }}</button>
</form>
</p>
<p>
<form action="{{ path('config_reset', {type: 'tags'}) }}" method="post" onsubmit="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" name="reset-tags">
<input type="hidden" name="token" value="{{ csrf_token('reset-area') }}" />
<button class="waves-effect waves-light btn red" type="submit">{{ 'config.reset.tags'|trans }}</button>
</form>
</p>
<p>
<form action="{{ path('config_reset', {type: 'archived'}) }}" method="post" onsubmit="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" name="reset-archived">
<input type="hidden" name="token" value="{{ csrf_token('reset-area') }}" />
<button class="waves-effect waves-light btn red" type="submit">{{ 'config.reset.archived'|trans }}</button>
</form>
</p>
<p>
<form action="{{ path('config_reset', {type: 'entries'}) }}" method="post" onsubmit="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" name="reset-entries">
<input type="hidden" name="token" value="{{ csrf_token('reset-area') }}" />
<button class="waves-effect waves-light btn red" type="submit">{{ 'config.reset.entries'|trans }}</button>
</form>
</p>
</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>
<form action="{{ path('delete_account') }}" method="post" onsubmit="return confirm('{{ 'config.form_user.delete.confirm'|trans|escape('js') }}')" name="delete-account">
<input type="hidden" name="token" value="{{ csrf_token('delete-account') }}" />
<button class="waves-effect waves-light btn red" type="submit">{{ 'config.form_user.delete.button'|trans }}</button>
</form>
</div>
{% endif %}
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,65 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'config.page_title'|trans }} > {{ 'config.otp.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
<div class="row">
<h5>{{ 'config.otp.page_title'|trans }}</h5>
<ol>
<li>
<p>{{ 'config.otp.app.two_factor_code_description_1'|trans }}</p>
<p>{{ 'config.otp.app.two_factor_code_description_2'|trans }}</p>
<p>
<img id="2faQrcode" class="hide-on-med-and-down" />
<script>
document.getElementById('2faQrcode').src = jrQrcode.getQrBase64('{{ qr_code|raw }}');
</script>
</p>
<p>
{{ 'config.otp.app.two_factor_code_description_5'|trans }} <pre>{{ secret }}</pre>
</p>
</li>
<li>
<p>{{ 'config.otp.app.two_factor_code_description_3'|trans }}</p>
<p><pre>{{ backupCodes|join("\n") }}</pre></p>
</li>
<li>
<p>{{ 'config.otp.app.two_factor_code_description_4'|trans }}</p>
{% for flash_message in app.session.flashbag.get("two_factor") %}
<div class="card-panel red darken-1 black-text">
{{ flash_message|trans }}
</div>
{% endfor %}
<form class="form" action="{{ path("config_otp_app_check") }}" method="post">
<input type="hidden" name="token" value="{{ csrf_token('otp') }}" />
<div class="card-content">
<div class="row">
<div class="input-field col s12">
<label for="_auth_code">{{ "auth_code"|trans({}, 'SchebTwoFactorBundle') }}</label>
<input id="_auth_code" type="text" autocomplete="off" name="_auth_code" />
</div>
</div>
</div>
<div class="card-action">
<button class="btn waves-effect waves-light" type="submit" name="send">
{{ 'config.otp.app.enable'|trans }}
<i class="material-icons right">send</i>
</button>
</div>
</form>
</li>
</ol>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,37 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'developer.client.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
<div class="row">
<p>{{ 'developer.client.page_description'|trans }}</p>
{{ form_start(form) }}
{{ form_errors(form) }}
<div class="input-field col s12">
{{ form_label(form.name) }}
{{ form_errors(form.name) }}
{{ form_widget(form.name) }}
</div>
<div class="input-field col s12">
{{ form_label(form.redirect_uris) }}
{{ form_errors(form.redirect_uris) }}
{{ form_widget(form.redirect_uris) }}
</div>
<a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.client.action_back'|trans }}</a>
{{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form) }}
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,41 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'developer.client_parameter.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
<div class="row">
<p>{{ 'developer.client_parameter.page_description'|trans }}</p>
<table class="striped">
<tr>
<td>{{ 'developer.client_parameter.field_name'|trans }}</td>
<td><strong><code>{{ client_name }}</code></strong></td>
</tr>
<tr>
<td>{{ 'developer.client_parameter.field_id'|trans }}</td>
<td>
<strong><code>{{ client_id }}</code></strong>
<button class="btn" data-clipboard-text="{{ client_id }}">{{ 'developer.client.copy_to_clipboard'|trans }}</button>
</td>
</tr>
<tr>
<td>{{ 'developer.client_parameter.field_secret'|trans }}</td>
<td>
<strong><code>{{ client_secret }}</code></strong>
<button class="btn" data-clipboard-text="{{ client_secret }}">{{ 'developer.client.copy_to_clipboard'|trans }}</button>
</td>
</tr>
</table>
<br/>
<a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.client_parameter.back'|trans }}</a>
<a href="{{ path('developer_howto_firstapp') }}" class="btn waves-effect waves-light">{{ 'developer.client_parameter.read_howto'|trans }}</a>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,56 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'developer.howto.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
<div class="row">
<p>{{ 'developer.howto.description.paragraph_1'|trans|raw }}</p>
<p>{{ 'developer.howto.description.paragraph_2'|trans }}</p>
<p>{{ 'developer.howto.description.paragraph_3'|trans({'%link%': path('developer_create_client')})|raw }}</p>
<p>{{ 'developer.howto.description.paragraph_4'|trans }}</p>
<p>
<pre><code class="language-bash">http POST {{ wallabag_url }}/oauth/v2/token \
grant_type=password \
client_id=12_5um6nz50ceg4088c0840wwc0kgg44g00kk84og044ggkscso0k \
client_secret=3qd12zpeaxes8cwg8c0404g888co4wo8kc4gcw0occww8cgw4k \
username=yourUsername \
password=yourPassw0rd</code></pre>
</p>
<p>{{ 'developer.howto.description.paragraph_5'|trans }}</p>
<p>
<pre><code class="language-bash">HTTP/1.1 200 OK
Cache-Control: no-store, private
Connection: close
Content-Type: application/json
Date: Tue, 06 Oct 2015 18:24:03 GMT
Host: localhost:8000
Pragma: no-cache
X-Debug-Token: be00a1
X-Debug-Token-Link: /profiler/be00a1
X-Powered-By: PHP/5.5.9-1ubuntu4.13
{
"access_token": "ZWFjNjA3ZWMwYWVmYzRkYTBlMmQ3NTllYmVhOGJiZDE0ZTg1NjE4MjczOTVlNzM0ZTRlMWQ0MmRlMmYwNTk5Mw",
"expires_in": 3600,
"refresh_token": "ODBjODU1NWUwNmUzZTBkNDQ5YWVlZTVlMjQ2Y2I0OWM2NTM1ZGM2M2Y3MDhjMTViM2U2MzYxYzRkMDk5ODRlZg",
"scope": null,
"token_type": "bearer"
}</code></pre>
</p>
<p>{{ 'developer.howto.description.paragraph_6'|trans }}</p>
<p>
<pre><code class="language-bash">http GET {{ wallabag_url }}/api/entries.json \
"Authorization:Bearer ZWFjNjA3ZWMwYWVmYzRkYTBlMmQ3NTllYmVhOGJiZDE0ZTg1NjE4MjczOTVlNzM0ZTRlMWQ0MmRlMmYwNTk5Mw"</code></pre>
</p>
<p>{{ 'developer.howto.description.paragraph_7'|trans }}</p>
<p>{{ 'developer.howto.description.paragraph_8'|trans({'%link%': path('nelmio_api_doc.swagger_ui')})|raw }}</p>
<p><a href="{{ path('developer') }}" class="waves-effect waves-light grey btn">{{ 'developer.howto.back'|trans }}</a></p>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,78 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'developer.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
<div class="row">
<h3>{{ 'developer.welcome_message'|trans }}</h3>
<h4>{{ 'developer.documentation'|trans }}</h4>
<ul>
<li><a href="{{ path('developer_howto_firstapp') }}">{{ 'developer.how_to_first_app'|trans }}</a></li>
<li><a href="https://doc.wallabag.org/en/developer/api/readme.html">{{ 'developer.full_documentation'|trans }}</a></li>
<li><a href="{{ path('nelmio_api_doc.swagger_ui') }}">{{ 'developer.list_methods'|trans }}</a></li>
</ul>
<h4>{{ 'developer.clients.title'|trans }}</h4>
<ul>
<li><a href="{{ path('developer_create_client') }}" class="waves-effect waves-light btn">{{ 'developer.clients.create_new'|trans }}</a></li>
</ul>
<h4>{{ 'developer.existing_clients.title'|trans }}</h4>
{% if clients %}
<ul class="collapsible" data-collapsible="expandable">
{% for client in clients %}
<li>
<div class="collapsible-header">{{ client.name }} - #{{ client.id }}</div>
<div class="collapsible-body">
<table class="striped">
<tr>
<td>{{ 'developer.existing_clients.field_id'|trans }}</td>
<td>
<strong><code>{{ client.clientId }}</code></strong>
<button class="btn" data-clipboard-text="{{ client.clientId }}">{{ 'developer.client.copy_to_clipboard'|trans }}</button>
</td>
</tr>
<tr>
<td>{{ 'developer.existing_clients.field_secret'|trans }}</td>
<td>
<strong><code>{{ client.secret }}</code></strong>
<button class="btn" data-clipboard-text="{{ client.secret }}">{{ 'developer.client.copy_to_clipboard'|trans }}</button>
</td>
</tr>
<tr>
<td>{{ 'developer.existing_clients.field_uris'|trans }}</td>
<td><strong><code>{{ client.redirectUris|json_encode() }}</code></strong></td>
</tr>
<tr>
<td>{{ 'developer.existing_clients.field_grant_types'|trans }}</td>
<td><strong><code>{{ client.allowedGrantTypes|json_encode() }}</code></strong></td>
</tr>
</table>
<p>{{ 'developer.remove.warn_message_1'|trans({'%name%': client.name}) }}</p>
<p>{{ 'developer.remove.warn_message_2'|trans({'%name%': client.name}) }}</p>
<form action="{{ path('developer_delete_client', {id: client.id}) }}" method="post" name="delete-client">
<input type="hidden" name="token" value="{{ csrf_token('delete-client') }}" />
<button class="waves-effect waves-light btn red" type="submit">{{ 'developer.remove.action'|trans({'%name%': client.name}) }}</button>
</form>
</div>
</li>
{% endfor %}
</ul>
{% else %}
{{ 'developer.existing_clients.no_client'|trans }}
{% endif %}
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,18 +0,0 @@
<div class="card-content">
{% if withPreview is defined %}
<i class="grey-text text-darken-4 activator material-icons right">more_vert</i>
{% endif %}
<a href="{{ path('view', {'id': entry.id}) }}" title="{{ entry.title|striptags|e('html_attr') }}" class="card-title dot-ellipsis dot-resize-update">
{{ entry.title|striptags|u.truncate(80, '…', false)|default('entry.default_title'|trans)|raw }}
</a>
<div class="{{ subClass|default('original grey-text') }}">
<a href="{{ entry.url|e }}" target="_blank" title="{{ entry.domainName|removeWww }}" class="tool grey-text">{{ entry.domainName|removeWww }}</a>
{% if withMetadata is defined %}
{% include "@WallabagCore/Entry/_tags.html.twig" with {'tags': entry.tags|slice(0, 3), 'entryId': entry.id, 'listClass': ' hide-on-med-and-down'} only %}
<div class="reading-time grey-text">
<div class="card-reading-time">{% include "@WallabagCore/Entry/_reading_time.html.twig" with {'entry': entry} only %}</div>
</div>
{% endif %}
</div>
</div>

View file

@ -1,3 +0,0 @@
<label class="entry-checkbox">
<input type="checkbox" class="entry-checkbox-input" data-js="entry-checkbox" name="entry-checkbox[]" value="{{ entry.id }}" />
</label>

View file

@ -1,26 +0,0 @@
<div class="card-action">
<div class="reading-time grey-text">
<div class="card-reading-time">{% include "@WallabagCore/Entry/_reading_time.html.twig" with {'entry': entry} only %}</div>
<div class="card-created-at">
<i class="material-icons" title="{{ 'entry.view.created_at'|trans }}">today</i>
<span>&nbsp;{{ entry.createdAt|date('Y-m-d') }}</span>
</div>
</div>
{% set current_path = path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) %}
<ul class="tools right">
<li>
<a title="{{ 'entry.list.show_same_domain'|trans }}" class="tool grey-text" href="{{ path('same_domain', {'id': entry.id, redirect: current_path}) }}" data-action="same_domain" data-entry-id="{{ entry.id }}"><i class="material-icons">language</i></a>
</li>
<li>
<a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool grey-text" href="{{ path('archive_entry', {'id': entry.id, redirect: current_path}) }}" data-action="archived" data-entry-id="{{ entry.id }}"><i class="material-icons">{% if entry.isArchived == 0 %}done{% else %}unarchive{% endif %}</i></a>
</li>
<li>
<a title="{{ 'entry.list.toogle_as_star'|trans }}" class="tool grey-text" href="{{ path('star_entry', {'id': entry.id, redirect: current_path}) }}" data-action="star" data-entry-id="{{ entry.id }}"><i class="material-icons">{% if entry.isStarred == 0 %}star_border{% else %}star{% endif %}</i></a>
</li>
<li>
<a title="{{ 'entry.list.delete'|trans }}" onclick="return confirm('{{ 'entry.confirm.delete'|trans|escape('js') }}')" data-action-confirm="{{ 'entry.confirm.delete'|trans }}" class="tool grey-text delete" href="{{ path('delete_entry', {'id': entry.id, redirect: current_path}) }}" data-action="delete" data-entry-id="{{ entry.id }}"><i class="material-icons">delete</i></a>
</li>
</ul>
</div>

View file

@ -1,19 +0,0 @@
<div class="card entry-card{% if currentRoute in routes and entry.isArchived %} archived{% endif %}">
<div class="card-body">
<div class="card-fullimage">
<ul class="card-entry-labels">
{% for tag in entry.tags|slice(0, 3) %}
<li title="{{ tag.label }}"><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
{% endfor %}
</ul>
{% if app.user.config.displayThumbnails %}
<a href="{{ path('view', {'id': entry.id}) }}">
<span class="preview" style="background-image: url({{ entry.previewPicture }})"></span>
</a>
{% endif %}
</div>
{% include "@WallabagCore/Entry/Card/_content.html.twig" with {'entry': entry} only %}
</div>
{% include "@WallabagCore/Entry/_card_actions.html.twig" with {'entry': entry} only %}
</div>

View file

@ -1,23 +0,0 @@
<div class="card-stacked{% if currentRoute in routes and entry.isArchived %} archived{% endif %}">
{% include "@WallabagCore/Entry/Card/_mass_checkbox.html.twig" with {'entry': entry} only %}
{% if app.user.config.displayThumbnails %}
<div class="card-preview">
<a href="{{ path('view', {'id': entry.id}) }}">
{% set preview_class_modifier = entry.previewPicture ? '' : ' preview--default' %}
<span class="preview{{ preview_class_modifier }}" style="background-image: url({{ entry.previewPicture|default(asset('img/logo-square.svg')) }})"></span>
</a>
</div>
{% endif %}
{% include "@WallabagCore/Entry/Card/_content.html.twig" with {'entry': entry, 'withMetadata': true, 'subClass': 'metadata'} only %}
{% set current_path = path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) %}
<ul class="tools-list hide-on-small-only">
<li>
<a title="{{ 'entry.list.show_same_domain'|trans }}" class="tool grey-text" href="{{ path('same_domain', {'id': entry.id, redirect: current_path}) }}"><i class="material-icons">language</i></a>
<a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool grey-text" href="{{ path('archive_entry', {'id': entry.id, redirect: current_path}) }}"><i class="material-icons">{% if entry.isArchived == 0 %}done{% else %}unarchive{% endif %}</i></a>
<a title="{{ 'entry.list.toogle_as_star'|trans }}" class="tool grey-text" href="{{ path('star_entry', {'id': entry.id, redirect: current_path}) }}"><i class="material-icons">{% if entry.isStarred == 0 %}star_border{% else %}star{% endif %}</i></a>
<a title="{{ 'entry.list.delete'|trans }}" onclick="return confirm('{{ 'entry.confirm.delete'|trans|escape('js') }}')" class="tool grey-text delete" href="{{ path('delete_entry', {'id': entry.id, redirect: current_path}) }}"><i class="material-icons">delete</i></a>
</li>
</ul>
</div>

View file

@ -1,38 +0,0 @@
<div class="card entry-card{% if currentRoute in routes and entry.isArchived %} archived{% endif %}">
{% include "@WallabagCore/Entry/Card/_mass_checkbox.html.twig" with {'entry': entry} only %}
<div class="card-body">
<div class="{% if app.user.config.displayThumbnails %}card-image{% endif %} waves-effect waves-block waves-light">
<ul class="card-entry-labels">
{% for tag in entry.tags|slice(0, 3) %}
<li title="{{ tag.label }}"><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
{% endfor %}
</ul>
{% if app.user.config.displayThumbnails %}
<a href="{{ path('view', {'id': entry.id}) }}">
{% set preview_class_modifier = entry.previewPicture ? '' : ' preview--default' %}
<span class="preview{{ preview_class_modifier }}" style="background-image: url({{ entry.previewPicture|default(asset('img/logo-square.svg')) }})"></span>
</a>
{% endif %}
</div>
{% include "@WallabagCore/Entry/Card/_content.html.twig" with {'entry': entry, 'withPreview': true} only %}
</div>
<div class="card-reveal">
<i class="card-title activator grey-text text-darken-4 material-icons right">clear</i>
<span class="card-title">
<a href="{{ path('view', {'id': entry.id}) }}" title="{{ entry.title|striptags|e('html_attr') }}">
{{ entry.title|striptags|u.truncate(80, '…', false)|raw }}
</a>
</span>
<p>{{ entry.content|striptags|slice(0, 250)|raw }}&hellip;</p>
<ul class="card-entry-labels-hidden">
{% for tag in entry.tags %}
<li title="{{ tag.label }}"><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
{% endfor %}
</ul>
</div>
{% include "@WallabagCore/Entry/_card_actions.html.twig" with {'entry': entry} only %}
</div>

View file

@ -1,14 +0,0 @@
{% if tag is defined %}
{% set feed_route = 'tag_feed' %}
{% set slug = tag.slug %}
{% elseif current_route in ['homepage', 'unread', 'starred', 'archive', 'all'] %}
{% set feed_route = current_route %}
{% if current_route == 'homepage' %}
{% set feed_route = 'unread' %}
{% endif %}
{% set feed_route = feed_route ~ '_feed' %}
{% set slug = null %}
{% endif %}
{% if feed_route is defined %}
<a rel="alternate" type="application/atom+xml" href="{{ path(feed_route, {'username': app.user.username, 'token': app.user.config.feedToken, 'slug': slug}) }}" class="results-item"><i class="material-icons">rss_feed</i></a>
{% endif %}

View file

@ -1,7 +0,0 @@
{% set reading_time = entry.readingTime / app.user.config.readingSpeed * 200 %}
<i class="material-icons grey-text">timer</i>
{% if reading_time > 0 %}
<span>{{ 'entry.list.reading_time_minutes_short'|trans({'%readingTime%': reading_time|round}) }}</span>
{% else %}
<span>{{ 'entry.list.reading_time_less_one_minute_short'|trans|raw }}</span>
{% endif %}

View file

@ -1,15 +0,0 @@
{% if tags is iterable and tags is not empty %}
<ul class="tags{{ listClass|default("") }}">
{% for tag in tags %}
<li class="chip">
<a class="chip-label" href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a>
{% if withRemove is defined and withRemove == true %}
{% set current_path = path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) %}
<a class="chip-action" href="{{ path('remove_tag', {'entry': entryId, 'tag': tag.id, redirect: current_path}) }}" onclick="return confirm('{{ 'entry.confirm.delete_tag'|trans|escape('js') }}')">
<i class="material-icons vertical-align-middle">delete</i>
</a>
{% endif %}
</li>
{% endfor %}
</ul>
{% endif %}

View file

@ -1,21 +0,0 @@
{% set current_route = app.request.attributes.get('_route') %}
{% if current_route == 'starred' %}
{{ 'entry.page_titles.starred'|trans }}
{% elseif current_route == 'archive' %}
{{ 'entry.page_titles.archived'|trans }}
{% elseif current_route == 'all' %}
{{ isFiltered ? 'entry.page_titles.filtered'|trans : 'entry.page_titles.all'|trans }}
{% elseif current_route == 'search' %}
{{ 'entry.page_titles.filtered_search'|trans }} {{ filter }}
{% elseif current_route == 'tag_entries' %}
{{ 'entry.page_titles.filtered_tags'|trans }} {{ filter }}
{% elseif current_route == 'untagged' %}
{{ 'entry.page_titles.untagged'|trans }}
{% elseif current_route == 'same_domain' %}
{{ 'entry.page_titles.same_domain'|trans }}
{% elseif current_route == 'annotated' %}
{{ 'entry.page_titles.with_annotations'|trans }}
{% else %}
{{ 'entry.page_titles.unread'|trans }}
{% endif %}

View file

@ -1,46 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'entry.edit.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel">
<form name="entry" method="post" action="">
<div class="card-content">
{% if form_errors(form) %}
<span class="black-text">{{ form_errors(form) }}</span>
{% endif %}
{% if form_errors(form.title) %}
<span class="black-text">{{ form_errors(form.title) }}</span>
{% endif %}
<div class="input-field s12">
{{ form_label(form.title) }}
{{ form_widget(form.title) }}
</div>
<div class="input-field s12">
{{ form_label(form.url) }}
{{ form_widget(form.url) }}
</div>
<div class="input-field s12">
{{ form_label(form.origin_url) }}
{{ form_widget(form.origin_url) }}
</div>
<br>
{{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
</div>
{{ form_rest(form) }}
</form>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,233 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block head %}
{{ parent() }}
{% if tag is defined and app.user.config.feedToken %}
<link rel="alternate" type="application/atom+xml" href="{{ path('tag_feed', {'username': app.user.username, 'token': app.user.config.feedToken, 'slug': tag.slug}) }}" />
{% endif %}
{% endblock %}
{% block title %}
{% set filter = '' %}
{% if tag is defined %}
{% set filter = tag.slug %}
{% endif %}
{% if searchTerm is defined and searchTerm is not empty %}
{% set filter = searchTerm %}
{% endif %}
{% include "@WallabagCore/Entry/_title.html.twig" with {'filter': filter} %}
{% endblock %}
{% block content %}
{% set current_path = path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) %}
{% set list_mode = app.user.config.listMode %}
{% set entries_with_archived_class_routes = ['tag_entries', 'search', 'all'] %}
{% set current_route = app.request.attributes.get('_route') %}
{% if current_route == 'homepage' %}
{% set current_route = 'unread' %}
{% endif %}
<form name="form_mass_action" action="{{ path('mass_action', {redirect: current_path}) }}" method="post">
<div class="results">
<div class="nb-results">
{{ 'entry.list.number_on_the_page'|trans({'%count%': entries.count}) }}
{% if entries.count > 0 %}
<a class="results-item" href="{{ path('switch_view_mode', {redirect: current_path}) }}"><i class="material-icons">{% if list_mode == 0 %}view_list{% else %}view_module{% endif %}</i></a>
{% endif %}
{% if entries.count > 0 %}
<label for="mass-action-inputs-displayed" class="mass-action-toggle results-item tooltipped" data-position="right" data-delay="50" data-tooltip="{{ 'entry.list.toggle_mass_action'|trans }}"><i class="material-icons">library_add_check</i></label>
{% endif %}
{% if app.user.config.feedToken %}
{% include "@WallabagCore/Entry/_feed_link.html.twig" %}
{% endif %}
</div>
{% if current_route == 'search' %}<div><a href="{{ path('tag_this_search', {'filter': searchTerm, 'currentRoute': app.request.get('currentRoute'), redirect: current_path}) }}" title="{{ 'entry.list.assign_search_tag'|trans }}">{{ 'entry.list.assign_search_tag'|trans }}</a></div>{% endif %}
{% if entries.getNbPages > 1 %}
{{ pagerfanta(entries, 'default_wallabag') }}
{% endif %}
</div>
{% if entries.count > 0 %}
<input id="mass-action-inputs-displayed" class="toggle-checkbox" type="checkbox" />
<div class="mass-action">
<div class="mass-action-group">
<input type="checkbox" class="entry-checkbox-input" data-toggle="[data-js='entry-checkbox']" data-js="checkboxes-toggle" />
<button class="mass-action-button btn cyan darken-1" type="submit" name="toggle-read" title="{{ 'entry.list.toogle_as_read'|trans }}"><i class="material-icons">done</i></button>
<button class="mass-action-button btn cyan darken-1" type="submit" name="toggle-star" title="{{ 'entry.list.toogle_as_star'|trans }}" ><i class="material-icons">star</i></button>
<button class="mass-action-button btn cyan darken-1" type="submit" name="delete" onclick="return confirm('{{ 'entry.confirm.delete_entries'|trans|escape('js') }}')" title="{{ 'entry.list.delete'|trans }}"><i class="material-icons">delete</i></button>
</div>
<div class="mass-action-tags">
<button class="btn cyan darken-1 mass-action-button mass-action-button--tags" type="submit" name="tag" title="{{ 'entry.list.add_tags'|trans }}"><i class="material-icons">label</i></button>
<input type="text" class="mass-action-tags-input" name="tags" placeholder="{{ 'entry.list.mass_action_tags_input_placeholder'|trans }}" />
</div>
</div>
<ol class="entries {% if list_mode == 1 %}collection{% else %}row entries-row data{% endif %}">
{% for entry in entries %}
<li id="entry-{{ entry.id|e }}" class="{% if list_mode != 0 %}col collection-item{% endif %} s12" data-entry-id="{{ entry.id|e }}" data-test="entry">
{% if list_mode == 1 %}
{% include "@WallabagCore/Entry/_card_list.html.twig" with {'entry': entry, 'currentRoute': current_route, 'routes': entries_with_archived_class_routes} only %}
{% elseif not entry.previewPicture is null and entry.mimetype starts with 'image/' %}
{% include "@WallabagCore/Entry/_card_full_image.html.twig" with {'entry': entry, 'currentRoute': current_route, 'routes': entries_with_archived_class_routes} only %}
{% else %}
{% include "@WallabagCore/Entry/_card_preview.html.twig" with {'entry': entry, 'currentRoute': current_route, 'routes': entries_with_archived_class_routes} only %}
{% endif %}
</li>
{% endfor %}
</ol>
{% endif %}
</form>
{% if entries.getNbPages > 1 %}
<div class="results">
{{ pagerfanta(entries, 'default_wallabag') }}
</div>
{% endif %}
<!-- Export -->
<div id="export" class="side-nav right-aligned">
{% set current_tag = null %}
{% if tag is defined %}
{% set current_tag = tag.slug %}
{% endif %}
{% set export_search_term = null %}
{% if searchTerm is defined %}
{% set export_search_term = searchTerm %}
{% endif %}
{% set entry = app.request.attributes.get('id') %}
{% set previous_route = app.request.attributes.get('currentRoute') %}
<h4 class="center">{{ 'entry.list.export_title'|trans }}</h4>
<ul>
{% if craue_setting('export_epub') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', {'category': current_route, 'format': 'epub', 'tag': current_tag, 'search_entry[term]': export_search_term, 'currentRoute': previous_route, 'entry': entry}) }}">EPUB</a></li>{% endif %}
{% if craue_setting('export_pdf') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', {'category': current_route, 'format': 'pdf', 'tag': current_tag, 'search_entry[term]': export_search_term, 'currentRoute': previous_route, 'entry': entry}) }}">PDF</a></li>{% endif %}
{% if craue_setting('export_json') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', {'category': current_route, 'format': 'json', 'tag': current_tag, 'search_entry[term]': export_search_term, 'currentRoute': previous_route, 'entry': entry}) }}">JSON</a></li>{% endif %}
{% if craue_setting('export_csv') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', {'category': current_route, 'format': 'csv', 'tag': current_tag, 'search_entry[term]': export_search_term, 'currentRoute': previous_route, 'entry': entry}) }}">CSV</a></li>{% endif %}
{% if craue_setting('export_txt') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', {'category': current_route, 'format': 'txt', 'tag': current_tag, 'search_entry[term]': export_search_term, 'currentRoute': previous_route, 'entry': entry}) }}">TXT</a></li>{% endif %}
{% if craue_setting('export_xml') %}<li class="bold"><a class="waves-effect" href="{{ path('export_entries', {'category': current_route, 'format': 'xml', 'tag': current_tag, 'search_entry[term]': export_search_term, 'currentRoute': previous_route, 'entry': entry}) }}">XML</a></li>{% endif %}
</ul>
</div>
<!-- Filters -->
{% if form is not null %}
<div id="filters" class="side-nav right-aligned">
<form action="{{ path('all') }}">
<h4 class="center">{{ 'entry.filters.title'|trans }}</h4>
<div class="row">
{% if current_route != 'untagged' %}
<div class="col s12 center-align">
<a href="{{ path('untagged') }}">{{ 'tag.list.see_untagged_entries'|trans }}</a>
</div>
{% endif %}
<div class="col s12">
<label>{{ 'entry.filters.status_label'|trans }}</label>
</div>
<div class="input-field col s6 with-checkbox">
{{ form_widget(form.isArchived) }}
{{ form_label(form.isArchived) }}
</div>
<div class="input-field col s6 with-checkbox">
{{ form_widget(form.isStarred) }}
{{ form_label(form.isStarred) }}
</div>
<div class="input-field col s12 with-checkbox">
{{ form_widget(form.isUnread) }}
{{ form_label(form.isUnread) }}
</div>
<div class="input-field col s12 with-checkbox">
{{ form_widget(form.isAnnotated) }}
{{ form_label(form.isAnnotated) }}
</div>
<div class="input-field col s12 with-checkbox">
{{ form_widget(form.isNotParsed) }}
{{ form_label(form.isNotParsed) }}
</div>
<div class="col s12">
<label>{{ 'entry.filters.preview_picture_help'|trans }}</label>
</div>
<div class="input-field col s12 with-checkbox">
{{ form_widget(form.previewPicture) }}
{{ form_label(form.previewPicture) }}
</div>
<div class="col s12">
<label>{{ 'entry.filters.is_public_help'|trans }}</label>
</div>
<div class="input-field col s12 with-checkbox">
{{ form_widget(form.isPublic) }}
{{ form_label(form.isPublic) }}
</div>
<div class="col s12">
{{ form_label(form.language) }}
</div>
<div class="input-field col s12">
{{ form_widget(form.language) }}
</div>
<div class="col s12">
{{ form_label(form.httpStatus) }}
</div>
<div class="input-field col s12">
{{ form_widget(form.httpStatus) }}
</div>
<div class="col s12">
{{ form_label(form.readingTime) }}
</div>
<div class="input-field col s6">
{{ form_widget(form.readingTime.left_number, {'type': 'number'}) }}
<label for="entry_filter_readingTime_left_number">{{ 'entry.filters.reading_time.from'|trans }}</label>
</div>
<div class="input-field col s6">
{{ form_widget(form.readingTime.right_number, {'type': 'number'}) }}
<label for="entry_filter_readingTime_right_number">{{ 'entry.filters.reading_time.to'|trans }}</label>
</div>
<div class="input-field col s12">
{{ form_widget(form.domainName, {'type': 'text', 'attr': {'placeholder': 'website.com'}}) }}
{{ form_label(form.domainName) }}
</div>
<div class="col s12">
{{ form_label(form.createdAt) }}
</div>
<div class="input-field col s6">
{{ form_widget(form.createdAt.left_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.left_date.vars.value}}) }}
<label for="entry_filter_createdAt_left_date" class="active">{{ 'entry.filters.created_at.from'|trans }}</label>
</div>
<div class="input-field col s6">
{{ form_widget(form.createdAt.right_date, {'type': 'date', 'attr': {'class': 'datepicker', 'data-value': form.createdAt.right_date.vars.value}}) }}
<label for="entry_filter_createdAt_right_date" class="active">{{ 'entry.filters.created_at.to'|trans }}</label>
</div>
<div class="col s6">
<a href="#!" class="center waves-effect waves-green btn-flat" id="clear_form_filters">{{ 'entry.filters.action.clear'|trans }}</a>
</div>
<div class="col s6">
<button class="btn waves-effect waves-light" type="submit" id="submit-filter" value="filter">{{ 'entry.filters.action.filter'|trans }}</button>
</div>
</div>
</form>
</div>
{% endif %}
{% endblock %}

View file

@ -1,55 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
{% if type != 'tag' %}
<title>wallabag — {{ type }} feed</title>
<subtitle type="html">Atom feed for {{ type }} entries</subtitle>
<id>wallabag:{{ domainName|removeScheme|removeWww }}:{{ user }}:{{ type }}</id>
<link rel="alternate" type="text/html" href="{{ url(type) }}"/>
{% else %}
<id>wallabag:{{ domainName|removeScheme|removeWww }}:{{ user }}:{{ type }}:{{ tag }}</id>
<link rel="alternate" type="text/html" href="{{ url('tag_entries', {'slug': tag}) }}"/>
<title>wallabag — {{ type }} {{ tag }} feed</title>
<subtitle type="html">Atom feed for entries tagged with {{ tag }}</subtitle>
{% endif %}
{% if updated %}
<updated>{{ updated|date('c') }}</updated> {# Indicates the last time the feed was modified in a significant way. #}
{% endif %}
<link rel="self" type="application/atom+xml" href="{{ app.request.uri }}"/>
{% if entries.hasPreviousPage %}
<link rel="previous" href="{{ url }}/{{ entries.previousPage }}"/>
{% endif -%}
{% if entries.hasNextPage %}
<link rel="next" href="{{ url }}/{{ entries.nextPage }}"/>
{% endif -%}
<link rel="last" href="{{ url }}/{{ entries.nbPages }}"/>
<generator uri="https://wallabag.org" version="{{ version }}">wallabag</generator>
<author>
<name>{{ user }}</name>
</author>
<icon>{{ asset('favicon.ico') }}</icon>
<logo>{{ asset('bundles/wallabagcore/themes/_global/img/logo-square.png') }}</logo>
{% for entry in entries %}
<entry>
<title><![CDATA[{{ entry.title|e }}]]></title>
<link href="{{ entry.url }}"/>
<link rel="alternate" type="text/html"
href="{{ url('view', {'id': entry.id}) }}"/>
<link rel="via"
href="{{ entry.url }}"/>
<id>wallabag:{{ domainName|removeScheme|removeWww }}:{{ user }}:entry:{{ entry.id }}</id>
<updated>{{ entry.updatedAt|date('c') }}</updated>
<published>{{ entry.createdAt|date('c') }}</published>
{% for tag in entry.tags %}
<category term="{{ tag.slug }}" label="{{ tag.label }}" />
{% endfor %}
{% for author in entry.publishedBy %}
<author>
<name>{{ author }}</name>
</author>
{% endfor %}
<content type="html" {% if entry.language %}xml:lang="{{ entry.language[:2] }}"{% endif %}>
<![CDATA[{%- if entry.readingTime > 0 -%}{{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': entry.readingTime}) }}{%- else -%}{{ 'entry.list.reading_time_less_one_minute'|trans|raw }}{%- endif %}{{ entry.content|raw -}}]]>
</content>
</entry>
{% endfor %}
</feed>

View file

@ -1,329 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ entry.title|striptags|default('entry.default_title'|trans)|raw }} ({{ entry.domainName|removeWww }}){% endblock %}
{% block body_class %}entry{% endblock %}
{% set current_path = path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) %}
{% block menu %}
<div class="progress">
<div class="determinate"></div>
</div>
<nav class="hide-on-large-only js-entry-nav-top">
<div class="nav-panel-item cyan darken-1">
<ul>
<li>
<a href="#" data-activates="slide-out" class="button-collapse">
<i class="material-icons">menu</i>
</a>
</li>
<li>
<a class="waves-effect" href="{{ path('homepage') }}">
<i class="material-icons">arrow_back</i>
</a>
</li>
</ul>
<ul class="right">
<li>
<a class="waves-effect" title="{{ 'entry.view.left_menu.set_as_read'|trans }}" href="{{ path('archive_entry', {'id': entry.id, redirect: current_path}) }}" id="markAsRead">
<i class="material-icons small">{% if entry.isArchived == 0 %}done{% else %}unarchive{% endif %}</i>
</a>
</li>
<li>
<a class="waves-effect" title="{{ 'entry.view.left_menu.set_as_starred'|trans }}" href="{{ path('star_entry', {'id': entry.id, redirect: current_path}) }}" id="setFav">
<i class="material-icons small">{% if entry.isStarred == 0 %}star_outline{% else %}star{% endif %}</i>
</a>
</li>
</ul>
</div>
</nav>
<ul id="slide-out" class="left-bar collapsible side-nav fixed reader-mode" data-collapsible="accordion">
<li class="bold border-bottom hide-on-med-and-down">
<a class="waves-effect collapsible-header" href="{{ path('homepage') }}">
<i class="material-icons small">arrow_back</i>
<span>{{ 'entry.view.left_menu.back_to_homepage'|trans }}</span>
</a>
<div class="collapsible-body"></div>
</li>
<li class="bold border-bottom hide-on-med-and-down">
<a class="waves-effect collapsible-header original" href="{{ entry.url|e }}" target="_blank" rel="noopener">
<i class="material-icons small">link</i>
<span>{{ 'entry.view.left_menu.view_original_article'|trans }}</span>
</a>
<div class="collapsible-body"></div>
</li>
<li class="bold">
<a class="waves-effect collapsible-header" onclick="return confirm('{{ 'entry.confirm.reload'|trans|escape('js') }}')" title="{{ 'entry.view.left_menu.re_fetch_content'|trans }}" href="{{ path('reload_entry', {'id': entry.id}) }}" id="reload">
<i class="material-icons small">refresh</i>
<span>{{ 'entry.view.left_menu.re_fetch_content'|trans }}</span>
</a>
<div class="collapsible-body"></div>
</li>
{% set mark_as_read_label = 'entry.view.left_menu.set_as_unread' %}
{% if entry.isArchived == 0 %}
{% set mark_as_read_label = 'entry.view.left_menu.set_as_read' %}
{% endif %}
<li class="bold hide-on-med-and-down">
<a class="waves-effect collapsible-header markasread" title="{{ mark_as_read_label|trans }}" href="{{ path('archive_entry', {'id': entry.id, redirect: current_path}) }}" id="markAsRead">
<i class="material-icons small">{% if entry.isArchived == 0 %}done{% else %}unarchive{% endif %}</i>
<span>{{ mark_as_read_label|trans }}</span>
</a>
<div class="collapsible-body"></div>
</li>
<li class="bold hide-on-med-and-down">
<a class="waves-effect collapsible-header favorite" title="{{ 'entry.view.left_menu.set_as_starred'|trans }}" href="{{ path('star_entry', {'id': entry.id, redirect: current_path}) }}" id="setFav">
<i class="material-icons spall">{% if entry.isStarred == 0 %}star_outline{% else %}star{% endif %}</i>
<span>{{ 'entry.view.left_menu.set_as_starred'|trans }}</span>
</a>
<div class="collapsible-body"></div>
</li>
<li class="bold border-bottom">
<a class="waves-effect collapsible-header delete" onclick="return confirm('{{ 'entry.confirm.delete'|trans|escape('js') }}')" title="{{ 'entry.view.left_menu.delete'|trans }}" href="{{ path('delete_entry', {'id': entry.id, redirect: current_path}) }}">
<i class="material-icons small">delete</i>
<span>{{ 'entry.view.left_menu.delete'|trans }}</span>
</a>
<div class="collapsible-body"></div>
</li>
<li class="bold border-bottom">
<a class="waves-effect collapsible-header" id="nav-btn-add-tag">
<i class="material-icons small">label_outline</i>
<span>{{ 'entry.view.left_menu.add_a_tag'|trans }}</span>
</a>
<div class="collapsible-body"></div>
</li>
<li class="bold">
<a class="waves-effect collapsible-header">
<i class="material-icons small">brightness_medium</i>
<span>{{ 'entry.view.left_menu.theme_toggle'|trans }}</span>
</a>
<ul class="collapsible-body">
<li>
<a href="#" class="js-theme-toggle" data-theme="light">
<i class="theme-toggle-icon material-icons tiny">brightness_high</i>
<span>{{ 'entry.view.left_menu.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>{{ 'entry.view.left_menu.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>{{ 'entry.view.left_menu.theme_toggle_auto'|trans }}</span>
</a>
</li>
</ul>
</li>
{% if craue_setting('share_public') or craue_setting('share_twitter') or craue_setting('share_shaarli') or craue_setting('share_diaspora') or craue_setting('share_unmark') or craue_setting('share_mail') %}
<li class="bold">
<a class="waves-effect collapsible-header">
<i class="material-icons small">share</i>
<span>{{ 'entry.view.left_menu.share_content'|trans }}</span>
</a>
<div class="collapsible-body">
<ul>
{% if craue_setting('share_public') %}
<li>
<a href="{{ path('share', {'id': entry.id}) }}" target="_blank" title="{{ 'entry.view.left_menu.public_link'|trans }}" class="tool icon-eye">
<span>{{ 'entry.view.left_menu.public_link'|trans }}</span>
</a>
</li>
<li>
<a href="{{ path('delete_share', {'id': entry.id}) }}" title="{{ 'entry.view.left_menu.delete_public_link'|trans }}" class="tool icon-no-eye">
<span>{{ 'entry.view.left_menu.delete_public_link'|trans }}</span>
</a>
</li>
{% endif %}
{% if craue_setting('share_twitter') %}
<li>
<a href="https://twitter.com/share?text={{ entry.title|striptags|url_encode }}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" rel="noopener" class="tool icon-twitter" title="twitter">
<span>twitter</span>
</a>
</li>
{% endif %}
{% if craue_setting('share_shaarli') %}
<li>
<a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&amp;title={{ entry.title|striptags|url_encode }}&amp;tags={{ entry.tags|join(',')|striptags|url_encode }}{% if craue_setting('shaarli_share_origin_url') %}&amp;original_url={{ entry.originUrl|url_encode }}{% endif %}" target="_blank" rel="noopener" title="shaarli" class="tool icon-image shaarli">
<span>shaarli</span>
</a>
</li>
{% endif %}
{% if craue_setting('share_diaspora') %}
<li>
<a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&amp;title={{ entry.title|striptags|url_encode }}&amp;notes=&amp;v=1&amp;noui=1&amp;jump=doclose" target="_blank" rel="noopener" class="tool icon-image diaspora" title="diaspora">
<span>diaspora*</span>
</a>
</li>
{% endif %}
{% if craue_setting('share_unmark') %}
<li>
<a href="{{ craue_setting('unmark_url') }}/mark/add?url={{ entry.url|url_encode }}&amp;title={{ entry.title|striptags|url_encode }}&amp;v=6" target="_blank" rel="noopener" class="tool icon-image unmark" title="unmark">
<span>unmark.it</span>
</a>
</li>
{% endif %}
{% if craue_setting('share_mail') %}
<li>
<a href="mailto:?subject={{ entry.title|striptags|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@wallabagapp" title="{{ 'entry.view.left_menu.share_email_label'|trans }}" class="tool icon">
<i class="material-icons vertical-align-middle">mail</i>
<span>{{ 'entry.view.left_menu.share_email_label'|trans }}</span>
</a>
</li>
{% endif %}
</ul>
</div>
</li>
{% endif %}
{% if craue_setting('show_printlink') %}
<li class="bold border-bottom hide-on-med-and-down">
<a class="waves-effect collapsible-header" title="{{ 'entry.view.left_menu.print'|trans }}" href="javascript: window.print();">
<i class="material-icons small">print</i>
<span>{{ 'entry.view.left_menu.print'|trans }}</span>
</a>
<div class="collapsible-body"></div>
</li>
{% endif %}
<li class="bold border-top border-bottom">
<a class="waves-effect collapsible-header" title="{{ 'menu.top.random_entry'|trans }}" href="{{ path('random_entry', {'type': 'all'}) }}">
<i class="material-icons small">casino</i>
<span>{{ 'menu.top.random_entry'|trans }}</span>
</a>
</li>
<li class="bold">
<a class="waves-effect collapsible-header">
<i class="material-icons small">file_download</i>
<span>{{ 'entry.view.left_menu.export'|trans }}</span>
</a>
<div class="collapsible-body">
<ul>
{% if craue_setting('export_epub') %}<li><a href="{{ path('export_entry', {'id': entry.id, 'format': 'epub'}) }}" title="Generate ePub file">EPUB</a></li>{% endif %}
{% if craue_setting('export_pdf') %}<li><a href="{{ path('export_entry', {'id': entry.id, 'format': 'pdf'}) }}" title="Generate PDF file">PDF</a></li>{% endif %}
{% if craue_setting('export_csv') %}<li><a href="{{ path('export_entry', {'id': entry.id, 'format': 'csv'}) }}" title="Generate CSV file">CSV</a></li>{% endif %}
{% if craue_setting('export_json') %}<li><a href="{{ path('export_entry', {'id': entry.id, 'format': 'json'}) }}" title="Generate JSON file">JSON</a></li>{% endif %}
{% if craue_setting('export_txt') %}<li><a href="{{ path('export_entry', {'id': entry.id, 'format': 'txt'}) }}" title="Generate TXT file">TXT</a></li>{% endif %}
{% if craue_setting('export_xml') %}<li><a href="{{ path('export_entry', {'id': entry.id, 'format': 'xml'}) }}" title="Generate XML file">XML</a></li>{% endif %}
</ul>
</div>
</li>
<li class="bold">
<a class="waves-effect collapsible-header" href="mailto:siteconfig@wallabag.org?subject=Wrong%20display%20in%20wallabag&amp;body={{ entry.url|url_encode }}" title="{{ 'entry.view.left_menu.problem.description'|trans }}">
<i class="material-icons small">error</i>
<span>{{ 'entry.view.left_menu.problem.label'|trans }}</span>
</a>
<div class="collapsible-body"></div>
</li>
</ul>
{% endblock %}
{% block content %}
<div id="article" class="article">
<header class="mbm">
<h1><span{% if entry.language is defined and entry.language is not null %} lang="{{ entry.getHTMLLanguage() }}"{% endif %}>{{ entry.title|striptags|default('entry.default_title'|trans)|raw }}</span> <a class="title-edit" href="{{ path('edit', {'id': entry.id}) }}" title="{{ 'entry.view.edit_title'|trans }}"><i class="material-icons grey-text">create</i></a></h1>
</header>
<aside class="entry-info">
<div class="tools entry-tools grey-text" dir="auto">
<ul class="stats">
<li>
{% include "@WallabagCore/Entry/_reading_time.html.twig" with {'entry': entry} only %}
</li>
<li>
<i class="material-icons grey-text" title="{{ 'entry.view.created_at'|trans }}">today</i>
{{ entry.createdAt|date('Y-m-d H:i') }}
</li>
{% if entry.publishedAt is not null %}
<li>
<i class="material-icons grey-text" title="{{ 'entry.view.published_at'|trans }}">create</i>
{{ entry.publishedAt|date('Y-m-d H:i') }}
</li>
{% endif %}
{% if entry.publishedBy is not empty %}
<li>
<i class="material-icons grey-text" title="{{ 'entry.view.published_by'|trans }}">person</i>
{% for author in entry.publishedBy %}
{{ author|raw }}{% if not loop.last %}, {% endif %}
{% endfor %}
</li>
{% endif %}
<li>
<i class="material-icons grey-text">link</i>
<a href="{{ entry.url|e }}" target="_blank" rel="noopener" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|striptags }}" class="tool grey-text">
{{ entry.domainName|removeWww }}
</a>
</li>
{% if entry.annotations|length %}
<li>
<i class="material-icons grey-text">comment</i>
{{ 'entry.view.annotations_on_the_entry'|trans({'%count%': entry.annotations|length}) }}
</li>
{% endif %}
{% if entry.originUrl is not empty %}
<li>
<i class="material-icons grey-text" title="{{ 'entry.view.provided_by'|trans }}">launch</i>
<a href="{{ entry.originUrl|e }}" target="_blank" rel="noopener" class="tool grey-text" data-tests="entry-origin-url">
{{ entry.originUrl|striptags|removeSchemeAndWww|u.truncate(32) }}
</a>
</li>
{% endif %}
</ul>
{% include "@WallabagCore/Entry/_tags.html.twig" with {'tags': entry.tags, 'entryId': entry.id, 'withRemove': true} only %}
</div>
<div class="input-field nav-panel-add-tag" style="display: none">
{{ render(controller('Wallabag\\CoreBundle\\Controller\\TagController::addTagFormAction', {'id': entry.id})) }}
</div>
</aside>
<article{% if entry.language is defined and entry.language is not null %} lang="{{ entry.getHTMLLanguage() }}"{% endif %}>
{{ entry.content|raw }}
</article>
<div class="fixed-action-btn js-fixed-action-btn horizontal click-to-toggle hide-on-large-only">
<a class="btn-floating btn-large" data-toggle="actions">
<i class="material-icons">menu</i>
</a>
<ul>
<li><a class="btn-floating" href="{{ path('archive_entry', {'id': entry.id, redirect: current_path}) }}"><i class="material-icons">{% if entry.isArchived == 0 %}done{% else %}unarchive{% endif %}</i></a></li>
<li><a class="btn-floating" href="{{ path('star_entry', {'id': entry.id, redirect: current_path}) }}"><i class="material-icons">{% if entry.isStarred == 0 %}star_outline{% else %}star{% endif %}</i></a></li>
<li><a class="btn-floating" href="{{ path('delete_entry', {'id': entry.id, redirect: current_path}) }}" onclick="return confirm('{{ 'entry.confirm.delete'|trans|escape('js') }}')"><i class="material-icons">delete</i></a></li>
</ul>
</div>
</div>
<script id="annotationroutes" type="application/json">
{
"prefix": "",
"urls": {
"create": "{{ path('annotations_post_annotation', {'entry': entry.id}) }}",
"update": "{{ path('annotations_put_annotation', {'annotation': 'idAnnotation'}) }}",
"destroy": "{{ path('annotations_delete_annotation', {'annotation': 'idAnnotation'}) }}",
"search": "{{ path('annotations_get_annotations', {'entry': entry.id}) }}"
},
"entryId": "{{ entry.id }}"
}</script>
{% endblock %}
{% block footer %}
<style>
{{ app.user.config.customCSS|raw }}
</style>
{% endblock %}

View file

@ -1,6 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'entry.new.page_title'|trans }}{% endblock %}
{% block content %}
{% endblock %}

View file

@ -1,15 +0,0 @@
<form class="input-field nav-panel-item nav-panel-add" style="display: none" name="entry" method="post" action="{{ path('new_entry') }}">
{% if form_errors(form) %}
<span class="black-text">{{ form_errors(form) }}</span>
{% endif %}
<button type="submit" class="nav-form-button" aria-label="add"><i class="material-icons add" aria-hidden="true"></i></button>
{% if form_errors(form.url) %}
<span class="black-text">{{ form_errors(form.url) }}</span>
{% endif %}
{{ form_widget(form.url, {'attr': {'autocomplete': 'off', 'placeholder': 'entry.new.placeholder'}}) }}
<i class="material-icons close" aria-label="clear" role="button"></i>
{{ form_rest(form) }}
</form>

View file

@ -1,17 +0,0 @@
<form class="input-field nav-panel-item nav-panel-search" style="display: none" name="search" method="GET" action="{{ path('search') }}">
{% if form_errors(form) %}
<span class="black-text">{{ form_errors(form) }}</span>
{% endif %}
<button type="submit" class="nav-form-button" aria-label="search"><i class="material-icons search" aria-hidden="true"></i></button>
{% if form_errors(form.term) %}
<span class="black-text">{{ form_errors(form.term) }}</span>
{% endif %}
<input type="hidden" name="currentRoute" value="{{ currentRoute }}" />
{{ form_widget(form.term, {'attr': {'autocomplete': 'off', 'placeholder': 'entry.search.placeholder'}}) }}
<i class="material-icons close" aria-label="clear" role="button"></i>
{{ form_rest(form) }}
</form>

View file

@ -1,37 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{{ entry.title|e|raw }}</title>
<meta name="viewport" content="initial-scale=1.0">
<meta property="og:title" content="{{ entry.title|e|raw }}" />
<meta property="og:type" content="article" />
<meta property="og:url" content="{{ app.request.uri }}" />
{% set picture_path = app.request.schemeAndHttpHost ~ asset('img/logo-wallabag.svg') %}
{% if entry.previewPicture is not null %}
{% set picture_path = entry.previewPicture %}
{% endif %}
<meta property="og:image" content="{{ picture_path }}" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:image" content="{{ picture_path }}" />
<meta name="twitter:site" content="@wallabagapp" />
<meta name="twitter:title" content="{{ entry.title|e|raw }}" />
<meta name="twitter:description" content="{{ entry.content|striptags|slice(0, 300)|raw }}&hellip;" />
{% if app.debug %}
<script src="{{ asset('wallassets/public.dev.js') }}"></script>
{% else %}
<link rel="stylesheet" href="{{ asset('wallassets/public.css') }}">
{% endif %}
</head>
<body>
<header class="block">
<h1>{{ entry.title|e|raw }}</h1>
<a href="{{ entry.url|e }}" target="_blank" rel="noopener" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e|raw }}" class="tool">{{ entry.domainName|removeWww }}</a>
<p class="shared-by">{{ "entry.public.shared_by_wallabag"|trans({'%wallabag_instance%': url('homepage'), '%username%': entry.user.username|escape})|raw }}.</p>
</header>
<article class="block">
{{ entry.content|raw }}
</article>
</body>
</html>

View file

@ -1,87 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'ignore_origin_instance_rule.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel">
<div class="row">
<div class="input-field col s12">
<h4>{{ 'ignore_origin_instance_rule.edit_ignore_origin_instance_rule'|trans }}</h4>
<div id="set6" class="col s12">
{{ form_start(edit_form) }}
{{ form_errors(edit_form) }}
<div class="row">
<div class="input-field col s12">
{{ form_label(edit_form.rule) }}
{{ form_errors(edit_form.rule) }}
{{ form_widget(edit_form.rule) }}
</div>
</div>
<br/>
{{ form_widget(edit_form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_widget(edit_form._token) }}
</form>
<p>
{{ form_start(delete_form) }}
<button onclick="return confirm('{{ 'ignore_origin_instance_rule.form.delete_confirm'|trans|escape('js') }}')" type="submit" class="btn waves-effect waves-light red">{{ 'ignore_origin_instance_rule.form.delete'|trans }}</button>
{{ form_end(delete_form) }}
</p>
<p><a class="waves-effect waves-light btn blue-grey" href="{{ path('ignore_origin_instance_rules_index') }}">{{ 'ignore_origin_instance_rule.form.back_to_list'|trans }}</a></p>
</div>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<h4>{{ 'config.form_ignore_origin_rules.faq.title'|trans }}</h4>
<h5>{{ 'config.form_ignore_origin_rules.faq.ignore_origin_rules_definition_title'|trans }}</h5>
<p class="help">{{ 'config.form_ignore_origin_rules.faq.ignore_origin_rules_definition_description'|trans|raw }}</p>
<h5>{{ 'config.form_ignore_origin_rules.faq.how_to_use_them_title'|trans }}</h5>
<p class="help">{{ 'config.form_ignore_origin_rules.faq.how_to_use_them_description'|trans|raw }}</p>
<h5>{{ 'config.form_ignore_origin_rules.faq.variables_available_title'|trans }}</h5>
<p class="help">
{{ 'config.form_ignore_origin_rules.faq.variables_available_description'|trans }}
</p>
<table class="bordered">
<thead>
<tr>
<th>{{ 'config.form_ignore_origin_rules.faq.variable_description.label'|trans }}</th>
<th>{{ 'config.form_ignore_origin_rules.faq.meaning'|trans }}</th>
<th>{{ 'config.form_ignore_origin_rules.faq.operator_description.label'|trans }}</th>
<th>{{ 'config.form_ignore_origin_rules.faq.meaning'|trans }}</th>
</tr>
</thead>
<tbody>
<tr>
<td>host</td>
<td>{{ 'config.form_ignore_origin_rules.faq.variable_description.host'|trans }}</td>
<td>=</td>
<td>{{ 'config.form_ignore_origin_rules.faq.operator_description.equal_to'|trans }}</td>
</tr>
<tr>
<td>_all</td>
<td>{{ 'config.form_ignore_origin_rules.faq.variable_description._all'|trans }}</td>
<td>~</td>
<td>{{ 'config.form_ignore_origin_rules.faq.operator_description.matches'|trans|raw }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,42 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'ignore_origin_instance_rule.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel">
<div class="row">
<div class="input-field col s12">
<p class="help">{{ 'ignore_origin_instance_rule.description'|trans|raw }}</p>
<table class="bordered">
<thead>
<tr>
<th>{{ 'ignore_origin_instance_rule.form.rule_label'|trans }}</th>
<th>{{ 'ignore_origin_instance_rule.list.actions'|trans }}</th>
</tr>
</thead>
<tbody>
{% for rule in rules %}
<tr>
<td>{{ rule.rule }}</td>
<td>
<a href="{{ path('ignore_origin_instance_rules_edit', {'id': rule.id}) }}">{{ 'ignore_origin_instance_rule.list.edit_action'|trans }}</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<br />
<p>
<a href="{{ path('ignore_origin_instance_rules_new') }}" class="waves-effect waves-light btn">{{ 'ignore_origin_instance_rule.list.create_new_one'|trans }}</a>
</p>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,80 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'ignore_origin_instance_rule.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel">
<div class="row">
<div class="input-field col s12">
<h4>{{ 'ignore_origin_instance_rule.new_ignore_origin_instance_rule'|trans }}</h4>
<div id="set6" class="col s12">
{{ form_start(form) }}
{{ form_errors(form) }}
<div class="row">
<div class="input-field col s12">
{{ form_label(form.rule) }}
{{ form_errors(form.rule) }}
{{ form_widget(form.rule) }}
</div>
</div>
{{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form) }}
</form>
<p><a class="waves-effect waves-light btn blue-grey" href="{{ path('ignore_origin_instance_rules_index') }}">{{ 'ignore_origin_instance_rule.form.back_to_list'|trans }}</a></p>
</div>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<h4>{{ 'config.form_ignore_origin_rules.faq.title'|trans }}</h4>
<h5>{{ 'config.form_ignore_origin_rules.faq.ignore_origin_rules_definition_title'|trans }}</h5>
<p class="help">{{ 'config.form_ignore_origin_rules.faq.ignore_origin_rules_definition_description'|trans|raw }}</p>
<h5>{{ 'config.form_ignore_origin_rules.faq.how_to_use_them_title'|trans }}</h5>
<p class="help">{{ 'config.form_ignore_origin_rules.faq.how_to_use_them_description'|trans|raw }}</p>
<h5>{{ 'config.form_ignore_origin_rules.faq.variables_available_title'|trans }}</h5>
<p class="help">
{{ 'config.form_ignore_origin_rules.faq.variables_available_description'|trans }}
</p>
<table class="bordered">
<thead>
<tr>
<th>{{ 'config.form_ignore_origin_rules.faq.variable_description.label'|trans }}</th>
<th>{{ 'config.form_ignore_origin_rules.faq.meaning'|trans }}</th>
<th>{{ 'config.form_ignore_origin_rules.faq.operator_description.label'|trans }}</th>
<th>{{ 'config.form_ignore_origin_rules.faq.meaning'|trans }}</th>
</tr>
</thead>
<tbody>
<tr>
<td>host</td>
<td>{{ 'config.form_ignore_origin_rules.faq.variable_description.host'|trans }}</td>
<td>=</td>
<td>{{ 'config.form_ignore_origin_rules.faq.operator_description.equal_to'|trans }}</td>
</tr>
<tr>
<td>_all</td>
<td>{{ 'config.form_ignore_origin_rules.faq.variable_description._all'|trans }}</td>
<td>~</td>
<td>{{ 'config.form_ignore_origin_rules.faq.operator_description.matches'|trans|raw }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,45 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'import.chrome.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
{% include '@WallabagCore/Import/_information.html.twig' %}
<div class="row">
<blockquote>{{ import.description|trans|raw }}</blockquote>
<p>{{ 'import.chrome.how_to'|trans }}</p>
<div class="col s12">
{{ form_start(form, {'method': 'POST'}) }}
{{ form_errors(form) }}
<div class="row">
<div class="file-field input-field col s12">
{{ form_errors(form.file) }}
<div class="btn">
<span>{{ form.file.vars.label|trans }}</span>
{{ form_widget(form.file) }}
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text">
</div>
</div>
<div class="input-field col s6 with-checkbox">
<h6>{{ 'import.form.mark_as_read_title'|trans }}</h6>
{{ form_widget(form.mark_as_read) }}
{{ form_label(form.mark_as_read) }}
</div>
</div>
{{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form) }}
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,45 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'import.delicious.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
{% include '@WallabagCore/Import/_information.html.twig' %}
<div class="row">
<blockquote>{{ import.description|trans }}</blockquote>
<p>{{ 'import.delicious.how_to'|trans }}</p>
<div class="col s12">
{{ form_start(form, {'method': 'POST'}) }}
{{ form_errors(form) }}
<div class="row">
<div class="file-field input-field col s12">
{{ form_errors(form.file) }}
<div class="btn">
<span>{{ form.file.vars.label|trans }}</span>
{{ form_widget(form.file) }}
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text">
</div>
</div>
<div class="input-field col s6 with-checkbox">
<h6>{{ 'import.form.mark_as_read_title'|trans }}</h6>
{{ form_widget(form.mark_as_read) }}
{{ form_label(form.mark_as_read) }}
</div>
</div>
{{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form) }}
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,3 +0,0 @@
{% extends "@WallabagCore/Import/WallabagV1/index.html.twig" %}
{% block title %}{{ 'import.elcurator.page_title'|trans }}{% endblock %}

View file

@ -1,45 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'import.firefox.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
{% include '@WallabagCore/Import/_information.html.twig' %}
<div class="row">
<blockquote>{{ import.description|trans|raw }}</blockquote>
<p>{{ 'import.firefox.how_to'|trans }}</p>
<div class="col s12">
{{ form_start(form, {'method': 'POST'}) }}
{{ form_errors(form) }}
<div class="row">
<div class="file-field input-field col s12">
{{ form_errors(form.file) }}
<div class="btn">
<span>{{ form.file.vars.label|trans }}</span>
{{ form_widget(form.file) }}
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text">
</div>
</div>
<div class="input-field col s6 with-checkbox">
<h6>{{ 'import.form.mark_as_read_title'|trans }}</h6>
{{ form_widget(form.mark_as_read) }}
{{ form_label(form.mark_as_read) }}
</div>
</div>
{{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form) }}
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,45 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'import.instapaper.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
{% include '@WallabagCore/Import/_information.html.twig' %}
<div class="row">
<blockquote>{{ import.description|trans }}</blockquote>
<p>{{ 'import.instapaper.how_to'|trans }}</p>
<div class="col s12">
{{ form_start(form, {'method': 'POST'}) }}
{{ form_errors(form) }}
<div class="row">
<div class="file-field input-field col s12">
{{ form_errors(form.file) }}
<div class="btn">
<span>{{ form.file.vars.label|trans }}</span>
{{ form_widget(form.file) }}
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text">
</div>
</div>
<div class="input-field col s6 with-checkbox">
<h6>{{ 'import.form.mark_as_read_title'|trans }}</h6>
{{ form_widget(form.mark_as_read) }}
{{ form_label(form.mark_as_read) }}
</div>
</div>
{{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form) }}
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,45 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'import.pinboard.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
{% include '@WallabagCore/Import/_information.html.twig' %}
<div class="row">
<blockquote>{{ import.description|trans }}</blockquote>
<p>{{ 'import.pinboard.how_to'|trans }}</p>
<div class="col s12">
{{ form_start(form, {'method': 'POST'}) }}
{{ form_errors(form) }}
<div class="row">
<div class="file-field input-field col s12">
{{ form_errors(form.file) }}
<div class="btn">
<span>{{ form.file.vars.label|trans }}</span>
{{ form_widget(form.file) }}
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text">
</div>
</div>
<div class="input-field col s6 with-checkbox">
<h6>{{ 'import.form.mark_as_read_title'|trans }}</h6>
{{ form_widget(form.mark_as_read) }}
{{ form_label(form.mark_as_read) }}
</div>
</div>
{{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form) }}
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,37 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'import.pocket.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
{% include '@WallabagCore/Import/_information.html.twig' %}
{% if not has_consumer_key %}
<div class="card-panel red white-text">
{{ 'import.pocket.config_missing.description'|trans }}
{{ 'import.pocket.config_missing.admin_message'|trans({'%keyurls%': '<a href="' ~ path('config') ~ '" class="white-text"><strong>', '%keyurle%': '</strong></a>'})|raw }}
</div>
{% endif %}
<blockquote>{{ import.description|trans }}</blockquote>
<p>{{ 'import.pocket.authorize_message'|trans }}</p>
<form method="post" action="{{ path('import_pocket_auth') }}">
<div class="row">
<div class="input-field col s6 with-checkbox">
<h6>{{ 'import.form.mark_as_read_title'|trans }}</h6>
{{ form_widget(form.mark_as_read) }}
{{ form_label(form.mark_as_read) }}
</div>
</div>
<button class="btn waves-effect waves-light" type="submit" name="action" {% if not has_consumer_key %}disabled="disabled"{% endif %}>
{{ 'import.pocket.connect_to_pocket'|trans }}
</button>
</form>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,45 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'import.pocket_html.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
{% include '@WallabagCore/Import/_information.html.twig' %}
<div class="row">
<blockquote>{{ import.description|trans|raw }}</blockquote>
<p>{{ 'import.pocket_html.how_to'|trans }}</p>
<div class="col s12">
{{ form_start(form, {'method': 'POST'}) }}
{{ form_errors(form) }}
<div class="row">
<div class="file-field input-field col s12">
{{ form_errors(form.file) }}
<div class="btn">
<span>{{ form.file.vars.label|trans }}</span>
{{ form_widget(form.file) }}
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text">
</div>
</div>
<div class="input-field col s6 with-checkbox">
<h6>{{ 'import.form.mark_as_read_title'|trans }}</h6>
{{ form_widget(form.mark_as_read) }}
{{ form_label(form.mark_as_read) }}
</div>
</div>
{{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form) }}
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,45 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'import.readability.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
{% include '@WallabagCore/Import/_information.html.twig' %}
<div class="row">
<blockquote>{{ import.description|trans }}</blockquote>
<p>{{ 'import.readability.how_to'|trans }}</p>
<div class="col s12">
{{ form_start(form, {'method': 'POST'}) }}
{{ form_errors(form) }}
<div class="row">
<div class="file-field input-field col s12">
{{ form_errors(form.file) }}
<div class="btn">
<span>{{ form.file.vars.label|trans }}</span>
{{ form_widget(form.file) }}
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text">
</div>
</div>
<div class="input-field col s6 with-checkbox">
<h6>{{ 'import.form.mark_as_read_title'|trans }}</h6>
{{ form_widget(form.mark_as_read) }}
{{ form_label(form.mark_as_read) }}
</div>
</div>
{{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form) }}
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,45 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'import.shaarli.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
{% include '@WallabagCore/Import/_information.html.twig' %}
<div class="row">
<blockquote>{{ import.description|trans|raw }}</blockquote>
<p>{{ 'import.shaarli.how_to'|trans }}</p>
<div class="col s12">
{{ form_start(form, {'method': 'POST'}) }}
{{ form_errors(form) }}
<div class="row">
<div class="file-field input-field col s12">
{{ form_errors(form.file) }}
<div class="btn">
<span>{{ form.file.vars.label|trans }}</span>
{{ form_widget(form.file) }}
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text">
</div>
</div>
<div class="input-field col s6 with-checkbox">
<h6>{{ 'import.form.mark_as_read_title'|trans }}</h6>
{{ form_widget(form.mark_as_read) }}
{{ form_label(form.mark_as_read) }}
</div>
</div>
{{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form) }}
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,45 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'import.wallabag_v1.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
{% include '@WallabagCore/Import/_information.html.twig' %}
<div class="row">
<blockquote>{{ import.description|trans }}</blockquote>
<p>{{ 'import.wallabag_v1.how_to'|trans }}</p>
<div class="col s12">
{{ form_start(form, {'method': 'POST'}) }}
{{ form_errors(form) }}
<div class="row">
<div class="file-field input-field col s12">
{{ form_errors(form.file) }}
<div class="btn">
<span>{{ form.file.vars.label|trans }}</span>
{{ form_widget(form.file) }}
</div>
<div class="file-path-wrapper">
<input class="file-path validate" type="text">
</div>
</div>
<div class="input-field col s6 with-checkbox">
<h6>{{ 'import.form.mark_as_read_title'|trans }}</h6>
{{ form_widget(form.mark_as_read) }}
{{ form_label(form.mark_as_read) }}
</div>
</div>
{{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form) }}
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,3 +0,0 @@
{% extends "@WallabagCore/Import/WallabagV1/index.html.twig" %}
{% block title %}{{ 'import.wallabag_v2.page_title'|trans }}{% endblock %}

View file

@ -1,15 +0,0 @@
{% set redis = craue_setting('import_with_redis') %}
{% set rabbit = craue_setting('import_with_rabbitmq') %}
{% set download_images = craue_setting('download_images_enabled') %}
{% if redis or rabbit %}
<div class="card-panel yellow darken-1 black-text">
{{ 'import.worker.enabled'|trans }} <strong>{% if rabbit %}RabbitMQ{% elseif redis %}Redis{% endif %}</strong>
</div>
{% endif %}
{% if not redis and not rabbit and download_images %}
<div class="card-panel orange darken-1 black-text">
{{ 'import.worker.download_images_warning'|trans|raw }}
</div>
{% endif %}

View file

@ -1,23 +0,0 @@
{% if nbRedisMessages is defined and nbRedisMessages > 0 %}
<script>
Materialize.toast('Messages in queue: {{ nbRedisMessages }}', 4000);
</script>
{% endif %}
{% if nbRabbitMessages is defined and nbRabbitMessages > 0 %}
<script>
Materialize.toast('Messages in queue: {{ nbRabbitMessages }}', 4000);
</script>
{% endif %}
{% if redisNotInstalled is defined and redisNotInstalled %}
<div class="card-panel red darken-1 white-text">
{{ 'flashes.import.error.redis_enabled_not_installed'|trans|raw }}
</div>
{% endif %}
{% if rabbitNotInstalled is defined and rabbitNotInstalled %}
<div class="card-panel red darken-1 white-text">
{{ 'flashes.import.error.rabbit_enabled_not_installed'|trans|raw }}
</div>
{% endif %}

View file

@ -1,30 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'import.page_title'|trans }}{% endblock %}
{% block messages %}
{{ render(controller('Wallabag\\CoreBundle\\Controller\\Import\\ImportController::checkQueueAction')) }}
{{ parent() }}
{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
{% include '@WallabagCore/Import/_information.html.twig' %}
{{ 'import.page_description'|trans }}
<ul>
{% for import in imports %}
<li>
<h5>{{ import.name }}</h5>
<blockquote>{{ import.description|trans|raw }}</blockquote>
<p><a class="waves-effect waves-light btn" href="{{ path(import.url) }}">{{ 'import.action.import_contents'|trans }}</a></p>
</li>
{% endfor %}
</ul>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,6 +0,0 @@
Hello {{ username }}!
To reset your password - please visit {{ confirmationUrl }}
Regards,
Wallabag bot

View file

@ -1,5 +0,0 @@
# Material Theme
Theme created by Danilow (@modos189) Alexandr http://modos189.ru/
Used framework http://materializecss.com/

View file

@ -1,11 +0,0 @@
{% extends "@FOSUser/layout.html.twig" %}
{% trans_default_domain 'FOSUserBundle' %}
{% block fos_user_content %}
<div class="card-content">
<div class="row">
{{ 'resetting.password_already_requested'|trans }}
</div>
</div>
{% endblock fos_user_content %}

View file

@ -1,60 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'site_credential.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel">
<div class="row">
<div class="input-field col s12">
<h4>{{ 'site_credential.edit_site_credential'|trans }}</h4>
<div id="set6" class="col s12">
{{ form_start(edit_form) }}
{{ form_errors(edit_form) }}
<div class="row">
<div class="input-field col s12">
{{ form_label(edit_form.host) }}
{{ form_errors(edit_form.host) }}
{{ form_widget(edit_form.host) }}
</div>
</div>
<div class="row">
<div class="input-field col s12">
{{ form_label(edit_form.username) }}
{{ form_errors(edit_form.username) }}
{{ form_widget(edit_form.username) }}
</div>
</div>
<div class="row">
<div class="input-field col s12">
{{ form_label(edit_form.password) }}
{{ form_errors(edit_form.password) }}
{{ form_widget(edit_form.password) }}
</div>
</div>
<br/>
{{ form_widget(edit_form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_widget(edit_form._token) }}
</form>
<p>
{{ form_start(delete_form) }}
<button onclick="return confirm('{{ 'site_credential.form.delete_confirm'|trans|escape('js') }}')" type="submit" class="btn waves-effect waves-light red">{{ 'site_credential.form.delete'|trans }}</button>
{{ form_end(delete_form) }}
</p>
<p><a class="waves-effect waves-light btn blue-grey" href="{{ path('site_credentials_index') }}">{{ 'site_credential.form.back_to_list'|trans }}</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,42 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'site_credential.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel">
<div class="row">
<div class="input-field col s12">
<p class="help">{{ 'site_credential.description'|trans|raw }}</p>
<table class="bordered">
<thead>
<tr>
<th>{{ 'site_credential.form.host_label'|trans }}</th>
<th>{{ 'site_credential.list.actions'|trans }}</th>
</tr>
</thead>
<tbody>
{% for credential in credentials %}
<tr>
<td>{{ credential.host }}</td>
<td>
<a href="{{ path('site_credentials_edit', {'id': credential.id}) }}">{{ 'site_credential.list.edit_action'|trans }}</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<br />
<p>
<a href="{{ path('site_credentials_new') }}" class="waves-effect waves-light btn">{{ 'site_credential.list.create_new_one'|trans }}</a>
</p>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,53 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'site_credential.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel">
<div class="row">
<div class="input-field col s12">
<h4>{{ 'site_credential.new_site_credential'|trans }}</h4>
<div id="set6" class="col s12">
{{ form_start(form) }}
{{ form_errors(form) }}
<div class="row">
<div class="input-field col s12">
{{ form_label(form.host) }}
{{ form_errors(form.host) }}
{{ form_widget(form.host) }}
</div>
</div>
<div class="row">
<div class="input-field col s12">
{{ form_label(form.username) }}
{{ form_errors(form.username) }}
{{ form_widget(form.username) }}
</div>
</div>
<div class="row">
<div class="input-field col s12">
{{ form_label(form.password) }}
{{ form_errors(form.password) }}
{{ form_widget(form.password) }}
</div>
</div>
{{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form) }}
</form>
<p><a class="waves-effect waves-light btn blue-grey" href="{{ path('site_credentials_index') }}">{{ 'site_credential.form.back_to_list'|trans }}</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1 +0,0 @@
<a id="bookmarklet" ondragend="this.click();" href="javascript:(function(){var url=location.href||url;var wllbg=window.open('{{ url('bookmarklet') }}?url=' + encodeURIComponent(url),'_blank');})();">bag it!</a>

View file

@ -1,177 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'about.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
<div class="row">
<div class="tabs-container col s12">
<ul class="tabs">
<li class="tab col s12 m6 l3"><a class="active" href="#set1">{{ 'about.top_menu.who_behind_wallabag'|trans }}</a></li>
<li class="tab col s12 m6 l3"><a href="#set2">{{ 'about.top_menu.getting_help'|trans }}</a></li>
<li class="tab col s12 m6 l3"><a href="#set3">{{ 'about.top_menu.helping'|trans }}</a></li>
<li class="tab col s12 m6 l3"><a href="#set4">{{ 'about.top_menu.third_party'|trans }}</a></li>
</ul>
</div>
<div id="set1" class="col s12">
<dt>{{ 'about.who_behind_wallabag.developped_by'|trans }}</dt>
<dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="https://nicolas.loeuillet.org">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
<dd>Thomas Citharel — <a href="https://tcit.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
<dd>Jérémy Benoist — <a href="https://www.j0k3r.net">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
<dd>Kevin Decherf — <a href="https://kdecherf.com/">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
<dt>{{ 'about.who_behind_wallabag.many_contributors'|trans|raw }}</dt>
<dt>{{ 'about.who_behind_wallabag.project_website'|trans }}</dt>
<dd><a href="https://www.wallabag.org">https://www.wallabag.org</a></dd>
<dt>{{ 'about.who_behind_wallabag.license'|trans }}: <a href="https://en.wikipedia.org/wiki/MIT_License">MIT</a></dt>
<dt>{{ 'about.who_behind_wallabag.version'|trans }}: {{ version }}</dt>
</div>
<div id="set2" class="col s12">
<dl>
<dt>{{ 'about.getting_help.documentation'|trans }}</dt>
<dd><a href="https://doc.wallabag.org/en/">english</a></dd>
<dd><a href="https://doc.wallabag.org/fr/">français</a></dd>
<dd><a href="https://doc.wallabag.org/de/">deutsch</a></dd>
<dd><a href="https://doc.wallabag.org/it/">italiano</a></dd>
<dt>{{ 'about.getting_help.bug_reports'|trans }}</dt>
<dd>{{ 'about.getting_help.support'|trans|raw }}</dd>
</dl>
</div>
<div id="set3" class="col s12">
<dl>
<dt>{{ 'about.helping.description'|trans }} <a href="{{ paypal_url }}">{{ 'about.helping.by_paypal'|trans }}</a></dt>
</dl>
</div>
<div id="set4" class="col s12">
<p>{{ 'about.third_party.description'|trans }}</p>
<table class="striped">
<tr>
<th>{{ 'about.third_party.package'|trans }}</th>
<th>{{ 'about.third_party.license'|trans }}</th>
</tr>
<tr><td>behat/transliterator</td><td>Artistic 1.0</td></tr>
<tr><td>CraueConfigBundle</td><td>MIT</td></tr>
<tr><td>doctrine/annotations</td><td>MIT</td></tr>
<tr><td>doctrine/cache</td><td>MIT</td></tr>
<tr><td>doctrine/collections</td><td>MIT</td></tr>
<tr><td>doctrine/common</td><td>MIT</td></tr>
<tr><td>doctrine/dbal</td><td>MIT</td></tr>
<tr><td>doctrine/doctrine-bundle</td><td>MIT</td></tr>
<tr><td>doctrine/doctrine-cache-bundle</td><td>MIT</td></tr>
<tr><td>doctrine/doctrine-migrations-bundle</td><td>MIT</td></tr>
<tr><td>doctrine/inflector</td><td>MIT</td></tr>
<tr><td>doctrine/instantiator</td><td>MIT</td></tr>
<tr><td>doctrine/lexer</td><td>MIT</td></tr>
<tr><td>doctrine/migrations</td><td>LGPL-2.1</td></tr>
<tr><td>doctrine/orm</td><td>MIT</td></tr>
<tr><td>friendsofsymfony/oauth-server-bundle</td><td>MIT</td></tr>
<tr><td>friendsofsymfony/oauth2-php</td><td>MIT</td></tr>
<tr><td>friendsofsymfony/rest-bundle</td><td>MIT</td></tr>
<tr><td>friendsofsymfony/user-bundle</td><td>MIT</td></tr>
<tr><td>gedmo/doctrine-extensions</td><td>MIT</td></tr>
<tr><td>grandt/binstring</td><td>LGPL-2.1</td></tr>
<tr><td>grandt/phpepub</td><td>LGPL-2.1</td></tr>
<tr><td>grandt/phpresizegif</td><td>LGPL-2.1</td></tr>
<tr><td>grandt/phpzipmerge</td><td>LGPL-2.1</td></tr>
<tr><td>grandt/relativepath</td><td>LGPL-2.1</td></tr>
<tr><td>guzzlehttp/guzzle</td><td>MIT</td></tr>
<tr><td>guzzlehttp/ringphp</td><td>MIT</td></tr>
<tr><td>guzzlehttp/streams</td><td>MIT</td></tr>
<tr><td>hoa/compiler</td><td>BSD-3-Clause</td></tr>
<tr><td>hoa/consistency</td><td>BSD-3-Clause</td></tr>
<tr><td>hoa/event</td><td>BSD-3-Clause</td></tr>
<tr><td>hoa/exception</td><td>BSD-3-Clause</td></tr>
<tr><td>hoa/file</td><td>BSD-3-Clause</td></tr>
<tr><td>hoa/iterator</td><td>BSD-3-Clause</td></tr>
<tr><td>hoa/math</td><td>BSD-3-Clause</td></tr>
<tr><td>hoa/protocol</td><td>BSD-3-Clause</td></tr>
<tr><td>hoa/regex</td><td>BSD-3-Clause</td></tr>
<tr><td>hoa/ruler</td><td>BSD-3-Clausev
<tr><td>hoa/stream</td><td>BSD-3-Clause</td></tr>
<tr><td>hoa/ustring</td><td>BSD-3-Clause</td></tr>
<tr><td>hoa/visitor</td><td>BSD-3-Clause</td></tr>
<tr><td>hoa/zformat</td><td>BSD-3-Clause</td></tr>
<tr><td>htmlawed/htmlawed</td><td>GPL-2.0+ or LGPL-3.0</td></tr>
<tr><td>incenteev/composer-parameter-handler</td><td>MIT</td></tr>
<tr><td>j0k3r/graby</td><td>MIT</td></tr>
<tr><td>j0k3r/graby-site-config</td><td>Public domain</td></tr>
<tr><td>j0k3r/php-readability</td><td>Apache-2.0</td></tr>
<tr><td>j0k3r/safecurl</td><td>MIT</td></tr>
<tr><td>jdorn/sql-formatter</td><td>MIT</td></tr>
<tr><td>jms/metadata</td><td>Apache</td></tr>
<tr><td>jms/parser-lib</td><td>Apache2</td></tr>
<tr><td>jms/serializer</td><td>Apache2</td></tr>
<tr><td>jms/serializer-bundle</td><td>Apache2</td></tr>
<tr><td>kphoen/rulerz</td><td>MIT</td></tr>
<tr><td>kphoen/rulerz-bundle</td><td>MIT</td></tr>
<tr><td>kriswallsmith/assetic</td><td>MIT</td></tr>
<tr><td>mgargano/simplehtmldom</td><td>MIT</td></tr>
<tr><td>michelf/php-markdown</td><td>BSD-3-Clause</td></tr>
<tr><td>monolog/monolog</td><td>MIT</td></tr>
<tr><td>neitanod/forceutf8</td><td>BSD-3-Clause</td></tr>
<tr><td>nelmio/api-doc-bundle</td><td>MIT</td></tr>
<tr><td>nelmio/cors-bundle</td><td>MIT</td></tr>
<tr><td>ocramius/proxy-manager</td><td>MIT</td></tr>
<tr><td>pagerfanta/pagerfanta</td><td>MIT</td></tr>
<tr><td>paragonie/random_compat</td><td>MIT</td></tr>
<tr><td>phpcollection/phpcollection</td><td>Apache2</td></tr>
<tr><td>phpoption/phpoption</td><td>Apache2</td></tr>
<tr><td>phpzip/phpzip</td><td>LGPL-2.1</td></tr>
<tr><td>psr/log</td><td>MIT</td></tr>
<tr><td>react/promise</td><td>MIT</td></tr>
<tr><td>scheb/two-factor-bundle</td><td>MIT</td></tr>
<tr><td>sensio/framework-extra-bundle</td><td>MIT</td></tr>
<tr><td>simplepie/simplepie</td><td>BSD-3-Clause</td></tr>
<tr><td>smalot/pdfparser</td><td>GPL-3.0</td></tr>
<tr><td>spiriitlabs/form-filter-bundle</td><td>MIT</td></tr>
<tr><td>sonata-project/google-authenticator</td><td>MIT</td></tr>
<tr><td>stof/doctrine-extensions-bundle</td><td>MIT</td></tr>
<tr><td>symfony/assetic-bundle</td><td>MIT</td></tr>
<tr><td>symfony/monolog-bundle</td><td>MIT</td></tr>
<tr><td>All of Symfony</td><td>MIT-licenced</td></tr>
<tr><td>tecnickcom/tcpdf</td><td>LGPLv3</td></tr>
<tr><td>twig/extensions</td><td>MIT</td></tr>
<tr><td>twig/twig</td><td>BSD-3-Clause</td></tr>
<tr><td>willdurand/hateoas</td><td>MIT</td></tr>
<tr><td>willdurand/hateoas-bundle</td><td>MIT</td></tr>
<tr><td>willdurand/jsonp-callback-validator</td><td>MIT</td></tr>
<tr><td>willdurand/negotiation</td><td>MIT</td></tr>
<tr><td>zendframework/zend-code</td><td>BSD-3-Clause</td></tr>
<tr><td>zendframework/zend-eventmanager</td><td>BSD-3-Clause</td></tr>
<tr><td>doctrine/data-fixtures</td><td>MIT</td></tr>
<tr><td>doctrine/doctrine-fixtures-bundle</td><td>MIT</td></tr>
<tr><td>phpdocumentor/reflection-docblock</td><td>MIT</td></tr>
<tr><td>phpspec/prophecy</td><td>MIT</td></tr>
<tr><td>phpunit/php-code-coverage</td><td>BSD-3-Clause</td></tr>
<tr><td>phpunit/php-file-iterator</td><td>BSD-3-Clause</td></tr>
<tr><td>phpunit/php-text-template</td><td>BSD-3-Clause</td></tr>
<tr><td>phpunit/php-timer</td><td>BSD-3-Clause</td></tr>
<tr><td>phpunit/php-token-stream</td><td>BSD-3-Clause</td></tr>
<tr><td>phpunit/phpunit</td><td>BSD-3-Clause</td></tr>
<tr><td>phpunit/phpunit-mock-objects</td><td>BSD-3-Clause</td></tr>
<tr><td>sebastian/comparator</td><td>BSD-3-Clause</td></tr>
<tr><td>sebastian/diff</td><td>BSD-3-Clause</td></tr>
<tr><td>sebastian/environment</td><td>BSD-3-Clause</td></tr>
<tr><td>sebastian/exporter</td><td>BSD-3-Clause</td></tr>
<tr><td>sebastian/global-state</td><td>BSD-3-Clause</td></tr>
<tr><td>sebastian/recursion-context</td><td>BSD-3-Clause</td></tr>
<tr><td>sebastian/version</td><td>BSD-3-Clause</td></tr>
<tr><td>sensio/generator-bundle</td><td>MIT</td></tr>
<tr><td>symfony/phpunit-bridge</td><td>MIT</td></tr>
</table>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,180 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'howto.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel settings">
<div class="row">
<div class="tabs-container col s12">
<ul class="tabs">
<li class="tab col s12 m6 l3"><a class="active" href="#set1">{{ 'howto.tab_menu.add_link'|trans }}</a></li>
<li class="tab col s12 m6 l3"><a href="#set2">{{ 'howto.tab_menu.shortcuts'|trans }}</a></li>
</ul>
</div>
<div id="set1" class="col s12">
<p>{{ 'howto.page_description'|trans }}</p>
<div class="row">
<div class="col s12">
<a href="{{ path('new') }}">{{ 'howto.form.description'|trans }}</a>
</div>
<div class="col s12">
<h5>{{ 'howto.top_menu.browser_addons'|trans }}</h5>
<ul>
<li><a href="{{ addonsUrl.firefox }}" target="_blank" rel="noopener">{{ 'howto.browser_addons.firefox'|trans }}</a></li>
<li><a href="{{ addonsUrl.chrome }}" target="_blank" rel="noopener">{{ 'howto.browser_addons.chrome'|trans }}</a></li>
<li><a href="{{ addonsUrl.opera }}" target="_blank" rel="noopener">{{ 'howto.browser_addons.opera'|trans }}</a></li>
</ul>
</div>
<div class="col s12">
<h5>{{ 'howto.top_menu.mobile_apps'|trans }}</h5>
<ul>
<li>Android: <a href="{{ addonsUrl.f_droid }}" target="_blank" rel="noopener">{{ 'howto.mobile_apps.android.via_f_droid'|trans }}</a> / <a href="{{ addonsUrl.google_play }}" target="_blank" rel="noopener">{{ 'howto.mobile_apps.android.via_google_play'|trans }}</a></li>
<li>iOS: <a href="{{ addonsUrl.ios }}" target="_blank">{{ 'howto.mobile_apps.ios'|trans }}</a></li>
<li>Windows Phone: <a href="{{ addonsUrl.windows }}" target="_blank" rel="noopener">{{ 'howto.mobile_apps.windows'|trans }}</a></li>
</ul>
</div>
<div class="col s12">
<h5>{{ 'howto.top_menu.bookmarklet'|trans }}</h5>
{{ 'howto.bookmarklet.description'|trans }}
{% include '@WallabagCore/Static/_bookmarklet.html.twig' %}
</div>
</div>
</div>
<div id="set2" class="col s12">
<p>{{ 'howto.shortcuts.page_description'|trans }}</p>
<h5>{{ 'howto.shortcuts.all_pages_title'|trans }}</h5>
<table class="bordered">
<thead>
<tr>
<th>{{ 'howto.shortcuts.shortcut'|trans }}</th>
<th>{{ 'howto.shortcuts.action'|trans }}</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>g u</code></td>
<td>{{ 'howto.shortcuts.go_unread'|trans }}</td>
</tr>
<tr>
<td><code>g s</code></td>
<td>{{ 'howto.shortcuts.go_starred'|trans }}</td>
</tr>
<tr>
<td><code>g r</code></td>
<td>{{ 'howto.shortcuts.go_archive'|trans }}</td>
</tr>
<tr>
<td><code>g a</code></td>
<td>{{ 'howto.shortcuts.go_all'|trans }}</td>
</tr>
<tr>
<td><code>g t</code></td>
<td>{{ 'howto.shortcuts.go_tags'|trans }}</td>
</tr>
<tr>
<td><code>g c</code></td>
<td>{{ 'howto.shortcuts.go_config'|trans }}</td>
</tr>
<tr>
<td><code>g i</code></td>
<td>{{ 'howto.shortcuts.go_import'|trans }}</td>
</tr>
<tr>
<td><code>g d</code></td>
<td>{{ 'howto.shortcuts.go_developers'|trans }}</td>
</tr>
<tr>
<td><code>?</code></td>
<td>{{ 'howto.shortcuts.go_howto'|trans }}</td>
</tr>
<tr>
<td><code>g l</code></td>
<td>{{ 'howto.shortcuts.go_logout'|trans }}</td>
</tr>
<tr>
<td><code>g n</code></td>
<td>{{ 'howto.shortcuts.add_link'|trans }}</td>
</tr>
<tr>
<td><code>esc</code></td>
<td>{{ 'howto.shortcuts.hide_form'|trans }}</td>
</tr>
<tr>
<td><code>← →</code></td>
<td>{{ 'howto.shortcuts.arrows_navigation'|trans }}</td>
</tr>
<tr>
<td><code>enter</code></td>
<td>{{ 'howto.shortcuts.open_article'|trans }}</td>
</tr>
</tbody>
</table>
<h5>{{ 'howto.shortcuts.list_title'|trans }}</h5>
<table class="bordered">
<thead>
<tr>
<th>{{ 'howto.shortcuts.shortcut'|trans }}</th>
<th>{{ 'howto.shortcuts.action'|trans }}</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>s</code></td>
<td>{{ 'howto.shortcuts.search'|trans }}</td>
</tr>
</tbody>
</table>
<h5>{{ 'howto.shortcuts.article_title'|trans }}</h5>
<table class="bordered">
<thead>
<tr>
<th>{{ 'howto.shortcuts.shortcut'|trans }}</th>
<th>{{ 'howto.shortcuts.action'|trans }}</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>o</code></td>
<td>{{ 'howto.shortcuts.open_original'|trans }}</td>
</tr>
<tr>
<td><code>f</code></td>
<td>{{ 'howto.shortcuts.toggle_favorite'|trans }}</td>
</tr>
<tr>
<td><code>a</code></td>
<td>{{ 'howto.shortcuts.toggle_archive'|trans }}</td>
</tr>
<tr>
<td><code>del</code></td>
<td>{{ 'howto.shortcuts.delete'|trans }}</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,119 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'quickstart.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row quickstart">
<div class="col s12">
<div class="card-panel settings">
<div class="row">
<h3>{{ 'quickstart.intro.title'|trans }}</h3>
<ul class="row data">
<li class="col l4 m6 s12">
<div class="card teal darken-1">
<div class="card-content white-text">
<span class="card-title white-text">{{ 'quickstart.configure.title'|trans }}</span>
<p>{{ 'quickstart.configure.description'|trans }}</p>
</div>
<div class="card-action">
<ul>
<li><a href="{{ path('config') }}">{{ 'quickstart.configure.language'|trans }}</a></li>
<li><a href="{{ path('config') }}#set2">{{ 'quickstart.configure.feed'|trans }}</a></li>
<li><a href="{{ path('config') }}#set5">{{ 'quickstart.more'|trans }}</a></li>
</ul>
</div>
</div>
</li>
<li class="col l4 m6 s12">
<div class="card green darken-1">
<div class="card-content white-text">
<span class="card-title white-text">{{ 'quickstart.first_steps.title'|trans }}</span>
<p>{{ 'quickstart.first_steps.description'|trans }}</p>
</div>
<div class="card-action">
<ul>
<li><a href="https://doc.wallabag.org/en/user/articles/save.html">{{ 'quickstart.first_steps.new_article'|trans }}</a></li>
<li><a href="{{ path('unread') }}">{{ 'quickstart.first_steps.unread_articles'|trans }}</a></li>
</ul>
</div>
</div>
</li>
<li class="col l4 m6 s12">
<div class="card light-green darken-1">
<div class="card-content white-text">
<span class="card-title white-text">{{ 'quickstart.migrate.title'|trans }}</span>
<p>{{ 'quickstart.migrate.description'|trans }}</p>
</div>
<div class="card-action">
<ul>
<li><a href="{{ path('import_pocket') }}">{{ 'quickstart.migrate.pocket'|trans }}</a></li>
<li><a href="{{ path('import_readability') }}">{{ 'quickstart.migrate.readability'|trans }}</a></li>
<li><a href="{{ path('import_instapaper') }}">{{ 'quickstart.migrate.instapaper'|trans }}</a></li>
<li><a href="{{ path('import') }}">{{ 'quickstart.more'|trans }}</a></li>
</ul>
</div>
</div>
</li>
<li class="col l4 m6 s12">
<div class="card blue darken-1">
<div class="card-content white-text">
<span class="card-title white-text">{{ 'quickstart.developer.title'|trans }}</span>
<p>{{ 'quickstart.developer.description'|trans }}</p>
</div>
<div class="card-action">
<ul>
<li><a href="{{ path('developer') }}">{{ 'quickstart.developer.create_application'|trans }}</a></li>
<li><a href="https://doc.wallabag.org/en/developer/docker.html">{{ 'quickstart.developer.use_docker'|trans }}</a></li>
<li><a href="https://doc.wallabag.org/">{{ 'quickstart.more'|trans }}</a></li>
</ul>
</div>
</div>
</li>
<li class="col l4 m6 s12">
<div class="card light-blue darken-1">
<div class="card-content white-text">
<span class="card-title white-text">{{ 'quickstart.docs.title'|trans }}</span>
<p>{{ 'quickstart.docs.description'|trans }}</p>
</div>
<div class="card-action">
<ul>
<li><a href="https://doc.wallabag.org/en/user/articles/annotations.html">{{ 'quickstart.docs.annotate'|trans }}</a></li>
<li><a href="https://doc.wallabag.org/en/user/articles/download.html">{{ 'quickstart.docs.export'|trans }}</a></li>
<li><a href="https://doc.wallabag.org/">{{ 'quickstart.docs.all_docs'|trans }}</a></li>
</ul>
</div>
</div>
</li>
<li class="col l4 m6 s12">
<div class="card cyan darken-1">
<div class="card-content white-text">
<span class="card-title white-text">{{ 'quickstart.support.title'|trans }}</span>
<p>{{ 'quickstart.support.description'|trans }}</p>
</div>
<div class="card-action">
<ul>
<li><a href="https://github.com/wallabag/wallabag/issues/">{{ 'quickstart.support.github'|trans }}</a></li>
<li><a href="mailto:hello@wallabag.org">{{ 'quickstart.support.email'|trans }}</a></li>
<li><a href="https://gitter.im/wallabag/wallabag">{{ 'quickstart.support.gitter'|trans }}</a></li>
</ul>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,14 +0,0 @@
<form class="tags-add-form" name="tag" method="post" action="{{ path('new_tag', {'entry': entry.id}) }}">
{% if form_errors(form) %}
<span class="black-text">{{ form_errors(form) }}</span>
{% endif %}
{% if form_errors(form.label) %}
<span class="black-text">{{ form_errors(form.label) }}</span>
{% endif %}
{{ form_widget(form.label, {'attr': {'autocomplete': 'off'}}) }}
{{ form_widget(form.add, {'attr': {'class': 'btn waves-effect waves-light tags-add-form-submit'}}) }}
{{ form_widget(form._token) }}
</form>

View file

@ -1,41 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'tag.page_title'|trans }}{% endblock %}
{% block content %}
{% set current_path = path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')) %}
<div class="results clearfix">
{{ 'tag.list.number_on_the_page'|trans({'%count%': tags|length}) }}
</div>
<div class="row">
<ul class="card-tag-labels">
<li class="chip">
<a href="{{ path('untagged') }}">{{ 'tag.list.untagged'|trans }} ({{ nbEntriesUntagged }})</a>
</li>
{% for tag in tags %}
<li title="{{ tag.label }} ({{ tag.nbEntries }})" id="tag-{{ tag.id }}" class="chip">
<a href="{{ path('tag_entries', {'slug': tag.slug}) }}" class="card-tag-link" data-handle="tag-link">
{{ tag.label }}&nbsp;({{ tag.nbEntries }})
</a>
{% if renameForms is defined and renameForms[tag.id] is defined %}
<form class="card-tag-form hidden" data-handle="tag-rename-form" action="{{ path('tag_rename', {'slug': tag.slug, redirect: current_path}) }}" method="POST">
{{ form_widget(renameForms[tag.id].label, {'attr': {'value': tag.label}}) }}
{{ form_rest(renameForms[tag.id]) }}
</form>
<a class="card-tag-icon card-tag-rename" data-handler="tag-rename" href="javascript:void(0);">
<i class="material-icons">mode_edit</i>
</a>
{% endif %}
<a id="delete-{{ tag.slug }}" href="{{ path('tag_delete', {'slug': tag.slug, redirect: current_path}) }}" class="card-tag-icon card-tag-delete" onclick="return confirm('{{ 'tag.confirm.delete'|trans({'%name%': tag.label})|escape('js') }}')">
<i class="material-icons">delete</i>
</a>
{% if app.user.config.feedToken %}
<a rel="alternate" type="application/atom+xml" href="{{ path('tag_feed', {'username': app.user.username, 'token': app.user.config.feedToken, 'slug': tag.slug}) }}" class="card-tag-icon"><i class="material-icons">rss_feed</i></a>
{% endif %}
</li>
{% endfor %}
</ul>
</div>
{% endblock %}

View file

@ -1,117 +0,0 @@
{% block subject %}
{{ "auth_code.mailer.subject"|trans({}, 'wallabag_user') }}
{% endblock %}
{% block body_text %}
{{ "auth_code.mailer.body.hello"|trans({'%user%': user}, 'wallabag_user') }}
{{ "auth_code.mailer.body.first_para"|trans({}, 'wallabag_user') }}
{{ "auth_code.mailer.body.second_para"|trans({}, 'wallabag_user') }} {{ code }}
{{ "auth_code.mailer.body.support"|trans({}, 'wallabag_user') }} {{ support_url }}
{{ "auth_code.mailer.body.signature"|trans({}, 'wallabag_user') }}
{% endblock %}
{% block body_html %}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>{{ "auth_code.mailer.subject"|trans({}, 'wallabag_user') }}</title>
<style type="text/css">
#outlook a {padding:0;}
body{width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0; font-family: Helvetica, Arial, sans-serif; background: #c6d4e0;}
.ExternalClass {width:100%;}
.ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;}
#backgroundTable {margin:0; padding:0; width:100% !important; line-height: 100% !important; background: #c6d4e0;}
img {outline:none; text-decoration:none; -ms-interpolation-mode: bicubic;}
a img {border:none;}
.image_fix {display:block;}
p {margin: 1em 0;}
h1, h2, h3, h4, h5, h6 {color: black !important;}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {color: blue !important;}
h1 a:active, h2 a:active, h3 a:active, h4 a:active, h5 a:active, h6 a:active {
color: red !important;
}
h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited {
color: purple !important;
}
table td {border-collapse: collapse;}
table {border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; }
a {color: #373737;}
#card {
background: #ffffff;
border: 1px solid #c5c5c5;
width: 89%;
margin: 5%;
}
#cell_desc h1, h5 {
display: block;
margin: 0;
}
#cell_desc h1 {
line-height: 35px;
margin-bottom: 10px;
}
#bg {background: #f2f2f2}
</style>
</head>
<body>
<!-- hidden text for preview -->
<div style="display:none;font-size:1px;color:#333333;line-height:1px;max-height:0px;max-width:0px;opacity:0;overflow:hidden;">
{{ "auth_code.mailer.body.hello"|trans({'%user%': user}, 'wallabag_user') }}
</div>
<table cellpadding="0" cellspacing="0" border="0" id="backgroundTable">
<tr>
<td>
<table cellpadding="0" cellspacing="0" border="0" align="center" id="card">
<tr>
<td style="padding: 20px;" width="96px" valign="top"><img class="image_fix" src="{{ absolute_url(asset('img/logo-square.svg')) }}" alt="logo" title="{{ wallabag_url }}" style="width: 96px; height: 96px;" /></td>
<td style="padding: 20px; padding-left: 0;" valign="top" id="cell_desc">
<h1>wallabag</h1>
<h5>{{ "auth_code.on"|trans({}, 'wallabag_user') }} {{ wallabag_url }}</h5>
</td>
</tr>
<tr><td colspan="2" style="padding: 0;"><div style="height: 0; border-top: 1px solid #c5c5c5;">&nbsp;</div></td></tr>
<tr id="bg">
<td style="padding: 20px;" colspan="2" valign="top">
<p><b>{{ "auth_code.mailer.body.hello"|trans({'%user%': user}, 'wallabag_user') }}</b></p>
<p>{{ "auth_code.mailer.body.first_para"|trans({}, 'wallabag_user') }}</p>
<p>{{ "auth_code.mailer.body.second_para"|trans({}, 'wallabag_user') }} <b>{{ code }}</b></p>
<p>{{ "auth_code.mailer.body.support"|trans({}, 'wallabag_user') }} <a href="{{ support_url }}">{{ support_url }}</a></p>
<p>{{ "auth_code.mailer.body.signature"|trans({}, 'wallabag_user') }}</p>
</td>
</tr>
<tr><td colspan="2" style="padding: 0;"><div style="height: 0; border-top: 1px solid #c5c5c5;">&nbsp;</div></td></tr>
<tr>
<td colspan="2">
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td valign="top" style="padding: 20px; text-align: center"><a href="{{ wallabag_url }}">{{ wallabag_url }}</a></td>
<td valign="top" style="padding: 20px; text-align: center">Powered by <a href="https://www.wallabag.org/">wallabag</a></td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
{% endblock %}

View file

@ -1,81 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'user.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel">
<div class="row">
<div class="input-field col s12">
<h4>{{ 'user.edit_user'|trans }}</h4>
<div id="set6" class="col s12">
{{ form_start(edit_form) }}
{{ form_errors(edit_form) }}
<div class="row">
<div class="input-field col s12">
{{ form_label(edit_form.name) }}
{{ form_errors(edit_form.name) }}
{{ form_widget(edit_form.name) }}
</div>
</div>
<div class="row">
<div class="input-field col s12">
{{ form_label(edit_form.username) }}
{{ form_errors(edit_form.username) }}
{{ form_widget(edit_form.username) }}
</div>
</div>
<div class="row">
<div class="input-field col s12">
{{ form_label(edit_form.email) }}
{{ form_errors(edit_form.email) }}
{{ form_widget(edit_form.email) }}
</div>
</div>
<div class="row">
<div class="input-field col s12">
{{ form_widget(edit_form.enabled) }}
{{ form_label(edit_form.enabled) }}
{{ form_errors(edit_form.enabled) }}
</div>
</div>
<div class="row">
<div class="input-field col s12">
{{ form_widget(edit_form.emailTwoFactor) }}
{{ form_label(edit_form.emailTwoFactor) }}
{{ form_errors(edit_form.emailTwoFactor) }}
</div>
<div class="input-field col s12">
{{ form_widget(edit_form.googleTwoFactor) }}
{{ form_label(edit_form.googleTwoFactor) }}
{{ form_errors(edit_form.googleTwoFactor) }}
</div>
</div>
<br/>
{{ form_widget(edit_form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_widget(edit_form._token) }}
</form>
<p>
{{ form_start(delete_form) }}
<button {% if app.user.id == user.id %}disabled="disabled"{% endif %} onclick="return confirm('{{ 'user.form.delete_confirm'|trans|escape('js') }}')" type="submit" class="btn waves-effect waves-light red">{{ 'user.form.delete'|trans }}</button>
{{ form_end(delete_form) }}
</p>
<p><a class="waves-effect waves-light btn blue-grey" href="{{ path('user_index') }}">{{ 'user.form.back_to_list'|trans }}</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,69 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'user.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel">
{% if users.getNbPages > 1 %}
{{ pagerfanta(users, 'default_wallabag') }}
{% endif %}
<div class="row">
<div class="col s6">
<p class="help">{{ 'user.description'|trans|raw }}</p>
</div>
<div class="col s6">
<div class="input-field">
<form name="search_users" method="GET" action="{{ path('user_index') }}">
{% if form_errors(searchForm) %}
<span class="black-text">{{ form_errors(searchForm) }}</span>
{% endif %}
{% if form_errors(searchForm.term) %}
<span class="black-text">{{ form_errors(searchForm.term) }}</span>
{% endif %}
{{ form_widget(searchForm.term, {'attr': {'autocomplete': 'off', 'placeholder': 'user.search.placeholder'}}) }}
{{ form_rest(searchForm) }}
</form>
</div>
</div>
<table class="bordered">
<thead>
<tr>
<th>{{ 'user.form.username_label'|trans }}</th>
<th>{{ 'user.form.email_label'|trans }}</th>
<th>{{ 'user.form.last_login_label'|trans }}</th>
<th>{{ 'user.list.actions'|trans }}</th>
</tr>
</thead>
<tbody>
{% for user in users %}
<tr>
<td>{{ user.username }}</td>
<td>{{ user.email }}</td>
<td>{% if user.lastLogin %}{{ user.lastLogin|date('Y-m-d H:i:s') }}{% endif %}</td>
<td>
<a href="{{ path('user_edit', {'id': user.id}) }}">{{ 'user.list.edit_action'|trans }}</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<br />
<p>
<a href="{{ path('user_new') }}" class="waves-effect waves-light btn">{{ 'user.list.create_new_one'|trans }}</a>
</p>
{% if users.getNbPages > 1 %}
{{ pagerfanta(users, 'default_wallabag') }}
{% endif %}
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,61 +0,0 @@
{% extends "@WallabagCore/layout.html.twig" %}
{% block title %}{{ 'user.page_title'|trans }}{% endblock %}
{% block content %}
<div class="row">
<div class="col s12">
<div class="card-panel">
<div class="row">
<div class="input-field col s12">
<h4>{{ 'user.new_user'|trans }}</h4>
<div id="set6" class="col s12">
{{ form_start(form) }}
{{ form_errors(form) }}
<div class="row">
<div class="input-field col s12">
{{ form_label(form.username) }}
{{ form_errors(form.username) }}
{{ form_widget(form.username) }}
</div>
</div>
<div class="row">
<div class="input-field col s12">
{{ form_label(form.plainPassword.first) }}
{{ form_errors(form.plainPassword.first) }}
{{ form_widget(form.plainPassword.first) }}
</div>
</div>
<div class="row">
<div class="input-field col s12">
{{ form_label(form.plainPassword.second) }}
{{ form_errors(form.plainPassword.second) }}
{{ form_widget(form.plainPassword.second) }}
</div>
</div>
<div class="row">
<div class="input-field col s12">
{{ form_label(form.email) }}
{{ form_errors(form.email) }}
{{ form_widget(form.email) }}
</div>
</div>
{{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
{{ form_rest(form) }}
</form>
<p><a class="waves-effect waves-light btn blue-grey" href="{{ path('user_index') }}">{{ 'user.form.back_to_list'|trans }}</a></p>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

View file

@ -1,82 +0,0 @@
<!DOCTYPE html>
{% set lang = app.request.locale|default('') -%}
<!--[if lte IE 6]><html class="no-js ie6 ie67 ie678"{% if lang is not empty %} lang="{{ lang }}"{% endif %}><![endif]-->
<!--[if lte IE 7]><html class="no-js ie7 ie67 ie678"{% if lang is not empty %} lang="{{ lang }}"{% endif %}><![endif]-->
<!--[if IE 8]><html class="no-js ie8 ie678"{% if lang is not empty %} lang="{{ lang }}"{% endif %}><![endif]-->
<!--[if gt IE 8]><html class="no-js"{% if lang is not empty %} lang="{{ lang }}"{% endif %}><![endif]-->
<html{% if lang is not empty %} class="{{ theme_class() }}" lang="{{ lang }}"{% endif %}>
<head>
{% block head %}
<meta name="viewport" content="initial-scale=1.0">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="referrer" content="strict-origin-when-cross-origin">
<!--[if IE]>
<meta http-equiv="X-UA-Compatible" content="IE=10">
<![endif]-->
<link rel="apple-touch-icon" type="image/png" href="{{ asset('img/appicon/apple-touch-icon-152.png') }}" sizes="152x152">
<link rel="icon" type="image/png" href="{{ asset('img/appicon/apple-touch-icon-152.png') }}" sizes="152x152">
<link rel="apple-touch-icon" type="image/png" href="{{ asset('img/appicon/apple-touch-icon-144.png') }}" sizes="144x144">
<link rel="icon" type="image/png" href="{{ asset('img/appicon/apple-touch-icon-144.png') }}" sizes="144x144">
<link rel="apple-touch-icon" type="image/png" href="{{ asset('img/appicon/apple-touch-icon-120.png') }}" sizes="120x120">
<link rel="icon" type="image/png" href="{{ asset('img/appicon/apple-touch-icon-120.png') }}" sizes="120x120">
<link rel="apple-touch-icon" type="image/png" href="{{ asset('img/appicon/apple-touch-icon-114.png') }}" sizes="114x114">
<link rel="icon" type="image/png" href="{{ asset('img/appicon/apple-touch-icon-114.png') }}" sizes="114x114">
<link rel="apple-touch-icon" type="image/png" href="{{ asset('img/appicon/apple-touch-icon-76.png') }}" sizes="76x76">
<link rel="icon" type="image/png" href="{{ asset('img/appicon/apple-touch-icon-76.png') }}" sizes="76x76">
<link rel="apple-touch-icon" type="image/png" href="{{ asset('img/appicon/apple-touch-icon-72.png') }}" sizes="72x72">
<link rel="icon" type="image/png" href="{{ asset('img/appicon/apple-touch-icon-72.png') }}" sizes="72x72">
<link rel="apple-touch-icon" type="image/png" href="{{ asset('img/appicon/apple-touch-icon-57.png') }}" sizes="57x57">
<link rel="icon" type="image/png" href="{{ asset('img/appicon/apple-touch-icon-57.png') }}" sizes="57x57">
<link rel="apple-touch-icon" type="image/png" href="{{ asset('img/appicon/apple-touch-icon.png') }}">
<link rel="icon" type="image/png" href="{{ asset('img/appicon/apple-touch-icon.png') }}">
<link rel="shortcut icon" type="image/x-icon" href="{{ asset('favicon.ico') }}">
<link rel="manifest" href="{{ asset('manifest.json') }}">
{% block css %}
{% endblock %}
{% if asset_file_exists('custom.css') %}
<link rel="stylesheet" href="{{ asset('custom.css') }}">
{% endif %}
{% block scripts %}
<script src="{{ asset('bundles/fosjsrouting/js/router.js') }}"></script>
<script src="{{ path('fos_js_routing_js', {callback: 'fos.Router.setData'}) }}"></script>
{% endblock %}
<title>{% block title %}{% endblock %} wallabag</title>
{% endblock %}
</head>
<body class="{% block body_class %}{% endblock %}">
{% block header %}{% endblock %}
<div id="main">
{% block menu %}{% endblock %}
<main>
{% block precontent %}{% endblock %}
{% block messages %}{% endblock %}
<div id="content" dir="auto">
{% block content %}{% endblock %}
</div>
</main>
</div>
{% block footer %}{% endblock %}
{% if craue_setting('matomo_enabled') %}
{{ matomo(craue_setting('matomo_host'), craue_setting('matomo_site_id')) }}
{% endif %}
</body>
</html>

View file

@ -1,185 +0,0 @@
{% extends "@WallabagCore/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>
{% if is_granted('ROLE_SUPER_ADMIN') %}
<li><a href="{{ path('user_index') }}"><i class="material-icons">people</i>{{ 'menu.left.users_management'|trans }}</a></li>
<li><a href="{{ path('craue_config_settings_modify') }}"><i class="material-icons">settings</i> {{ 'menu.left.internal_settings'|trans }}</a></li>
<li><a href="{{ path('ignore_origin_instance_rules_index') }}"><i class="material-icons">build</i> {{ 'menu.left.ignore_origin_instance_rules'|trans }}</a></li>
<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\\CoreBundle\\Controller\\EntryController::searchFormAction', {'currentRoute': current_route})) }}
{{ render(controller('Wallabag\\CoreBundle\\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 %}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 334 KiB