class ProcedureValidationPage { constructor(procedureValidationRoute, datatable) { this.procedureValidationRoute = procedureValidationRoute; this.datatable = datatable; this.initialize(); } initialize() { document.addEventListener("DOMContentLoaded", () => { document.addEventListener("datatable-ready", () => { this.datatable.order([2, 'desc']).draw(); }) document.addEventListener('click', this.onClick.bind(this)); }); } /** * @param {PointerEvent} event */ onClick(event) { let target = event.target; let element; if (element = target.closest('[data-action]')) { if (element.dataset.action === 'validate-procedure') { this.setProcedure(element, 'validated', element.dataset.procedureId); } if (element.dataset.action === 'reject-procedure') { this.setProcedure(element, 'rejected', element.dataset.procedureId); } event.stopImmediatePropagation(); event.preventDefault(); return false; } return true; } setProcedure(item, action, id) { let route = this.procedureValidationRoute.replace('ACTION', action).replace('ID', id); app.needConfirmationClickOnURL(route, null, null, item.dataset.confirmContent ?? null) } }