From 36f30fa31e0d2373f5c39851ea9138493fbde341 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Thu, 3 Nov 2016 12:11:48 +0100 Subject: Added groups management --- .../Resources/translations/messages.da.yml | 25 ++++ .../Resources/translations/messages.de.yml | 25 ++++ .../Resources/translations/messages.en.yml | 25 ++++ .../Resources/translations/messages.es.yml | 26 ++++ .../Resources/translations/messages.fa.yml | 25 ++++ .../Resources/translations/messages.fr.yml | 46 +++++++ .../Resources/translations/messages.it.yml | 25 ++++ .../Resources/translations/messages.oc.yml | 26 ++++ .../Resources/translations/messages.pl.yml | 25 ++++ .../Resources/translations/messages.pt.yml | 6 + .../Resources/translations/messages.ro.yml | 25 ++++ .../Resources/translations/messages.tr.yml | 6 + .../Resources/views/themes/baggy/layout.html.twig | 1 + .../views/themes/material/layout.html.twig | 3 + .../GroupBundle/Controller/ManageController.php | 137 +++++++++++++++++++++ src/Wallabag/GroupBundle/Form/GroupType.php | 39 ++++++ src/Wallabag/GroupBundle/Form/NewGroupType.php | 37 ++++++ .../Resources/views/Manage/edit.html.twig | 44 +++++++ .../Resources/views/Manage/index.html.twig | 44 +++++++ .../Resources/views/Manage/new.html.twig | 37 ++++++ 20 files changed, 627 insertions(+) create mode 100644 src/Wallabag/GroupBundle/Controller/ManageController.php create mode 100644 src/Wallabag/GroupBundle/Form/GroupType.php create mode 100644 src/Wallabag/GroupBundle/Form/NewGroupType.php create mode 100644 src/Wallabag/GroupBundle/Resources/views/Manage/edit.html.twig create mode 100644 src/Wallabag/GroupBundle/Resources/views/Manage/index.html.twig create mode 100644 src/Wallabag/GroupBundle/Resources/views/Manage/new.html.twig (limited to 'src/Wallabag') diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml index ea7fb086..8d023efa 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.da.yml @@ -33,6 +33,7 @@ menu: back_to_unread: 'Tilbage til de ulæste artikler' # users_management: 'Users management' # site_credentials: 'Site credentials' + # groups_management: 'Groups management' top: add_new_entry: 'Tilføj ny artikel' search: 'Søg' @@ -496,6 +497,25 @@ developer: # paragraph_8: 'If you want to see all the API endpoints, you can have a look to our API documentation.' # back: 'Back' +group: + # page_title: Groups management + # new_group: Create a new group + # edit_group: Edit an existing group + # description: "Here you can manage all groups (create, edit and delete)" + # list: + # actions: Actions + # edit_action: Edit + # yes: Yes + # no: No + # create_new_one: Create a new group + # form: + # name_label: 'Name' + # roles_label: 'Roles' + # save: Save + # delete: Delete + # delete_confirm: Are you sure? + # back_to_list: Back to list + user: # page_title: Users management # new_user: Create a new user @@ -602,3 +622,8 @@ flashes: # added: 'Site credential for "%host%" added' # updated: 'Site credential for "%host%" updated' # deleted: 'Site credential for "%host%" deleted' + group: + notice: + # added: 'Group "%name%" added' + # updated: 'Group "%name%" updated' + # deleted: 'Group "%name%" deleted' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml index fcda6ae6..44f11ab4 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml @@ -33,6 +33,7 @@ menu: back_to_unread: 'Zurück zu ungelesenen Artikeln' users_management: 'Benutzerverwaltung' # site_credentials: 'Site credentials' + # groups_management: 'Groups management' top: add_new_entry: 'Neuen Artikel hinzufügen' search: 'Suche' @@ -496,6 +497,25 @@ developer: paragraph_8: 'Wenn du alle API-Endpunkte sehen willst, werfe einen Blick auf die API-Dokumentation.' back: 'Zurück' +group: + # page_title: Groups management + # new_group: Create a new group + # edit_group: Edit an existing group + # description: "Here you can manage all groups (create, edit and delete)" + # list: + # actions: Actions + # edit_action: Edit + # yes: Yes + # no: No + # create_new_one: Create a new group + # form: + # name_label: 'Name' + # roles_label: 'Roles' + # save: Save + # delete: Delete + # delete_confirm: Are you sure? + # back_to_list: Back to list + user: page_title: Benutzerverwaltung new_user: Erstelle einen neuen Benutzer @@ -602,3 +622,8 @@ flashes: # added: 'Site credential for "%host%" added' # updated: 'Site credential for "%host%" updated' # deleted: 'Site credential for "%host%" deleted' + group: + notice: + # added: 'Group "%name%" added' + # updated: 'Group "%name%" updated' + # deleted: 'Group "%name%" deleted' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml index 54427e23..0d8cde7a 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.en.yml @@ -33,6 +33,7 @@ menu: back_to_unread: 'Back to unread articles' users_management: 'Users management' site_credentials: 'Site credentials' + groups_management: 'Groups management' top: add_new_entry: 'Add a new entry' search: 'Search' @@ -496,6 +497,25 @@ developer: paragraph_8: 'If you want to see all the API endpoints, you can have a look to our API documentation.' back: 'Back' +group: + page_title: Groups management + new_group: Create a new group + edit_group: Edit an existing group + description: "Here you can manage all groups (create, edit and delete)" + list: + actions: Actions + edit_action: Edit + yes: Yes + no: No + create_new_one: Create a new group + form: + name_label: 'Name' + roles_label: 'Roles' + save: Save + delete: Delete + delete_confirm: Are you sure? + back_to_list: Back to list + user: page_title: Users management new_user: Create a new user @@ -602,3 +622,8 @@ flashes: added: 'Site credential for "%host%" added' updated: 'Site credential for "%host%" updated' deleted: 'Site credential for "%host%" deleted' + group: + notice: + added: 'Group "%name%" added' + updated: 'Group "%name%" updated' + deleted: 'Group "%name%" deleted' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml index 96998f53..e632e7e1 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml @@ -33,6 +33,8 @@ menu: back_to_unread: 'Volver a los artículos sin leer' users_management: 'Configuración de usuarios' # site_credentials: 'Site credentials' + # users_management: 'Users management' + # groups_management: 'Groups management' top: add_new_entry: 'Añadir un nuevo artículo' search: 'Buscar' @@ -496,6 +498,25 @@ developer: paragraph_8: 'Si quiere ver todos los métodos del API, puede verlos en nuestra documentación del API.' back: 'Volver' +group: + # page_title: Groups management + # new_group: Create a new group + # edit_group: Edit an existing group + # description: "Here you can manage all groups (create, edit and delete)" + # list: + # actions: Actions + # edit_action: Edit + # yes: Yes + # no: No + # create_new_one: Create a new group + # form: + # name_label: 'Name' + # roles_label: 'Roles' + # save: Save + # delete: Delete + # delete_confirm: Are you sure? + # back_to_list: Back to list + user: page_title: Gestión de usuarios new_user: Crear un usuario @@ -601,3 +622,8 @@ flashes: # added: 'Site credential for "%host%" added' # updated: 'Site credential for "%host%" updated' # deleted: 'Site credential for "%host%" deleted' + group: + notice: + # added: 'Group "%name%" added' + # updated: 'Group "%name%" updated' + # deleted: 'Group "%name%" deleted' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml index 16c4f3a0..61fe8a17 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml @@ -33,6 +33,7 @@ menu: back_to_unread: 'بازگشت به خوانده‌نشده‌ها' # users_management: 'Users management' # site_credentials: 'Site credentials' + # groups_management: 'Groups management' top: add_new_entry: 'افزودن مقالهٔ تازه' search: 'جستجو' @@ -496,6 +497,25 @@ developer: # paragraph_8: 'If you want to see all the API endpoints, you can have a look to our API documentation.' # back: 'بازگشت' +group: + # page_title: Groups management + # new_group: Create a new group + # edit_group: Edit an existing group + # description: "Here you can manage all groups (create, edit and delete)" + # list: + # actions: Actions + # edit_action: Edit + # yes: Yes + # no: No + # create_new_one: Create a new group + # form: + # name_label: 'Name' + # roles_label: 'Roles' + # save: Save + # delete: Delete + # delete_confirm: Are you sure? + # back_to_list: Back to list + user: # page_title: Users management # new_user: Create a new user @@ -602,3 +622,8 @@ flashes: # added: 'Site credential for "%host%" added' # updated: 'Site credential for "%host%" updated' # deleted: 'Site credential for "%host%" deleted' + group: + notice: + # added: 'Group "%name%" added' + # updated: 'Group "%name%" updated' + # deleted: 'Group "%name%" deleted' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml index 6eac4c36..be8751ff 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml @@ -16,6 +16,7 @@ security: menu: left: +<<<<<<< 5da541f5bdeec8ad968ba75a30ca2d19ea64d1f2 unread: "Non lus" starred: "Favoris" archive: "Lus" @@ -33,6 +34,23 @@ menu: back_to_unread: "Retour aux articles non lus" users_management: "Gestion des utilisateurs" site_credentials: 'Accès aux sites' + unread: 'Non lus' + starred: 'Favoris' + archive: 'Lus' + all_articles: 'Tous les articles' + config: 'Configuration' + tags: 'Tags' + internal_settings: 'Configuration interne' + import: 'Importer' + howto: 'Aide' + developer: 'Développeur' + logout: 'Déconnexion' + about: 'À propos' + search: 'Recherche' + save_link: 'Sauvegarder un nouvel article' + back_to_unread: 'Retour aux articles non lus' + users_management: 'Gestion des utilisateurs' + groups_management: 'Gestion des groupes' top: add_new_entry: "Sauvegarder un nouvel article" search: "Rechercher" @@ -496,6 +514,25 @@ developer: paragraph_8: "Si vous voulez toutes les méthodes de l’API, jetez un oeil à la documentation de l’API." back: "Retour" +group: + page_title: Gestion des groupes + new_group: Créer un nouveau group + edit_group: Éditer un nouveau groupe + description: Ici vous pouvez gérer vos groupes (création, mise à jour et suppression) + list: + actions: Actions + edit_action: Éditer + yes: Oui + no: Non + create_new_one: Créer un nouveau groupe + form: + name_label: 'Nom' + roles_label: 'Rôles' + save: Sauvegarder + delete: Supprimer + delete_confirm: Êtes-vous sur ? + back_to_list: Revenir à la liste + user: page_title: "Gestion des utilisateurs" new_user: "Créer un nouvel utilisateur" @@ -601,3 +638,12 @@ flashes: added: 'Accès au site "%host%" ajouté' updated: 'Accès au site "%host%" mis à jour' deleted: 'Accès au site "%host%" supprimé' + + added: "Utilisateur \"%username%\" ajouté" + updated: "Utilisateur \"%username%\" mis à jour" + deleted: "Utilisateur \"%username%\" supprimé" + group: + notice: + added: "Groupe \"%name%\" ajouté" + updated: "Groupe \"%name%\" mis à jour" + deleted: "Groupe \"%name%\" supprimé" diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml index 8dff4c6d..a909d2c1 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml @@ -33,6 +33,7 @@ menu: back_to_unread: 'Torna ai contenuti non letti' # users_management: 'Users management' # site_credentials: 'Site credentials' + # groups_management: 'Groups management' top: add_new_entry: 'Aggiungi un nuovo contenuto' search: 'Cerca' @@ -496,6 +497,25 @@ developer: paragraph_8: 'Se vuoi visualizzare tutti gli API endpoints, dai una occhiata alla documentazione delle API.' back: 'Indietro' +group: + # page_title: Groups management + # new_group: Create a new group + # edit_group: Edit an existing group + # description: "Here you can manage all groups (create, edit and delete)" + # list: + # actions: Actions + # edit_action: Edit + # yes: Yes + # no: No + # create_new_one: Create a new group + # form: + # name_label: 'Name' + # roles_label: 'Roles' + # save: Save + # delete: Delete + # delete_confirm: Are you sure? + # back_to_list: Back to list + user: # page_title: Users management # new_user: Create a new user @@ -602,3 +622,8 @@ flashes: # added: 'Site credential for "%host%" added' # updated: 'Site credential for "%host%" updated' # deleted: 'Site credential for "%host%" deleted' + group: + notice: + # added: 'Group "%name%" added' + # updated: 'Group "%name%" updated' + # deleted: 'Group "%name%" deleted' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml index 1cf70233..a3c935ca 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml @@ -33,6 +33,7 @@ menu: back_to_unread: 'Tornar als articles pas legits' users_management: 'Gestion dels utilizaires' # site_credentials: 'Site credentials' + # groups_management: 'Groups management' top: add_new_entry: 'Enregistrar un novèl article' search: 'Cercar' @@ -496,6 +497,26 @@ developer: paragraph_8: "Se volètz totas las adreças d'accès de l'API, donatz un còp d’uèlh a la documentacion de l'API." back: 'Retorn' + +group: + # page_title: Groups management + # new_group: Create a new group + # edit_group: Edit an existing group + # description: "Here you can manage all groups (create, edit and delete)" + # list: + # actions: Actions + # edit_action: Edit + # yes: Yes + # no: No + # create_new_one: Create a new group + # form: + # name_label: 'Name' + # roles_label: 'Roles' + # save: Save + # delete: Delete + # delete_confirm: Are you sure? + # back_to_list: Back to list + user: page_title: 'Gestion dels utilizaires' new_user: 'Crear un novèl utilizaire' @@ -602,3 +623,8 @@ flashes: # added: 'Site credential for "%host%" added' # updated: 'Site credential for "%host%" updated' # deleted: 'Site credential for "%host%" deleted' + group: + notice: + # added: 'Group "%name%" added' + # updated: 'Group "%name%" updated' + # deleted: 'Group "%name%" deleted' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml index d3af4fd5..d252d448 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml @@ -33,6 +33,7 @@ menu: back_to_unread: 'Powrót do nieprzeczytanych artykułów' users_management: 'Zarządzanie użytkownikami' # site_credentials: 'Site credentials' + # groups_management: 'Groups management' top: add_new_entry: 'Dodaj nowy wpis' search: 'Szukaj' @@ -496,6 +497,25 @@ developer: paragraph_8: 'Jeżeli chcesz wyświetlić wszystkie punkty końcowe API, zobacz Dokumentacja naszego API.' back: 'Cofnij' +group: + # page_title: Groups management + # new_group: Create a new group + # edit_group: Edit an existing group + # description: "Here you can manage all groups (create, edit and delete)" + # list: + # actions: Actions + # edit_action: Edit + # yes: Yes + # no: No + # create_new_one: Create a new group + # form: + # name_label: 'Name' + # roles_label: 'Roles' + # save: Save + # delete: Delete + # delete_confirm: Are you sure? + # back_to_list: Back to list + user: page_title: Zarządzanie użytkownikami new_user: Stwórz nowego użytkownika @@ -602,3 +622,8 @@ flashes: # added: 'Site credential for "%host%" added' # updated: 'Site credential for "%host%" updated' # deleted: 'Site credential for "%host%" deleted' + group: + notice: + # added: 'Group "%name%" added' + # updated: 'Group "%name%" updated' + # deleted: 'Group "%name%" deleted' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml index 4ab5f144..ccb3debb 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml @@ -33,6 +33,7 @@ menu: back_to_unread: 'Voltar para os artigos não lidos' users_management: 'Gestão de Usuários' # site_credentials: 'Site credentials' + # groups_management: 'Groups management' top: add_new_entry: 'Adicionar uma nova entrada' search: 'Pesquisa' @@ -601,3 +602,8 @@ flashes: # added: 'Site credential for "%host%" added' # updated: 'Site credential for "%host%" updated' # deleted: 'Site credential for "%host%" deleted' + group: + notice: + # added: 'Group "%name%" added' + # updated: 'Group "%name%" updated' + # deleted: 'Group "%name%" deleted' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml index 3952eae8..29ae81cd 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml @@ -33,6 +33,7 @@ menu: back_to_unread: 'Înapoi la articolele necitite' # users_management: 'Users management' # site_credentials: 'Site credentials' + # groups_management: 'Groups management' top: add_new_entry: 'Introdu un nou articol' search: 'Căutare' @@ -496,6 +497,25 @@ developer: # paragraph_8: 'If you want to see all the API endpoints, you can have a look to our API documentation.' # back: 'Back' +group: + # page_title: Groups management + # new_group: Create a new group + # edit_group: Edit an existing group + # description: "Here you can manage all groups (create, edit and delete)" + # list: + # actions: Actions + # edit_action: Edit + # yes: Yes + # no: No + # create_new_one: Create a new group + # form: + # name_label: 'Name' + # roles_label: 'Roles' + # save: Save + # delete: Delete + # delete_confirm: Are you sure? + # back_to_list: Back to list + user: # page_title: Users management # new_user: Create a new user @@ -602,3 +622,8 @@ flashes: # added: 'Site credential for "%host%" added' # updated: 'Site credential for "%host%" updated' # deleted: 'Site credential for "%host%" deleted' + group: + notice: + # added: 'Group "%name%" added' + # updated: 'Group "%name%" updated' + # deleted: 'Group "%name%" deleted' diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml index 74f76c72..4ac867a0 100644 --- a/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml +++ b/src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml @@ -33,6 +33,7 @@ menu: back_to_unread: 'Okunmayan makalelere geri dön' # users_management: 'Users management' # site_credentials: 'Site credentials' + # groups_management: 'Groups management' top: add_new_entry: 'Yeni bir makale ekle' search: 'Ara' @@ -580,3 +581,8 @@ flashes: # added: 'Site credential for "%host%" added' # updated: 'Site credential for "%host%" updated' # deleted: 'Site credential for "%host%" deleted' + group: + notice: + # added: 'Group "%name%" added' + # updated: 'Group "%name%" updated' + # deleted: 'Group "%name%" deleted' diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig index 17fa13bb..545dab90 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig @@ -44,6 +44,7 @@ {% if is_granted('ROLE_SUPER_ADMIN') %} + {% endif %} diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig index 60907e11..575c77f2 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig @@ -75,6 +75,9 @@
  • {{ 'menu.left.users_management'|trans }}
  • +
  • + {{ 'menu.left.groups_management'|trans }} +
  • {{ 'menu.left.internal_settings'|trans }} diff --git a/src/Wallabag/GroupBundle/Controller/ManageController.php b/src/Wallabag/GroupBundle/Controller/ManageController.php new file mode 100644 index 00000000..7015a465 --- /dev/null +++ b/src/Wallabag/GroupBundle/Controller/ManageController.php @@ -0,0 +1,137 @@ +getDoctrine()->getManager(); + + $groups = $em->getRepository('WallabagGroupBundle:Group')->findAll(); + + return $this->render('WallabagGroupBundle:Manage:index.html.twig', array( + 'groups' => $groups, + )); + } + + /** + * Creates a new Group entity. + * + * @Route("/new", name="group_new") + * @Method({"GET", "POST"}) + */ + public function newAction(Request $request) + { + $group = new Group(''); + + $form = $this->createForm('Wallabag\GroupBundle\Form\NewGroupType', $group); + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + $em = $this->getDoctrine()->getManager(); + $em->persist($group); + $em->flush(); + + $this->get('session')->getFlashBag()->add( + 'notice', + $this->get('translator')->trans('flashes.group.notice.added', ['%name%' => $group->getName()]) + ); + + return $this->redirectToRoute('group_edit', array('id' => $group->getId())); + } + + return $this->render('WallabagGroupBundle:Manage:new.html.twig', array( + 'group' => $group, + 'form' => $form->createView(), + )); + } + + /** + * Displays a form to edit an existing Group entity. + * + * @Route("/{id}/edit", name="group_edit") + * @Method({"GET", "POST"}) + */ + public function editAction(Request $request, Group $group) + { + $deleteForm = $this->createDeleteForm($group); + $editForm = $this->createForm('Wallabag\GroupBundle\Form\GroupType', $group); + $editForm->handleRequest($request); + + if ($editForm->isSubmitted() && $editForm->isValid()) { + $em = $this->getDoctrine()->getManager(); + $em->persist($group); + $em->flush(); + + $this->get('session')->getFlashBag()->add( + 'notice', + $this->get('translator')->trans('flashes.group.notice.updated', ['%name%' => $group->getName()]) + ); + + return $this->redirectToRoute('group_edit', array('id' => $group->getId())); + } + + return $this->render('WallabagGroupBundle:Manage:edit.html.twig', array( + 'group' => $group, + 'edit_form' => $editForm->createView(), + 'delete_form' => $deleteForm->createView(), + )); + } + + /** + * Deletes a Group entity. + * + * @Route("/{id}", name="group_delete") + * @Method("DELETE") + */ + public function deleteAction(Request $request, Group $group) + { + $form = $this->createDeleteForm($group); + $form->handleRequest($request); + + if ($form->isSubmitted() && $form->isValid()) { + $this->get('session')->getFlashBag()->add( + 'notice', + $this->get('translator')->trans('flashes.group.notice.deleted', ['%name%' => $group->getName()]) + ); + + $em = $this->getDoctrine()->getManager(); + $em->remove($group); + $em->flush(); + } + + return $this->redirectToRoute('group_index'); + } + + /** + * Creates a form to delete a Group entity. + * + * @param Group $group The Group entity + * + * @return \Symfony\Component\Form\Form The form + */ + private function createDeleteForm(Group $group) + { + return $this->createFormBuilder() + ->setAction($this->generateUrl('group_delete', array('id' => $group->getId()))) + ->setMethod('DELETE') + ->getForm() + ; + } +} diff --git a/src/Wallabag/GroupBundle/Form/GroupType.php b/src/Wallabag/GroupBundle/Form/GroupType.php new file mode 100644 index 00000000..c2ad764b --- /dev/null +++ b/src/Wallabag/GroupBundle/Form/GroupType.php @@ -0,0 +1,39 @@ +add('name', TextType::class, [ + 'required' => false, + 'label' => 'group.form.name_label', + ]) + ->add('save', SubmitType::class, [ + 'label' => 'group.form.save', + ]) + ; + } + + /** + * @param OptionsResolver $resolver + */ + public function configureOptions(OptionsResolver $resolver) + { + $resolver->setDefaults(array( + 'data_class' => 'Wallabag\GroupBundle\Entity\Group', + )); + } +} diff --git a/src/Wallabag/GroupBundle/Form/NewGroupType.php b/src/Wallabag/GroupBundle/Form/NewGroupType.php new file mode 100644 index 00000000..29b20fe0 --- /dev/null +++ b/src/Wallabag/GroupBundle/Form/NewGroupType.php @@ -0,0 +1,37 @@ +add('name', TextType::class, [ + 'required' => true, + 'label' => 'group.form.name_label', + ]) + ->add('save', SubmitType::class, [ + 'label' => 'group.form.save', + ]) + ; + } + + public function configureOptions(OptionsResolver $resolver) + { + $resolver->setDefaults([ + 'data_class' => 'Wallabag\GroupBundle\Entity\Group', + ]); + } + + public function getBlockPrefix() + { + return 'new_group'; + } +} diff --git a/src/Wallabag/GroupBundle/Resources/views/Manage/edit.html.twig b/src/Wallabag/GroupBundle/Resources/views/Manage/edit.html.twig new file mode 100644 index 00000000..7de68c35 --- /dev/null +++ b/src/Wallabag/GroupBundle/Resources/views/Manage/edit.html.twig @@ -0,0 +1,44 @@ +{% extends "WallabagCoreBundle::layout.html.twig" %} + +{% block title %}{{ 'group.page_title'|trans }}{% endblock %} + +{% block content %} + +
    +
    +
    +
    +
    +

    {{ 'group.edit_group'|trans }}

    + +
    + {{ form_start(edit_form) }} + {{ form_errors(edit_form) }} + +
    +
    + {{ form_label(edit_form.name) }} + {{ form_errors(edit_form.name) }} + {{ form_widget(edit_form.name) }} +
    +
    + +
    + + {{ form_widget(edit_form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} + {{ form_widget(edit_form._token) }} + +

    + {{ form_start(delete_form) }} + + {{ form_end(delete_form) }} +

    +

    {{ 'group.form.back_to_list'|trans }}

    +
    +
    +
    +
    +
    +
    + +{% endblock %} diff --git a/src/Wallabag/GroupBundle/Resources/views/Manage/index.html.twig b/src/Wallabag/GroupBundle/Resources/views/Manage/index.html.twig new file mode 100644 index 00000000..ce2a4556 --- /dev/null +++ b/src/Wallabag/GroupBundle/Resources/views/Manage/index.html.twig @@ -0,0 +1,44 @@ +{% extends "WallabagCoreBundle::layout.html.twig" %} + +{% block title %}{{ 'group.page_title'|trans }}{% endblock %} + +{% block content %} + +
    +
    +
    +
    +
    +

    {{ 'group.description'|trans|raw }}

    + + + + + + + + + + + {% for group in groups %} + + + + + + {% endfor %} + +
    {{ 'group.form.name_label'|trans }}{{ 'group.form.roles_label'|trans }}{{ 'group.list.actions'|trans }}
    {{ group.name }} + {{ 'group.list.edit_action'|trans }} +
    +
    +

    + {{ 'group.list.create_new_one'|trans }} +

    +
    +
    +
    +
    +
    + +{% endblock %} diff --git a/src/Wallabag/GroupBundle/Resources/views/Manage/new.html.twig b/src/Wallabag/GroupBundle/Resources/views/Manage/new.html.twig new file mode 100644 index 00000000..3f1c2ad5 --- /dev/null +++ b/src/Wallabag/GroupBundle/Resources/views/Manage/new.html.twig @@ -0,0 +1,37 @@ +{% extends "WallabagCoreBundle::layout.html.twig" %} + +{% block title %}{{ 'group.page_title'|trans }}{% endblock %} + +{% block content %} + +
    +
    +
    +
    +
    +

    {{ 'group.new_group'|trans }}

    + +
    + {{ form_start(form) }} + {{ form_errors(form) }} + +
    +
    + {{ form_label(form.name) }} + {{ form_errors(form.name) }} + {{ form_widget(form.name) }} +
    +
    + + {{ form_widget(form.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }} + {{ form_rest(form) }} + +

    {{ 'group.form.back_to_list'|trans }}

    +
    +
    +
    +
    +
    +
    + +{% endblock %} -- cgit v1.2.3