class PatientsPage { constructor() { this.initialize(); } initialize() { document.addEventListener("DOMContentLoaded", () => { document.addEventListener('click', this.onClick.bind(this)); document.addEventListener('bag-update', (event) => { let bulkButton = document.getElementById("bulkActionMenuButton"); Commons.setClass(bulkButton, 'disabled', event.detail.bag.length === 0) }); }); } /** * @param {PointerEvent} event */ onClick(event) { let target = event.target let element; if ((element = target.closest('#ptable tbody tr td'))) { // location.href = $(this).find("[data-type=patient-record]").attr('href') } if ((element = target.closest('#bulkAction button'))) { PageNotifier.confirmDangerousAction( __('page.generic.confirmation_required'), element.dataset.confirmContent, ' ' + element.dataset.action, null ).then(result => this.confirmResponse( result, element.dataset.url, JSON.stringify(app.getWidget('Checkboxes').checkboxBags['patient-list']) )) return; } if ((element = target.closest(".action-item:not(.disabled)"))) { PageNotifier.confirmDangerousAction( __('page.generic.confirmation_required'), element.dataset.confirmContent, ).then(result => this.confirmResponse( result, element.dataset.url, null )) } } confirmResponse(result, url, data) { if (!result) { return; } app.toggleOverlay() Commons .postBody(url, data, () => commons.getDatatables().forEach(table => table.ajax.reload())) .finally(() => app.toggleOverlay()) } }