diff options
Diffstat (limited to 'src')
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; | |||
7 | use JMS\Serializer\Annotation\Exclude; | 7 | use JMS\Serializer\Annotation\Exclude; |
8 | use JMS\Serializer\Annotation\VirtualProperty; | 8 | use JMS\Serializer\Annotation\VirtualProperty; |
9 | use JMS\Serializer\Annotation\SerializedName; | 9 | use JMS\Serializer\Annotation\SerializedName; |
10 | use JMS\Serializer\Annotation\Groups; | ||
10 | use Wallabag\UserBundle\Entity\User; | 11 | use Wallabag\UserBundle\Entity\User; |
11 | use Wallabag\CoreBundle\Entity\Entry; | 12 | use 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 | ||
212 | about: | 214 | about: |
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 | ||
212 | about: | 214 | about: |
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 | ||
212 | about: | 214 | about: |
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 | ||
212 | about: | 214 | about: |
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 | ||
212 | about: | 214 | about: |
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 | ||
212 | about: | 214 | about: |
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 | ||
212 | about: | 214 | about: |
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 | ||
212 | about: | 214 | about: |
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 | ||
212 | about: | 214 | about: |
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 | ||
212 | about: | 214 | about: |
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 | ||
211 | about: | 213 | about: |
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) }}…</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) }}…</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 }}&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 }}&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 }}&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 }}&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 }}¬es=&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 }}¬es=&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 }}…</p> | 46 | <p>{{ entry.content|striptags|slice(0, 300)|raw }}…</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 }}&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 }}&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 }}¬es=&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 }}¬es=&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 }}&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 }}&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) }} |