aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Wallabag/CoreBundle/Controller/TagController.php21
-rw-r--r--src/Wallabag/CoreBundle/Repository/EntryRepository.php20
-rw-r--r--src/Wallabag/CoreBundle/Repository/TagRepository.php21
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml26
4 files changed, 36 insertions, 52 deletions
diff --git a/src/Wallabag/CoreBundle/Controller/TagController.php b/src/Wallabag/CoreBundle/Controller/TagController.php
index f2ca58c6..be2dff98 100644
--- a/src/Wallabag/CoreBundle/Controller/TagController.php
+++ b/src/Wallabag/CoreBundle/Controller/TagController.php
@@ -84,28 +84,11 @@ class TagController extends Controller
84 */ 84 */
85 public function showTagAction() 85 public function showTagAction()
86 { 86 {
87 $repository = $this->get('wallabag_core.entry_repository');
88 $tags = $this->get('wallabag_core.tag_repository') 87 $tags = $this->get('wallabag_core.tag_repository')
89 ->findAllTags($this->getUser()->getId()); 88 ->findAllFlatTagsWithNbEntries($this->getUser()->getId());
90
91 $flatTags = [];
92
93 foreach ($tags as $tag) {
94 $nbEntries = $repository->countAllEntriesByUserIdAndTagId(
95 $this->getUser()->getId(),
96 $tag->getId()
97 );
98
99 $flatTags[] = [
100 'id' => $tag->getId(),
101 'label' => $tag->getLabel(),
102 'slug' => $tag->getSlug(),
103 'nbEntries' => $nbEntries,
104 ];
105 }
106 89
107 return $this->render('WallabagCoreBundle:Tag:tags.html.twig', [ 90 return $this->render('WallabagCoreBundle:Tag:tags.html.twig', [
108 'tags' => $flatTags, 91 'tags' => $tags,
109 ]); 92 ]);
110 } 93 }
111 94
diff --git a/src/Wallabag/CoreBundle/Repository/EntryRepository.php b/src/Wallabag/CoreBundle/Repository/EntryRepository.php
index 7f35bb9a..d70d6ca6 100644
--- a/src/Wallabag/CoreBundle/Repository/EntryRepository.php
+++ b/src/Wallabag/CoreBundle/Repository/EntryRepository.php
@@ -330,26 +330,6 @@ class EntryRepository extends EntityRepository
330 } 330 }
331 331
332 /** 332 /**
333 * Count all entries for a tag and a user.
334 *
335 * @param int $userId
336 * @param int $tagId
337 *
338 * @return int
339 */
340 public function countAllEntriesByUserIdAndTagId($userId, $tagId)
341 {
342 $qb = $this->createQueryBuilder('e')
343 ->select('count(e.id)')
344 ->leftJoin('e.tags', 't')
345 ->where('e.user=:userId')->setParameter('userId', $userId)
346 ->andWhere('t.id=:tagId')->setParameter('tagId', $tagId)
347 ;
348
349 return (int) $qb->getQuery()->getSingleScalarResult();
350 }
351
352 /**
353 * Remove all entries for a user id. 333 * Remove all entries for a user id.
354 * Used when a user want to reset all informations. 334 * Used when a user want to reset all informations.
355 * 335 *
diff --git a/src/Wallabag/CoreBundle/Repository/TagRepository.php b/src/Wallabag/CoreBundle/Repository/TagRepository.php
index 213283e5..5c45211f 100644
--- a/src/Wallabag/CoreBundle/Repository/TagRepository.php
+++ b/src/Wallabag/CoreBundle/Repository/TagRepository.php
@@ -63,6 +63,27 @@ class TagRepository extends EntityRepository
63 } 63 }
64 64
65 /** 65 /**
66 * Find all tags (flat) per user with nb entries.
67 *
68 * @param int $userId
69 *
70 * @return array
71 */
72 public function findAllFlatTagsWithNbEntries($userId)
73 {
74 return $this->createQueryBuilder('t')
75 ->select('t.id, t.label, t.slug, count(e.id) as nbEntries')
76 ->distinct(true)
77 ->leftJoin('t.entries', 'e')
78 ->where('e.user = :userId')
79 ->groupBy('t.id')
80 ->orderBy('t.slug')
81 ->setParameter('userId', $userId)
82 ->getQuery()
83 ->getArrayResult();
84 }
85
86 /**
66 * Used only in test case to get a tag for our entry. 87 * Used only in test case to get a tag for our entry.
67 * 88 *
68 * @return Tag 89 * @return Tag
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
index ab1b3d63..c8e6cf6c 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
@@ -32,7 +32,7 @@ menu:
32 save_link: 'Zapisz link' 32 save_link: 'Zapisz link'
33 back_to_unread: 'Powrót do nieprzeczytanych artykułów' 33 back_to_unread: 'Powrót do nieprzeczytanych artykułów'
34 users_management: 'Zarządzanie użytkownikami' 34 users_management: 'Zarządzanie użytkownikami'
35 # site_credentials: 'Site credentials' 35 site_credentials: 'Poświadczenia strony'
36 top: 36 top:
37 add_new_entry: 'Dodaj nowy wpis' 37 add_new_entry: 'Dodaj nowy wpis'
38 search: 'Szukaj' 38 search: 'Szukaj'
@@ -94,7 +94,7 @@ config:
94 unread: 'Nieprzeczytane' 94 unread: 'Nieprzeczytane'
95 starred: 'Oznaczone gwiazdką' 95 starred: 'Oznaczone gwiazdką'
96 archive: 'Archiwum' 96 archive: 'Archiwum'
97 # all: 'All' 97 all: 'Wszystkie'
98 rss_limit: 'Link do RSS' 98 rss_limit: 'Link do RSS'
99 form_user: 99 form_user:
100 two_factor_description: "Włączenie autoryzacji dwuetapowej oznacza, że będziesz otrzymywał maile z kodem przy każdym nowym, niezaufanym połączeniu" 100 two_factor_description: "Włączenie autoryzacji dwuetapowej oznacza, że będziesz otrzymywał maile z kodem przy każdym nowym, niezaufanym połączeniu"
@@ -526,20 +526,20 @@ user:
526 placeholder: Filtruj po nazwie użytkownika lub adresie e-mail 526 placeholder: Filtruj po nazwie użytkownika lub adresie e-mail
527 527
528site_credential: 528site_credential:
529 # page_title: Site credentials management 529 page_title: Zardzanie poświadczeniami strony
530 # new_site_credential: Create a credential 530 new_site_credential: Stwórz nowe poświadczenie
531 # edit_site_credential: Edit an existing credential 531 edit_site_credential: Edytuj istniejące poświadczenie
532 # description: "Here you can manage all credentials for sites which required them (create, edit and delete), like a paywall, an authentication, etc." 532 description: "Tutaj możesz zarządzać wszystkim poświadczeniami wymaganymi przez strony (stwórz, edytuj i usuń ), takie jak paywall, autentykacja, itp."
533 list: 533 list:
534 actions: Akcje 534 actions: Akcje
535 edit_action: Edytuj 535 edit_action: Edytuj
536 yes: Tak 536 yes: Tak
537 no: Nie 537 no: Nie
538 # create_new_one: Create a new credential 538 create_new_one: Stwórz nowe poświadczenie
539 form: 539 form:
540 # username_label: 'Username' 540 username_label: 'Nazwa użytkownika'
541 # host_label: 'Host' 541 host_label: 'Host'
542 # password_label: 'Password' 542 password_label: 'Hasło'
543 save: Zapisz 543 save: Zapisz
544 delete: Usuń 544 delete: Usuń
545 delete_confirm: Jesteś pewien? 545 delete_confirm: Jesteś pewien?
@@ -599,6 +599,6 @@ flashes:
599 deleted: 'Użytkownik "%username%" usunięty' 599 deleted: 'Użytkownik "%username%" usunięty'
600 site_credential: 600 site_credential:
601 notice: 601 notice:
602 # added: 'Site credential for "%host%" added' 602 added: 'Poświadczenie dla "%host%" dodane'
603 # updated: 'Site credential for "%host%" updated' 603 updated: 'Poświadczenie dla "%host%" zaktualizowane'
604 # deleted: 'Site credential for "%host%" deleted' 604 deleted: 'Poświadczenie dla "%host%" usuniętę'