From afa5edc1d8d866528a4d8a88c1fe8ea88af996ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Fri, 4 Jul 2025 15:32:31 +0200 Subject: [PATCH] Inject `personPerTicket` parameter into EditTicketController and expose it to the frontend via `edit.html.twig`. Refactor related type definitions. --- .../src/Controller/EditTicketController.php | 9 ++++++++- .../ChillTicketBundle/src/Resources/public/types.ts | 9 ++++----- .../src/Resources/public/vuejs/TicketApp/index.ts | 1 + .../src/Resources/views/Ticket/edit.html.twig | 1 + 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/Bundle/ChillTicketBundle/src/Controller/EditTicketController.php b/src/Bundle/ChillTicketBundle/src/Controller/EditTicketController.php index c9886759c..0510c49cf 100644 --- a/src/Bundle/ChillTicketBundle/src/Controller/EditTicketController.php +++ b/src/Bundle/ChillTicketBundle/src/Controller/EditTicketController.php @@ -12,15 +12,21 @@ declare(strict_types=1); namespace Chill\TicketBundle\Controller; use Chill\TicketBundle\Entity\Ticket; +use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; use Twig\Environment; class EditTicketController { + private string $personPerTicket; + public function __construct( private readonly Environment $templating, - ) {} + ParameterBagInterface $parameterBag, + ) { + $this->personPerTicket = $parameterBag->get('chill_ticket')['ticket']['person_per_ticket']; + } #[Route('/{_locale}/ticket/ticket/{id}/edit', name: 'chill_ticket_ticket_edit')] public function __invoke( @@ -31,6 +37,7 @@ class EditTicketController '@ChillTicket/Ticket/edit.html.twig', [ 'ticket' => $ticket, + 'personPerTicket' => $this->personPerTicket, ] ) ); diff --git a/src/Bundle/ChillTicketBundle/src/Resources/public/types.ts b/src/Bundle/ChillTicketBundle/src/Resources/public/types.ts index 4a244e9a4..0b327fed9 100644 --- a/src/Bundle/ChillTicketBundle/src/Resources/public/types.ts +++ b/src/Bundle/ChillTicketBundle/src/Resources/public/types.ts @@ -111,7 +111,6 @@ export type EmergencyStateEvent = TicketHistory< >; export type CallerStateEvent = TicketHistory<"set_caller", CallerState>; -// TODO : Remove add_person event from TicketHistoryLine export type TicketHistoryLine = | AddPersonEvent | CreateTicketEvent @@ -125,11 +124,7 @@ export type TicketHistoryLine = interface BaseTicket { type_extended: T; -} - -export interface TicketSimple extends BaseTicket<"ticket_ticket:simple"> { type: "ticket_ticket"; - type_extended: "ticket_ticket:simple"; id: number; externalRef: string; currentAddressees: UserGroupOrUser[]; @@ -140,6 +135,10 @@ export interface TicketSimple extends BaseTicket<"ticket_ticket:simple"> { caller: Person | Thirdparty | null; } +export interface TicketSimple extends BaseTicket<"ticket_ticket:simple"> { + type_extended: "ticket_ticket:simple"; +} + export interface Ticket extends BaseTicket<"ticket_ticket:extended"> { type_extended: "ticket_ticket:extended"; createdAt: DateTime | null; diff --git a/src/Bundle/ChillTicketBundle/src/Resources/public/vuejs/TicketApp/index.ts b/src/Bundle/ChillTicketBundle/src/Resources/public/vuejs/TicketApp/index.ts index df1074496..03696e52a 100644 --- a/src/Bundle/ChillTicketBundle/src/Resources/public/vuejs/TicketApp/index.ts +++ b/src/Bundle/ChillTicketBundle/src/Resources/public/vuejs/TicketApp/index.ts @@ -9,6 +9,7 @@ import { store } from "./store"; declare global { interface Window { initialTicket: string; + ticketPersonPerTicket: 'one'|'multi'; } } diff --git a/src/Bundle/ChillTicketBundle/src/Resources/views/Ticket/edit.html.twig b/src/Bundle/ChillTicketBundle/src/Resources/views/Ticket/edit.html.twig index 2b067304e..48e620a74 100644 --- a/src/Bundle/ChillTicketBundle/src/Resources/views/Ticket/edit.html.twig +++ b/src/Bundle/ChillTicketBundle/src/Resources/views/Ticket/edit.html.twig @@ -9,6 +9,7 @@ {{ parent() }} {{ encore_entry_script_tags('vue_ticket_app') }} {% endblock %}