From a42f38d9fb7906b785285fab2a09f8c2b9efe996 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Sun, 6 Nov 2016 12:02:39 +0100 Subject: Added a configuration to define the redirection after archiving an entry Fix #496 --- .../CoreBundle/DataFixtures/ORM/LoadConfigData.php | 3 +++ src/Wallabag/CoreBundle/Entity/Config.php | 27 ++++++++++++++++++++++ src/Wallabag/CoreBundle/Form/Type/ConfigType.php | 7 ++++++ src/Wallabag/CoreBundle/Helper/Redirect.php | 9 +++++++- .../CoreBundle/Resources/config/services.yml | 1 + .../Resources/translations/messages.da.yml | 4 ++++ .../Resources/translations/messages.de.yml | 4 ++++ .../Resources/translations/messages.en.yml | 4 ++++ .../Resources/translations/messages.es.yml | 4 ++++ .../Resources/translations/messages.fa.yml | 4 ++++ .../Resources/translations/messages.fr.yml | 4 ++++ .../Resources/translations/messages.it.yml | 4 ++++ .../Resources/translations/messages.oc.yml | 4 ++++ .../Resources/translations/messages.pl.yml | 4 ++++ .../Resources/translations/messages.pt.yml | 4 ++++ .../Resources/translations/messages.ro.yml | 4 ++++ .../Resources/translations/messages.tr.yml | 4 ++++ .../views/themes/baggy/Config/index.html.twig | 8 +++++++ .../views/themes/material/Config/index.html.twig | 8 +++++++ 19 files changed, 110 insertions(+), 1 deletion(-) (limited to 'src/Wallabag') diff --git a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadConfigData.php b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadConfigData.php index 921c739f..45358022 100644 --- a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadConfigData.php +++ b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadConfigData.php @@ -21,6 +21,7 @@ class LoadConfigData extends AbstractFixture implements OrderedFixtureInterface $adminConfig->setReadingSpeed(1); $adminConfig->setLanguage('en'); $adminConfig->setPocketConsumerKey('xxxxx'); + $adminConfig->setActionMarkAsRead(0); $manager->persist($adminConfig); @@ -32,6 +33,7 @@ class LoadConfigData extends AbstractFixture implements OrderedFixtureInterface $bobConfig->setReadingSpeed(1); $bobConfig->setLanguage('fr'); $bobConfig->setPocketConsumerKey(null); + $bobConfig->setActionMarkAsRead(1); $manager->persist($bobConfig); @@ -43,6 +45,7 @@ class LoadConfigData extends AbstractFixture implements OrderedFixtureInterface $emptyConfig->setReadingSpeed(1); $emptyConfig->setLanguage('en'); $emptyConfig->setPocketConsumerKey(null); + $emptyConfig->setActionMarkAsRead(0); $manager->persist($emptyConfig); diff --git a/src/Wallabag/CoreBundle/Entity/Config.php b/src/Wallabag/CoreBundle/Entity/Config.php index d0f0e3f3..c40d1535 100644 --- a/src/Wallabag/CoreBundle/Entity/Config.php +++ b/src/Wallabag/CoreBundle/Entity/Config.php @@ -87,6 +87,13 @@ class Config */ private $pocketConsumerKey; + /** + * @var int + * + * @ORM\Column(name="action_mark_as_read", type="integer", nullable=true) + */ + private $actionMarkAsRead; + /** * @ORM\OneToOne(targetEntity="Wallabag\UserBundle\Entity\User", inversedBy="config") */ @@ -309,6 +316,26 @@ class Config return $this->pocketConsumerKey; } + /** + * @return int + */ + public function getActionMarkAsRead() + { + return $this->actionMarkAsRead; + } + + /** + * @param int $actionMarkAsRead + * + * @return Config + */ + public function setActionMarkAsRead($actionMarkAsRead) + { + $this->actionMarkAsRead = $actionMarkAsRead; + + return $this; + } + /** * @param TaggingRule $rule * diff --git a/src/Wallabag/CoreBundle/Form/Type/ConfigType.php b/src/Wallabag/CoreBundle/Form/Type/ConfigType.php index 0bac2874..3b1a8026 100644 --- a/src/Wallabag/CoreBundle/Form/Type/ConfigType.php +++ b/src/Wallabag/CoreBundle/Form/Type/ConfigType.php @@ -48,6 +48,13 @@ class ConfigType extends AbstractType 'config.form_settings.reading_speed.400_word' => '2', ], ]) + ->add('action_mark_as_read', ChoiceType::class, [ + 'label' => 'config.form_settings.action_mark_as_read.label', + 'choices' => [ + 'config.form_settings.action_mark_as_read.redirect_homepage' => '0', + 'config.form_settings.action_mark_as_read.redirect_current_page' => '1', + ], + ]) ->add('language', ChoiceType::class, [ 'choices' => array_flip($this->languages), 'label' => 'config.form_settings.language_label', diff --git a/src/Wallabag/CoreBundle/Helper/Redirect.php b/src/Wallabag/CoreBundle/Helper/Redirect.php index c14c79d1..918d9266 100644 --- a/src/Wallabag/CoreBundle/Helper/Redirect.php +++ b/src/Wallabag/CoreBundle/Helper/Redirect.php @@ -3,6 +3,7 @@ namespace Wallabag\CoreBundle\Helper; use Symfony\Component\Routing\Router; +use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage; /** * Manage redirections to avoid redirecting to empty routes. @@ -10,10 +11,12 @@ use Symfony\Component\Routing\Router; class Redirect { private $router; + private $actionMarkAsRead; - public function __construct(Router $router) + public function __construct(Router $router, TokenStorage $token) { $this->router = $router; + $this->actionMarkAsRead = $token->getToken()->getUser()->getConfig()->getActionMarkAsRead(); } /** @@ -24,6 +27,10 @@ class Redirect */ public function to($url, $fallback = '') { + if ($this->actionMarkAsRead == 0) { + return $this->router->generate('homepage'); + } + if (null !== $url) { return $url; } diff --git a/src/Wallabag/CoreBundle/Resources/config/services.yml b/src/Wallabag/CoreBundle/Resources/config/services.yml index 9786ac27..dad9bd42 100644 --- a/src/Wallabag/CoreBundle/Resources/config/services.yml +++ b/src/Wallabag/CoreBundle/Resources/config/services.yml @@ -109,6 +109,7 @@ services: class: Wallabag\CoreBundle\Helper\Redirect arguments: - "@router" + - "@security.token_storage" wallabag_core.helper.prepare_pager_for_entries: class: Wallabag\CoreBundle\Helper\PreparePagerForEntries diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml index b66aa3ea..c24c5965 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml @@ -70,6 +70,10 @@ config: # 200_word: 'I read ~200 words per minute' # 300_word: 'I read ~300 words per minute' # 400_word: 'I read ~400 words per minute' + action_mark_as_read: + # label: 'Where do you to be redirected after mark an article as read?' + # redirect_homepage: 'To the homepage' + # redirect_current_page: 'To the current page' pocket_consumer_key_label: Brugers nøgle til Pocket for at importere materialer # android_configuration: Configure your Android application form_rss: diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml index 9e19dcc4..1b0bc026 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml @@ -70,6 +70,10 @@ config: 200_word: 'Ich lese ~200 Wörter pro Minute' 300_word: 'Ich lese ~300 Wörter pro Minute' 400_word: 'Ich lese ~400 Wörter pro Minute' + action_mark_as_read: + # label: 'Where do you to be redirected after mark an article as read?' + # redirect_homepage: 'To the homepage' + # redirect_current_page: 'To the current page' pocket_consumer_key_label: Consumer-Key für Pocket, um Inhalte zu importieren # android_configuration: Configure your Android application form_rss: diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml index 7516bbd5..b11dc778 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml @@ -70,6 +70,10 @@ config: 200_word: 'I read ~200 words per minute' 300_word: 'I read ~300 words per minute' 400_word: 'I read ~400 words per minute' + action_mark_as_read: + label: 'Where do you want to be redirected after mark an article as read?' + redirect_homepage: 'To the homepage' + redirect_current_page: 'To the current page' pocket_consumer_key_label: Consumer key for Pocket to import contents android_configuration: Configure your Android application form_rss: diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml index 208982d9..15d0c3cf 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml @@ -70,6 +70,10 @@ config: 200_word: 'Leo ~200 palabras por minuto' 300_word: 'Leo ~300 palabras por minuto' 400_word: 'Leo ~400 palabras por minuto' + action_mark_as_read: + # label: 'Where do you to be redirected after mark an article as read?' + # redirect_homepage: 'To the homepage' + # redirect_current_page: 'To the current page' # pocket_consumer_key_label: Consumer key for Pocket to import contents # android_configuration: Configure your Android application form_rss: diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml index c443b21c..e7fa4f86 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml @@ -70,6 +70,10 @@ config: 200_word: 'من تقریباً ۲۰۰ واژه را در دقیقه می‌خوانم' 300_word: 'من تقریباً ۳۰۰ واژه را در دقیقه می‌خوانم' 400_word: 'من تقریباً ۴۰۰ واژه را در دقیقه می‌خوانم' + action_mark_as_read: + # label: 'Where do you to be redirected after mark an article as read?' + # redirect_homepage: 'To the homepage' + # redirect_current_page: 'To the current page' pocket_consumer_key_label: کلید کاربری Pocket برای درون‌ریزی مطالب # android_configuration: Configure your Android application form_rss: diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml index ea759dd3..f85a797d 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml @@ -70,6 +70,10 @@ config: 200_word: "Je lis environ 200 mots par minute" 300_word: "Je lis environ 300 mots par minute" 400_word: "Je lis environ 400 mots par minute" + action_mark_as_read: + label: 'Où souhaitez-vous être redirigé après avoir marqué un article comme lu ?' + redirect_homepage: "À la page d'accueil" + redirect_current_page: 'À la page courante' pocket_consumer_key_label: Clé d’authentification Pocket pour importer les données android_configuration: Configurez votre application Android form_rss: diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml index b3bc573b..8a8469d2 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml @@ -70,6 +70,10 @@ config: 200_word: 'Leggo ~200 parole al minuto' 300_word: 'Leggo ~300 parole al minuto' 400_word: 'Leggo ~400 parole al minuto' + action_mark_as_read: + # label: 'Where do you to be redirected after mark an article as read?' + # redirect_homepage: 'To the homepage' + # redirect_current_page: 'To the current page' pocket_consumer_key_label: Consumer key per Pocket per importare i contenuti # android_configuration: Configure your Android application form_rss: diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml index 97b5f4a9..d37dc724 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml @@ -70,6 +70,10 @@ config: 200_word: "Legissi a l'entorn de 200 mots per minuta" 300_word: "Legissi a l'entorn de 300 mots per minuta" 400_word: "Legissi a l'entorn de 400 mots per minuta" + action_mark_as_read: + # label: 'Where do you to be redirected after mark an article as read?' + # redirect_homepage: 'To the homepage' + # redirect_current_page: 'To the current page' pocket_consumer_key_label: Clau d'autentificacion Pocket per importar las donadas android_configuration: Configuratz vòstra aplicacion Android form_rss: diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml index b4212b83..117a1e12 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml @@ -70,6 +70,10 @@ config: 200_word: 'Czytam ~200 słów na minutę' 300_word: 'Czytam ~300 słów na minutę' 400_word: 'Czytam ~400 słów na minutę' + action_mark_as_read: + # label: 'Where do you to be redirected after mark an article as read?' + # redirect_homepage: 'To the homepage' + # redirect_current_page: 'To the current page' pocket_consumer_key_label: 'Klucz klienta Pocket do importu zawartości' android_configuration: Skonfiguruj swoją androidową aplikację form_rss: diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml index d8fc9d5c..5d2607af 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml @@ -70,6 +70,10 @@ config: 200_word: 'Posso ler ~200 palavras por minuto' 300_word: 'Posso ler ~300 palavras por minuto' 400_word: 'Posso ler ~400 palavras por minuto' + action_mark_as_read: + # label: 'Where do you to be redirected after mark an article as read?' + # redirect_homepage: 'To the homepage' + # redirect_current_page: 'To the current page' pocket_consumer_key_label: 'Chave do consumidor do Pocket para importar conteúdo' # android_configuration: Configure your Android application form_rss: diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml index d130e431..6b51d9ce 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml @@ -70,6 +70,10 @@ config: # 200_word: 'I read ~200 words per minute' # 300_word: 'I read ~300 words per minute' # 400_word: 'I read ~400 words per minute' + action_mark_as_read: + # label: 'Where do you to be redirected after mark an article as read?' + # redirect_homepage: 'To the homepage' + # redirect_current_page: 'To the current page' pocket_consumer_key_label: Cheie consumator pentru importarea contentului din Pocket # android_configuration: Configure your Android application form_rss: diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml index f67d8bee..9c392433 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml @@ -70,6 +70,10 @@ config: # 200_word: 'I read ~200 words per minute' # 300_word: 'I read ~300 words per minute' # 400_word: 'I read ~400 words per minute' + action_mark_as_read: + # label: 'Where do you to be redirected after mark an article as read?' + # redirect_homepage: 'To the homepage' + # redirect_current_page: 'To the current page' # pocket_consumer_key_label: Consumer key for Pocket to import contents # android_configuration: Configure your Android application form_rss: diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig index ec3b23c8..4c01b128 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig @@ -36,6 +36,14 @@ +
+
+ {{ form_label(form.config.action_mark_as_read) }} + {{ form_errors(form.config.action_mark_as_read) }} + {{ form_widget(form.config.action_mark_as_read) }} +
+
+
{{ form_label(form.config.language) }} diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig index f69d158f..e774795b 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig @@ -51,6 +51,14 @@
+
+
+ {{ form_label(form.config.action_mark_as_read) }} + {{ form_errors(form.config.action_mark_as_read) }} + {{ form_widget(form.config.action_mark_as_read) }} +
+
+
{{ form_label(form.config.language) }} -- cgit v1.2.3