]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Use statements & update translation
authorJeremy Benoist <jeremy.benoist@gmail.com>
Tue, 11 Oct 2016 19:45:43 +0000 (21:45 +0200)
committerJeremy Benoist <jeremy.benoist@gmail.com>
Sat, 22 Oct 2016 11:13:07 +0000 (13:13 +0200)
app/config/parameters.yml.dist
docs/en/user/parameters.rst
src/Wallabag/AnnotationBundle/Repository/AnnotationRepository.php
src/Wallabag/CoreBundle/Controller/TagController.php
src/Wallabag/CoreBundle/Repository/EntryRepository.php
src/Wallabag/CoreBundle/Repository/TagRepository.php
src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml

index a33ea37bfb527d89117330c10ec050d5ac91576c..436eeeda36ff473371eb24e2fa0a6b6ca9078fa7 100644 (file)
@@ -20,7 +20,7 @@ parameters:
     database_table_prefix: wallabag_
     database_socket: null
     # with MySQL, use "utf8mb4" if got problem with content with emojis
-    database_charset: utf8
+    database_charset: utf8mb4
 
     mailer_transport: smtp
     mailer_host: 127.0.0.1
index 79c508717d208fd8324042107a84a6cd586288fd..c4345b74ae6163fc849ef8e08edad6dd499af098 100644 (file)
@@ -12,6 +12,7 @@ What is the meaning of the parameters?
    "database_path", "``""%kernel.root_dir%/../data/db/wallabag.sqlite""``", "only for SQLite, define where to put the database file. Leave it for other database"
    "database_table_prefix", "wallabag_", "all wallabag's tables will be prefixed with that string. You can include a ``_`` for clarity"
    "database_socket", "null", "If your database is using a socket instead of tcp, put the path of the socket (other connection parameters will then be ignored"
+   "database_charset", "utf8mb4", "For PostgreSQL you should use utf8, for other use utf8mb4 which handle emoji"
 
 .. csv-table:: Configuration to send emails from wallabag
    :header: "name", "default", "description"
index c81a2614b07c85f7c02f981eeadadb67189d2a7c..52989bcf8a780df11bacedf19dc3edea80438566 100644 (file)
@@ -116,7 +116,8 @@ class AnnotationRepository extends EntityRepository
     public function removeAllByUserId($userId)
     {
         $this->getEntityManager()
-            ->createQuery('DELETE FROM Wallabag\AnnotationBundle\Entity\Annotation a WHERE a.user = '.$userId)
+            ->createQuery('DELETE FROM Wallabag\AnnotationBundle\Entity\Annotation a WHERE a.user = :userId')
+            ->setParameter('userId', $userId)
             ->execute();
     }
 }
index 5acc685281a205a57cf88b92e72125cc040abc0b..4542d484c3a2a9e9aaf4b003109e0d068860c2ec 100644 (file)
@@ -90,15 +90,15 @@ class TagController extends Controller
 
         $flatTags = [];
 
-        foreach ($tags as $key => $tag) {
+        foreach ($tags as $tag) {
             $nbEntries = $this->getDoctrine()
                 ->getRepository('WallabagCoreBundle:Entry')
-                ->countAllEntriesByUserIdAndTagId($this->getUser()->getId(), $tag['id']);
+                ->countAllEntriesByUserIdAndTagId($this->getUser()->getId(), $tag->getId());
 
             $flatTags[] = [
-                'id' => $tag['id'],
-                'label' => $tag['label'],
-                'slug' => $tag['slug'],
+                'id' => $tag->getId(),
+                'label' => $tag->getLabel(),
+                'slug' => $tag->getSlug(),
                 'nbEntries' => $nbEntries,
             ];
         }
index 5df5eff502aa03ed2e5a24a6a2f49dff320907d2..14616d8889e7dc2f2d60d93b60beb73e9e87e15f 100644 (file)
@@ -339,7 +339,8 @@ class EntryRepository extends EntityRepository
     public function removeAllByUserId($userId)
     {
         $this->getEntityManager()
-            ->createQuery('DELETE FROM Wallabag\CoreBundle\Entity\Entry e WHERE e.user = '.$userId)
+            ->createQuery('DELETE FROM Wallabag\CoreBundle\Entity\Entry e WHERE e.user = :userId')
+            ->setParameter('userId', $userId)
             ->execute();
     }
 }
