mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-07-08 09:56:14 +00:00
Inject personPerTicket
parameter into EditTicketController and expose it to the frontend via edit.html.twig
. Refactor related type definitions.
This commit is contained in:
parent
42d6c9e672
commit
afa5edc1d8
@ -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,
|
||||
]
|
||||
)
|
||||
);
|
||||
|
@ -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<T extends "ticket_ticket:simple"|"ticket_ticket:extended" = "ticket_ticket:simple"> {
|
||||
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;
|
||||
|
@ -9,6 +9,7 @@ import { store } from "./store";
|
||||
declare global {
|
||||
interface Window {
|
||||
initialTicket: string;
|
||||
ticketPersonPerTicket: 'one'|'multi';
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -9,6 +9,7 @@
|
||||
{{ parent() }}
|
||||
<script type="text/javascript">
|
||||
window.initialTicket = "{{ ticket|serialize('json', {'groups': 'read'})|escape('js') }}";
|
||||
window.ticketPersonPerTicket = "{{ personPerTicket|escape('js') }}";
|
||||
</script>
|
||||
{{ encore_entry_script_tags('vue_ticket_app') }}
|
||||
{% endblock %}
|
||||
|
Loading…
x
Reference in New Issue
Block a user