diff --git a/app/Resources/static/themes/baggy/js/shortcuts/main.js b/app/Resources/static/themes/baggy/js/shortcuts/main.js index e69de29bb..aed09aeee 100644 --- a/app/Resources/static/themes/baggy/js/shortcuts/main.js +++ b/app/Resources/static/themes/baggy/js/shortcuts/main.js @@ -0,0 +1,7 @@ +$(document).ready(() => { + Mousetrap.bind('s', () => { + $('#search').trigger('click'); + $('#search_entry_term').focus(); + return false; + }); +}); diff --git a/app/Resources/static/themes/material/css/main.css b/app/Resources/static/themes/material/css/main.css index df126fb47..8e33cfbcb 100755 --- a/app/Resources/static/themes/material/css/main.css +++ b/app/Resources/static/themes/material/css/main.css @@ -322,11 +322,13 @@ nav input { color: #444; } -.input-field.nav-panel-add label { +.input-field.nav-panel-add label, +.input-field.nav-panel-search label { left: 1rem; } -.input-field.nav-panel-add .close { +.input-field.nav-panel-add .close, +.input-field.nav-panel-search .close { position: absolute; top: 0; right: 1rem; @@ -345,7 +347,9 @@ nav input { } .input-field.nav-panel-add, -.input-field.nav-panel-add form { +.input-field.nav-panel-add form, +.input-field.nav-panel-search, +.input-field.nav-panel-search form { height: 100%; } diff --git a/app/Resources/static/themes/material/js/init.js b/app/Resources/static/themes/material/js/init.js index 9746224b5..0b2832c06 100755 --- a/app/Resources/static/themes/material/js/init.js +++ b/app/Resources/static/themes/material/js/init.js @@ -55,7 +55,7 @@ $(document).ready(() => { $('.nav-panels .action').hide(100); $('.nav-panel-menu').addClass('hidden'); $('.nav-panels').css('background', 'white'); - $('#searchfield').focus(); + $('#search_entry_term').focus(); return false; }); $('.close').on('click', () => { diff --git a/app/Resources/static/themes/material/js/shortcuts/main.js b/app/Resources/static/themes/material/js/shortcuts/main.js index 8514f71e2..ad4ca80ad 100644 --- a/app/Resources/static/themes/material/js/shortcuts/main.js +++ b/app/Resources/static/themes/material/js/shortcuts/main.js @@ -30,6 +30,12 @@ $(document).ready(() => { /* Actions */ Mousetrap.bind('g n', () => { $('#nav-btn-add').trigger('click'); + return false; + }); + + Mousetrap.bind('s', () => { + $('#nav-btn-search').trigger('click'); + return false; }); Mousetrap.bind('esc', () => { diff --git a/app/config/config.yml b/app/config/config.yml index 48496bc2d..53c26beb5 100644 --- a/app/config/config.yml +++ b/app/config/config.yml @@ -364,3 +364,4 @@ fos_js_routing: - developer - howto - logout + - new diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php index 3f4eb17d1..8c13255ec 100644 --- a/src/Wallabag/CoreBundle/Controller/EntryController.php +++ b/src/Wallabag/CoreBundle/Controller/EntryController.php @@ -15,9 +15,34 @@ use Wallabag\CoreBundle\Form\Type\NewEntryType; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Cache; use Wallabag\CoreBundle\Event\EntrySavedEvent; use Wallabag\CoreBundle\Event\EntryDeletedEvent; +use Wallabag\CoreBundle\Form\Type\SearchEntryType; class EntryController extends Controller { + /** + * @param Request $request + * @param int $page + * + * @Route("/search/{page}", name="search", defaults={"page" = "1"}) + * + * @return \Symfony\Component\HttpFoundation\Response + */ + public function searchFormAction(Request $request, $page, $currentRoute) + { + $form = $this->createForm(SearchEntryType::class); + + $form->handleRequest($request); + + if ($form->isValid()) { + return $this->showEntries('search', $request, $page); + } + + return $this->render('WallabagCoreBundle:Entry:search_form.html.twig', [ + 'form' => $form->createView(), + 'currentRoute' => $currentRoute, + ]); + } + /** * Fetch content and update entry. * In case it fails, entry will return to avod loosing the data. @@ -244,8 +269,14 @@ class EntryController extends Controller private function showEntries($type, Request $request, $page) { $repository = $this->get('wallabag_core.entry_repository'); + $searchTerm = (isset($request->get('search_entry')['term']) ? $request->get('search_entry')['term'] : ''); + $currentRoute = (!is_null($request->get('currentRoute')) ? $request->get('currentRoute') : ''); switch ($type) { + case 'search': + $qb = $repository->getBuilderForSearchByUser($this->getUser()->getId(), $searchTerm, $currentRoute); + + break; case 'untagged': $qb = $repository->getBuilderForUntaggedByUser($this->getUser()->getId()); @@ -294,11 +325,11 @@ class EntryController extends Controller } return $this->render( - 'WallabagCoreBundle:Entry:entries.html.twig', - [ + 'WallabagCoreBundle:Entry:entries.html.twig', [ 'form' => $form->createView(), 'entries' => $entries, 'currentPage' => $page, + 'searchTerm' => $searchTerm, ] ); } diff --git a/src/Wallabag/CoreBundle/Controller/ExportController.php b/src/Wallabag/CoreBundle/Controller/ExportController.php index 79653cfe8..abc3336a4 100644 --- a/src/Wallabag/CoreBundle/Controller/ExportController.php +++ b/src/Wallabag/CoreBundle/Controller/ExportController.php @@ -48,7 +48,7 @@ class ExportController extends Controller * * @Route("/export/{category}.{format}", name="export_entries", requirements={ * "format": "epub|mobi|pdf|json|xml|txt|csv", - * "category": "all|unread|starred|archive|tag_entries|untagged" + * "category": "all|unread|starred|archive|tag_entries|untagged|search" * }) * * @return \Symfony\Component\HttpFoundation\Response diff --git a/src/Wallabag/CoreBundle/Form/Type/SearchEntryType.php b/src/Wallabag/CoreBundle/Form/Type/SearchEntryType.php new file mode 100644 index 000000000..b56cae8eb --- /dev/null +++ b/src/Wallabag/CoreBundle/Form/Type/SearchEntryType.php @@ -0,0 +1,29 @@ +setMethod('GET') + ->add('term', TextType::class, [ + 'required' => true, + 'label' => 'entry.new.form_search.term_label', + ]) + ; + } + + public function configureOptions(OptionsResolver $resolver) + { + $resolver->setDefaults([ + 'csrf_protection' => false, + ]); + } +} diff --git a/src/Wallabag/CoreBundle/Repository/EntryRepository.php b/src/Wallabag/CoreBundle/Repository/EntryRepository.php index 61be52201..47e24d6b4 100644 --- a/src/Wallabag/CoreBundle/Repository/EntryRepository.php +++ b/src/Wallabag/CoreBundle/Repository/EntryRepository.php @@ -85,6 +85,36 @@ class EntryRepository extends EntityRepository ; } + /** + * Retrieves entries filtered with a search term for a user. + * + * @param int $userId + * @param string $term + * @param strint $currentRoute + * + * @return QueryBuilder + */ + public function getBuilderForSearchByUser($userId, $term, $currentRoute) + { + $qb = $this + ->getBuilderByUser($userId); + + if ('starred' === $currentRoute) { + $qb->andWhere('e.isStarred = true'); + } elseif ('unread' === $currentRoute) { + $qb->andWhere('e.isArchived = false'); + } elseif ('archive' === $currentRoute) { + $qb->andWhere('e.isArchived = true'); + } + + $qb + ->andWhere('e.content LIKE :term OR e.title LIKE :term')->setParameter('term', '%'.$term.'%') + ->leftJoin('e.tags', 't') + ->groupBy('e.id'); + + return $qb; + } + /** * Retrieves untagged entries for a user. * diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml index b456fff0f..d6c294a4a 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml @@ -162,6 +162,7 @@ entry: # archived: 'Archived entries' # filtered: 'Filtered entries' # filtered_tags: 'Filtered by tags:' + # filtered_search: 'Filtered by search:' # untagged: 'Untagged entries' list: # number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.' @@ -227,6 +228,8 @@ entry: placeholder: 'http://website.com' form_new: url_label: Url + search: + # placeholder: 'What are you looking for?' edit: # page_title: 'Edit an entry' # title_label: 'Title' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml index 08ed1a116..8a67e0dfe 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml @@ -162,6 +162,7 @@ entry: archived: 'Archivierte Einträge' filtered: 'Gefilterte Einträge' filtered_tags: 'Gefiltert nach Tags:' + # filtered_search: 'Filtered by search:' untagged: 'Nicht getaggte Einträge' list: number_on_the_page: '{0} Es gibt keine Einträge.|{1} Es gibt einen Eintrag.|]1,Inf[ Es gibt %count% Einträge.' @@ -227,6 +228,8 @@ entry: placeholder: 'https://website.de' form_new: url_label: URL + search: + # placeholder: 'What are you looking for?' edit: page_title: 'Eintrag bearbeiten' title_label: 'Titel' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml index 20e83a072..63216a0f3 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml @@ -162,6 +162,7 @@ entry: archived: 'Archived entries' filtered: 'Filtered entries' filtered_tags: 'Filtered by tags:' + filtered_search: 'Filtered by search:' untagged: 'Untagged entries' list: number_on_the_page: '{0} There are no entries.|{1} There is one entry.|]1,Inf[ There are %count% entries.' @@ -227,6 +228,8 @@ entry: placeholder: 'http://website.com' form_new: url_label: Url + search: + placeholder: 'What are you looking for?' edit: page_title: 'Edit an entry' title_label: 'Title' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml index 5507ccaef..3876725e1 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml @@ -162,6 +162,7 @@ entry: archived: 'Artículos archivados' filtered: 'Artículos filtrados' # filtered_tags: 'Filtered by tags:' + # filtered_search: 'Filtered by search:' # untagged: 'Untagged entries' list: number_on_the_page: '{0} No hay artículos.|{1} Hay un artículo.|]1,Inf[ Hay %count% artículos.' @@ -227,6 +228,8 @@ entry: placeholder: 'http://website.com' form_new: url_label: Url + search: + # placeholder: 'What are you looking for?' edit: page_title: 'Editar un artículo' title_label: 'Título' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml index ba8a9c35f..301668e36 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml @@ -162,6 +162,7 @@ entry: archived: 'مقاله‌های بایگانی‌شده' filtered: 'مقاله‌های فیلترشده' # filtered_tags: 'Filtered by tags:' + # filtered_search: 'Filtered by search:' # untagged: 'Untagged entries' list: number_on_the_page: '{0} هیج مقاله‌ای نیست.|{1} یک مقاله هست.|]1,Inf[ %count% مقاله هست.' @@ -227,6 +228,8 @@ entry: placeholder: 'http://website.com' form_new: url_label: نشانی + search: + # placeholder: 'What are you looking for?' edit: page_title: 'ویرایش مقاله' title_label: 'عنوان' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml index 2932f2fd2..d97eab269 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml @@ -162,6 +162,7 @@ entry: archived: "Articles lus" filtered: "Articles filtrés" filtered_tags: "Articles filtrés par tags :" + filtered_search: 'Articles filtrés par recherche :' untagged: "Article sans tag" list: number_on_the_page: "{0} Il n’y a pas d’articles.|{1} Il y a un article.|]1,Inf[ Il y a %count% articles." @@ -227,6 +228,8 @@ entry: placeholder: "http://website.com" form_new: url_label: "Adresse" + search: + placeholder: "Que recherchez-vous ?" edit: page_title: "Éditer un article" title_label: "Titre" diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml index 538e25a67..4be99a27a 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml @@ -162,6 +162,7 @@ entry: archived: 'Contenuti archiviati' filtered: 'Contenuti filtrati' # filtered_tags: 'Filtered by tags:' + # filtered_search: 'Filtered by search:' # untagged: 'Untagged entries' list: number_on_the_page: "{0} Non ci sono contenuti.|{1} C'è un contenuto.|]1,Inf[ Ci sono %count% contenuti." @@ -227,6 +228,8 @@ entry: placeholder: 'http://website.com' form_new: url_label: Url + search: + # placeholder: 'What are you looking for?' edit: page_title: 'Modifica voce' title_label: 'Titolo' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml index 6f415c3bf..5ded91f9a 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml @@ -162,6 +162,7 @@ entry: archived: 'Articles legits' filtered: 'Articles filtrats' filtered_tags: 'Filtats per etiquetas:' + # filtered_search: 'Filtered by search:' untagged: 'Articles sens etiqueta' list: number_on_the_page: "{0} I a pas cap d'article.|{1} I a un article.|]1,Inf[ I a %count% articles." @@ -227,6 +228,8 @@ entry: placeholder: 'http://website.com' form_new: url_label: Url + search: + # placeholder: 'What are you looking for?' edit: page_title: 'Modificar un article' title_label: 'Títol' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml index df5ab7e55..38fc4ceb2 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml @@ -162,6 +162,7 @@ entry: archived: 'Zarchiwizowane wpisy' filtered: 'Odfiltrowane wpisy' filtered_tags: 'Filtrowane po tagach:' + # filtered_search: 'Filtered by search:' untagged: 'Odtaguj wpisy' list: number_on_the_page: '{0} Nie ma wpisów.|{1} Jest jeden wpis.|]1,Inf[ Są %count% wpisy.' @@ -227,6 +228,8 @@ entry: placeholder: 'http://website.com' form_new: url_label: Url + search: + # placeholder: 'What are you looking for?' edit: page_title: 'Edytuj wpis' title_label: 'Tytuł' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml index 1c1c9a78b..4084469c7 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml @@ -162,6 +162,7 @@ entry: archived: 'Entradas arquivadas' filtered: 'Entradas filtradas' filtered_tags: 'Filtrar por tags:' + # filtered_search: 'Filtered by search:' untagged: 'Entradas sem tags' list: number_on_the_page: '{0} Não existem entradas.|{1} Existe uma entrada.|]1,Inf[ Existem %count% entradas.' @@ -227,6 +228,8 @@ entry: placeholder: 'http://website.com' form_new: url_label: Url + search: + # placeholder: 'What are you looking for?' edit: page_title: 'Editar uma entrada' title_label: 'Título' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml index 8da04d951..a6a7e1463 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml @@ -162,6 +162,7 @@ entry: # archived: 'Archived entries' # filtered: 'Filtered entries' # filtered_tags: 'Filtered by tags:' + # filtered_search: 'Filtered by search:' # untagged: 'Untagged entries' list: # number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.' @@ -227,6 +228,8 @@ entry: placeholder: 'http://website.com' form_new: url_label: Url + search: + # placeholder: 'What are you looking for?' edit: # page_title: 'Edit an entry' # title_label: 'Title' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml index 8d94044c7..630ad0ca8 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml @@ -162,6 +162,7 @@ entry: # archived: 'Archived entries' # filtered: 'Filtered entries' # filtered_tags: 'Filtered by tags:' + # filtered_search: 'Filtered by search:' # untagged: 'Untagged entries' list: number_on_the_page: '{0} Herhangi bir makale yok.|{1} Burada bir adet makale var.|]1,Inf[ Burada %count% adet makale var.' @@ -227,6 +228,8 @@ entry: placeholder: 'http://website.com' form_new: url_label: Url + search: + # placeholder: 'What are you looking for?' edit: page_title: 'Makaleyi düzenle' title_label: 'Başlık' diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig index d1baa2835..a13fe903b 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig @@ -1,11 +1,14 @@ {% extends "WallabagCoreBundle::layout.html.twig" %} {% block title %} - {% set currentTag = '' %} + {% set filter = '' %} {% if tag is defined %} - {% set currentTag = tag %} + {% set filter = tag %} {% endif %} - {% include "@WallabagCore/themes/common/Entry/_title.html.twig" with {'currentTag': currentTag} %} + {% if searchTerm is defined and searchTerm is not empty %} + {% set filter = searchTerm %} + {% endif %} + {% include "@WallabagCore/themes/common/Entry/_title.html.twig" with {'filter': filter} %} {% endblock %} {% block content %} diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/search_form.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/search_form.html.twig new file mode 100644 index 000000000..20821b6d3 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/search_form.html.twig @@ -0,0 +1,17 @@ +
+

{{ 'menu.left.search'|trans }}

+ × + {% if form_errors(form) %} + {{ form_errors(form) }} + {% endif %} + + {% if form_errors(form.term) %} + {{ form_errors(form.term) }} + {% endif %} + + + + {{ form_widget(form.term, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.search.placeholder'} }) }} + + {{ form_rest(form) }} +
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig index cd4ed3fae..07ff8e14a 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig @@ -31,17 +31,11 @@ - + {% if is_granted('ROLE_SUPER_ADMIN') %} diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/_title.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/_title.html.twig index 92cabdd92..654c1d2dd 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/_title.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/_title.html.twig @@ -6,8 +6,10 @@ {{ 'entry.page_titles.archived'|trans }} {% elseif currentRoute == 'all' %} {{ 'entry.page_titles.filtered'|trans }} +{% elseif currentRoute == 'search' %} + {{ 'entry.page_titles.filtered_search'|trans }} {{ filter }} {% elseif currentRoute == 'tag_entries' %} - {{ 'entry.page_titles.filtered_tags'|trans }} {{ currentTag }} + {{ 'entry.page_titles.filtered_tags'|trans }} {{ filter }} {% elseif currentRoute == 'untagged' %} {{ 'entry.page_titles.untagged'|trans }} {% else %} diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig index 160dbf3dc..00e8bf638 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig @@ -1,11 +1,14 @@ {% extends "WallabagCoreBundle::layout.html.twig" %} {% block title %} - {% set currentTag = '' %} + {% set filter = '' %} {% if tag is defined %} - {% set currentTag = tag %} + {% set filter = tag %} {% endif %} - {% include "@WallabagCore/themes/common/Entry/_title.html.twig" with {'currentTag': currentTag} %} + {% if searchTerm is defined and searchTerm is not empty %} + {% set filter = searchTerm %} + {% endif %} + {% include "@WallabagCore/themes/common/Entry/_title.html.twig" with {'filter': filter} %} {% endblock %} {% block content %} diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/search_form.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/search_form.html.twig new file mode 100644 index 000000000..f25de94d1 --- /dev/null +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/search_form.html.twig @@ -0,0 +1,15 @@ +
+ {% if form_errors(form) %} + {{ form_errors(form) }} + {% endif %} + + {% if form_errors(form.term) %} + {{ form_errors(form.term) }} + {% endif %} + + + + {{ form_widget(form.term, { 'attr': {'autocomplete': 'off', 'placeholder': 'entry.search.placeholder'} }) }} + + {{ form_rest(form) }} +
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig index f1ef01df4..551486e07 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig @@ -89,11 +89,11 @@ add - +
  • filter_list @@ -106,13 +106,11 @@
  • -
    - -
    +