index 69661b128374a2a905e7b7b77a1f4b3fb39a71b3..81445989b71c97fc06a13e22f8aaada1b81d871d 100644 (file)
@@ -34,6 +34,9 @@ class TagRepository extends EntityRepository
 
     /**
      * Find all tags per user.
+     * Instead of just left joined on the Entry table, we select only id and group by id to avoid tag multiplication in results.
+     * Once we have all tags id, we can safely request them one by one.
+     * This'll still be fastest than the previous query.
      *
      * @param int $userId
      *
@@ -41,32 +44,20 @@ class TagRepository extends EntityRepository
      */
     public function findAllTags($userId)
     {
-        return $this->createQueryBuilder('t')
-            ->select('t.slug', 't.label', 't.id')
+        $ids = $this->createQueryBuilder('t')
+            ->select('t.id')
             ->leftJoin('t.entries', 'e')
             ->where('e.user = :userId')->setParameter('userId', $userId)
-            ->groupBy('t.slug')
-            ->addGroupBy('t.label')
-            ->addGroupBy('t.id')
+            ->groupBy('t.id')
             ->getQuery()
             ->getArrayResult();
-    }
 
-    /**
-     * Find all tags.
-     *
-     * @param int $userId
-     *
-     * @return array
-     */
-    public function findAllTags($userId)
-    {
-        return $this->createQueryBuilder('t')
-            ->select('t')
-            ->leftJoin('t.entries', 'e')
-            ->where('e.user = :userId')->setParameter('userId', $userId)
-            ->getQuery()
-            ->getResult();
+        $tags = [];
+        foreach ($ids as $id) {
+            $tags[] = $this->find($id);
+        }
+
+        return $tags;
     }
 
     /**
index 7a98f1333f17eb148a35d56f8cc95056826275f5..14bdbbc7574c2cce7962851361f4c72642b370a0 100644 (file)
@@ -91,15 +91,15 @@ config:
         delete:
             title: Supprimer mon compte (attention danger !)
             description: Si vous confirmez la suppression de votre compte, TOUS les articles, TOUS les tags, TOUTES les annotations et votre compte seront DÉFINITIVEMENT supprimé (c'est IRRÉVERSIBLE). Vous serez ensuite déconnecté.
-            confirm: Vous êtes vraiment sûr ? (C'EST IRREVERSIBLE)
+            confirm: Vous êtes vraiment sûr ? (C'EST IRRÉVERSIBLE)
             button: 'Supprimer mon compte'
     reset:
         title: Réinitialisation (attention danger !)
-        description: En cliquant sur les boutons ci-dessous vous avez la possibilité de supprimer certaines informations de votre compte. Attention, ces actions sont IRREVERSIBLES !
+        description: En cliquant sur les boutons ci-dessous vous avez la possibilité de supprimer certaines informations de votre compte. Attention, ces actions sont IRRÉVERSIBLES !
         annotations: Supprimer TOUTES les annotations
         tags: Supprimer TOUS les tags
         entries: Supprimer TOUS les articles
-        confirm: Êtes-vous vraiment vraiment sûr ? (C'EST IRREVERSIBLE)
+        confirm: Êtes-vous vraiment vraiment sûr ? (C'EST IRRÉVERSIBLE)
     form_password:
         old_password_label: 'Mot de passe actuel'
         new_password_label: 'Nouveau mot de passe'
@@ -398,7 +398,7 @@ developer:
         field_grant_types: 'Type de privilège accordé'
         no_client: 'Aucun client pour le moment'
     remove:
-        warn_message_1: 'Vous avez la possibilité de supprimer le client %name%. Cette action est IRREVERSIBLE !'
+        warn_message_1: 'Vous avez la possibilité de supprimer le client %name%. Cette action est IRRÉVERSIBLE !'
         warn_message_2: "Si vous supprimez le client %name%, toutes les applications qui l'utilisaient ne fonctionneront plus avec votre compte wallabag."
         action: 'Supprimer le client %name%'
     client:
@@ -474,7 +474,7 @@ flashes:
             entries_reset: Articles supprimés
     entry:
         notice:
-            entry_already_saved: 'Article déjà sauvergardé le %date%'
+            entry_already_saved: 'Article déjà sauvegardé le %date%'
             entry_saved: 'Article enregistré'
             entry_saved_failed: 'Article enregistré mais impossible de récupérer le contenu'
             entry_updated: 'Article mis à jour'