aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Wallabag/AnnotationBundle/Repository/AnnotationRepository.php17
-rw-r--r--src/Wallabag/ApiBundle/Controller/EntryRestController.php107
-rw-r--r--src/Wallabag/ApiBundle/Controller/TagRestController.php4
-rw-r--r--src/Wallabag/CoreBundle/Command/InstallCommand.php10
-rw-r--r--src/Wallabag/CoreBundle/Controller/ConfigController.php61
-rw-r--r--src/Wallabag/CoreBundle/Controller/EntryController.php2
-rw-r--r--src/Wallabag/CoreBundle/DataFixtures/ORM/LoadSettingData.php10
-rw-r--r--src/Wallabag/CoreBundle/Entity/Entry.php83
-rw-r--r--src/Wallabag/CoreBundle/Form/Type/EditEntryType.php5
-rw-r--r--src/Wallabag/CoreBundle/Helper/ContentProxy.php8
-rw-r--r--src/Wallabag/CoreBundle/Repository/EntryRepository.php10
-rw-r--r--src/Wallabag/CoreBundle/Repository/TagRepository.php20
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.da.yml5
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.de.yml5
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.en.yml5
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.es.yml5
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml5
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml5
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.it.yml5
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml5
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml5
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml5
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml5
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml5
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig5
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entry.html.twig17
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig3
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/edit.html.twig5
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig24
29 files changed, 390 insertions, 61 deletions
diff --git a/src/Wallabag/AnnotationBundle/Repository/AnnotationRepository.php b/src/Wallabag/AnnotationBundle/Repository/AnnotationRepository.php
index 8d3f07ee..da361308 100644
--- a/src/Wallabag/AnnotationBundle/Repository/AnnotationRepository.php
+++ b/src/Wallabag/AnnotationBundle/Repository/AnnotationRepository.php
@@ -122,4 +122,21 @@ class AnnotationRepository extends EntityRepository
122 ->setParameter('userId', $userId) 122 ->setParameter('userId', $userId)
123 ->execute(); 123 ->execute();
124 } 124 }
125
126 /**
127 * Find all annotations related to archived entries.
128 *
129 * @param $userId
130 *
131 * @return mixed
132 */
133 public function findAllArchivedEntriesByUser($userId)
134 {
135 return $this->createQueryBuilder('a')
136 ->leftJoin('a.entry', 'e')
137 ->where('a.user = :userid')->setParameter(':userid', $userId)
138 ->andWhere('e.isArchived = true')
139 ->getQuery()
140 ->getResult();
141 }
125} 142}
diff --git a/src/Wallabag/ApiBundle/Controller/EntryRestController.php b/src/Wallabag/ApiBundle/Controller/EntryRestController.php
index 2c2ec0c1..7590efbb 100644
--- a/src/Wallabag/ApiBundle/Controller/EntryRestController.php
+++ b/src/Wallabag/ApiBundle/Controller/EntryRestController.php
@@ -41,7 +41,7 @@ class EntryRestController extends WallabagRestController
41 ->getRepository('WallabagCoreBundle:Entry') 41 ->getRepository('WallabagCoreBundle:Entry')
42 ->findByUrlAndUserId($url, $this->getUser()->getId()); 42 ->findByUrlAndUserId($url, $this->getUser()->getId());
43 43
44 $results[$url] = false === $res ? false : true; 44 $results[$url] = $res instanceof Entry ? $res->getId() : false;
45 } 45 }
46 46
47 $json = $this->get('serializer')->serialize($results, 'json'); 47 $json = $this->get('serializer')->serialize($results, 'json');
@@ -60,7 +60,7 @@ class EntryRestController extends WallabagRestController
60 ->getRepository('WallabagCoreBundle:Entry') 60 ->getRepository('WallabagCoreBundle:Entry')
61 ->findByUrlAndUserId($url, $this->getUser()->getId()); 61 ->findByUrlAndUserId($url, $this->getUser()->getId());
62 62
63 $exists = false === $res ? false : true; 63 $exists = $res instanceof Entry ? $res->getId() : false;
64 64
65 $json = $this->get('serializer')->serialize(['exists' => $exists], 'json'); 65 $json = $this->get('serializer')->serialize(['exists' => $exists], 'json');
66 66
@@ -438,4 +438,107 @@ class EntryRestController extends WallabagRestController
438 438
439 return (new JsonResponse())->setJson($json); 439 return (new JsonResponse())->setJson($json);
440 } 440 }
441
442 /**
443 * Handles an entries list delete tags from them.
444 *
445 * @ApiDoc(
446 * parameters={
447 * {"name"="list", "dataType"="string", "required"=true, "format"="A JSON array of urls [{'url': 'http://...','tags': 'tag1, tag2'}, {'url': 'http://...','tags': 'tag1, tag2'}]", "description"="Urls (as an array) to handle."}
448 * }
449 * )
450 *
451 * @return JsonResponse
452 */
453 public function deleteEntriesTagsListAction(Request $request)
454 {
455 $this->validateAuthentication();
456
457 $list = json_decode($request->query->get('list', []));
458 $results = [];
459
460 // handle multiple urls
461 if (!empty($list)) {
462 foreach ($list as $key => $element) {
463 $entry = $this->get('wallabag_core.entry_repository')->findByUrlAndUserId(
464 $element->url,
465 $this->getUser()->getId()
466 );
467
468 $results[$key]['url'] = $element->url;
469 $results[$key]['entry'] = $entry instanceof Entry ? $entry->getId() : false;
470
471 $tags = $element->tags;
472
473 if (false !== $entry && !(empty($tags))) {
474 $tags = explode(',', $tags);
475 foreach ($tags as $label) {
476 $label = trim($label);
477
478 $tag = $this->getDoctrine()
479 ->getRepository('WallabagCoreBundle:Tag')
480 ->findOneByLabel($label);
481
482 if (false !== $tag) {
483 $entry->removeTag($tag);
484 }
485 }
486
487 $em = $this->getDoctrine()->getManager();
488 $em->persist($entry);
489 $em->flush();
490 }
491 }
492 }
493
494 $json = $this->get('serializer')->serialize($results, 'json');
495
496 return (new JsonResponse())->setJson($json);
497 }
498
499 /**
500 * Handles an entries list and add tags to them.
501 *
502 * @ApiDoc(
503 * parameters={
504 * {"name"="list", "dataType"="string", "required"=true, "format"="A JSON array of urls [{'url': 'http://...','tags': 'tag1, tag2'}, {'url': 'http://...','tags': 'tag1, tag2'}]", "description"="Urls (as an array) to handle."}
505 * }
506 * )
507 *
508 * @return JsonResponse
509 */
510 public function postEntriesTagsListAction(Request $request)
511 {
512 $this->validateAuthentication();
513
514 $list = json_decode($request->query->get('list', []));
515 $results = [];
516
517 // handle multiple urls
518 if (!empty($list)) {
519 foreach ($list as $key => $element) {
520 $entry = $this->get('wallabag_core.entry_repository')->findByUrlAndUserId(
521 $element->url,
522 $this->getUser()->getId()
523 );
524
525 $results[$key]['url'] = $element->url;
526 $results[$key]['entry'] = $entry instanceof Entry ? $entry->getId() : false;
527
528 $tags = $element->tags;
529
530 if (false !== $entry && !(empty($tags))) {
531 $this->get('wallabag_core.content_proxy')->assignTagsToEntry($entry, $tags);
532
533 $em = $this->getDoctrine()->getManager();
534 $em->persist($entry);
535 $em->flush();
536 }
537 }
538 }
539
540 $json = $this->get('serializer')->serialize($results, 'json');
541
542 return (new JsonResponse())->setJson($json);
543 }
441} 544}
diff --git a/src/Wallabag/ApiBundle/Controller/TagRestController.php b/src/Wallabag/ApiBundle/Controller/TagRestController.php
index bc6d4e64..47298d7e 100644
--- a/src/Wallabag/ApiBundle/Controller/TagRestController.php
+++ b/src/Wallabag/ApiBundle/Controller/TagRestController.php
@@ -31,7 +31,7 @@ class TagRestController extends WallabagRestController
31 } 31 }
32 32
33 /** 33 /**
34 * Permanently remove one tag from **every** entry. 34 * Permanently remove one tag from **every** entry by passing the Tag label.
35 * 35 *
36 * @ApiDoc( 36 * @ApiDoc(
37 * requirements={ 37 * requirements={
@@ -106,7 +106,7 @@ class TagRestController extends WallabagRestController
106 } 106 }
107 107
108 /** 108 /**
109 * Permanently remove one tag from **every** entry. 109 * Permanently remove one tag from **every** entry by passing the Tag ID.
110 * 110 *
111 * @ApiDoc( 111 * @ApiDoc(
112 * requirements={ 112 * requirements={
diff --git a/src/Wallabag/CoreBundle/Command/InstallCommand.php b/src/Wallabag/CoreBundle/Command/InstallCommand.php
index f0738b91..3c4d3f25 100644
--- a/src/Wallabag/CoreBundle/Command/InstallCommand.php
+++ b/src/Wallabag/CoreBundle/Command/InstallCommand.php
@@ -333,6 +333,16 @@ class InstallCommand extends ContainerAwareCommand
333 'section' => 'entry', 333 'section' => 'entry',
334 ], 334 ],
335 [ 335 [
336 'name' => 'share_scuttle',
337 'value' => '1',
338 'section' => 'entry',
339 ],
340 [
341 'name' => 'scuttle_url',
342 'value' => 'http://scuttle.org',
343 'section' => 'entry',
344 ],
345 [
336 'name' => 'share_mail', 346 'name' => 'share_mail',
337 'value' => '1', 347 'value' => '1',
338 'section' => 'entry', 348 'section' => 'entry',
diff --git a/src/Wallabag/CoreBundle/Controller/ConfigController.php b/src/Wallabag/CoreBundle/Controller/ConfigController.php
index 907bf78e..1a80cc1a 100644
--- a/src/Wallabag/CoreBundle/Controller/ConfigController.php
+++ b/src/Wallabag/CoreBundle/Controller/ConfigController.php
@@ -248,7 +248,7 @@ class ConfigController extends Controller
248 break; 248 break;
249 249
250 case 'entries': 250 case 'entries':
251 // SQLite doesn't care about cascading remove, so we need to manually remove associated stuf 251 // SQLite doesn't care about cascading remove, so we need to manually remove associated stuff
252 // otherwise they won't be removed ... 252 // otherwise they won't be removed ...
253 if ($this->get('doctrine')->getConnection()->getDriver() instanceof \Doctrine\DBAL\Driver\PDOSqlite\Driver) { 253 if ($this->get('doctrine')->getConnection()->getDriver() instanceof \Doctrine\DBAL\Driver\PDOSqlite\Driver) {
254 $this->getDoctrine()->getRepository('WallabagAnnotationBundle:Annotation')->removeAllByUserId($this->getUser()->getId()); 254 $this->getDoctrine()->getRepository('WallabagAnnotationBundle:Annotation')->removeAllByUserId($this->getUser()->getId());
@@ -260,6 +260,19 @@ class ConfigController extends Controller
260 $this->getDoctrine() 260 $this->getDoctrine()
261 ->getRepository('WallabagCoreBundle:Entry') 261 ->getRepository('WallabagCoreBundle:Entry')
262 ->removeAllByUserId($this->getUser()->getId()); 262 ->removeAllByUserId($this->getUser()->getId());
263 break;
264 case 'archived':
265 if ($this->get('doctrine')->getConnection()->getDriver() instanceof \Doctrine\DBAL\Driver\PDOSqlite\Driver) {
266 $this->removeAnnotationsForArchivedByUserId($this->getUser()->getId());
267 }
268
269 // manually remove tags to avoid orphan tag
270 $this->removeTagsForArchivedByUserId($this->getUser()->getId());
271
272 $this->getDoctrine()
273 ->getRepository('WallabagCoreBundle:Entry')
274 ->removeArchivedByUserId($this->getUser()->getId());
275 break;
263 } 276 }
264 277
265 $this->get('session')->getFlashBag()->add( 278 $this->get('session')->getFlashBag()->add(
@@ -271,14 +284,13 @@ class ConfigController extends Controller
271 } 284 }
272 285
273 /** 286 /**
274 * Remove all tags for a given user and cleanup orphan tags. 287 * Remove all tags for given tags and a given user and cleanup orphan tags.
275 * 288 *
276 * @param int $userId 289 * @param array $tags
290 * @param int $userId
277 */ 291 */
278 private function removeAllTagsByUserId($userId) 292 private function removeAllTagsByStatusAndUserId($tags, $userId)
279 { 293 {
280 $tags = $this->getDoctrine()->getRepository('WallabagCoreBundle:Tag')->findAllTags($userId);
281
282 if (empty($tags)) { 294 if (empty($tags)) {
283 return; 295 return;
284 } 296 }
@@ -300,6 +312,43 @@ class ConfigController extends Controller
300 } 312 }
301 313
302 /** 314 /**
315 * Remove all tags for a given user and cleanup orphan tags.
316 *
317 * @param int $userId
318 */
319 private function removeAllTagsByUserId($userId)
320 {
321 $tags = $this->getDoctrine()->getRepository('WallabagCoreBundle:Tag')->findAllTags($userId);
322 $this->removeAllTagsByStatusAndUserId($tags, $userId);
323 }
324
325 /**
326 * Remove all tags for a given user and cleanup orphan tags.
327 *
328 * @param int $userId
329 */
330 private function removeTagsForArchivedByUserId($userId)
331 {
332 $tags = $this->getDoctrine()->getRepository('WallabagCoreBundle:Tag')->findForArchivedArticlesByUser($userId);
333 $this->removeAllTagsByStatusAndUserId($tags, $userId);
334 }
335
336 private function removeAnnotationsForArchivedByUserId($userId)
337 {
338 $em = $this->getDoctrine()->getManager();
339
340 $archivedEntriesAnnotations = $this->getDoctrine()
341 ->getRepository('WallabagAnnotationBundle:Annotation')
342 ->findAllArchivedEntriesByUser($userId);
343
344 foreach ($archivedEntriesAnnotations as $archivedEntriesAnnotation) {
345 $em->remove($archivedEntriesAnnotation);
346 }
347
348 $em->flush();
349 }
350
351 /**
303 * Validate that a rule can be edited/deleted by the current user. 352 * Validate that a rule can be edited/deleted by the current user.
304 * 353 *
305 * @param TaggingRule $rule 354 * @param TaggingRule $rule
diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php
index f7398e69..8d2ac6d4 100644
--- a/src/Wallabag/CoreBundle/Controller/EntryController.php
+++ b/src/Wallabag/CoreBundle/Controller/EntryController.php
@@ -227,7 +227,7 @@ class EntryController extends Controller
227 public function showUnreadAction(Request $request, $page) 227 public function showUnreadAction(Request $request, $page)
228 { 228 {
229 // load the quickstart if no entry in database 229 // load the quickstart if no entry in database
230 if ($page == 1 && $this->get('wallabag_core.entry_repository')->countAllEntriesByUsername($this->getUser()->getId()) == 0) { 230 if ($page == 1 && $this->get('wallabag_core.entry_repository')->countAllEntriesByUser($this->getUser()->getId()) == 0) {
231 return $this->redirect($this->generateUrl('quickstart')); 231 return $this->redirect($this->generateUrl('quickstart'));
232 } 232 }
233 233
diff --git a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadSettingData.php b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadSettingData.php
index a723656e..aaeb9ee9 100644
--- a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadSettingData.php
+++ b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadSettingData.php
@@ -51,11 +51,21 @@ class LoadSettingData extends AbstractFixture implements OrderedFixtureInterface
51 'section' => 'entry', 51 'section' => 'entry',
52 ], 52 ],
53 [ 53 [
54 'name' => 'share_scuttle',
55 'value' => '1',
56 'section' => 'entry',
57 ],
58 [
54 'name' => 'shaarli_url', 59 'name' => 'shaarli_url',
55 'value' => 'http://myshaarli.com', 60 'value' => 'http://myshaarli.com',
56 'section' => 'entry', 61 'section' => 'entry',
57 ], 62 ],
58 [ 63 [
64 'name' => 'scuttle_url',
65 'value' => 'http://scuttle.org',
66 'section' => 'entry',
67 ],
68 [
59 'name' => 'share_mail', 69 'name' => 'share_mail',
60 'value' => '1', 70 'value' => '1',
61 'section' => 'entry', 71 'section' => 'entry',
diff --git a/src/Wallabag/CoreBundle/Entity/Entry.php b/src/Wallabag/CoreBundle/Entity/Entry.php
index 7276b437..b71c467c 100644
--- a/src/Wallabag/CoreBundle/Entity/Entry.php
+++ b/src/Wallabag/CoreBundle/Entity/Entry.php
@@ -122,6 +122,24 @@ class Entry
122 private $updatedAt; 122 private $updatedAt;
123 123
124 /** 124 /**
125 * @var \DateTime
126 *
127 * @ORM\Column(name="published_at", type="datetime", nullable=true)
128 *
129 * @Groups({"entries_for_user", "export_all"})
130 */
131 private $publishedAt;
132
133 /**
134 * @var array
135 *
136 * @ORM\Column(name="published_by", type="json_array", nullable=true)
137 *
138 * @Groups({"entries_for_user", "export_all"})
139 */
140 private $publishedBy;
141
142 /**
125 * @ORM\OneToMany(targetEntity="Wallabag\AnnotationBundle\Entity\Annotation", mappedBy="entry", cascade={"persist", "remove"}) 143 * @ORM\OneToMany(targetEntity="Wallabag\AnnotationBundle\Entity\Annotation", mappedBy="entry", cascade={"persist", "remove"})
126 * @ORM\JoinTable 144 * @ORM\JoinTable
127 * 145 *
@@ -175,15 +193,6 @@ class Entry
175 private $previewPicture; 193 private $previewPicture;
176 194
177 /** 195 /**
178 * @var bool
179 *
180 * @ORM\Column(name="is_public", type="boolean", nullable=true, options={"default" = false})
181 *
182 * @Groups({"export_all"})
183 */
184 private $isPublic;
185
186 /**
187 * @var string 196 * @var string
188 * 197 *
189 * @ORM\Column(name="http_status", type="string", length=3, nullable=true) 198 * @ORM\Column(name="http_status", type="string", length=3, nullable=true)
@@ -532,22 +541,6 @@ class Entry
532 } 541 }
533 542
534 /** 543 /**
535 * @return bool
536 */
537 public function isPublic()
538 {
539 return $this->isPublic;
540 }
541
542 /**
543 * @param bool $isPublic
544 */
545 public function setIsPublic($isPublic)
546 {
547 $this->isPublic = $isPublic;
548 }
549
550 /**
551 * @return ArrayCollection<Tag> 544 * @return ArrayCollection<Tag>
552 */ 545 */
553 public function getTags() 546 public function getTags()
@@ -701,4 +694,44 @@ class Entry
701 694
702 return $this; 695 return $this;
703 } 696 }
697
698 /**
699 * @return \Datetime
700 */
701 public function getPublishedAt()
702 {
703 return $this->publishedAt;
704 }
705
706 /**
707 * @param \Datetime $publishedAt
708 *
709 * @return Entry
710 */
711 public function setPublishedAt(\Datetime $publishedAt)
712 {
713 $this->publishedAt = $publishedAt;
714
715 return $this;
716 }
717
718 /**
719 * @return string
720 */
721 public function getPublishedBy()
722 {
723 return $this->publishedBy;
724 }
725
726 /**
727 * @param string $publishedBy
728 *
729 * @return Entry
730 */
731 public function setPublishedBy($publishedBy)
732 {
733 $this->publishedBy = $publishedBy;
734
735 return $this;
736 }
704} 737}
diff --git a/src/Wallabag/CoreBundle/Form/Type/EditEntryType.php b/src/Wallabag/CoreBundle/Form/Type/EditEntryType.php
index 40e5b5b9..1627cc44 100644
--- a/src/Wallabag/CoreBundle/Form/Type/EditEntryType.php
+++ b/src/Wallabag/CoreBundle/Form/Type/EditEntryType.php
@@ -3,7 +3,6 @@
3namespace Wallabag\CoreBundle\Form\Type; 3namespace Wallabag\CoreBundle\Form\Type;
4 4
5use Symfony\Component\Form\AbstractType; 5use Symfony\Component\Form\AbstractType;
6use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
7use Symfony\Component\Form\Extension\Core\Type\SubmitType; 6use Symfony\Component\Form\Extension\Core\Type\SubmitType;
8use Symfony\Component\Form\Extension\Core\Type\TextType; 7use Symfony\Component\Form\Extension\Core\Type\TextType;
9use Symfony\Component\Form\FormBuilderInterface; 8use Symfony\Component\Form\FormBuilderInterface;
@@ -18,10 +17,6 @@ class EditEntryType extends AbstractType
18 'required' => true, 17 'required' => true,
19 'label' => 'entry.edit.title_label', 18 'label' => 'entry.edit.title_label',
20 ]) 19 ])
21 ->add('is_public', CheckboxType::class, [
22 'required' => false,
23 'label' => 'entry.edit.is_public_label',
24 ])
25 ->add('url', TextType::class, [ 20 ->add('url', TextType::class, [
26 'disabled' => true, 21 'disabled' => true,
27 'required' => false, 22 'required' => false,
diff --git a/src/Wallabag/CoreBundle/Helper/ContentProxy.php b/src/Wallabag/CoreBundle/Helper/ContentProxy.php
index f222dd88..d45aef88 100644
--- a/src/Wallabag/CoreBundle/Helper/ContentProxy.php
+++ b/src/Wallabag/CoreBundle/Helper/ContentProxy.php
@@ -79,6 +79,14 @@ class ContentProxy
79 $entry->setContent($html); 79 $entry->setContent($html);
80 $entry->setHttpStatus(isset($content['status']) ? $content['status'] : ''); 80 $entry->setHttpStatus(isset($content['status']) ? $content['status'] : '');
81 81
82 if (isset($content['date']) && null !== $content['date'] && '' !== $content['date']) {
83 $entry->setPublishedAt(new \DateTime($content['date']));
84 }
85
86 if (!empty($content['authors'])) {
87 $entry->setPublishedBy($content['authors']);
88 }
89
82 $entry->setLanguage(isset($content['language']) ? $content['language'] : ''); 90 $entry->setLanguage(isset($content['language']) ? $content['language'] : '');
83 $entry->setMimetype(isset($content['content_type']) ? $content['content_type'] : ''); 91 $entry->setMimetype(isset($content['content_type']) ? $content['content_type'] : '');
84 $entry->setReadingTime(Utils::getReadingTime($html)); 92 $entry->setReadingTime(Utils::getReadingTime($html));
diff --git a/src/Wallabag/CoreBundle/Repository/EntryRepository.php b/src/Wallabag/CoreBundle/Repository/EntryRepository.php
index 4071301d..1f22e901 100644
--- a/src/Wallabag/CoreBundle/Repository/EntryRepository.php
+++ b/src/Wallabag/CoreBundle/Repository/EntryRepository.php
@@ -328,7 +328,7 @@ class EntryRepository extends EntityRepository
328 * 328 *
329 * @return int 329 * @return int
330 */ 330 */
331 public function countAllEntriesByUsername($userId) 331 public function countAllEntriesByUser($userId)
332 { 332 {
333 $qb = $this->createQueryBuilder('e') 333 $qb = $this->createQueryBuilder('e')
334 ->select('count(e)') 334 ->select('count(e)')
@@ -371,4 +371,12 @@ class EntryRepository extends EntityRepository
371 ->setParameter('userId', $userId) 371 ->setParameter('userId', $userId)
372 ->execute(); 372 ->execute();
373 } 373 }
374
375 public function removeArchivedByUserId($userId)
376 {
377 $this->getEntityManager()
378 ->createQuery('DELETE FROM Wallabag\CoreBundle\Entity\Entry e WHERE e.user = :userId AND e.isArchived = TRUE')
379 ->setParameter('userId', $userId)
380 ->execute();
381 }
374} 382}
diff --git a/src/Wallabag/CoreBundle/Repository/TagRepository.php b/src/Wallabag/CoreBundle/Repository/TagRepository.php
index 2182df25..6c63a6a2 100644
--- a/src/Wallabag/CoreBundle/Repository/TagRepository.php
+++ b/src/Wallabag/CoreBundle/Repository/TagRepository.php
@@ -76,4 +76,24 @@ class TagRepository extends EntityRepository
76 ->getQuery() 76 ->getQuery()
77 ->getSingleResult(); 77 ->getSingleResult();
78 } 78 }
79
80 public function findForArchivedArticlesByUser($userId)
81 {
82 $ids = $this->createQueryBuilder('t')
83 ->select('t.id')
84 ->leftJoin('t.entries', 'e')
85 ->where('e.user = :userId')->setParameter('userId', $userId)
86 ->andWhere('e.isArchived = true')
87 ->groupBy('t.id')
88 ->orderBy('t.slug')
89 ->getQuery()
90 ->getArrayResult();
91
92 $tags = [];
93 foreach ($ids as $id) {
94 $tags[] = $this->find($id);
95 }
96
97 return $tags;
98 }
79} 99}
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
index 5d9e85e4..72493fe3 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
@@ -110,6 +110,7 @@ config:
110 # annotations: Remove ALL annotations 110 # annotations: Remove ALL annotations
111 # tags: Remove ALL tags 111 # tags: Remove ALL tags
112 # entries: Remove ALL entries 112 # entries: Remove ALL entries
113 # archived: Remove ALL archived entries
113 # confirm: Are you really really sure? (THIS CAN'T BE UNDONE) 114 # confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
114 form_password: 115 form_password:
115 # description: "You can change your password here. Your new password should by at least 8 characters long." 116 # description: "You can change your password here. Your new password should by at least 8 characters long."
@@ -223,6 +224,8 @@ entry:
223 original_article: 'original' 224 original_article: 'original'
224 # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %count% annotations' 225 # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %count% annotations'
225 created_at: 'Oprettelsesdato' 226 created_at: 'Oprettelsesdato'
227 # published_at: 'Publication date'
228 # published_by: 'Published by'
226 new: 229 new:
227 page_title: 'Gem ny artikel' 230 page_title: 'Gem ny artikel'
228 placeholder: 'http://website.com' 231 placeholder: 'http://website.com'
@@ -234,7 +237,6 @@ entry:
234 # page_title: 'Edit an entry' 237 # page_title: 'Edit an entry'
235 # title_label: 'Title' 238 # title_label: 'Title'
236 url_label: 'Url' 239 url_label: 'Url'
237 # is_public_label: 'Public'
238 save_label: 'Gem' 240 save_label: 'Gem'
239 public: 241 public:
240 # shared_by_wallabag: "This article has been shared by <a href=%wallabag_instance%'>wallabag</a>" 242 # shared_by_wallabag: "This article has been shared by <a href=%wallabag_instance%'>wallabag</a>"
@@ -528,6 +530,7 @@ flashes:
528 # annotations_reset: Annotations reset 530 # annotations_reset: Annotations reset
529 # tags_reset: Tags reset 531 # tags_reset: Tags reset
530 # entries_reset: Entries reset 532 # entries_reset: Entries reset
533 # archived_reset: Archived entries deleted
531 entry: 534 entry:
532 notice: 535 notice:
533 # entry_already_saved: 'Entry already saved on %date%' 536 # entry_already_saved: 'Entry already saved on %date%'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
index f1952a3e..dbad8b16 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
@@ -110,6 +110,7 @@ config:
110 annotations: Entferne ALLE Annotationen 110 annotations: Entferne ALLE Annotationen
111 tags: Entferne ALLE Tags 111 tags: Entferne ALLE Tags
112 entries: Entferne ALLE Einträge 112 entries: Entferne ALLE Einträge
113 # archived: Remove ALL archived entries
113 confirm: Bist du wirklich sicher? (DIES KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN) 114 confirm: Bist du wirklich sicher? (DIES KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN)
114 form_password: 115 form_password:
115 description: "Hier kannst du dein Kennwort ändern. Dieses sollte mindestens acht Zeichen enthalten." 116 description: "Hier kannst du dein Kennwort ändern. Dieses sollte mindestens acht Zeichen enthalten."
@@ -223,6 +224,8 @@ entry:
223 original_article: 'original' 224 original_article: 'original'
224 annotations_on_the_entry: '{0} Keine Anmerkungen|{1} Eine Anmerkung|]1,Inf[ %count% Anmerkungen' 225 annotations_on_the_entry: '{0} Keine Anmerkungen|{1} Eine Anmerkung|]1,Inf[ %count% Anmerkungen'
225 created_at: 'Erstellungsdatum' 226 created_at: 'Erstellungsdatum'
227 # published_at: 'Publication date'
228 # published_by: 'Published by'
226 new: 229 new:
227 page_title: 'Neuen Artikel speichern' 230 page_title: 'Neuen Artikel speichern'
228 placeholder: 'https://website.de' 231 placeholder: 'https://website.de'
@@ -234,7 +237,6 @@ entry:
234 page_title: 'Eintrag bearbeiten' 237 page_title: 'Eintrag bearbeiten'
235 title_label: 'Titel' 238 title_label: 'Titel'
236 url_label: 'URL' 239 url_label: 'URL'
237 is_public_label: 'Öffentlich'
238 save_label: 'Speichern' 240 save_label: 'Speichern'
239 public: 241 public:
240 shared_by_wallabag: "Dieser Artikel wurde mittels <a href='%wallabag_instance%'>wallabag</a> geteilt" 242 shared_by_wallabag: "Dieser Artikel wurde mittels <a href='%wallabag_instance%'>wallabag</a> geteilt"
@@ -528,6 +530,7 @@ flashes:
528 annotations_reset: Anmerkungen zurücksetzen 530 annotations_reset: Anmerkungen zurücksetzen
529 tags_reset: Tags zurücksetzen 531 tags_reset: Tags zurücksetzen
530 entries_reset: Einträge zurücksetzen 532 entries_reset: Einträge zurücksetzen
533 # archived_reset: Archived entries deleted
531 entry: 534 entry:
532 notice: 535 notice:
533 entry_already_saved: 'Eintrag bereits am %date% gespeichert' 536 entry_already_saved: 'Eintrag bereits am %date% gespeichert'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
index df782b01..42a12b2a 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
@@ -110,6 +110,7 @@ config:
110 annotations: Remove ALL annotations 110 annotations: Remove ALL annotations
111 tags: Remove ALL tags 111 tags: Remove ALL tags
112 entries: Remove ALL entries 112 entries: Remove ALL entries
113 archived: Remove ALL archived entries
113 confirm: Are you really sure? (THIS CAN'T BE UNDONE) 114 confirm: Are you really sure? (THIS CAN'T BE UNDONE)
114 form_password: 115 form_password:
115 description: "You can change your password here. Your new password should by at least 8 characters long." 116 description: "You can change your password here. Your new password should by at least 8 characters long."
@@ -223,6 +224,8 @@ entry:
223 original_article: 'original' 224 original_article: 'original'
224 annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %count% annotations' 225 annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %count% annotations'
225 created_at: 'Creation date' 226 created_at: 'Creation date'
227 published_at: 'Publication date'
228 published_by: 'Published by'
226 new: 229 new:
227 page_title: 'Save new entry' 230 page_title: 'Save new entry'
228 placeholder: 'http://website.com' 231 placeholder: 'http://website.com'
@@ -234,7 +237,6 @@ entry:
234 page_title: 'Edit an entry' 237 page_title: 'Edit an entry'
235 title_label: 'Title' 238 title_label: 'Title'
236 url_label: 'Url' 239 url_label: 'Url'
237 is_public_label: 'Public'
238 save_label: 'Save' 240 save_label: 'Save'
239 public: 241 public:
240 shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>" 242 shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
@@ -528,6 +530,7 @@ flashes:
528 annotations_reset: Annotations reset 530 annotations_reset: Annotations reset
529 tags_reset: Tags reset 531 tags_reset: Tags reset
530 entries_reset: Entries reset 532 entries_reset: Entries reset
533 archived_reset: Archived entries deleted
531 entry: 534 entry:
532 notice: 535 notice:
533 entry_already_saved: 'Entry already saved on %date%' 536 entry_already_saved: 'Entry already saved on %date%'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
index 3d65c311..6e21614e 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
@@ -110,6 +110,7 @@ config:
110 annotations: Eliminar TODAS las anotaciones 110 annotations: Eliminar TODAS las anotaciones
111 tags: Eliminar TODAS las etiquetas 111 tags: Eliminar TODAS las etiquetas
112 entries: Eliminar TODOS los artículos 112 entries: Eliminar TODOS los artículos
113 # archived: Remove ALL archived entries
113 confirm: ¿Estás completamente seguro? (NO SE PUEDE DESHACER) 114 confirm: ¿Estás completamente seguro? (NO SE PUEDE DESHACER)
114 form_password: 115 form_password:
115 description: "Puedes cambiar la contraseña aquí. Tu nueva contraseña debe tener al menos 8 caracteres." 116 description: "Puedes cambiar la contraseña aquí. Tu nueva contraseña debe tener al menos 8 caracteres."
@@ -223,6 +224,8 @@ entry:
223 original_article: 'original' 224 original_article: 'original'
224 annotations_on_the_entry: '{0} Sin anotaciones|{1} Una anotación|]1,Inf[ %count% anotaciones' 225 annotations_on_the_entry: '{0} Sin anotaciones|{1} Una anotación|]1,Inf[ %count% anotaciones'
225 created_at: 'Fecha de creación' 226 created_at: 'Fecha de creación'
227 # published_at: 'Publication date'
228 # published_by: 'Published by'
226 new: 229 new:
227 page_title: 'Guardar un nuevo artículo' 230 page_title: 'Guardar un nuevo artículo'
228 placeholder: 'http://sitioweb.com' 231 placeholder: 'http://sitioweb.com'
@@ -234,7 +237,6 @@ entry:
234 page_title: 'Editar un artículo' 237 page_title: 'Editar un artículo'
235 title_label: 'Título' 238 title_label: 'Título'
236 url_label: 'URL' 239 url_label: 'URL'
237 is_public_label: 'Es público'
238 save_label: 'Guardar' 240 save_label: 'Guardar'
239 public: 241 public:
240 shared_by_wallabag: "Este artículo se ha compartido con <a href='%wallabag_instance%'>wallabag</a>" 242 shared_by_wallabag: "Este artículo se ha compartido con <a href='%wallabag_instance%'>wallabag</a>"
@@ -528,6 +530,7 @@ flashes:
528 annotations_reset: Anotaciones reiniciadas 530 annotations_reset: Anotaciones reiniciadas
529 tags_reset: Etiquetas reiniciadas 531 tags_reset: Etiquetas reiniciadas
530 entries_reset: Artículos reiniciados 532 entries_reset: Artículos reiniciados
533 # archived_reset: Archived entries deleted
531 entry: 534 entry:
532 notice: 535 notice:
533 entry_already_saved: 'Artículo ya guardado el %fecha%' 536 entry_already_saved: 'Artículo ya guardado el %fecha%'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
index 80500d19..b938c80a 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
@@ -110,6 +110,7 @@ config:
110 # annotations: Remove ALL annotations 110 # annotations: Remove ALL annotations
111 # tags: Remove ALL tags 111 # tags: Remove ALL tags
112 # entries: Remove ALL entries 112 # entries: Remove ALL entries
113 # archived: Remove ALL archived entries
113 # confirm: Are you really really sure? (THIS CAN'T BE UNDONE) 114 # confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
114 form_password: 115 form_password:
115 # description: "You can change your password here. Your new password should by at least 8 characters long." 116 # description: "You can change your password here. Your new password should by at least 8 characters long."
@@ -223,6 +224,8 @@ entry:
223 original_article: 'اصلی' 224 original_article: 'اصلی'
224 annotations_on_the_entry: '{0} بدون حاشیه|{1} یک حاشیه|]1,Inf[ %nbحاشیه% annotations' 225 annotations_on_the_entry: '{0} بدون حاشیه|{1} یک حاشیه|]1,Inf[ %nbحاشیه% annotations'
225 created_at: 'زمان ساخت' 226 created_at: 'زمان ساخت'
227 # published_at: 'Publication date'
228 # published_by: 'Published by'
226 new: 229 new:
227 page_title: 'ذخیرهٔ مقالهٔ تازه' 230 page_title: 'ذخیرهٔ مقالهٔ تازه'
228 placeholder: 'http://website.com' 231 placeholder: 'http://website.com'
@@ -234,7 +237,6 @@ entry:
234 page_title: 'ویرایش مقاله' 237 page_title: 'ویرایش مقاله'
235 title_label: 'عنوان' 238 title_label: 'عنوان'
236 url_label: 'نشانی' 239 url_label: 'نشانی'
237 is_public_label: 'عمومی'
238 save_label: 'ذخیره' 240 save_label: 'ذخیره'
239 public: 241 public:
240 # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>" 242 # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
@@ -528,6 +530,7 @@ flashes:
528 # annotations_reset: Annotations reset 530 # annotations_reset: Annotations reset
529 # tags_reset: Tags reset 531 # tags_reset: Tags reset
530 # entries_reset: Entries reset 532 # entries_reset: Entries reset
533 # archived_reset: Archived entries deleted
531 entry: 534 entry:
532 notice: 535 notice:
533 entry_already_saved: 'این مقاله در تاریخ %date% ذخیره شده بود' 536 entry_already_saved: 'این مقاله در تاریخ %date% ذخیره شده بود'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
index 4f49f777..9abcda45 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
@@ -110,6 +110,7 @@ config:
110 annotations: Supprimer TOUTES les annotations 110 annotations: Supprimer TOUTES les annotations
111 tags: Supprimer TOUS les tags 111 tags: Supprimer TOUS les tags
112 entries: Supprimer TOUS les articles 112 entries: Supprimer TOUS les articles
113 archived: Supprimer TOUS les articles archivés
113 confirm: Êtes-vous vraiment vraiment sûr ? (C'EST IRRÉVERSIBLE) 114 confirm: Êtes-vous vraiment vraiment sûr ? (C'EST IRRÉVERSIBLE)
114 form_password: 115 form_password:
115 description: "Vous pouvez changer ici votre mot de passe. Le mot de passe doit contenir au moins 8 caractères." 116 description: "Vous pouvez changer ici votre mot de passe. Le mot de passe doit contenir au moins 8 caractères."
@@ -223,6 +224,8 @@ entry:
223 original_article: "original" 224 original_article: "original"
224 annotations_on_the_entry: "{0} Aucune annotation|{1} Une annotation|]1,Inf[ %count% annotations" 225 annotations_on_the_entry: "{0} Aucune annotation|{1} Une annotation|]1,Inf[ %count% annotations"
225 created_at: "Date de création" 226 created_at: "Date de création"
227 published_at: "Date de publication"
228 published_by: "Publié par"
226 new: 229 new:
227 page_title: "Sauvegarder un nouvel article" 230 page_title: "Sauvegarder un nouvel article"
228 placeholder: "http://website.com" 231 placeholder: "http://website.com"
@@ -234,7 +237,6 @@ entry:
234 page_title: "Éditer un article" 237 page_title: "Éditer un article"
235 title_label: "Titre" 238 title_label: "Titre"
236 url_label: "Adresse" 239 url_label: "Adresse"
237 is_public_label: "Public"
238 save_label: "Enregistrer" 240 save_label: "Enregistrer"
239 public: 241 public:
240 shared_by_wallabag: "Cet article a été partagé par <a href=\"%wallabag_instance%\">wallabag</a>" 242 shared_by_wallabag: "Cet article a été partagé par <a href=\"%wallabag_instance%\">wallabag</a>"
@@ -528,6 +530,7 @@ flashes:
528 annotations_reset: Annotations supprimées 530 annotations_reset: Annotations supprimées
529 tags_reset: Tags supprimés 531 tags_reset: Tags supprimés
530 entries_reset: Articles supprimés 532 entries_reset: Articles supprimés
533 archived_reset: Articles archivés supprimés
531 entry: 534 entry:
532 notice: 535 notice:
533 entry_already_saved: "Article déjà sauvegardé le %date%" 536 entry_already_saved: "Article déjà sauvegardé le %date%"
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
index 992ff71c..58d0962a 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
@@ -110,6 +110,7 @@ config:
110 # annotations: Remove ALL annotations 110 # annotations: Remove ALL annotations
111 # tags: Remove ALL tags 111 # tags: Remove ALL tags
112 # entries: Remove ALL entries 112 # entries: Remove ALL entries
113 # archived: Remove ALL archived entries
113 # confirm: Are you really really sure? (THIS CAN'T BE UNDONE) 114 # confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
114 form_password: 115 form_password:
115 # description: "You can change your password here. Your new password should by at least 8 characters long." 116 # description: "You can change your password here. Your new password should by at least 8 characters long."
@@ -223,6 +224,8 @@ entry:
223 original_article: 'originale' 224 original_article: 'originale'
224 annotations_on_the_entry: '{0} Nessuna annotazione|{1} Una annotazione|]1,Inf[ %count% annotazioni' 225 annotations_on_the_entry: '{0} Nessuna annotazione|{1} Una annotazione|]1,Inf[ %count% annotazioni'
225 created_at: 'Data di creazione' 226 created_at: 'Data di creazione'
227 # published_at: 'Publication date'
228 # published_by: 'Published by'
226 new: 229 new:
227 page_title: 'Salva un nuovo contenuto' 230 page_title: 'Salva un nuovo contenuto'
228 placeholder: 'http://website.com' 231 placeholder: 'http://website.com'
@@ -234,7 +237,6 @@ entry:
234 page_title: 'Modifica voce' 237 page_title: 'Modifica voce'
235 title_label: 'Titolo' 238 title_label: 'Titolo'
236 url_label: 'Url' 239 url_label: 'Url'
237 is_public_label: 'Pubblico'
238 save_label: 'Salva' 240 save_label: 'Salva'
239 public: 241 public:
240 # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>" 242 # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
@@ -528,6 +530,7 @@ flashes:
528 # annotations_reset: Annotations reset 530 # annotations_reset: Annotations reset
529 # tags_reset: Tags reset 531 # tags_reset: Tags reset
530 # entries_reset: Entries reset 532 # entries_reset: Entries reset
533 # archived_reset: Archived entries deleted
531 entry: 534 entry:
532 notice: 535 notice:
533 entry_already_saved: 'Contenuto già salvato in data %date%' 536 entry_already_saved: 'Contenuto già salvato in data %date%'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
index f6488565..825a0efd 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
@@ -110,6 +110,7 @@ config:
110 annotations: Levar TOTAS las anotacions 110 annotations: Levar TOTAS las anotacions
111 tags: Levar TOTAS las etiquetas 111 tags: Levar TOTAS las etiquetas
112 entries: Levar TOTES los articles 112 entries: Levar TOTES los articles
113 # archived: Remove ALL archived entries
113 confirm: Sètz vertadièrament segur ? (ES IRREVERSIBLE) 114 confirm: Sètz vertadièrament segur ? (ES IRREVERSIBLE)
114 form_password: 115 form_password:
115 description: "Podètz cambiar vòstre senhal aquí. Vòstre senhal deu èsser long d'almens 8 caractèrs." 116 description: "Podètz cambiar vòstre senhal aquí. Vòstre senhal deu èsser long d'almens 8 caractèrs."
@@ -223,6 +224,8 @@ entry:
223 original_article: 'original' 224 original_article: 'original'
224 annotations_on_the_entry: "{0} Pas cap d'anotacion|{1} Una anotacion|]1,Inf[ %count% anotacions" 225 annotations_on_the_entry: "{0} Pas cap d'anotacion|{1} Una anotacion|]1,Inf[ %count% anotacions"
225 created_at: 'Data de creacion' 226 created_at: 'Data de creacion'
227 # published_at: 'Publication date'
228 # published_by: 'Published by'
226 new: 229 new:
227 page_title: 'Enregistrar un novèl article' 230 page_title: 'Enregistrar un novèl article'
228 placeholder: 'http://website.com' 231 placeholder: 'http://website.com'
@@ -234,7 +237,6 @@ entry:
234 page_title: 'Modificar un article' 237 page_title: 'Modificar un article'
235 title_label: 'Títol' 238 title_label: 'Títol'
236 url_label: 'Url' 239 url_label: 'Url'
237 is_public_label: 'Public'
238 save_label: 'Enregistrar' 240 save_label: 'Enregistrar'
239 public: 241 public:
240 shared_by_wallabag: "Aqueste article es estat partejat per <a href='%wallabag_instance%'>wallabag</a>" 242 shared_by_wallabag: "Aqueste article es estat partejat per <a href='%wallabag_instance%'>wallabag</a>"
@@ -528,6 +530,7 @@ flashes:
528 annotations_reset: Anotacions levadas 530 annotations_reset: Anotacions levadas
529 tags_reset: Etiquetas levadas 531 tags_reset: Etiquetas levadas
530 entries_reset: Articles levats 532 entries_reset: Articles levats
533 # archived_reset: Archived entries deleted
531 entry: 534 entry:
532 notice: 535 notice:
533 entry_already_saved: 'Article ja salvargardat lo %date%' 536 entry_already_saved: 'Article ja salvargardat lo %date%'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
index eda9bbbf..b02aa4ec 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
@@ -110,6 +110,7 @@ config:
110 annotations: Usuń WSZYSTKIE adnotacje 110 annotations: Usuń WSZYSTKIE adnotacje
111 tags: Usuń WSZYSTKIE tagi 111 tags: Usuń WSZYSTKIE tagi
112 entries: usuń WSZYTSTKIE wpisy 112 entries: usuń WSZYTSTKIE wpisy
113 # archived: Remove ALL archived entries
113 confirm: Jesteś pewien? (tej operacji NIE MOŻNA cofnąć) 114 confirm: Jesteś pewien? (tej operacji NIE MOŻNA cofnąć)
114 form_password: 115 form_password:
115 description: "Tutaj możesz zmienić swoje hasło. Twoje nowe hasło powinno mieć conajmniej 8 znaków." 116 description: "Tutaj możesz zmienić swoje hasło. Twoje nowe hasło powinno mieć conajmniej 8 znaków."
@@ -223,6 +224,8 @@ entry:
223 original_article: 'oryginalny' 224 original_article: 'oryginalny'
224 annotations_on_the_entry: '{0} Nie ma adnotacji |{1} Jedna adnotacja |]1,Inf[ %count% adnotacji' 225 annotations_on_the_entry: '{0} Nie ma adnotacji |{1} Jedna adnotacja |]1,Inf[ %count% adnotacji'
225 created_at: 'Czas stworzenia' 226 created_at: 'Czas stworzenia'
227 # published_at: 'Publication date'
228 # published_by: 'Published by'
226 new: 229 new:
227 page_title: 'Zapisz nowy wpis' 230 page_title: 'Zapisz nowy wpis'
228 placeholder: 'http://website.com' 231 placeholder: 'http://website.com'
@@ -234,7 +237,6 @@ entry:
234 page_title: 'Edytuj wpis' 237 page_title: 'Edytuj wpis'
235 title_label: 'Tytuł' 238 title_label: 'Tytuł'
236 url_label: 'Adres URL' 239 url_label: 'Adres URL'
237 is_public_label: 'Publiczny'
238 save_label: 'Zapisz' 240 save_label: 'Zapisz'
239 public: 241 public:
240 shared_by_wallabag: "Ten artykuł został udostępniony przez <a href='%wallabag_instance%'>wallabag</a>" 242 shared_by_wallabag: "Ten artykuł został udostępniony przez <a href='%wallabag_instance%'>wallabag</a>"
@@ -528,6 +530,7 @@ flashes:
528 annotations_reset: Zresetuj adnotacje 530 annotations_reset: Zresetuj adnotacje
529 tags_reset: Zresetuj tagi 531 tags_reset: Zresetuj tagi
530 entries_reset: Zresetuj wpisy 532 entries_reset: Zresetuj wpisy
533 # archived_reset: Archived entries deleted
531 entry: 534 entry:
532 notice: 535 notice:
533 entry_already_saved: 'Wpis już został dodany %date%' 536 entry_already_saved: 'Wpis już został dodany %date%'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml
index 8a7cc6f8..8aa7e5af 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml
@@ -110,6 +110,7 @@ config:
110 # annotations: Remove ALL annotations 110 # annotations: Remove ALL annotations
111 # tags: Remove ALL tags 111 # tags: Remove ALL tags
112 # entries: Remove ALL entries 112 # entries: Remove ALL entries
113 # archived: Remove ALL archived entries
113 # confirm: Are you really really sure? (THIS CAN'T BE UNDONE) 114 # confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
114 form_password: 115 form_password:
115 # description: "You can change your password here. Your new password should by at least 8 characters long." 116 # description: "You can change your password here. Your new password should by at least 8 characters long."
@@ -223,6 +224,8 @@ entry:
223 original_article: 'original' 224 original_article: 'original'
224 annotations_on_the_entry: '{0} Sem anotações|{1} Uma anotação|]1,Inf[ %nbAnnotations% anotações' 225 annotations_on_the_entry: '{0} Sem anotações|{1} Uma anotação|]1,Inf[ %nbAnnotations% anotações'
225 created_at: 'Data de criação' 226 created_at: 'Data de criação'
227 # published_at: 'Publication date'
228 # published_by: 'Published by'
226 new: 229 new:
227 page_title: 'Salvar nova entrada' 230 page_title: 'Salvar nova entrada'
228 placeholder: 'http://website.com' 231 placeholder: 'http://website.com'
@@ -234,7 +237,6 @@ entry:
234 page_title: 'Editar uma entrada' 237 page_title: 'Editar uma entrada'
235 title_label: 'Título' 238 title_label: 'Título'
236 url_label: 'Url' 239 url_label: 'Url'
237 is_public_label: 'Público'
238 save_label: 'Salvar' 240 save_label: 'Salvar'
239 public: 241 public:
240 shared_by_wallabag: "Este artigo foi compartilhado pelo <a href='%wallabag_instance%'>wallabag</a>" 242 shared_by_wallabag: "Este artigo foi compartilhado pelo <a href='%wallabag_instance%'>wallabag</a>"
@@ -528,6 +530,7 @@ flashes:
528 # annotations_reset: Annotations reset 530 # annotations_reset: Annotations reset
529 # tags_reset: Tags reset 531 # tags_reset: Tags reset
530 # entries_reset: Entries reset 532 # entries_reset: Entries reset
533 # archived_reset: Archived entries deleted
531 entry: 534 entry:
532 notice: 535 notice:
533 entry_already_saved: 'Entrada já foi salva em %date%' 536 entry_already_saved: 'Entrada já foi salva em %date%'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
index 52b6414f..ce8d8d52 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
@@ -110,6 +110,7 @@ config:
110 # annotations: Remove ALL annotations 110 # annotations: Remove ALL annotations
111 # tags: Remove ALL tags 111 # tags: Remove ALL tags
112 # entries: Remove ALL entries 112 # entries: Remove ALL entries
113 # archived: Remove ALL archived entries
113 # confirm: Are you really really sure? (THIS CAN'T BE UNDONE) 114 # confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
114 form_password: 115 form_password:
115 # description: "You can change your password here. Your new password should by at least 8 characters long." 116 # description: "You can change your password here. Your new password should by at least 8 characters long."
@@ -223,6 +224,8 @@ entry:
223 original_article: 'original' 224 original_article: 'original'
224 # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %count% annotations' 225 # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %count% annotations'
225 created_at: 'Data creării' 226 created_at: 'Data creării'
227 # published_at: 'Publication date'
228 # published_by: 'Published by'
226 new: 229 new:
227 page_title: 'Salvează un nou articol' 230 page_title: 'Salvează un nou articol'
228 placeholder: 'http://website.com' 231 placeholder: 'http://website.com'
@@ -234,7 +237,6 @@ entry:
234 # page_title: 'Edit an entry' 237 # page_title: 'Edit an entry'
235 # title_label: 'Title' 238 # title_label: 'Title'
236 url_label: 'Url' 239 url_label: 'Url'
237 # is_public_label: 'Public'
238 save_label: 'Salvează' 240 save_label: 'Salvează'
239 public: 241 public:
240 # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>" 242 # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
@@ -528,6 +530,7 @@ flashes:
528 # annotations_reset: Annotations reset 530 # annotations_reset: Annotations reset
529 # tags_reset: Tags reset 531 # tags_reset: Tags reset
530 # entries_reset: Entries reset 532 # entries_reset: Entries reset
533 # archived_reset: Archived entries deleted
531 entry: 534 entry:
532 notice: 535 notice:
533 # entry_already_saved: 'Entry already saved on %date%' 536 # entry_already_saved: 'Entry already saved on %date%'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
index bfb7e206..d8903608 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
@@ -110,6 +110,7 @@ config:
110 # annotations: Remove ALL annotations 110 # annotations: Remove ALL annotations
111 # tags: Remove ALL tags 111 # tags: Remove ALL tags
112 # entries: Remove ALL entries 112 # entries: Remove ALL entries
113 # archived: Remove ALL archived entries
113 # confirm: Are you really really sure? (THIS CAN'T BE UNDONE) 114 # confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
114 form_password: 115 form_password:
115 # description: "You can change your password here. Your new password should by at least 8 characters long." 116 # description: "You can change your password here. Your new password should by at least 8 characters long."
@@ -223,6 +224,8 @@ entry:
223 original_article: 'orijinal' 224 original_article: 'orijinal'
224 # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %count% annotations' 225 # annotations_on_the_entry: '{0} No annotations|{1} One annotation|]1,Inf[ %count% annotations'
225 created_at: 'Oluşturulma tarihi' 226 created_at: 'Oluşturulma tarihi'
227 # published_at: 'Publication date'
228 # published_by: 'Published by'
226 new: 229 new:
227 page_title: 'Yeni makaleyi kaydet' 230 page_title: 'Yeni makaleyi kaydet'
228 placeholder: 'http://website.com' 231 placeholder: 'http://website.com'
@@ -234,7 +237,6 @@ entry:
234 page_title: 'Makaleyi düzenle' 237 page_title: 'Makaleyi düzenle'
235 title_label: 'Başlık' 238 title_label: 'Başlık'
236 url_label: 'Url' 239 url_label: 'Url'
237 is_public_label: 'Herkes tarafından erişime açık olsun mu?'
238 save_label: 'Kaydet' 240 save_label: 'Kaydet'
239 public: 241 public:
240 # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>" 242 # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
@@ -528,6 +530,7 @@ flashes:
528 # annotations_reset: Annotations reset 530 # annotations_reset: Annotations reset
529 # tags_reset: Tags reset 531 # tags_reset: Tags reset
530 # entries_reset: Entries reset 532 # entries_reset: Entries reset
533 # archived_reset: Archived entries deleted
531 entry: 534 entry:
532 notice: 535 notice:
533 entry_already_saved: 'Entry already saved on %date%' 536 entry_already_saved: 'Entry already saved on %date%'
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig
index 3548f590..01f63a7b 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig
@@ -200,6 +200,11 @@
200 </a> 200 </a>
201 </li> 201 </li>
202 <li> 202 <li>
203 <a href="{{ path('config_reset', { type: 'archived'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
204 {{ 'config.reset.archived'|trans }}
205 </a>
206 </li>
207 <li>
203 <a href="{{ path('config_reset', { type: 'entries'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red"> 208 <a href="{{ path('config_reset', { type: 'entries'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
204 {{ 'config.reset.entries'|trans }} 209 {{ 'config.reset.entries'|trans }}
205 </a> 210 </a>
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 a555691d..426ce91c 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
@@ -30,6 +30,7 @@
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 %} 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 %}
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 %} 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 %}
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 }}&amp;tags={{ entry.tags|join(',')|url_encode }}" target="_blank" class="tool icon-image icon-image--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 }}&amp;tags={{ entry.tags|join(',')|url_encode }}" target="_blank" class="tool icon-image icon-image--shaarli" title="shaarli"><span>shaarli</span></a></li>{% endif %}
33 {% if craue_setting('share_scuttle') %}<li><a href="{{ craue_setting('scuttle_url') }}/bookmarks.php?action=add&amp;address={{ entry.url|url_encode }}&amp;title={{ entry.title|url_encode }}&amp;tags={{ entry.tags|join(',')|url_encode }}" target="_blank" class="tool icon-image icon-image--scuttle" title="scuttle"><span>scuttle</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 %} 34 {% 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 %}
34 {% if craue_setting('share_unmark') %}<li><a href="{{ craue_setting('unmark_url') }}/mark/add?url={{ entry.url|url_encode }}&amp;title={{entry.title|url_encode}}&amp;v=6" target="_blank" class="tool unmark icon-image icon-image--unmark" title="unmark"><span>unmark.it</span></a></li>{% endif %} 35 {% if craue_setting('share_unmark') %}<li><a href="{{ craue_setting('unmark_url') }}/mark/add?url={{ entry.url|url_encode }}&amp;title={{entry.title|url_encode}}&amp;v=6" target="_blank" class="tool unmark icon-image icon-image--unmark" title="unmark"><span>unmark.it</span></a></li>{% endif %}
35 {% 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 %} 36 {% 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 %}
@@ -43,9 +44,23 @@
43 44
44 <div id="article-informations"> 45 <div id="article-informations">
45 <i class="tool icon icon-calendar" title="{{ 'entry.view.created_at'|trans }}"> 46 <i class="tool icon icon-calendar" title="{{ 'entry.view.created_at'|trans }}">
46 {{ entry.createdAt|date('Y-m-d') }} 47 {{ entry.createdAt|date('Y-m-d H:i') }}
47 </i> 48 </i>
48 49
50 {% if entry.publishedAt is not null %}
51 <i class="tool icon icon-pencil2" title="{{ 'entry.view.published_at'|trans }}">
52 {{ entry.publishedAt|date('Y-m-d H:i') }}
53 </i>
54 {% endif %}
55
56 {% if entry.publishedBy is not empty %}
57 <i class="tool icon icon-users" title="{{ 'entry.view.published_by'|trans }}">
58 {% for author in entry.publishedBy %}
59 {{ author }}{% if not loop.last %}, {% endif %}
60 {% endfor %}
61 </i>
62 {% endif %}
63
49 <i class="tool icon icon-time"> 64 <i class="tool icon icon-time">
50 {% set readingTime = entry.readingTime / app.user.config.readingSpeed %} 65 {% set readingTime = entry.readingTime / app.user.config.readingSpeed %}
51 {% if readingTime > 0 %} 66 {% if readingTime > 0 %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig
index 5d411fdd..708ff951 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig
@@ -229,6 +229,9 @@
229 <a href="{{ path('config_reset', { type: 'tags'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red"> 229 <a href="{{ path('config_reset', { type: 'tags'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
230 {{ 'config.reset.tags'|trans }} 230 {{ 'config.reset.tags'|trans }}
231 </a> 231 </a>
232 <a href="{{ path('config_reset', { type: 'archived'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
233 {{ 'config.reset.archived'|trans }}
234 </a>
232 <a href="{{ path('config_reset', { type: 'entries'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red"> 235 <a href="{{ path('config_reset', { type: 'entries'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
233 {{ 'config.reset.entries'|trans }} 236 {{ 'config.reset.entries'|trans }}
234 </a> 237 </a>
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/edit.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/edit.html.twig
index 1c5e2aab..b9537975 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/edit.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/edit.html.twig
@@ -27,11 +27,6 @@
27 {{ form_label(form.url) }} 27 {{ form_label(form.url) }}
28 {{ form_widget(form.url) }} 28 {{ form_widget(form.url) }}
29 </div> 29 </div>
30
31 <div class="input-field s12">
32 {{ form_widget(form.is_public) }}
33 {{ form_label(form.is_public) }}
34 </div>
35 <br> 30 <br>
36 31
37 {{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} 32 {{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
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 c3508083..8be5fd0d 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
@@ -131,6 +131,14 @@
131 </a> 131 </a>
132 </li> 132 </li>
133 {% endif %} 133 {% endif %}
134 {% if craue_setting('share_scuttle') %}
135 <li>
136 <a href="{{ craue_setting('scuttle_url') }}/bookmarks.php?action=add&amp;address={{ entry.url|url_encode }}&amp;title={{ entry.title|striptags|url_encode }}&amp;tags={{ entry.tags|join(',')|striptags|url_encode }}" target="_blank">
137 <i class="tool icon-image icon-image--scuttle" title="scuttle"></i>
138 <span>scuttle</span>
139 </a>
140 </li>
141 {% endif %}
134 {% if craue_setting('share_diaspora') %} 142 {% if craue_setting('share_diaspora') %}
135 <li> 143 <li>
136 <a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&amp;title={{ entry.title|striptags|url_encode }}&amp;notes=&amp;v=1&amp;noui=1&amp;jump=doclose" target="_blank"> 144 <a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&amp;title={{ entry.title|striptags|url_encode }}&amp;notes=&amp;v=1&amp;noui=1&amp;jump=doclose" target="_blank">
@@ -218,8 +226,22 @@
218 </li> 226 </li>
219 <li> 227 <li>
220 <i class="material-icons" title="{{ 'entry.view.created_at'|trans }}">today</i> 228 <i class="material-icons" title="{{ 'entry.view.created_at'|trans }}">today</i>
221 {{ entry.createdAt|date('Y-m-d') }} 229 {{ entry.createdAt|date('Y-m-d H:i') }}
230 </li>
231 {% if entry.publishedAt is not null %}
232 <li>
233 <i class="material-icons" title="{{ 'entry.view.published_at'|trans }}">create</i>
234 {{ entry.publishedAt|date('Y-m-d H:i') }}
222 </li> 235 </li>
236 {% endif %}
237 {% if entry.publishedBy is not empty %}
238 <li>
239 <i class="material-icons" title="{{ 'entry.view.published_by'|trans }}">person</i>
240 {% for author in entry.publishedBy %}
241 {{ author }}{% if not loop.last %}, {% endif %}
242 {% endfor %}
243 </li>
244 {% endif %}
223 <li> 245 <li>
224 <i class="material-icons link">link</i> 246 <i class="material-icons link">link</i>
225 <a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|striptags }}" class="tool"> 247 <a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|striptags }}" class="tool">