50 lines
1.7 KiB
TypeScript
50 lines
1.7 KiB
TypeScript
import type { SweetAlertResult } from "sweetalert2";
|
|
import sweetalert from "../../modules/sweetalertConfirm";
|
|
|
|
window.addEventListener("DOMContentLoaded", () => {
|
|
/**
|
|
* Popup delete item.
|
|
*/
|
|
const elements = document.getElementsByClassName("confirmDeleteTS") as HTMLCollectionOf<Element>;
|
|
|
|
for (const element of elements) {
|
|
element.addEventListener("submit", function (e) {
|
|
e.preventDefault();
|
|
const el = e.target;
|
|
if (!el || !(el instanceof HTMLFormElement)) {
|
|
throw new Error(
|
|
"confirmDoneJS can only be executed on an exising form"
|
|
);
|
|
}
|
|
|
|
const event = e as SubmitEvent;
|
|
let submitter: HTMLButtonElement | null = null;
|
|
|
|
if (event.submitter) {
|
|
submitter = event.submitter as HTMLButtonElement;
|
|
} else {
|
|
submitter = document.activeElement as HTMLButtonElement;
|
|
}
|
|
|
|
const tickets_number = submitter?.dataset.tickets ?? "0";
|
|
const invoices_number = submitter?.dataset.invoices ?? "0";
|
|
|
|
const message = `Toutes les données vont être perdues.
|
|
<br>Tickets concernés : ${tickets_number}
|
|
Devis concernées : ${invoices_number}`;
|
|
|
|
sweetalert.methods.confirm(
|
|
"Êtes-vous sûr ?",
|
|
message,
|
|
el as HTMLFormElement,
|
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
function (response: SweetAlertResult<any>) {
|
|
(el as HTMLFormElement).submit();
|
|
},
|
|
{ icon: "warning" },
|
|
true
|
|
);
|
|
return false;
|
|
});
|
|
}
|
|
});
|