diff --git a/app/javascript/initializers/forms.js b/app/javascript/initializers/forms.js index ef0b4bc..0371db1 100644 --- a/app/javascript/initializers/forms.js +++ b/app/javascript/initializers/forms.js @@ -1,10 +1,17 @@ -// the confirm action opens front-dialog +/** the confirm action opens the 'front-dialog' by default, customize if needed! */ +Turbo.config.forms.confirm_dialog_id = 'front-dialog' +Turbo.config.forms.confirm_dialog_content_selector = '[data-dialog-content]' + +/** content might be either a String or a Boolean */ Turbo.config.forms.confirm = (content) => { - const dialog = document.getElementById('front-dialog') - const dialogContent = dialog.querySelector('[data-dialog-content]') - dialogContent.innerHTML = content + if (content.toString() == 'false') return new Promise((resolve) => { resolve(true) }) + if (content.toString() == 'true') content = '' + + const dialog = document.getElementById(Turbo.config.forms.confirm_dialog_id) + dialog.querySelector(Turbo.config.forms.confirm_dialog_content_selector).innerHTML = content dialog.showModal() + return new Promise((resolve) => { dialog.addEventListener( 'close', @@ -13,7 +20,11 @@ Turbo.config.forms.confirm = (content) => { }) } +/** dialogId might be either a String or a Boolean */ Turbo.config.forms.showModal = (dialogId) => { + if (dialogId.toString() == 'false') return + if (dialogId.toString() == 'true') dialogId = Turbo.config.forms.confirm_dialog_id + const dialog = document.getElementById(dialogId) if (dialog) dialog.showModal() else console.warn(`dialog id=<${dialogId}> not found!`) diff --git a/app/views/edge/index.html.erb b/app/views/edge/index.html.erb index 3a1b8af..eb2122e 100644 --- a/app/views/edge/index.html.erb +++ b/app/views/edge/index.html.erb @@ -2,17 +2,23 @@