X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=src%2FWallabag%2FCoreBundle%2FController%2FConfigController.php;h=907bf78e148955cab069c730d8942de2731be664;hb=6fb06904ecde15b1b07d0a2af945338b416cf0e2;hp=8d391917ad83016fc2adf2cdc63fb38fc29fc875;hpb=8c61fd12b1df50d481e9f82c39521cca7b8ad060;p=github%2Fwallabag%2Fwallabag.git diff --git a/src/Wallabag/CoreBundle/Controller/ConfigController.php b/src/Wallabag/CoreBundle/Controller/ConfigController.php index 8d391917..907bf78e 100644 --- a/src/Wallabag/CoreBundle/Controller/ConfigController.php +++ b/src/Wallabag/CoreBundle/Controller/ConfigController.php @@ -35,10 +35,12 @@ class ConfigController extends Controller $configForm = $this->createForm(ConfigType::class, $config, ['action' => $this->generateUrl('config')]); $configForm->handleRequest($request); - if ($configForm->isValid()) { + if ($configForm->isSubmitted() && $configForm->isValid()) { $em->persist($config); $em->flush(); + $request->getSession()->set('_locale', $config->getLanguage()); + // switch active theme $activeTheme = $this->get('liip_theme.active_theme'); $activeTheme->setName($config->getTheme()); @@ -55,7 +57,7 @@ class ConfigController extends Controller $pwdForm = $this->createForm(ChangePasswordType::class, null, ['action' => $this->generateUrl('config').'#set4']); $pwdForm->handleRequest($request); - if ($pwdForm->isValid()) { + if ($pwdForm->isSubmitted() && $pwdForm->isValid()) { if ($this->get('craue_config')->get('demo_mode_enabled') && $this->get('craue_config')->get('demo_mode_username') === $user->getUsername()) { $message = 'flashes.config.notice.password_not_updated_demo'; } else { @@ -77,7 +79,7 @@ class ConfigController extends Controller ]); $userForm->handleRequest($request); - if ($userForm->isValid()) { + if ($userForm->isSubmitted() && $userForm->isValid()) { $userManager->updateUser($user, true); $this->get('session')->getFlashBag()->add( @@ -92,7 +94,7 @@ class ConfigController extends Controller $rssForm = $this->createForm(RssType::class, $config, ['action' => $this->generateUrl('config').'#set2']); $rssForm->handleRequest($request); - if ($rssForm->isValid()) { + if ($rssForm->isSubmitted() && $rssForm->isValid()) { $em->persist($config); $em->flush(); @@ -123,7 +125,7 @@ class ConfigController extends Controller $newTaggingRule = $this->createForm(TaggingRuleType::class, $taggingRule, ['action' => $action]); $newTaggingRule->handleRequest($request); - if ($newTaggingRule->isValid()) { + if ($newTaggingRule->isSubmitted() && $newTaggingRule->isValid()) { $taggingRule->setConfig($config); $em->persist($taggingRule); $em->flush(); @@ -149,6 +151,7 @@ class ConfigController extends Controller 'token' => $config->getRssToken(), ], 'twofactor_auth' => $this->getParameter('twofactor_auth'), + 'wallabag_url' => $this->get('craue_config')->get('wallabag_url'), 'enabled_users' => $this->getDoctrine() ->getRepository('WallabagUserBundle:User') ->getSumEnabledUsers(), @@ -233,8 +236,6 @@ class ConfigController extends Controller */ public function resetAction($type) { - $em = $this->getDoctrine()->getManager(); - switch ($type) { case 'annotations': $this->getDoctrine() @@ -362,4 +363,25 @@ class ConfigController extends Controller return $this->redirect($this->generateUrl('fos_user_security_login')); } + + /** + * Switch view mode for current user. + * + * @Route("/config/view-mode", name="switch_view_mode") + * + * @param Request $request + * + * @return \Symfony\Component\HttpFoundation\RedirectResponse + */ + public function changeViewModeAction(Request $request) + { + $user = $this->getUser(); + $user->getConfig()->setListMode(!$user->getConfig()->getListMode()); + + $em = $this->getDoctrine()->getManager(); + $em->persist($user); + $em->flush(); + + return $this->redirect($request->headers->get('referer')); + } }