From 39e166eb5bfa9359b6cf45baba5d24120c1a9f44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Thu, 5 Jul 2018 16:37:59 +0200 Subject: [PATCH] back to the list keep the query parameters required by the list --- Controller/SingleTaskController.php | 14 ++++---- Menu/UserMenuBuilder.php | 26 +++++++++----- Resources/translations/messages.fr.yml | 3 +- Resources/views/SingleTask/_list.html.twig | 6 ++-- .../views/SingleTask/confirm_delete.html.twig | 2 +- Resources/views/SingleTask/edit.html.twig | 2 +- Resources/views/SingleTask/show.html.twig | 2 +- Templating/UI/CountNotificationTask.php | 36 ++++++++++++------- 8 files changed, 57 insertions(+), 34 deletions(-) diff --git a/Controller/SingleTaskController.php b/Controller/SingleTaskController.php index f163b57d0..58261f348 100644 --- a/Controller/SingleTaskController.php +++ b/Controller/SingleTaskController.php @@ -194,9 +194,10 @@ class SingleTaskController extends Controller $this->addFlash('success', $translator ->trans("The task has been updated")); - return $this->redirectToRoute('chill_task_singletask_list', [ - 'person_id' => $task->getPerson()->getId() - ]); + return $this->redirectToRoute( + 'chill_task_singletask_list', + $request->query->get('list_params', []) + ); } else { $this->addFlash('error', $translator->trans("This form contains errors")); @@ -277,9 +278,10 @@ class SingleTaskController extends Controller ->trans("The task has been successfully removed.")); return $this->redirect($this->generateUrl( - 'chill_task_singletask_list', array( - 'person_id' => $personId - ))); + 'chill_task_singletask_list', + $request->query->get('list_params', [ + 'person_id' => $person->getId() + ]))); } } diff --git a/Menu/UserMenuBuilder.php b/Menu/UserMenuBuilder.php index 3e07815a5..fe0588898 100644 --- a/Menu/UserMenuBuilder.php +++ b/Menu/UserMenuBuilder.php @@ -23,6 +23,7 @@ use Chill\TaskBundle\Templating\UI\CountNotificationTask; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use Chill\TaskBundle\Repository\SingleTaskRepository; use Symfony\Component\Translation\TranslatorInterface; +use Chill\MainBundle\Entity\User; /** * @@ -66,19 +67,28 @@ class UserMenuBuilder implements LocalMenuBuilderInterface public function buildMenu($menuId, MenuItem $menu, array $parameters) { - $number = $this->counter->countNotification($this->tokenStorage->getToken() - ->getUser()); + $user = $this->tokenStorage->getToken()->getUser(); + $ended = $this->counter->countNotificationEnded($user); + $warning = $this->counter->countNotificationWarning($user); + if ($ended > 0) { + $this->addItemInMenu($menu, $user, '%number% tasks over deadline', $ended, -15); + } + + if ($warning > 0) { + $this->addItemInMenu($menu, $user, '%number% tasks near deadline', $warning, -14); + } + } + + protected function addItemInMenu(MenuItem $menu, User $u, $message, $number, $order) + { if ($number > 0) { $menu->addChild( - $this->translator->transChoice('%number% tasks near deadline', $number), + $this->translator->transChoice($message, $number), [ 'route' => 'chill_task_singletask_list', 'routeParameters' => [ - 'user_id' => $this->tokenStorage - ->getToken() - ->getUser() - ->getId(), + 'user_id' => $u->getId(), 'status' => [ SingleTaskRepository::DATE_STATUS_WARNING, SingleTaskRepository::DATE_STATUS_ENDED @@ -87,7 +97,7 @@ class UserMenuBuilder implements LocalMenuBuilderInterface ] ]) ->setExtras([ - 'order'=> -15, + 'order'=> $order, 'icon' => 'exclamation-triangle', 'entryclass' => 'user_menu__entry--warning-entry' ]); diff --git a/Resources/translations/messages.fr.yml b/Resources/translations/messages.fr.yml index f08d6aa05..cd3ead95f 100644 --- a/Resources/translations/messages.fr.yml +++ b/Resources/translations/messages.fr.yml @@ -81,4 +81,5 @@ cancel: annuler 'The task has been updated': 'La tâche a été mise à jour' 'The transition is successfully applied': 'La transition a bien été effectuée' 'The transition could not be applied': "La transition n'a pas pu être appliquée" -'%number% tasks near deadline': '{0} Aucune tâche à échance|{1} Une tâche à échéance | ]1,Inf[ %count% tâches à échéance' +'%number% tasks over deadline': '{0} Aucune tâche dépassée|{1} Une tâche dépassée | ]1,Inf[ %count% tâches dépassée' +'%number% tasks near deadline': '{0} Aucune tâche en rappel|{1} Une tâche en rappel | ]1,Inf[ %count% tâches en rappel' diff --git a/Resources/views/SingleTask/_list.html.twig b/Resources/views/SingleTask/_list.html.twig index 6d969bf3e..b6c1ebdbc 100644 --- a/Resources/views/SingleTask/_list.html.twig +++ b/Resources/views/SingleTask/_list.html.twig @@ -65,16 +65,16 @@ {% endif %}
  • - +
  • {% if is_granted('CHILL_TASK_TASK_UPDATE', task) %}
  • - +
  • {% endif %} {% if is_granted('CHILL_TASK_TASK_DELETE', task) %}
  • - +
  • {% endif %} diff --git a/Resources/views/SingleTask/confirm_delete.html.twig b/Resources/views/SingleTask/confirm_delete.html.twig index 0dc726478..5e4fa4a0f 100644 --- a/Resources/views/SingleTask/confirm_delete.html.twig +++ b/Resources/views/SingleTask/confirm_delete.html.twig @@ -12,7 +12,7 @@ 'title' : 'Remove task'|trans, 'confirm_question' : 'Are you sure you want to remove the task about "%name%" ?'|trans({ '%name%' : person.firstname ~ ' ' ~ person.lastname } ), 'cancel_route' : 'chill_task_singletask_list', - 'cancel_parameters' : { 'person_id' : task.person.id, 'id' : task.id }, + 'cancel_parameters' : app.request.query.get('list_params', { } ), 'form' : delete_form } ) }} diff --git a/Resources/views/SingleTask/edit.html.twig b/Resources/views/SingleTask/edit.html.twig index e3b435df2..54ed69c14 100644 --- a/Resources/views/SingleTask/edit.html.twig +++ b/Resources/views/SingleTask/edit.html.twig @@ -41,7 +41,7 @@
  • - + {{ 'Cancel'|trans }}
  • diff --git a/Resources/views/SingleTask/show.html.twig b/Resources/views/SingleTask/show.html.twig index ff26334c0..f71d32d37 100644 --- a/Resources/views/SingleTask/show.html.twig +++ b/Resources/views/SingleTask/show.html.twig @@ -90,7 +90,7 @@