aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Wallabag
diff options
context:
space:
mode:
Diffstat (limited to 'src/Wallabag')
-rw-r--r--src/Wallabag/CoreBundle/Controller/EntryController.php17
-rw-r--r--src/Wallabag/CoreBundle/DataFixtures/ORM/LoadConfigData.php7
-rw-r--r--src/Wallabag/CoreBundle/DataFixtures/ORM/LoadTaggingRuleData.php8
-rw-r--r--src/Wallabag/CoreBundle/Entity/Entry.php19
-rw-r--r--src/Wallabag/CoreBundle/Entity/Tag.php23
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.da.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.de.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.en.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.es.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml45
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.it.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml1
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml1
-rw-r--r--src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php34
17 files changed, 122 insertions, 41 deletions
diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php
index 69dfd4b1..33b5e2ad 100644
--- a/src/Wallabag/CoreBundle/Controller/EntryController.php
+++ b/src/Wallabag/CoreBundle/Controller/EntryController.php
@@ -23,10 +23,16 @@ class EntryController extends Controller
23 { 23 {
24 try { 24 try {
25 $entry = $this->get('wallabag_core.content_proxy')->updateEntry($entry, $entry->getUrl()); 25 $entry = $this->get('wallabag_core.content_proxy')->updateEntry($entry, $entry->getUrl());
26
26 $em = $this->getDoctrine()->getManager(); 27 $em = $this->getDoctrine()->getManager();
27 $em->persist($entry); 28 $em->persist($entry);
28 $em->flush(); 29 $em->flush();
29 } catch (\Exception $e) { 30 } catch (\Exception $e) {
31 $this->get('logger')->error('Error while saving an entry', [
32 'exception' => $e,
33 'entry' => $entry,
34 ]);
35
30 return false; 36 return false;
31 } 37 }
32 38
@@ -60,11 +66,12 @@ class EntryController extends Controller
60 return $this->redirect($this->generateUrl('view', ['id' => $existingEntry->getId()])); 66 return $this->redirect($this->generateUrl('view', ['id' => $existingEntry->getId()]));
61 } 67 }
62 68
63 $this->updateEntry($entry); 69 $message = 'flashes.entry.notice.entry_saved';
64 $this->get('session')->getFlashBag()->add( 70 if (false === $this->updateEntry($entry)) {
65 'notice', 71 $message = 'flashes.entry.notice.entry_saved_failed';
66 'flashes.entry.notice.entry_saved' 72 }
67 ); 73
74 $this->get('session')->getFlashBag()->add('notice', $message);
68 75
69 return $this->redirect($this->generateUrl('homepage')); 76 return $this->redirect($this->generateUrl('homepage'));
70 } 77 }
diff --git a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadConfigData.php b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadConfigData.php
index 5a376453..03be9667 100644
--- a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadConfigData.php
+++ b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadConfigData.php
@@ -6,7 +6,6 @@ use Doctrine\Common\DataFixtures\AbstractFixture;
6use Doctrine\Common\DataFixtures\OrderedFixtureInterface; 6use Doctrine\Common\DataFixtures\OrderedFixtureInterface;
7use Doctrine\Common\Persistence\ObjectManager; 7use Doctrine\Common\Persistence\ObjectManager;
8use Wallabag\CoreBundle\Entity\Config; 8use Wallabag\CoreBundle\Entity\Config;
9use Wallabag\CoreBundle\Entity\TaggingRule;
10 9
11class LoadConfigData extends AbstractFixture implements OrderedFixtureInterface 10class LoadConfigData extends AbstractFixture implements OrderedFixtureInterface
12{ 11{
@@ -16,12 +15,6 @@ class LoadConfigData extends AbstractFixture implements OrderedFixtureInterface
16 public function load(ObjectManager $manager) 15 public function load(ObjectManager $manager)
17 { 16 {
18 $adminConfig = new Config($this->getReference('admin-user')); 17 $adminConfig = new Config($this->getReference('admin-user'));
19 $taggingRule = new TaggingRule();
20
21 $taggingRule->setConfig($adminConfig);
22 $taggingRule->setRule('title matches "wallabag"');
23 $taggingRule->setTags(['wallabag']);
24 $manager->persist($taggingRule);
25 18
26 $adminConfig->setTheme('material'); 19 $adminConfig->setTheme('material');
27 $adminConfig->setItemsPerPage(30); 20 $adminConfig->setItemsPerPage(30);
diff --git a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadTaggingRuleData.php b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadTaggingRuleData.php
index 2e1cc270..7efe6356 100644
--- a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadTaggingRuleData.php
+++ b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadTaggingRuleData.php
@@ -28,6 +28,14 @@ class LoadTaggingRuleData extends AbstractFixture implements OrderedFixtureInter
28 28
29 $manager->persist($tr2); 29 $manager->persist($tr2);
30 30
31 $tr3 = new TaggingRule();
32
33 $tr3->setRule('title matches "wallabag"');
34 $tr3->setTags(['wallabag']);
35 $tr3->setConfig($this->getReference('admin-config'));
36
37 $manager->persist($tr3);
38
31 $manager->flush(); 39 $manager->flush();
32 } 40 }
33 41
diff --git a/src/Wallabag/CoreBundle/Entity/Entry.php b/src/Wallabag/CoreBundle/Entity/Entry.php
index 1271f1f5..ceae78b0 100644
--- a/src/Wallabag/CoreBundle/Entity/Entry.php
+++ b/src/Wallabag/CoreBundle/Entity/Entry.php
@@ -177,8 +177,16 @@ class Entry
177 private $user; 177 private $user;
178 178
179 /** 179 /**
180 * @ORM\ManyToMany(targetEntity="Tag", inversedBy="entries", cascade={"persist", "remove"}) 180 * @ORM\ManyToMany(targetEntity="Tag", inversedBy="entries", cascade={"persist"})
181 * @ORM\JoinTable 181 * @ORM\JoinTable(
182 * name="entry_tag",
183 * joinColumns={
184 * @ORM\JoinColumn(name="entry_id", referencedColumnName="id")
185 * },
186 * inverseJoinColumns={
187 * @ORM\JoinColumn(name="tag_id", referencedColumnName="id")
188 * }
189 * )
182 * 190 *
183 * @Groups({"entries_for_user", "export_all"}) 191 * @Groups({"entries_for_user", "export_all"})
184 */ 192 */
@@ -526,13 +534,18 @@ class Entry
526 } 534 }
527 } 535 }
528 536
529 $this->tags[] = $tag; 537 $this->tags->add($tag);
530 $tag->addEntry($this); 538 $tag->addEntry($this);
531 } 539 }
532 540
533 public function removeTag(Tag $tag) 541 public function removeTag(Tag $tag)
534 { 542 {
543 if (!$this->tags->contains($tag)) {
544 return;
545 }
546
535 $this->tags->removeElement($tag); 547 $this->tags->removeElement($tag);
548 $tag->removeEntry($this);
536 } 549 }
537 550
538 /** 551 /**
diff --git a/src/Wallabag/CoreBundle/Entity/Tag.php b/src/Wallabag/CoreBundle/Entity/Tag.php
index b4adbbd3..4b480ff1 100644
--- a/src/Wallabag/CoreBundle/Entity/Tag.php
+++ b/src/Wallabag/CoreBundle/Entity/Tag.php
@@ -98,9 +98,30 @@ class Tag
98 return $this->slug; 98 return $this->slug;
99 } 99 }
100 100
101 /**
102 * @param Entry $entry
103 */
101 public function addEntry(Entry $entry) 104 public function addEntry(Entry $entry)
102 { 105 {
103 $this->entries[] = $entry; 106 if ($this->entries->contains($entry)) {
107 return;
108 }
109
110 $this->entries->add($entry);
111 $entry->addTag($this);
112 }
113
114 /**
115 * @param Entry $entry
116 */
117 public function removeEntry(Entry $entry)
118 {
119 if (!$this->entries->contains($entry)) {
120 return;
121 }
122
123 $this->entries->removeElement($entry);
124 $entry->removeTag($this);
104 } 125 }
105 126
106 public function hasEntry($entry) 127 public function hasEntry($entry)
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
index 1e58352d..213d5790 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
@@ -397,6 +397,7 @@ flashes:
397 notice: 397 notice:
398 # entry_already_saved: 'Entry already saved on %date%' 398 # entry_already_saved: 'Entry already saved on %date%'
399 # entry_saved: 'Entry saved' 399 # entry_saved: 'Entry saved'
400 # entry_saved_failed: 'Failed to save entry'
400 # entry_updated: 'Entry updated' 401 # entry_updated: 'Entry updated'
401 # entry_reloaded: 'Entry reloaded' 402 # entry_reloaded: 'Entry reloaded'
402 # entry_reload_failed: 'Failed to reload entry' 403 # entry_reload_failed: 'Failed to reload entry'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
index 512b01bc..89cbbbf8 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
@@ -397,6 +397,7 @@ flashes:
397 notice: 397 notice:
398 entry_already_saved: 'Eintrag bereits am %date% gespeichert' 398 entry_already_saved: 'Eintrag bereits am %date% gespeichert'
399 entry_saved: 'Eintag gespeichert' 399 entry_saved: 'Eintag gespeichert'
400 # entry_saved_failed: 'Failed to save entry'
400 entry_updated: 'Eintrag aktualisiert' 401 entry_updated: 'Eintrag aktualisiert'
401 entry_reloaded: 'Eintrag neugeladen' 402 entry_reloaded: 'Eintrag neugeladen'
402 entry_reload_failed: 'Neuladen des Eintrags fehlgeschlagen' 403 entry_reload_failed: 'Neuladen des Eintrags fehlgeschlagen'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
index ae03f809..b65e4522 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
@@ -397,6 +397,7 @@ flashes:
397 notice: 397 notice:
398 entry_already_saved: 'Entry already saved on %date%' 398 entry_already_saved: 'Entry already saved on %date%'
399 entry_saved: 'Entry saved' 399 entry_saved: 'Entry saved'
400 entry_saved_failed: 'Failed to save entry'
400 entry_updated: 'Entry updated' 401 entry_updated: 'Entry updated'
401 entry_reloaded: 'Entry reloaded' 402 entry_reloaded: 'Entry reloaded'
402 entry_reload_failed: 'Failed to reload entry' 403 entry_reload_failed: 'Failed to reload entry'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
index 0ae2e243..8351bcf4 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
@@ -397,6 +397,7 @@ flashes:
397 notice: 397 notice:
398 entry_already_saved: 'Entrada ya guardada por %fecha%' 398 entry_already_saved: 'Entrada ya guardada por %fecha%'
399 entry_saved: 'Entrada guardada' 399 entry_saved: 'Entrada guardada'
400 # entry_saved_failed: 'Failed to save entry'
400 entry_updated: 'Entrada actualizada' 401 entry_updated: 'Entrada actualizada'
401 entry_reloaded: 'Entrada recargada' 402 entry_reloaded: 'Entrada recargada'
402 entry_reload_failed: 'Entrada recargada reprobada' 403 entry_reload_failed: 'Entrada recargada reprobada'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
index b0601543..db6e5960 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
@@ -96,8 +96,8 @@ config:
96 rule_label: 'قانون' 96 rule_label: 'قانون'
97 tags_label: 'برچسب‌ها' 97 tags_label: 'برچسب‌ها'
98 faq: 98 faq:
99 title: 'پرسش‌های متداول' 99 title: 'پرسش‌های متداول'
100 tagging_rules_definition_title: 'برچسب‌گذاری خودکار یعنی چه؟' 100 tagging_rules_definition_title: 'برچسب‌گذاری خودکار یعنی چه؟'
101 # tagging_rules_definition_description: 'They are rules used by Wallabag to automatically tag new entries.<br />Each time a new entry is added, all the tagging rules will be used to add the tags you configured, thus saving you the trouble to manually classify your entries.' 101 # tagging_rules_definition_description: 'They are rules used by Wallabag to automatically tag new entries.<br />Each time a new entry is added, all the tagging rules will be used to add the tags you configured, thus saving you the trouble to manually classify your entries.'
102 # how_to_use_them_title: 'How do I use them?' 102 # how_to_use_them_title: 'How do I use them?'
103 # how_to_use_them_description: 'Let assume you want to tag new entries as « <i>short reading</i> » when the reading time is inferior to 3 minutes.<br />In that case, you should put « readingTime &lt;= 3 » in the <i>Rule</i> field and « <i>short reading</i> » in the <i>Tags</i> field.<br />Several tags can added simultaneously by separating them by a comma: « <i>short reading, must read</i> »<br />Complex rules can be written by using predefined operators: if « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> »' 103 # how_to_use_them_description: 'Let assume you want to tag new entries as « <i>short reading</i> » when the reading time is inferior to 3 minutes.<br />In that case, you should put « readingTime &lt;= 3 » in the <i>Rule</i> field and « <i>short reading</i> » in the <i>Tags</i> field.<br />Several tags can added simultaneously by separating them by a comma: « <i>short reading, must read</i> »<br />Complex rules can be written by using predefined operators: if « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, github </i> »'
@@ -384,30 +384,31 @@ developer:
384flashes: 384flashes:
385 config: 385 config:
386 notice: 386 notice:
387 config_saved: 'پیکربندی ذخیره شد. برخی از تنظیمات پس از این که قطع شدید اعمال می‌شود.' 387 config_saved: 'پیکربندی ذخیره شد. برخی از تنظیمات پس از این که قطع شدید اعمال می‌شود.'
388 password_updated: 'رمز به‌روز شد' 388 password_updated: 'رمز به‌روز شد'
389 password_not_updated_demo: "در حالت نمایشی نمی‌توانید رمز کاربر را عوض کنید." 389 password_not_updated_demo: "در حالت نمایشی نمی‌توانید رمز کاربر را عوض کنید."
390 user_updated: 'اطلاعات به‌روز شد' 390 user_updated: 'اطلاعات به‌روز شد'
391 rss_updated: 'اطلاعات آر-اس-اس به‌روز شد' 391 rss_updated: 'اطلاعات آر-اس-اس به‌روز شد'
392 tagging_rules_updated: 'برچسب‌گذاری خودکار به‌روز شد' 392 tagging_rules_updated: 'برچسب‌گذاری خودکار به‌روز شد'
393 tagging_rules_deleted: 'قانون برچسب‌گذاری پاک شد' 393 tagging_rules_deleted: 'قانون برچسب‌گذاری پاک شد'
394 user_added: 'کابر "%username%" افزوده شد' 394 user_added: 'کابر "%username%" افزوده شد'
395 rss_token_updated: 'کد آر-اس-اس به‌روز شد' 395 rss_token_updated: 'کد آر-اس-اس به‌روز شد'
396 entry: 396 entry:
397 notice: 397 notice:
398 entry_already_saved: 'این مقاله در تاریخ %date% ذخیره شده بود' 398 entry_already_saved: 'این مقاله در تاریخ %date% ذخیره شده بود'
399 entry_saved: 'مقاله ذخیره شد' 399 entry_saved: 'مقاله ذخیره شد'
400 entry_updated: 'مقاله به‌روز شد' 400 # entry_saved_failed: 'Failed to save entry'
401 entry_reloaded: 'مقاله به‌روز شد' 401 entry_updated: 'مقاله به‌روز شد'
402 entry_reload_failed: 'به‌روزرسانی مقاله شکست خورد' 402 entry_reloaded: 'مقاله به‌روز شد'
403 entry_archived: 'مقاله بایگانی شد' 403 entry_reload_failed: 'به‌روزرسانی مقاله شکست خورد'
404 entry_unarchived: 'مقاله از بایگانی درآمد' 404 entry_archived: 'مقاله بایگانی شد'
405 entry_starred: 'مقاله برگزیده شد' 405 entry_unarchived: 'مقاله از بایگانی درآمد'
406 entry_unstarred: 'مقاله نابرگزیده شد' 406 entry_starred: 'مقاله برگزیده شد'
407 entry_deleted: 'مقاله پاک شد' 407 entry_unstarred: 'مقاله نابرگزیده شد'
408 entry_deleted: 'مقاله پاک شد'
408 tag: 409 tag:
409 notice: 410 notice:
410 tag_added: 'برچسب افزوده شد' 411 tag_added: 'برچسب افزوده شد'
411 import: 412 import:
412 notice: 413 notice:
413 failed: 'درون‌ریزی شکست خورد. لطفاً دوباره تلاش کنید.' 414 failed: 'درون‌ریزی شکست خورد. لطفاً دوباره تلاش کنید.'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
index 954ab0c3..9fc8ca2a 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
@@ -397,6 +397,7 @@ flashes:
397 notice: 397 notice:
398 entry_already_saved: 'Article déjà sauvergardé le %date%' 398 entry_already_saved: 'Article déjà sauvergardé le %date%'
399 entry_saved: 'Article enregistré' 399 entry_saved: 'Article enregistré'
400 entry_saved_failed: "L'enregistrement a échoué"
400 entry_updated: 'Article mis à jour' 401 entry_updated: 'Article mis à jour'
401 entry_reloaded: 'Article rechargé' 402 entry_reloaded: 'Article rechargé'
402 entry_reload_failed: "Le rechargement de l'article a échoué" 403 entry_reload_failed: "Le rechargement de l'article a échoué"
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
index 4f3ac090..00ed9c98 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
@@ -396,6 +396,7 @@ flashes:
396 notice: 396 notice:
397 entry_already_saved: 'Contenuto già salvato in data %date%' 397 entry_already_saved: 'Contenuto già salvato in data %date%'
398 entry_saved: 'Contenuto salvato' 398 entry_saved: 'Contenuto salvato'
399 # entry_saved_failed: 'Failed to save entry'
399 entry_updated: 'Contenuto aggiornato' 400 entry_updated: 'Contenuto aggiornato'
400 entry_reloaded: 'Contenuto ricaricato' 401 entry_reloaded: 'Contenuto ricaricato'
401 entry_reload_failed: 'Errore nel ricaricamento del contenuto' 402 entry_reload_failed: 'Errore nel ricaricamento del contenuto'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
index 24b8c6e2..c81c852b 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
@@ -397,6 +397,7 @@ flashes:
397 notice: 397 notice:
398 entry_already_saved: 'Article ja salvargardat lo %date%' 398 entry_already_saved: 'Article ja salvargardat lo %date%'
399 entry_saved: 'Article enregistrat' 399 entry_saved: 'Article enregistrat'
400 # entry_saved_failed: 'Failed to save entry'
400 entry_updated: 'Article mes a jorn' 401 entry_updated: 'Article mes a jorn'
401 entry_reloaded: 'Article recargat' 402 entry_reloaded: 'Article recargat'
402 entry_reload_failed: "Fracàs de l'actualizacion de l'article" 403 entry_reload_failed: "Fracàs de l'actualizacion de l'article"
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
index fa23f0b8..3707a857 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
@@ -397,6 +397,7 @@ flashes:
397 notice: 397 notice:
398 entry_already_saved: 'Wpis już został dodany %date%' 398 entry_already_saved: 'Wpis już został dodany %date%'
399 entry_saved: 'Wpis zapisany' 399 entry_saved: 'Wpis zapisany'
400 # entry_saved_failed: 'Failed to save entry'
400 entry_updated: 'Wpis zaktualizowany' 401 entry_updated: 'Wpis zaktualizowany'
401 entry_reloaded: 'Wpis ponownie załadowany' 402 entry_reloaded: 'Wpis ponownie załadowany'
402 entry_reload_failed: 'Błąd ponownego załadowania' 403 entry_reload_failed: 'Błąd ponownego załadowania'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
index 648ba370..27be1edc 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
@@ -397,6 +397,7 @@ flashes:
397 notice: 397 notice:
398 # entry_already_saved: 'Entry already saved on %date%' 398 # entry_already_saved: 'Entry already saved on %date%'
399 # entry_saved: 'Entry saved' 399 # entry_saved: 'Entry saved'
400 # entry_saved_failed: 'Failed to save entry'
400 # entry_updated: 'Entry updated' 401 # entry_updated: 'Entry updated'
401 # entry_reloaded: 'Entry reloaded' 402 # entry_reloaded: 'Entry reloaded'
402 # entry_reload_failed: 'Failed to reload entry' 403 # entry_reload_failed: 'Failed to reload entry'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
index 0fc8d328..85ee7316 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
@@ -397,6 +397,7 @@ flashes:
397 notice: 397 notice:
398 entry_already_saved: 'Entry already saved on %date%' 398 entry_already_saved: 'Entry already saved on %date%'
399 entry_saved: 'Makale kaydedildi' 399 entry_saved: 'Makale kaydedildi'
400 # entry_saved_failed: 'Failed to save entry'
400 # entry_updated: 'Entry updated' 401 # entry_updated: 'Entry updated'
401 entry_reloaded: 'Makale içeriği yenilendi' 402 entry_reloaded: 'Makale içeriği yenilendi'
402 # entry_reload_failed: 'Failed to reload entry' 403 # entry_reload_failed: 'Failed to reload entry'
diff --git a/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php b/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php
index c7087a71..5ce893c1 100644
--- a/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php
+++ b/src/Wallabag/CoreBundle/Tests/Controller/EntryControllerTest.php
@@ -163,7 +163,7 @@ class EntryControllerTest extends WallabagCoreTestCase
163 /** 163 /**
164 * This test will require an internet connection. 164 * This test will require an internet connection.
165 */ 165 */
166 public function testPostNewThatWillBeTaggued() 166 public function testPostNewThatWillBeTagged()
167 { 167 {
168 $this->logInAs('admin'); 168 $this->logInAs('admin');
169 $client = $this->getClient(); 169 $client = $this->getClient();
@@ -181,8 +181,7 @@ class EntryControllerTest extends WallabagCoreTestCase
181 $client->submit($form, $data); 181 $client->submit($form, $data);
182 182
183 $this->assertEquals(302, $client->getResponse()->getStatusCode()); 183 $this->assertEquals(302, $client->getResponse()->getStatusCode());
184 184 $this->assertContains('/', $client->getResponse()->getTargetUrl());
185 $client->followRedirect();
186 185
187 $em = $client->getContainer() 186 $em = $client->getContainer()
188 ->get('doctrine.orm.entity_manager'); 187 ->get('doctrine.orm.entity_manager');
@@ -196,6 +195,35 @@ class EntryControllerTest extends WallabagCoreTestCase
196 195
197 $em->remove($entry); 196 $em->remove($entry);
198 $em->flush(); 197 $em->flush();
198
199 // and now re-submit it to test the cascade persistence for tags after entry removal
200 // related https://github.com/wallabag/wallabag/issues/2121
201 $crawler = $client->request('GET', '/new');
202
203 $this->assertEquals(200, $client->getResponse()->getStatusCode());
204
205 $form = $crawler->filter('form[name=entry]')->form();
206
207 $data = [
208 'entry[url]' => $url = 'https://github.com/wallabag/wallabag/tree/master',
209 ];
210
211 $client->submit($form, $data);
212
213 $this->assertEquals(302, $client->getResponse()->getStatusCode());
214 $this->assertContains('/', $client->getResponse()->getTargetUrl());
215
216 $entry = $em
217 ->getRepository('WallabagCoreBundle:Entry')
218 ->findOneByUrl($url);
219
220 $tags = $entry->getTags();
221
222 $this->assertCount(1, $tags);
223 $this->assertEquals('wallabag', $tags[0]->getLabel());
224
225 $em->remove($entry);
226 $em->flush();
199 } 227 }
200 228
201 public function testArchive() 229 public function testArchive()