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;
|
namespace Chill\TicketBundle\Controller;
|
||||||
|
|
||||||
use Chill\TicketBundle\Entity\Ticket;
|
use Chill\TicketBundle\Entity\Ticket;
|
||||||
|
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
use Symfony\Component\Routing\Annotation\Route;
|
use Symfony\Component\Routing\Annotation\Route;
|
||||||
use Twig\Environment;
|
use Twig\Environment;
|
||||||
|
|
||||||
class EditTicketController
|
class EditTicketController
|
||||||
{
|
{
|
||||||
|
private string $personPerTicket;
|
||||||
|
|
||||||
public function __construct(
|
public function __construct(
|
||||||
private readonly Environment $templating,
|
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')]
|
#[Route('/{_locale}/ticket/ticket/{id}/edit', name: 'chill_ticket_ticket_edit')]
|
||||||
public function __invoke(
|
public function __invoke(
|
||||||
@ -31,6 +37,7 @@ class EditTicketController
|
|||||||
'@ChillTicket/Ticket/edit.html.twig',
|
'@ChillTicket/Ticket/edit.html.twig',
|
||||||
[
|
[
|
||||||
'ticket' => $ticket,
|
'ticket' => $ticket,
|
||||||
|
'personPerTicket' => $this->personPerTicket,
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -111,7 +111,6 @@ export type EmergencyStateEvent = TicketHistory<
|
|||||||
>;
|
>;
|
||||||
export type CallerStateEvent = TicketHistory<"set_caller", CallerState>;
|
export type CallerStateEvent = TicketHistory<"set_caller", CallerState>;
|
||||||
|
|
||||||
// TODO : Remove add_person event from TicketHistoryLine
|
|
||||||
export type TicketHistoryLine =
|
export type TicketHistoryLine =
|
||||||
| AddPersonEvent
|
| AddPersonEvent
|
||||||
| CreateTicketEvent
|
| CreateTicketEvent
|
||||||
@ -125,11 +124,7 @@ export type TicketHistoryLine =
|
|||||||
|
|
||||||
interface BaseTicket<T extends "ticket_ticket:simple"|"ticket_ticket:extended" = "ticket_ticket:simple"> {
|
interface BaseTicket<T extends "ticket_ticket:simple"|"ticket_ticket:extended" = "ticket_ticket:simple"> {
|
||||||
type_extended: T;
|
type_extended: T;
|
||||||
}
|
|
||||||
|
|
||||||
export interface TicketSimple extends BaseTicket<"ticket_ticket:simple"> {
|
|
||||||
type: "ticket_ticket";
|
type: "ticket_ticket";
|
||||||
type_extended: "ticket_ticket:simple";
|
|
||||||
id: number;
|
id: number;
|
||||||
externalRef: string;
|
externalRef: string;
|
||||||
currentAddressees: UserGroupOrUser[];
|
currentAddressees: UserGroupOrUser[];
|
||||||
@ -140,6 +135,10 @@ export interface TicketSimple extends BaseTicket<"ticket_ticket:simple"> {
|
|||||||
caller: Person | Thirdparty | null;
|
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"> {
|
export interface Ticket extends BaseTicket<"ticket_ticket:extended"> {
|
||||||
type_extended: "ticket_ticket:extended";
|
type_extended: "ticket_ticket:extended";
|
||||||
createdAt: DateTime | null;
|
createdAt: DateTime | null;
|
||||||
|
@ -9,6 +9,7 @@ import { store } from "./store";
|
|||||||
declare global {
|
declare global {
|
||||||
interface Window {
|
interface Window {
|
||||||
initialTicket: string;
|
initialTicket: string;
|
||||||
|
ticketPersonPerTicket: 'one'|'multi';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
{{ parent() }}
|
{{ parent() }}
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
window.initialTicket = "{{ ticket|serialize('json', {'groups': 'read'})|escape('js') }}";
|
window.initialTicket = "{{ ticket|serialize('json', {'groups': 'read'})|escape('js') }}";
|
||||||
|
window.ticketPersonPerTicket = "{{ personPerTicket|escape('js') }}";
|
||||||
</script>
|
</script>
|
||||||
{{ encore_entry_script_tags('vue_ticket_app') }}
|
{{ encore_entry_script_tags('vue_ticket_app') }}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user