From 42d9a6a980beab35311a7242b4d4c7f2736c64a0 Mon Sep 17 00:00:00 2001 From: wxiaoguang Date: Fri, 5 Aug 2022 18:08:29 +0800 Subject: [PATCH] move handleGlobalEnterQuickSubmit into a separate file to avoid cycle-import (#20679) --- web_src/js/features/common-global.js | 15 +-------------- web_src/js/features/comp/EasyMDE.js | 2 +- web_src/js/features/comp/QuickSubmit.js | 15 +++++++++++++++ 3 files changed, 17 insertions(+), 15 deletions(-) create mode 100644 web_src/js/features/comp/QuickSubmit.js diff --git a/web_src/js/features/common-global.js b/web_src/js/features/common-global.js index 3ce74442a0..025b44d87d 100644 --- a/web_src/js/features/common-global.js +++ b/web_src/js/features/common-global.js @@ -5,6 +5,7 @@ import createDropzone from './dropzone.js'; import {initCompColorPicker} from './comp/ColorPicker.js'; import {showGlobalErrorMessage} from '../bootstrap.js'; import {attachDropdownAria} from './aria.js'; +import {handleGlobalEnterQuickSubmit} from './comp/QuickSubmit.js'; const {appUrl, csrfToken} = window.config; @@ -53,20 +54,6 @@ export function initGlobalEnterQuickSubmit() { }); } -export function handleGlobalEnterQuickSubmit(target) { - const $target = $(target); - const $form = $(target).closest('form'); - if ($form.length) { - // here use the event to trigger the submit event (instead of calling `submit()` method directly) - // otherwise the `areYouSure` handler won't be executed, then there will be an annoying "confirm to leave" dialog - $form.trigger('submit'); - } else { - // if no form, then the editor is for an AJAX request, dispatch an event to the target, let the target's event handler to do the AJAX request. - // the 'ce-' prefix means this is a CustomEvent - $target.trigger('ce-quick-submit'); - } -} - export function initGlobalButtonClickOnEnter() { $(document).on('keypress', '.ui.button', (e) => { if (e.keyCode === 13 || e.keyCode === 32) { // enter key or space bar diff --git a/web_src/js/features/comp/EasyMDE.js b/web_src/js/features/comp/EasyMDE.js index 7c1db9a998..f1b4b0efc3 100644 --- a/web_src/js/features/comp/EasyMDE.js +++ b/web_src/js/features/comp/EasyMDE.js @@ -1,6 +1,6 @@ import $ from 'jquery'; import attachTribute from '../tribute.js'; -import {handleGlobalEnterQuickSubmit} from '../common-global.js'; +import {handleGlobalEnterQuickSubmit} from './QuickSubmit.js'; /** * @returns {EasyMDE} diff --git a/web_src/js/features/comp/QuickSubmit.js b/web_src/js/features/comp/QuickSubmit.js new file mode 100644 index 0000000000..43424a949f --- /dev/null +++ b/web_src/js/features/comp/QuickSubmit.js @@ -0,0 +1,15 @@ +import $ from 'jquery'; + +export function handleGlobalEnterQuickSubmit(target) { + const $target = $(target); + const $form = $(target).closest('form'); + if ($form.length) { + // here use the event to trigger the submit event (instead of calling `submit()` method directly) + // otherwise the `areYouSure` handler won't be executed, then there will be an annoying "confirm to leave" dialog + $form.trigger('submit'); + } else { + // if no form, then the editor is for an AJAX request, dispatch an event to the target, let the target's event handler to do the AJAX request. + // the 'ce-' prefix means this is a CustomEvent + $target.trigger('ce-quick-submit'); + } +}