Browse Source

Ajout du reset

François Drouhard 1 year ago
parent
commit
166ec5e9a4

+ 11 - 0
src/Controller/AdminController.php

@@ -51,6 +51,17 @@ class AdminController extends AbstractController
         ]);
     }
 
+    #[Route('{id}/reset', name: 'app_admin_reset', methods: ['GET'])]
+    public function reset(Counter $counter): RedirectResponse
+    {
+        try {
+            $this->countdownStateMachine->apply($counter, Counter::TRANSITION_TO_READY);
+        } catch (LogicException $e) {
+
+        }
+        return $this->redirectToRoute('app_admin_index');
+    }
+
     #[Route('/{id}/start', name: 'app_admin_start', methods: ['GET'])]
     public function start(Counter $counter): RedirectResponse
     {

+ 2 - 1
src/Service/CounterManager.php

@@ -10,6 +10,7 @@ use Symfony\Component\HttpKernel\Event\ControllerEvent;
 use Symfony\Component\HttpKernel\KernelEvents;
 use Symfony\Component\Workflow\Attribute\AsCompletedListener;
 use Symfony\Component\Workflow\Attribute\AsEnteredListener;
+use Symfony\Component\Workflow\Attribute\AsTransitionListener;
 use Symfony\Component\Workflow\Event\Event;
 use Symfony\Component\Workflow\WorkflowInterface;
 
@@ -51,7 +52,7 @@ class CounterManager
         return;
     }
 
-    #[AsCompletedListener('countdown', Counter::TRANSITION_TO_READY)]
+    #[AsTransitionListener('countdown', Counter::TRANSITION_TO_READY)]
     public function toReady(Event $event): void
     {
         /** @var Counter $counter */

+ 5 - 1
templates/admin/_start_form.html.twig

@@ -1 +1,5 @@
-<a class="btn" href="{{ path('app_admin_start', {'id': counter.id})}}">{{ "start" | trans }}</a>
+{% if counter.state is same as 'ready' %}
+    <a class="btn" href="{{ path('app_admin_start', {'id': counter.id}) }}">{{ "start" | trans }}</a>
+{% elseif counter.state is same as 'completed' %}
+    <a class="btn" href="{{ path('app_admin_reset', {'id': counter.id}) }}">{{ "Reset" | trans }}</a>
+{% endif %}

+ 2 - 1
translations/messages.fr.yaml

@@ -12,4 +12,5 @@ id: id
 StartTime: Heure de départ
 EndTime: Heure de fin
 State: Statut
-TimeToLive: Temps de décompte
+TimeToLive: Temps de décompte
+Reset: Réinitialiser