From a08390a500cefb118686ebbc9c2f5c7d59773c6a Mon Sep 17 00:00:00 2001 From: Jared Vititoe Date: Mon, 26 Jan 2026 11:41:33 -0500 Subject: [PATCH] added close modal keybinds for admin menu --- views/admin/CustomFieldsView.php | 14 ++++++++++++++ views/admin/RecurringTicketsView.php | 14 ++++++++++++++ views/admin/TemplatesView.php | 14 ++++++++++++++ views/admin/WorkflowDesignerView.php | 14 ++++++++++++++ 4 files changed, 56 insertions(+) diff --git a/views/admin/CustomFieldsView.php b/views/admin/CustomFieldsView.php index 8f4f8e9..c2e004f 100644 --- a/views/admin/CustomFieldsView.php +++ b/views/admin/CustomFieldsView.php @@ -169,6 +169,20 @@ document.getElementById('fieldModal').style.display = 'none'; } + // Close modal on ESC key + document.addEventListener('keydown', (e) => { + if (e.key === 'Escape') { + closeModal(); + } + }); + + // Close modal when clicking on backdrop (outside content) + document.getElementById('fieldModal').addEventListener('click', (e) => { + if (e.target.classList.contains('settings-modal')) { + closeModal(); + } + }); + function toggleOptionsField() { const type = document.getElementById('field_type').value; document.getElementById('options_row').style.display = type === 'select' ? 'block' : 'none'; diff --git a/views/admin/RecurringTicketsView.php b/views/admin/RecurringTicketsView.php index 9c2d920..ce464e1 100644 --- a/views/admin/RecurringTicketsView.php +++ b/views/admin/RecurringTicketsView.php @@ -203,6 +203,20 @@ document.getElementById('recurringModal').style.display = 'none'; } + // Close modal on ESC key + document.addEventListener('keydown', (e) => { + if (e.key === 'Escape') { + closeModal(); + } + }); + + // Close modal when clicking on backdrop (outside content) + document.getElementById('recurringModal').addEventListener('click', (e) => { + if (e.target.classList.contains('settings-modal')) { + closeModal(); + } + }); + function updateScheduleOptions() { const type = document.getElementById('schedule_type').value; const dayRow = document.getElementById('schedule_day_row'); diff --git a/views/admin/TemplatesView.php b/views/admin/TemplatesView.php index 1874b4d..a742de9 100644 --- a/views/admin/TemplatesView.php +++ b/views/admin/TemplatesView.php @@ -176,6 +176,20 @@ document.getElementById('templateModal').style.display = 'none'; } + // Close modal on ESC key + document.addEventListener('keydown', (e) => { + if (e.key === 'Escape') { + closeModal(); + } + }); + + // Close modal when clicking on backdrop (outside content) + document.getElementById('templateModal').addEventListener('click', (e) => { + if (e.target.classList.contains('settings-modal')) { + closeModal(); + } + }); + function saveTemplate(e) { e.preventDefault(); const data = { diff --git a/views/admin/WorkflowDesignerView.php b/views/admin/WorkflowDesignerView.php index 6a4cd5f..9342482 100644 --- a/views/admin/WorkflowDesignerView.php +++ b/views/admin/WorkflowDesignerView.php @@ -193,6 +193,20 @@ document.getElementById('workflowModal').style.display = 'none'; } + // Close modal on ESC key + document.addEventListener('keydown', (e) => { + if (e.key === 'Escape') { + closeModal(); + } + }); + + // Close modal when clicking on backdrop (outside content) + document.getElementById('workflowModal').addEventListener('click', (e) => { + if (e.target.classList.contains('settings-modal')) { + closeModal(); + } + }); + function saveTransition(e) { e.preventDefault(); const data = {