aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Wallabag
diff options
context:
space:
mode:
Diffstat (limited to 'src/Wallabag')
-rw-r--r--src/Wallabag/AnnotationBundle/Entity/Annotation.php7
-rw-r--r--src/Wallabag/ApiBundle/Controller/WallabagRestController.php52
-rw-r--r--src/Wallabag/CoreBundle/Controller/TagController.php6
-rw-r--r--src/Wallabag/CoreBundle/DataFixtures/ORM/LoadEntryData.php4
-rw-r--r--src/Wallabag/CoreBundle/Entity/Entry.php17
-rw-r--r--src/Wallabag/CoreBundle/Helper/EntriesExport.php13
-rw-r--r--src/Wallabag/CoreBundle/Resources/config/services.yml5
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.da.yml4
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.de.yml4
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.en.yml4
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.es.yml4
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml4
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml4
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.it.yml4
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml4
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml6
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml4
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml4
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig6
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entry.html.twig27
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/share.html.twig11
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig6
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig27
-rw-r--r--src/Wallabag/UserBundle/EventListener/CreateConfigListener.php4
-rw-r--r--src/Wallabag/UserBundle/Resources/views/Manage/edit.html.twig2
25 files changed, 169 insertions, 64 deletions
diff --git a/src/Wallabag/AnnotationBundle/Entity/Annotation.php b/src/Wallabag/AnnotationBundle/Entity/Annotation.php
index 90ee7c2d..c48d8731 100644
--- a/src/Wallabag/AnnotationBundle/Entity/Annotation.php
+++ b/src/Wallabag/AnnotationBundle/Entity/Annotation.php
@@ -7,6 +7,7 @@ use JMS\Serializer\Annotation\ExclusionPolicy;
7use JMS\Serializer\Annotation\Exclude; 7use JMS\Serializer\Annotation\Exclude;
8use JMS\Serializer\Annotation\VirtualProperty; 8use JMS\Serializer\Annotation\VirtualProperty;
9use JMS\Serializer\Annotation\SerializedName; 9use JMS\Serializer\Annotation\SerializedName;
10use JMS\Serializer\Annotation\Groups;
10use Wallabag\UserBundle\Entity\User; 11use Wallabag\UserBundle\Entity\User;
11use Wallabag\CoreBundle\Entity\Entry; 12use Wallabag\CoreBundle\Entity\Entry;
12 13
@@ -33,6 +34,8 @@ class Annotation
33 * @var string 34 * @var string
34 * 35 *
35 * @ORM\Column(name="text", type="text") 36 * @ORM\Column(name="text", type="text")
37 *
38 * @Groups({"entries_for_user", "export_all"})
36 */ 39 */
37 private $text; 40 private $text;
38 41
@@ -54,6 +57,8 @@ class Annotation
54 * @var string 57 * @var string
55 * 58 *
56 * @ORM\Column(name="quote", type="string") 59 * @ORM\Column(name="quote", type="string")
60 *
61 * @Groups({"entries_for_user", "export_all"})
57 */ 62 */
58 private $quote; 63 private $quote;
59 64
@@ -61,6 +66,8 @@ class Annotation
61 * @var array 66 * @var array
62 * 67 *
63 * @ORM\Column(name="ranges", type="array") 68 * @ORM\Column(name="ranges", type="array")
69 *
70 * @Groups({"entries_for_user", "export_all"})
64 */ 71 */
65 private $ranges; 72 private $ranges;
66 73
diff --git a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php
index 791bf80b..ed31c536 100644
--- a/src/Wallabag/ApiBundle/Controller/WallabagRestController.php
+++ b/src/Wallabag/ApiBundle/Controller/WallabagRestController.php
@@ -27,7 +27,8 @@ class WallabagRestController extends FOSRestController
27 * 27 *
28 * @ApiDoc( 28 * @ApiDoc(
29 * parameters={ 29 * parameters={
30 * {"name"="url", "dataType"="string", "required"=true, "format"="An url", "description"="Url to check if it exists"} 30 * {"name"="url", "dataType"="string", "required"=true, "format"="An url", "description"="Url to check if it exists"},
31 * {"name"="urls", "dataType"="string", "required"=false, "format"="An array of urls (?urls[]=http...&urls[]=http...)", "description"="Urls (as an array) to check if it exists"}
31 * } 32 * }
32 * ) 33 * )
33 * 34 *
@@ -37,10 +38,29 @@ class WallabagRestController extends FOSRestController
37 { 38 {
38 $this->validateAuthentication(); 39 $this->validateAuthentication();
39 40
41 $urls = $request->query->get('urls', []);
42
43 // handle multiple urls first
44 if (!empty($urls)) {
45 $results = [];
46 foreach ($urls as $url) {
47 $res = $this->getDoctrine()
48 ->getRepository('WallabagCoreBundle:Entry')
49 ->findByUrlAndUserId($url, $this->getUser()->getId());
50
51 $results[$url] = false === $res ? false : true;
52 }
53
54 $json = $this->get('serializer')->serialize($results, 'json');
55
56 return (new JsonResponse())->setJson($json);
57 }
58
59 // let's see if it is a simple url?
40 $url = $request->query->get('url', ''); 60 $url = $request->query->get('url', '');
41 61
42 if (empty($url)) { 62 if (empty($url)) {
43 throw $this->createAccessDeniedException('URL is empty?, logged user id: '.$user->getId()); 63 throw $this->createAccessDeniedException('URL is empty?, logged user id: '.$this->getUser()->getId());
44 } 64 }
45 65
46 $res = $this->getDoctrine() 66 $res = $this->getDoctrine()
@@ -400,6 +420,8 @@ class WallabagRestController extends FOSRestController
400 ->getRepository('WallabagCoreBundle:Entry') 420 ->getRepository('WallabagCoreBundle:Entry')
401 ->removeTag($this->getUser()->getId(), $tag); 421 ->removeTag($this->getUser()->getId(), $tag);
402 422
423 $this->cleanOrphanTag($tag);
424
403 $json = $this->get('serializer')->serialize($tag, 'json'); 425 $json = $this->get('serializer')->serialize($tag, 'json');
404 426
405 return (new JsonResponse())->setJson($json); 427 return (new JsonResponse())->setJson($json);
@@ -440,6 +462,8 @@ class WallabagRestController extends FOSRestController
440 ->getRepository('WallabagCoreBundle:Entry') 462 ->getRepository('WallabagCoreBundle:Entry')
441 ->removeTags($this->getUser()->getId(), $tags); 463 ->removeTags($this->getUser()->getId(), $tags);
442 464
465 $this->cleanOrphanTag($tags);
466
443 $json = $this->get('serializer')->serialize($tags, 'json'); 467 $json = $this->get('serializer')->serialize($tags, 'json');
444 468
445 return (new JsonResponse())->setJson($json); 469 return (new JsonResponse())->setJson($json);
@@ -464,6 +488,8 @@ class WallabagRestController extends FOSRestController
464 ->getRepository('WallabagCoreBundle:Entry') 488 ->getRepository('WallabagCoreBundle:Entry')
465 ->removeTag($this->getUser()->getId(), $tag); 489 ->removeTag($this->getUser()->getId(), $tag);
466 490
491 $this->cleanOrphanTag($tag);
492
467 $json = $this->get('serializer')->serialize($tag, 'json'); 493 $json = $this->get('serializer')->serialize($tag, 'json');
468 494
469 return (new JsonResponse())->setJson($json); 495 return (new JsonResponse())->setJson($json);
@@ -486,6 +512,28 @@ class WallabagRestController extends FOSRestController
486 } 512 }
487 513
488 /** 514 /**
515 * Remove orphan tag in case no entries are associated to it.
516 *
517 * @param Tag|array $tags
518 */
519 private function cleanOrphanTag($tags)
520 {
521 if (!is_array($tags)) {
522 $tags = [$tags];
523 }
524
525 $em = $this->getDoctrine()->getManager();
526
527 foreach ($tags as $tag) {
528 if (count($tag->getEntries()) === 0) {
529 $em->remove($tag);
530 }
531 }
532
533 $em->flush();
534 }
535
536 /**
489 * Validate that the first id is equal to the second one. 537 * Validate that the first id is equal to the second one.
490 * If not, throw exception. It means a user try to access information from an other user. 538 * If not, throw exception. It means a user try to access information from an other user.
491 * 539 *
diff --git a/src/Wallabag/CoreBundle/Controller/TagController.php b/src/Wallabag/CoreBundle/Controller/TagController.php
index 623a6146..c5746734 100644
--- a/src/Wallabag/CoreBundle/Controller/TagController.php
+++ b/src/Wallabag/CoreBundle/Controller/TagController.php
@@ -63,10 +63,12 @@ class TagController extends Controller
63 $entry->removeTag($tag); 63 $entry->removeTag($tag);
64 $em = $this->getDoctrine()->getManager(); 64 $em = $this->getDoctrine()->getManager();
65 $em->flush(); 65 $em->flush();
66 if (count($tag->getEntries()) == 0) { 66
67 // remove orphan tag in case no entries are associated to it
68 if (count($tag->getEntries()) === 0) {
67 $em->remove($tag); 69 $em->remove($tag);
70 $em->flush();
68 } 71 }
69 $em->flush();
70 72
71 $redirectUrl = $this->get('wallabag_core.helper.redirect')->to($request->headers->get('referer')); 73 $redirectUrl = $this->get('wallabag_core.helper.redirect')->to($request->headers->get('referer'));
72 74
diff --git a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadEntryData.php b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadEntryData.php
index 6c6a331a..fedad009 100644
--- a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadEntryData.php
+++ b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadEntryData.php
@@ -23,6 +23,9 @@ class LoadEntryData extends AbstractFixture implements OrderedFixtureInterface
23 $entry1->setContent('This is my content /o/'); 23 $entry1->setContent('This is my content /o/');
24 $entry1->setLanguage('en'); 24 $entry1->setLanguage('en');
25 25
26 $entry1->addTag($this->getReference('foo-tag'));
27 $entry1->addTag($this->getReference('baz-tag'));
28
26 $manager->persist($entry1); 29 $manager->persist($entry1);
27 30
28 $this->addReference('entry1', $entry1); 31 $this->addReference('entry1', $entry1);
@@ -96,6 +99,7 @@ class LoadEntryData extends AbstractFixture implements OrderedFixtureInterface
96 $entry6->setContent('This is my content /o/'); 99 $entry6->setContent('This is my content /o/');
97 $entry6->setArchived(true); 100 $entry6->setArchived(true);
98 $entry6->setLanguage('de'); 101 $entry6->setLanguage('de');
102 $entry6->addTag($this->getReference('bar-tag'));
99 103
100 $manager->persist($entry6); 104 $manager->persist($entry6);
101 105
diff --git a/src/Wallabag/CoreBundle/Entity/Entry.php b/src/Wallabag/CoreBundle/Entity/Entry.php
index a4b0d7a8..f2da3f4d 100644
--- a/src/Wallabag/CoreBundle/Entity/Entry.php
+++ b/src/Wallabag/CoreBundle/Entity/Entry.php
@@ -196,8 +196,6 @@ class Entry
196 * @ORM\JoinColumn(name="tag_id", referencedColumnName="id") 196 * @ORM\JoinColumn(name="tag_id", referencedColumnName="id")
197 * } 197 * }
198 * ) 198 * )
199 *
200 * @Groups({"entries_for_user", "export_all"})
201 */ 199 */
202 private $tags; 200 private $tags;
203 201
@@ -542,6 +540,21 @@ class Entry
542 } 540 }
543 541
544 /** 542 /**
543 * @VirtualProperty
544 * @SerializedName("tags")
545 * @Groups({"entries_for_user", "export_all"})
546 */
547 public function getSerializedTags()
548 {
549 $data = [];
550 foreach ($this->tags as $tag) {
551 $data[] = $tag->getLabel();
552 }
553
554 return $data;
555 }
556
557 /**
545 * @param Tag $tag 558 * @param Tag $tag
546 */ 559 */
547 public function addTag(Tag $tag) 560 public function addTag(Tag $tag)
diff --git a/src/Wallabag/CoreBundle/Helper/EntriesExport.php b/src/Wallabag/CoreBundle/Helper/EntriesExport.php
index 0c627dcd..e50c68a6 100644
--- a/src/Wallabag/CoreBundle/Helper/EntriesExport.php
+++ b/src/Wallabag/CoreBundle/Helper/EntriesExport.php
@@ -21,7 +21,6 @@ class EntriesExport
21 private $entries = []; 21 private $entries = [];
22 private $authors = ['wallabag']; 22 private $authors = ['wallabag'];
23 private $language = ''; 23 private $language = '';
24 private $tags = [];
25 private $footerTemplate = '<div style="text-align:center;"> 24 private $footerTemplate = '<div style="text-align:center;">
26 <p>Produced by wallabag with %EXPORT_METHOD%</p> 25 <p>Produced by wallabag with %EXPORT_METHOD%</p>
27 <p>Please open <a href="https://github.com/wallabag/wallabag/issues">an issue</a> if you have trouble with the display of this E-Book on your device.</p> 26 <p>Please open <a href="https://github.com/wallabag/wallabag/issues">an issue</a> if you have trouble with the display of this E-Book on your device.</p>
@@ -53,10 +52,6 @@ class EntriesExport
53 52
54 $this->entries = $entries; 53 $this->entries = $entries;
55 54
56 foreach ($entries as $entry) {
57 $this->tags[] = $entry->getTags();
58 }
59
60 return $this; 55 return $this;
61 } 56 }
62 57
@@ -159,8 +154,8 @@ class EntriesExport
159 154
160 // set tags as subjects 155 // set tags as subjects
161 foreach ($this->entries as $entry) { 156 foreach ($this->entries as $entry) {
162 foreach ($this->tags as $tag) { 157 foreach ($entry->getTags() as $tag) {
163 $book->setSubject($tag['value']); 158 $book->setSubject($tag->getLabel());
164 } 159 }
165 160
166 // the reader in Kobo Devices doesn't likes special caracters 161 // the reader in Kobo Devices doesn't likes special caracters
@@ -265,8 +260,8 @@ class EntriesExport
265 * Adding actual entries 260 * Adding actual entries
266 */ 261 */
267 foreach ($this->entries as $entry) { 262 foreach ($this->entries as $entry) {
268 foreach ($this->tags as $tag) { 263 foreach ($entry->getTags() as $tag) {
269 $pdf->SetKeywords($tag['value']); 264 $pdf->SetKeywords($tag->getLabel());
270 } 265 }
271 266
272 $pdf->AddPage(); 267 $pdf->AddPage();
diff --git a/src/Wallabag/CoreBundle/Resources/config/services.yml b/src/Wallabag/CoreBundle/Resources/config/services.yml
index d1139846..a4b727f4 100644
--- a/src/Wallabag/CoreBundle/Resources/config/services.yml
+++ b/src/Wallabag/CoreBundle/Resources/config/services.yml
@@ -29,7 +29,7 @@ services:
29 arguments: 29 arguments:
30 - "@doctrine" 30 - "@doctrine"
31 31
32 wallabag_core.table_prefix_subscriber: 32 wallabag_core.subscriber.table_prefix:
33 class: Wallabag\CoreBundle\Subscriber\TablePrefixSubscriber 33 class: Wallabag\CoreBundle\Subscriber\TablePrefixSubscriber
34 arguments: 34 arguments:
35 - "%database_table_prefix%" 35 - "%database_table_prefix%"
@@ -119,9 +119,10 @@ services:
119 class: Predis\Client 119 class: Predis\Client
120 arguments: 120 arguments:
121 - 121 -
122 scheme: '%redis_scheme%'
122 host: '%redis_host%' 123 host: '%redis_host%'
123 port: '%redis_port%' 124 port: '%redis_port%'
124 schema: tcp 125 path: '%redis_path%'
125 126
126 wallabag_core.exception_controller: 127 wallabag_core.exception_controller:
127 class: Wallabag\CoreBundle\Controller\ExceptionController 128 class: Wallabag\CoreBundle\Controller\ExceptionController
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
index 40644ff5..2652a102 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
@@ -208,6 +208,8 @@ entry:
208 url_label: 'Url' 208 url_label: 'Url'
209 # is_public_label: 'Public' 209 # is_public_label: 'Public'
210 save_label: 'Gem' 210 save_label: 'Gem'
211 public:
212 # shared_by_wallabag: "This article has been shared by <a href=%wallabag_instance%'>wallabag</a>"
211 213
212about: 214about:
213 page_title: 'Om' 215 page_title: 'Om'
@@ -462,7 +464,7 @@ flashes:
462 # entry_saved_failed: 'Entry saved but fetching content failed' 464 # entry_saved_failed: 'Entry saved but fetching content failed'
463 # entry_updated: 'Entry updated' 465 # entry_updated: 'Entry updated'
464 # entry_reloaded: 'Entry reloaded' 466 # entry_reloaded: 'Entry reloaded'
465 # entry_reload_failed: 'Entry reloaded but fetching content failed' 467 # entry_reloaded_failed: 'Entry reloaded but fetching content failed'
466 entry_archived: 'Artikel arkiveret' 468 entry_archived: 'Artikel arkiveret'
467 entry_unarchived: 'Artikel ikke længere arkiveret' 469 entry_unarchived: 'Artikel ikke længere arkiveret'
468 entry_starred: 'Artikel markeret som favorit' 470 entry_starred: 'Artikel markeret som favorit'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
index 130ab2cd..e0f29b61 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
@@ -208,6 +208,8 @@ entry:
208 url_label: 'URL' 208 url_label: 'URL'
209 is_public_label: 'Öffentlich' 209 is_public_label: 'Öffentlich'
210 save_label: 'Speichern' 210 save_label: 'Speichern'
211 public:
212 # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
211 213
212about: 214about:
213 page_title: 'Ãœber' 215 page_title: 'Ãœber'
@@ -462,7 +464,7 @@ flashes:
462 entry_saved_failed: 'Eintrag gespeichert, aber das Abrufen des Inhalts ist fehlgeschlagen' 464 entry_saved_failed: 'Eintrag gespeichert, aber das Abrufen des Inhalts ist fehlgeschlagen'
463 entry_updated: 'Eintrag aktualisiert' 465 entry_updated: 'Eintrag aktualisiert'
464 entry_reloaded: 'Eintrag neugeladen' 466 entry_reloaded: 'Eintrag neugeladen'
465 entry_reload_failed: 'Eintrag neugeladen, aber das Abrufen des Inhalts ist fehlgeschlagen' 467 entry_reloaded_failed: 'Eintrag neugeladen, aber das Abrufen des Inhalts ist fehlgeschlagen'
466 entry_archived: 'Artikel archiviert' 468 entry_archived: 'Artikel archiviert'
467 entry_unarchived: 'Artikel dearchiviert' 469 entry_unarchived: 'Artikel dearchiviert'
468 entry_starred: 'Artikel favorisiert' 470 entry_starred: 'Artikel favorisiert'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
index 91abe162..b8e98112 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
@@ -208,6 +208,8 @@ entry:
208 url_label: 'Url' 208 url_label: 'Url'
209 is_public_label: 'Public' 209 is_public_label: 'Public'
210 save_label: 'Save' 210 save_label: 'Save'
211 public:
212 shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
211 213
212about: 214about:
213 page_title: 'About' 215 page_title: 'About'
@@ -461,7 +463,7 @@ flashes:
461 entry_saved_failed: 'Entry saved but fetching content failed' 463 entry_saved_failed: 'Entry saved but fetching content failed'
462 entry_updated: 'Entry updated' 464 entry_updated: 'Entry updated'
463 entry_reloaded: 'Entry reloaded' 465 entry_reloaded: 'Entry reloaded'
464 entry_reload_failed: 'Entry reloaded but fetching content failed' 466 entry_reloaded_failed: 'Entry reloaded but fetching content failed'
465 entry_archived: 'Entry archived' 467 entry_archived: 'Entry archived'
466 entry_unarchived: 'Entry unarchived' 468 entry_unarchived: 'Entry unarchived'
467 entry_starred: 'Entry starred' 469 entry_starred: 'Entry starred'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
index 25d2f3a2..70633bd7 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
@@ -208,6 +208,8 @@ entry:
208 url_label: 'Url' 208 url_label: 'Url'
209 is_public_label: 'Es Público' 209 is_public_label: 'Es Público'
210 save_label: 'Guardar' 210 save_label: 'Guardar'
211 public:
212 # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
211 213
212about: 214about:
213 page_title: 'Acerca de' 215 page_title: 'Acerca de'
@@ -462,7 +464,7 @@ flashes:
462 # entry_saved_failed: 'Entry saved but fetching content failed' 464 # entry_saved_failed: 'Entry saved but fetching content failed'
463 entry_updated: 'Entrada actualizada' 465 entry_updated: 'Entrada actualizada'
464 entry_reloaded: 'Entrada recargada' 466 entry_reloaded: 'Entrada recargada'
465 # entry_reload_failed: 'Entry reloaded but fetching content failed' 467 # entry_reloaded_failed: 'Entry reloaded but fetching content failed'
466 entry_archived: 'Artículo archivado' 468 entry_archived: 'Artículo archivado'
467 entry_unarchived: 'Artículo desarchivado' 469 entry_unarchived: 'Artículo desarchivado'
468 entry_starred: 'Artículo guardado en los favoritos' 470 entry_starred: 'Artículo guardado en los favoritos'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
index b02ffea0..074ab7a8 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
@@ -208,6 +208,8 @@ entry:
208 url_label: 'نشانی' 208 url_label: 'نشانی'
209 is_public_label: 'عمومی' 209 is_public_label: 'عمومی'
210 save_label: 'ذخیره' 210 save_label: 'ذخیره'
211 public:
212 # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
211 213
212about: 214about:
213 page_title: 'درباره' 215 page_title: 'درباره'
@@ -461,7 +463,7 @@ flashes:
461 # entry_saved_failed: 'Entry saved but fetching content failed' 463 # entry_saved_failed: 'Entry saved but fetching content failed'
462 entry_updated: 'مقاله به‌روز شد' 464 entry_updated: 'مقاله به‌روز شد'
463 entry_reloaded: 'مقاله به‌روز شد' 465 entry_reloaded: 'مقاله به‌روز شد'
464 # entry_reload_failed: 'Entry reloaded but fetching content failed' 466 # entry_reloaded_failed: 'Entry reloaded but fetching content failed'
465 entry_archived: 'مقاله بایگانی شد' 467 entry_archived: 'مقاله بایگانی شد'
466 entry_unarchived: 'مقاله از بایگانی درآمد' 468 entry_unarchived: 'مقاله از بایگانی درآمد'
467 entry_starred: 'مقاله برگزیده شد' 469 entry_starred: 'مقاله برگزیده شد'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
index 598205b0..6d85a5ae 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
@@ -208,6 +208,8 @@ entry:
208 url_label: 'Url' 208 url_label: 'Url'
209 is_public_label: 'Public' 209 is_public_label: 'Public'
210 save_label: 'Enregistrer' 210 save_label: 'Enregistrer'
211 public:
212 shared_by_wallabag: "Cet article a été partagé par <a href='%wallabag_instance%'>wallabag</a>"
211 213
212about: 214about:
213 page_title: 'À propos' 215 page_title: 'À propos'
@@ -462,7 +464,7 @@ flashes:
462 entry_saved_failed: 'Article enregistré mais impossible de récupérer le contenu' 464 entry_saved_failed: 'Article enregistré mais impossible de récupérer le contenu'
463 entry_updated: 'Article mis à jour' 465 entry_updated: 'Article mis à jour'
464 entry_reloaded: 'Article rechargé' 466 entry_reloaded: 'Article rechargé'
465 entry_reload_failed: "Article mis à jour mais impossible de récupérer le contenu" 467 entry_reloaded_failed: "Article mis à jour mais impossible de récupérer le contenu"
466 entry_archived: 'Article marqué comme lu' 468 entry_archived: 'Article marqué comme lu'
467 entry_unarchived: 'Article marqué comme non lu' 469 entry_unarchived: 'Article marqué comme non lu'
468 entry_starred: 'Article ajouté dans les favoris' 470 entry_starred: 'Article ajouté dans les favoris'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
index c58c929f..15f7e774 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
@@ -208,6 +208,8 @@ entry:
208 url_label: 'Url' 208 url_label: 'Url'
209 is_public_label: 'Pubblico' 209 is_public_label: 'Pubblico'
210 save_label: 'Salva' 210 save_label: 'Salva'
211 public:
212 # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
211 213
212about: 214about:
213 page_title: 'About' 215 page_title: 'About'
@@ -462,7 +464,7 @@ flashes:
462 # entry_saved_failed: 'Entry saved but fetching content failed' 464 # entry_saved_failed: 'Entry saved but fetching content failed'
463 entry_updated: 'Contenuto aggiornato' 465 entry_updated: 'Contenuto aggiornato'
464 entry_reloaded: 'Contenuto ricaricato' 466 entry_reloaded: 'Contenuto ricaricato'
465 # entry_reload_failed: 'Entry reloaded but fetching content failed' 467 # entry_reloaded_failed: 'Entry reloaded but fetching content failed'
466 entry_archived: 'Contenuto archiviato' 468 entry_archived: 'Contenuto archiviato'
467 entry_unarchived: 'Contenuto dis-archiviato' 469 entry_unarchived: 'Contenuto dis-archiviato'
468 entry_starred: 'Contenuto segnato come preferito' 470 entry_starred: 'Contenuto segnato come preferito'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
index 8f06434d..1d10be2a 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
@@ -208,6 +208,8 @@ entry:
208 url_label: 'Url' 208 url_label: 'Url'
209 is_public_label: 'Public' 209 is_public_label: 'Public'
210 save_label: 'Enregistrar' 210 save_label: 'Enregistrar'
211 public:
212 # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
211 213
212about: 214about:
213 page_title: 'A prepaus' 215 page_title: 'A prepaus'
@@ -462,7 +464,7 @@ flashes:
462 entry_saved_failed: 'Article salvat mai fracàs de la recuperacion del contengut' 464 entry_saved_failed: 'Article salvat mai fracàs de la recuperacion del contengut'
463 entry_updated: 'Article mes a jorn' 465 entry_updated: 'Article mes a jorn'
464 entry_reloaded: 'Article recargat' 466 entry_reloaded: 'Article recargat'
465 entry_reload_failed: "L'article es estat cargat de nòu mai la recuperacion del contengut a fracassat" 467 entry_reloaded_failed: "L'article es estat cargat de nòu mai la recuperacion del contengut a fracassat"
466 entry_archived: 'Article marcat coma legit' 468 entry_archived: 'Article marcat coma legit'
467 entry_unarchived: 'Article marcat coma pas legit' 469 entry_unarchived: 'Article marcat coma pas legit'
468 entry_starred: 'Article apondut dins los favorits' 470 entry_starred: 'Article apondut dins los favorits'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
index 7f28e648..547e9c8b 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
@@ -208,6 +208,8 @@ entry:
208 url_label: 'Adres URL' 208 url_label: 'Adres URL'
209 is_public_label: 'Publiczny' 209 is_public_label: 'Publiczny'
210 save_label: 'Zapisz' 210 save_label: 'Zapisz'
211 public:
212 shared_by_wallabag: "Ten artykuł został udostępniony przez <a href='%wallabag_instance%'>wallabag</a>"
211 213
212about: 214about:
213 page_title: 'O nas' 215 page_title: 'O nas'
@@ -284,7 +286,7 @@ quickstart:
284 import: 'Skonfigurować import' 286 import: 'Skonfigurować import'
285 first_steps: 287 first_steps:
286 title: 'Pierwsze kroki' 288 title: 'Pierwsze kroki'
287 description: "Teraz wallabag jest poprawnie skonfigurowany, więc czas zarchiwizować Internet. Klinknij w prawym górnym rogu na znak +, aby dodać link" 289 description: "Teraz wallabag jest poprawnie skonfigurowany, więc czas zarchiwizować Internet. Klinknij w prawym górnym rogu na znak +, aby dodać link"
288 new_article: 'Zapisz swój pierwszy artukuł' 290 new_article: 'Zapisz swój pierwszy artukuł'
289 unread_articles: 'I sklasyfikuj go!' 291 unread_articles: 'I sklasyfikuj go!'
290 migrate: 292 migrate:
@@ -462,7 +464,7 @@ flashes:
462 entry_saved_failed: 'Wpis zapisany, ale wystąpił bład pobierania treści' 464 entry_saved_failed: 'Wpis zapisany, ale wystąpił bład pobierania treści'
463 entry_updated: 'Wpis zaktualizowany' 465 entry_updated: 'Wpis zaktualizowany'
464 entry_reloaded: 'Wpis ponownie załadowany' 466 entry_reloaded: 'Wpis ponownie załadowany'
465 entry_reload_failed: 'Wpis ponownie załadowany, ale wystąpił bład pobierania treści' 467 entry_reloaded_failed: 'Wpis ponownie załadowany, ale wystąpił bład pobierania treści'
466 entry_archived: 'Wpis dodany do archiwum' 468 entry_archived: 'Wpis dodany do archiwum'
467 entry_unarchived: 'Wpis usunięty z archiwum' 469 entry_unarchived: 'Wpis usunięty z archiwum'
468 entry_starred: 'Wpis oznaczony gwiazdkÄ…' 470 entry_starred: 'Wpis oznaczony gwiazdkÄ…'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
index 4e0e454c..2b1d4f6d 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
@@ -208,6 +208,8 @@ entry:
208 url_label: 'Url' 208 url_label: 'Url'
209 # is_public_label: 'Public' 209 # is_public_label: 'Public'
210 save_label: 'Salvează' 210 save_label: 'Salvează'
211 public:
212 # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
211 213
212about: 214about:
213 page_title: 'Despre' 215 page_title: 'Despre'
@@ -462,7 +464,7 @@ flashes:
462 # entry_saved_failed: 'Entry saved but fetching content failed' 464 # entry_saved_failed: 'Entry saved but fetching content failed'
463 # entry_updated: 'Entry updated' 465 # entry_updated: 'Entry updated'
464 # entry_reloaded: 'Entry reloaded' 466 # entry_reloaded: 'Entry reloaded'
465 # entry_reload_failed: 'Entry reloaded but fetching content failed' 467 # entry_reloaded_failed: 'Entry reloaded but fetching content failed'
466 entry_archived: 'Articol arhivat' 468 entry_archived: 'Articol arhivat'
467 entry_unarchived: 'Articol dezarhivat' 469 entry_unarchived: 'Articol dezarhivat'
468 entry_starred: 'Articol adăugat la favorite' 470 entry_starred: 'Articol adăugat la favorite'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
index 02b3aae6..8cfc245a 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
@@ -207,6 +207,8 @@ entry:
207 url_label: 'Url' 207 url_label: 'Url'
208 is_public_label: 'Herkes tarafından erişime açık olsun mu?' 208 is_public_label: 'Herkes tarafından erişime açık olsun mu?'
209 save_label: 'Kaydet' 209 save_label: 'Kaydet'
210 public:
211 # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
210 212
211about: 213about:
212 page_title: 'Hakkımızda' 214 page_title: 'Hakkımızda'
@@ -461,7 +463,7 @@ flashes:
461 # entry_saved_failed: 'Entry saved but fetching content failed' 463 # entry_saved_failed: 'Entry saved but fetching content failed'
462 # entry_updated: 'Entry updated' 464 # entry_updated: 'Entry updated'
463 entry_reloaded: 'Makale içeriği yenilendi' 465 entry_reloaded: 'Makale içeriği yenilendi'
464 # entry_reload_failed: 'Entry reloaded but fetching content failed' 466 # entry_reloaded_failed: 'Entry reloaded but fetching content failed'
465 entry_archived: 'Makale arÅŸivlendi' 467 entry_archived: 'Makale arÅŸivlendi'
466 entry_unarchived: 'Makale arşivden çıkartıldı' 468 entry_unarchived: 'Makale arşivden çıkartıldı'
467 entry_starred: 'Makale favorilere eklendi' 469 entry_starred: 'Makale favorilere eklendi'
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 1c0430e8..3af88b23 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
@@ -29,16 +29,16 @@
29 <li><a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.list.original_article'|trans }} : {{ entry.title|e }}" class="tool link icon-link icon"><span>{{ entry.domainName|removeWww }}</span></a></li> 29 <li><a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.list.original_article'|trans }} : {{ entry.title|e }}" class="tool link icon-link icon"><span>{{ entry.domainName|removeWww }}</span></a></li>
30 </ul> 30 </ul>
31 {% if entry.previewPicture is null %} 31 {% if entry.previewPicture is null %}
32 <p>{{ entry.content|striptags|slice(0, 300) }}&hellip;</p>
33 <ul class="card-entry-tags"> 32 <ul class="card-entry-tags">
34 {% for tag in entry.tags %} 33 {% for tag in entry.tags %}
35 <li>{{ tag.label }}</li> 34 <li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
36 {% endfor %} 35 {% endfor %}
37 </ul> 36 </ul>
37 <p>{{ entry.content|striptags|slice(0, 300) }}&hellip;</p>
38 {% else %} 38 {% else %}
39 <ul class="card-entry-labels"> 39 <ul class="card-entry-labels">
40 {% for tag in entry.tags | slice(0, 3) %} 40 {% for tag in entry.tags | slice(0, 3) %}
41 <li>{{ tag.label }}</li> 41 <li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
42 {% endfor %} 42 {% endfor %}
43 </ul> 43 </ul>
44 <img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" /> 44 <img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" />
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entry.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entry.html.twig
index be1e3647..b1aabf9b 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entry.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entry.html.twig
@@ -21,12 +21,15 @@
21 21
22 <li><a title="{{ markAsReadLabel|trans }}" class="tool icon icon-check {% if entry.isArchived == 0 %}archive-off{% else %}archive{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"><span>{{ markAsReadLabel|trans }}</span></a></li> 22 <li><a title="{{ markAsReadLabel|trans }}" class="tool icon icon-check {% if entry.isArchived == 0 %}archive-off{% else %}archive{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"><span>{{ markAsReadLabel|trans }}</span></a></li>
23 <li><a title="{{ 'entry.view.left_menu.set_as_starred'|trans }}" class="tool icon icon-star {% if entry.isStarred == 0 %}fav-off{% else %}fav{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.set_as_starred'|trans }}</span></a></li> 23 <li><a title="{{ 'entry.view.left_menu.set_as_starred'|trans }}" class="tool icon icon-star {% if entry.isStarred == 0 %}fav-off{% else %}fav{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.set_as_starred'|trans }}</span></a></li>
24 <li><a id="nav-btn-add-tag" title="{{ 'entry.view.left_menu.add_a_tag'|trans }}"><span>{{ 'entry.view.left_menu.add_a_tag'|trans }}</span></a></li> 24 <li><a id="nav-btn-add-tag" class="tool icon icon-price-tags" title="{{ 'entry.view.left_menu.add_a_tag'|trans }}"><span>{{ 'entry.view.left_menu.add_a_tag'|trans }}</span></a></li>
25 <li><a title="{{ 'entry.view.left_menu.delete'|trans }}" class="tool delete icon icon-trash" href="{{ path('delete_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.delete'|trans }}</span></a></li> 25 <li><a title="{{ 'entry.view.left_menu.delete'|trans }}" class="tool delete icon icon-trash" href="{{ path('delete_entry', { 'id': entry.id }) }}"><span>{{ 'entry.view.left_menu.delete'|trans }}</span></a></li>
26 {% if craue_setting('share_public') %}<li><a href="{{ path('share', {'id': entry.id }) }}" target="_blank" class="tool public" title="{{ 'entry.view.left_menu.public_link'|trans }}"><span>{{ 'entry.view.left_menu.public_link'|trans }}</span></a></li> <li><a href="{{ path('delete_share', {'id': entry.id }) }}" class="tool public" title="{{ 'entry.view.left_menu.delete_public_link'|trans }}"><span>{{ 'entry.view.left_menu.delete_public_link'|trans }}</span></a></li>{% endif %} 26 {% if craue_setting('share_public') %}
27 <li><a href="{{ path('share', {'id': entry.id }) }}" target="_blank" class="tool icon icon-eye" title="{{ 'entry.view.left_menu.public_link'|trans }}"><span>{{ 'entry.view.left_menu.public_link'|trans }}</span></a></li>
28 <li><a href="{{ path('delete_share', {'id': entry.id }) }}" class="tool icon icon-no-eye" title="{{ 'entry.view.left_menu.delete_public_link'|trans }}"><span>{{ 'entry.view.left_menu.delete_public_link'|trans }}</span></a></li>
29 {% endif %}
27 {% if craue_setting('share_twitter') %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter icon icon-twitter" title="Tweet"><span>Tweet</span></a></li>{% endif %} 30 {% if craue_setting('share_twitter') %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter icon icon-twitter" title="Tweet"><span>Tweet</span></a></li>{% endif %}
28 {% if craue_setting('share_mail') %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="Email"><span>Email</span></a></li>{% endif %} 31 {% if craue_setting('share_mail') %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="Email"><span>Email</span></a></li>{% endif %}
29 {% if craue_setting('share_shaarli') %}<li><a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&amp;title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="shaarli"><span>shaarli</span></a></li>{% endif %} 32 {% if craue_setting('share_shaarli') %}<li><a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&amp;title={{ entry.title|url_encode }}" target="_blank" class="tool icon-image icon-image--shaarli" title="shaarli"><span>shaarli</span></a></li>{% endif %}
30 {% if craue_setting('share_diaspora') %}<li><a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}&notes=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora icon-image icon-image--diaspora" title="diaspora"><span>diaspora</span></a></li>{% endif %} 33 {% if craue_setting('share_diaspora') %}<li><a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}&notes=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora icon-image icon-image--diaspora" title="diaspora"><span>diaspora</span></a></li>{% endif %}
31 {% if craue_setting('carrot') %}<li><a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" class="tool carrot icon-image icon-image--carrot" target="_blank" title="carrot"><span>Carrot</span></a></li>{% endif %} 34 {% if craue_setting('carrot') %}<li><a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" class="tool carrot icon-image icon-image--carrot" target="_blank" title="carrot"><span>Carrot</span></a></li>{% endif %}
32 {% if craue_setting('show_printlink') %}<li><a title="{{ 'entry.view.left_menu.print'|trans }}" class="tool icon icon-print" href="javascript: window.print();"><span>{{ 'entry.view.left_menu.print'|trans }}</span></a></li>{% endif %} 35 {% if craue_setting('show_printlink') %}<li><a title="{{ 'entry.view.left_menu.print'|trans }}" class="tool icon icon-print" href="javascript: window.print();"><span>{{ 'entry.view.left_menu.print'|trans }}</span></a></li>{% endif %}
@@ -38,25 +41,27 @@
38 </div> 41 </div>
39 42
40 <div id="article-informations"> 43 <div id="article-informations">
41 <div class="link mdi-action-today"> 44 <i class="tool icon icon-calendar" title="{{ 'entry.view.created_at'|trans }}">
42 {{ 'entry.view.created_at'|trans }}: {{ entry.createdAt|date('Y-m-d') }} 45 {{ entry.createdAt|date('Y-m-d') }}
43 </div> 46 </i>
44 47
45 <div class="link mdi-action-query-builder"> 48 <i class="tool icon icon-time">
46 {% set readingTime = entry.readingTime / app.user.config.readingSpeed %} 49 {% set readingTime = entry.readingTime / app.user.config.readingSpeed %}
47 {% if readingTime > 0 %} 50 {% if readingTime > 0 %}
48 {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': readingTime|round})|capitalize }} 51 {{ 'entry.list.reading_time_minutes_short'|trans({'%readingTime%': readingTime|round}) }}
49 {% else %} 52 {% else %}
50 {{ 'entry.list.reading_time_less_one_minute'|trans|raw }} 53 {{ 'entry.list.reading_time_less_one_minute_short'|trans|raw }}
51 {% endif %} 54 {% endif %}
52 </div> 55 </i>
53 56
54 {% set nbAnnotations = entry.annotations | length %} 57 {% set nbAnnotations = entry.annotations | length %}
55 <span class="tool link"><i class="material-icons link">comment</i> {{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span> 58 <span class="tool link"><i class="material-icons link">comment</i> {{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span>
56 <aside class="tags"> 59 <aside class="tags">
60 <div class="card-entry-tags">
57 {% for tag in entry.tags %} 61 {% for tag in entry.tags %}
58 <span class="label-outline"><i class="material-icons">label_outline</i> {{ tag.label }}</span> <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}"class="nostyle"><i>✘</i></a> 62 <span class="label-outline"><i class="material-icons">label_outline</i> <a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a> <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}" class="nostyle"><i>✘</i></a></span>
59 {% endfor %} 63 {% endfor %}
64 </div>
60 <div class="input-field nav-panel-add-tag" style="display: none"> 65 <div class="input-field nav-panel-add-tag" style="display: none">
61 {{ render(controller( "WallabagCoreBundle:Tag:addTagForm", { 'id': entry.id } )) }} 66 {{ render(controller( "WallabagCoreBundle:Tag:addTagForm", { 'id': entry.id } )) }}
62 </div> 67 </div>
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/share.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/share.html.twig
index b82b3d3d..a0a0d3c3 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/share.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/common/Entry/share.html.twig
@@ -27,11 +27,20 @@
27 width: 600px; 27 width: 600px;
28 } 28 }
29 </style> 29 </style>
30 <meta property="og:title" content="{{ entry.title | raw }}" />
31 <meta property="og:type" content="article" />
32 <meta property="og:url" content="{{ app.request.uri }}" />
33 {% if entry.previewPicture is not null %}
34 <meta property="og:image" content="{{ entry.previewPicture }}" />
35 {% else %}
36 <meta property="og:image" content="{{ app.request.schemeAndHttpHost }}{{ asset('bundles/wallabagcore/themes/_global/img/logo-other_themes.png') }}" />
37 {% endif %}
30 </head> 38 </head>
31 <body> 39 <body>
32 <header> 40 <header>
33 <h1>{{ entry.title | raw }}</h1> 41 <h1>{{ entry.title | raw }}</h1>
34 <span><a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool">{{ entry.domainName|removeWww }}</a></span> 42 <div><a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool">{{ entry.domainName|removeWww }}</a></div>
43 <div>{{ "entry.public.shared_by_wallabag"|trans({'%wallabag_instance%': url('homepage')})|raw }}</div>
35 </header> 44 </header>
36 <article> 45 <article>
37 {{ entry.content | raw }} 46 {{ entry.content | raw }}
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 01fde953..55b3ee5c 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
@@ -17,7 +17,7 @@
17 <div class="card-image waves-effect waves-block waves-light"> 17 <div class="card-image waves-effect waves-block waves-light">
18 <ul class="card-entry-labels"> 18 <ul class="card-entry-labels">
19 {% for tag in entry.tags | slice(0, 3) %} 19 {% for tag in entry.tags | slice(0, 3) %}
20 <li>{{ tag.label }}</li> 20 <li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
21 {% endfor %} 21 {% endfor %}
22 </ul> 22 </ul>
23 <div class="preview activator" style="background-image: url({{ entry.previewPicture }})"></div> 23 <div class="preview activator" style="background-image: url({{ entry.previewPicture }})"></div>
@@ -46,7 +46,7 @@
46 <p>{{ entry.content|striptags|slice(0, 300)|raw }}&hellip;</p> 46 <p>{{ entry.content|striptags|slice(0, 300)|raw }}&hellip;</p>
47 <ul class="card-entry-labels-hidden"> 47 <ul class="card-entry-labels-hidden">
48 {% for tag in entry.tags | slice(0, 2) %} 48 {% for tag in entry.tags | slice(0, 2) %}
49 <li>{{ tag.label }}</li> 49 <li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
50 {% endfor %} 50 {% endfor %}
51 </ul> 51 </ul>
52 {% endif %} 52 {% endif %}
@@ -68,7 +68,7 @@
68 68
69 <ul class="card-entry-labels-hidden"> 69 <ul class="card-entry-labels-hidden">
70 {% for tag in entry.tags %} 70 {% for tag in entry.tags %}
71 <li>{{ tag.label }}</li> 71 <li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
72 {% endfor %} 72 {% endfor %}
73 </ul> 73 </ul>
74 </div> 74 </div>
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig
index 209e9e89..1ddb5a15 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig
@@ -106,48 +106,50 @@
106 <ul> 106 <ul>
107 {% if craue_setting('share_public') %} 107 {% if craue_setting('share_public') %}
108 <li> 108 <li>
109 <a href="{{ path('share', {'id': entry.id }) }}" target="_blank" class="public icon-link" title="{{ 'entry.view.left_menu.public_link'|trans }}"> 109 <a href="{{ path('share', {'id': entry.id }) }}" target="_blank" title="{{ 'entry.view.left_menu.public_link'|trans }}" class="tool icon-eye">
110 <span>{{ 'entry.view.left_menu.public_link'|trans }}</span> 110 <span>{{ 'entry.view.left_menu.public_link'|trans }}</span>
111 </a> 111 </a>
112 </li> 112 </li>
113 <li> 113 <li>
114 <a href="{{ path('delete_share', {'id': entry.id }) }}" class="tool public" title="{{ 'entry.view.left_menu.delete_public_link'|trans }}"> 114 <a href="{{ path('delete_share', {'id': entry.id }) }}" title="{{ 'entry.view.left_menu.delete_public_link'|trans }}" class="tool icon-no-eye">
115 <span>{{ 'entry.view.left_menu.delete_public_link'|trans }}</span> 115 <span>{{ 'entry.view.left_menu.delete_public_link'|trans }}</span>
116 </a> 116 </a>
117 </li> 117 </li>
118 {% endif %} 118 {% endif %}
119 {% if craue_setting('share_twitter') %} 119 {% if craue_setting('share_twitter') %}
120 <li> 120 <li>
121 <a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter icon icon-twitter" title="twitter"> 121 <a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool icon-twitter" title="twitter">
122 <span>twitter</span> 122 <span>twitter</span>
123 </a> 123 </a>
124 </li> 124 </li>
125 {% endif %} 125 {% endif %}
126 {% if craue_setting('share_shaarli') %} 126 {% if craue_setting('share_shaarli') %}
127 <li> 127 <li>
128 <a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&amp;title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="shaarli"> 128 <a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&amp;title={{ entry.title|url_encode }}" target="_blank">
129 <i class="tool icon-image icon-image--shaarli" title="shaarli"></i>
129 <span>shaarli</span> 130 <span>shaarli</span>
130 </a> 131 </a>
131 </li> 132 </li>
132 {% endif %} 133 {% endif %}
133 {% if craue_setting('share_diaspora') %} 134 {% if craue_setting('share_diaspora') %}
134 <li> 135 <li>
135 <a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}&notes=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora icon-image icon-image--diaspora" title="diaspora}"> 136 <a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}&notes=&v=1&noui=1&jump=doclose" target="_blank">
137 <i class="tool icon-image icon-image--diaspora" title="diaspora"></i>
136 <span>diaspora*</span> 138 <span>diaspora*</span>
137 </a> 139 </a>
138 </li> 140 </li>
139 {% endif %} 141 {% endif %}
140 {% if craue_setting('carrot') %} 142 {% if craue_setting('carrot') %}
141 <li> 143 <li>
142 <a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" class="tool carrot icon-image icon-image--carrot" target="_blank" title="carrot"> 144 <a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank" title="carrot">
145 <i class="tool icon-image icon-image--carrot"></i>
143 <span>Carrot</span> 146 <span>Carrot</span>
144 </a> 147 </a>
145 </li> 148 </li>
146 {% endif %} 149 {% endif %}
147 {% if craue_setting('share_mail') %} 150 {% if craue_setting('share_mail') %}
148 <li> 151 <li>
149 <a href="mailto:?subject={{ entry.title|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@wallabagapp" title="{{ 'entry.view.left_menu.share_email_label'|trans }}"> 152 <a href="mailto:?subject={{ entry.title|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@wallabagapp" title="{{ 'entry.view.left_menu.share_email_label'|trans }}" class="tool email icon icon-mail">
150 <i class="material-icons">email</i>
151 <span>{{ 'entry.view.left_menu.share_email_label'|trans }}</span> 153 <span>{{ 'entry.view.left_menu.share_email_label'|trans }}</span>
152 </a> 154 </a>
153 </li> 155 </li>
@@ -211,7 +213,7 @@
211 </header> 213 </header>
212 <aside> 214 <aside>
213 {% set readingTime = entry.readingTime / app.user.config.readingSpeed %} 215 {% set readingTime = entry.readingTime / app.user.config.readingSpeed %}
214 <span class="mdi-action-query-builder"></span> 216 <i class="material-icons">timer</i>
215 <span class="link"> 217 <span class="link">
216 {% if readingTime > 0 %} 218 {% if readingTime > 0 %}
217 {{ 'entry.list.reading_time_minutes_short'|trans({'%readingTime%': readingTime|round}) }} 219 {{ 'entry.list.reading_time_minutes_short'|trans({'%readingTime%': readingTime|round}) }}
@@ -219,14 +221,15 @@
219 {{ 'entry.list.reading_time_less_one_minute_short'|trans|raw }} 221 {{ 'entry.list.reading_time_less_one_minute_short'|trans|raw }}
220 {% endif %} 222 {% endif %}
221 </span> 223 </span>
222 <span class="mdi-action-today" title="{{ 'entry.view.created_at'|trans }}"> </span> <span class="link">{{ entry.createdAt|date('Y-m-d') }}</span> 224 <i class="material-icons" title="{{ 'entry.view.created_at'|trans }}">today</i><span class="link">{{ entry.createdAt|date('Y-m-d') }}</span>
223 <a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool"> 225 <a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool">
224 <i class="material-icons link">link</i> <span class="link">{{ entry.domainName|removeWww }}</span></a> 226 <i class="material-icons link">link</i> <span class="link">{{ entry.domainName|removeWww }}</span>
227 </a>
225 <span class="tool"><i class="material-icons link">comment</i> <span class="link">{{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span> 228 <span class="tool"><i class="material-icons link">comment</i> <span class="link">{{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span>
226 <div id="list"> 229 <div id="list">
227 {% for tag in entry.tags %} 230 {% for tag in entry.tags %}
228 <div class="chip"> 231 <div class="chip">
229 {{ tag.label }} <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}"><i class="material-icons">delete</i></a> 232 <a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a> <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}"><i class="material-icons">delete</i></a>
230 </div> 233 </div>
231 {% endfor %} 234 {% endfor %}
232 </div> 235 </div>
diff --git a/src/Wallabag/UserBundle/EventListener/CreateConfigListener.php b/src/Wallabag/UserBundle/EventListener/CreateConfigListener.php
index 15f4ac3d..8e2f04e9 100644
--- a/src/Wallabag/UserBundle/EventListener/CreateConfigListener.php
+++ b/src/Wallabag/UserBundle/EventListener/CreateConfigListener.php
@@ -45,10 +45,6 @@ class CreateConfigListener implements EventSubscriberInterface
45 45
46 public function createConfig(UserEvent $event, $eventName = null, EventDispatcherInterface $eventDispatcher = null) 46 public function createConfig(UserEvent $event, $eventName = null, EventDispatcherInterface $eventDispatcher = null)
47 { 47 {
48 if (!$event->getUser()->isEnabled()) {
49 return;
50 }
51
52 $config = new Config($event->getUser()); 48 $config = new Config($event->getUser());
53 $config->setTheme($this->theme); 49 $config->setTheme($this->theme);
54 $config->setItemsPerPage($this->itemsOnPage); 50 $config->setItemsPerPage($this->itemsOnPage);
diff --git a/src/Wallabag/UserBundle/Resources/views/Manage/edit.html.twig b/src/Wallabag/UserBundle/Resources/views/Manage/edit.html.twig
index d5cf99c3..67843f20 100644
--- a/src/Wallabag/UserBundle/Resources/views/Manage/edit.html.twig
+++ b/src/Wallabag/UserBundle/Resources/views/Manage/edit.html.twig
@@ -68,7 +68,7 @@
68 <br/> 68 <br/>
69 69
70 {{ form_widget(edit_form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} 70 {{ form_widget(edit_form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
71 {{ form_rest(edit_form) }} 71 {{ form_widget(edit_form._token) }}
72 </form> 72 </form>
73 <p> 73 <p>
74 {{ form_start(delete_form) }} 74 {{ form_start(delete_form) }}