aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorNicolas Lœuillet <nicolas@loeuillet.org>2017-06-12 17:23:35 +0200
committerJeremy Benoist <jeremy.benoist@gmail.com>2018-10-13 09:39:00 +0200
commitbe417ef23685e17a239b1d192a0e9b9f484f1bfe (patch)
tree22db3e6f8605f2cf3e9a7181ccd1524fbe4bdcac
parent43b6f3a8a8173c47475632ca2869f190b552b5d6 (diff)
downloadwallabag-be417ef23685e17a239b1d192a0e9b9f484f1bfe.tar.gz
wallabag-be417ef23685e17a239b1d192a0e9b9f484f1bfe.tar.zst
wallabag-be417ef23685e17a239b1d192a0e9b9f484f1bfe.zip
Added possibility to change locale from login/register pages
-rw-r--r--app/config/security.yml1
-rw-r--r--src/Wallabag/CoreBundle/Controller/ConfigController.php19
-rw-r--r--src/Wallabag/UserBundle/EventListener/CreateConfigListener.php7
-rw-r--r--src/Wallabag/UserBundle/Resources/config/services.yml1
-rw-r--r--src/Wallabag/UserBundle/Resources/views/Registration/register_content.html.twig1
-rw-r--r--src/Wallabag/UserBundle/Resources/views/layout.html.twig5
6 files changed, 31 insertions, 3 deletions
diff --git a/app/config/security.yml b/app/config/security.yml
index 98f43011..0318fce1 100644
--- a/app/config/security.yml
+++ b/app/config/security.yml
@@ -64,6 +64,7 @@ security:
64 - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY } 64 - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
65 - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY } 65 - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
66 - { path: /(unread|starred|archive|all).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY } 66 - { path: /(unread|starred|archive|all).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
67 - { path: ^/locale, role: IS_AUTHENTICATED_ANONYMOUSLY }
67 - { path: /tags/(.*).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY } 68 - { path: /tags/(.*).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
68 - { path: ^/share, roles: IS_AUTHENTICATED_ANONYMOUSLY } 69 - { path: ^/share, roles: IS_AUTHENTICATED_ANONYMOUSLY }
69 - { path: ^/settings, roles: ROLE_SUPER_ADMIN } 70 - { path: ^/settings, roles: ROLE_SUPER_ADMIN }
diff --git a/src/Wallabag/CoreBundle/Controller/ConfigController.php b/src/Wallabag/CoreBundle/Controller/ConfigController.php
index 242f557f..99576fbb 100644
--- a/src/Wallabag/CoreBundle/Controller/ConfigController.php
+++ b/src/Wallabag/CoreBundle/Controller/ConfigController.php
@@ -330,6 +330,25 @@ class ConfigController extends Controller
330 } 330 }
331 331
332 /** 332 /**
333 * Change the locale for the current user.
334 *
335 * @param Request $request
336 * @param string $language
337 *
338 * @Route("/locale/{language}", name="changeLocale")
339 *
340 * @return \Symfony\Component\HttpFoundation\RedirectResponse
341 */
342 public function setLocaleAction(Request $request, $language = null)
343 {
344 if (null !== $language) {
345 $this->get('session')->set('_locale', $language);
346 }
347
348 return $this->redirect($request->headers->get('referer'));
349 }
350
351 /**
333 * Remove all tags for given tags and a given user and cleanup orphan tags. 352 * Remove all tags for given tags and a given user and cleanup orphan tags.
334 * 353 *
335 * @param array $tags 354 * @param array $tags
diff --git a/src/Wallabag/UserBundle/EventListener/CreateConfigListener.php b/src/Wallabag/UserBundle/EventListener/CreateConfigListener.php
index e4d55c19..5cabfd35 100644
--- a/src/Wallabag/UserBundle/EventListener/CreateConfigListener.php
+++ b/src/Wallabag/UserBundle/EventListener/CreateConfigListener.php
@@ -6,6 +6,7 @@ use Doctrine\ORM\EntityManager;
6use FOS\UserBundle\Event\UserEvent; 6use FOS\UserBundle\Event\UserEvent;
7use FOS\UserBundle\FOSUserEvents; 7use FOS\UserBundle\FOSUserEvents;
8use Symfony\Component\EventDispatcher\EventSubscriberInterface; 8use Symfony\Component\EventDispatcher\EventSubscriberInterface;
9use Symfony\Component\HttpFoundation\Session\Session;
9use Wallabag\CoreBundle\Entity\Config; 10use Wallabag\CoreBundle\Entity\Config;
10 11
11/** 12/**
@@ -22,8 +23,9 @@ class CreateConfigListener implements EventSubscriberInterface
22 private $readingSpeed; 23 private $readingSpeed;
23 private $actionMarkAsRead; 24 private $actionMarkAsRead;
24 private $listMode; 25 private $listMode;
26 private $session;
25 27
26 public function __construct(EntityManager $em, $theme, $itemsOnPage, $rssLimit, $language, $readingSpeed, $actionMarkAsRead, $listMode) 28 public function __construct(EntityManager $em, $theme, $itemsOnPage, $rssLimit, $language, $readingSpeed, $actionMarkAsRead, $listMode, Session $session)
27 { 29 {
28 $this->em = $em; 30 $this->em = $em;
29 $this->theme = $theme; 31 $this->theme = $theme;
@@ -33,6 +35,7 @@ class CreateConfigListener implements EventSubscriberInterface
33 $this->readingSpeed = $readingSpeed; 35 $this->readingSpeed = $readingSpeed;
34 $this->actionMarkAsRead = $actionMarkAsRead; 36 $this->actionMarkAsRead = $actionMarkAsRead;
35 $this->listMode = $listMode; 37 $this->listMode = $listMode;
38 $this->session = $session;
36 } 39 }
37 40
38 public static function getSubscribedEvents() 41 public static function getSubscribedEvents()
@@ -52,7 +55,7 @@ class CreateConfigListener implements EventSubscriberInterface
52 $config->setTheme($this->theme); 55 $config->setTheme($this->theme);
53 $config->setItemsPerPage($this->itemsOnPage); 56 $config->setItemsPerPage($this->itemsOnPage);
54 $config->setRssLimit($this->rssLimit); 57 $config->setRssLimit($this->rssLimit);
55 $config->setLanguage($this->language); 58 $config->setLanguage($this->session->get('_locale', $this->language));
56 $config->setReadingSpeed($this->readingSpeed); 59 $config->setReadingSpeed($this->readingSpeed);
57 $config->setActionMarkAsRead($this->actionMarkAsRead); 60 $config->setActionMarkAsRead($this->actionMarkAsRead);
58 $config->setListMode($this->listMode); 61 $config->setListMode($this->listMode);
diff --git a/src/Wallabag/UserBundle/Resources/config/services.yml b/src/Wallabag/UserBundle/Resources/config/services.yml
index d3925de3..72cda3f8 100644
--- a/src/Wallabag/UserBundle/Resources/config/services.yml
+++ b/src/Wallabag/UserBundle/Resources/config/services.yml
@@ -33,6 +33,7 @@ services:
33 - "%wallabag_core.reading_speed%" 33 - "%wallabag_core.reading_speed%"
34 - "%wallabag_core.action_mark_as_read%" 34 - "%wallabag_core.action_mark_as_read%"
35 - "%wallabag_core.list_mode%" 35 - "%wallabag_core.list_mode%"
36 - "@session"
36 tags: 37 tags:
37 - { name: kernel.event_subscriber } 38 - { name: kernel.event_subscriber }
38 39
diff --git a/src/Wallabag/UserBundle/Resources/views/Registration/register_content.html.twig b/src/Wallabag/UserBundle/Resources/views/Registration/register_content.html.twig
index d0a85fc7..85cd4f0d 100644
--- a/src/Wallabag/UserBundle/Resources/views/Registration/register_content.html.twig
+++ b/src/Wallabag/UserBundle/Resources/views/Registration/register_content.html.twig
@@ -3,7 +3,6 @@
3{{ form_start(form, {'method': 'post', 'action': path('fos_user_registration_register'), 'attr': {'class': 'fos_user_registration_register'}}) }} 3{{ form_start(form, {'method': 'post', 'action': path('fos_user_registration_register'), 'attr': {'class': 'fos_user_registration_register'}}) }}
4 <div class="card-content"> 4 <div class="card-content">
5 <div class="row"> 5 <div class="row">
6
7 {{ form_widget(form._token) }} 6 {{ form_widget(form._token) }}
8 7
9 {% for flashMessage in app.session.flashbag.get('notice') %} 8 {% for flashMessage in app.session.flashbag.get('notice') %}
diff --git a/src/Wallabag/UserBundle/Resources/views/layout.html.twig b/src/Wallabag/UserBundle/Resources/views/layout.html.twig
index 99bf7dfd..6934c686 100644
--- a/src/Wallabag/UserBundle/Resources/views/layout.html.twig
+++ b/src/Wallabag/UserBundle/Resources/views/layout.html.twig
@@ -15,6 +15,11 @@
15 {% block fos_user_content %} 15 {% block fos_user_content %}
16 {% endblock fos_user_content %} 16 {% endblock fos_user_content %}
17 </div> 17 </div>
18 <div class="center">
19 <a href="{{ path('changeLocale', {'language': 'de'}) }}">Deutsch</a>
20 <a href="{{ path('changeLocale', {'language': 'en'}) }}">English</a>
21 <a href="{{ path('changeLocale', {'language': 'fr'}) }}">Français</a>
22 </div>
18 </div> 23 </div>
19</main> 24</main>
20{% endblock %} 25{% endblock %}