aboutsummaryrefslogtreecommitdiffstats
path: root/web_src/js/features/common-global.js
diff options
context:
space:
mode:
Diffstat (limited to 'web_src/js/features/common-global.js')
-rw-r--r--web_src/js/features/common-global.js21
1 files changed, 18 insertions, 3 deletions
diff --git a/web_src/js/features/common-global.js b/web_src/js/features/common-global.js
index eb21a4bb93..57fd549019 100644
--- a/web_src/js/features/common-global.js
+++ b/web_src/js/features/common-global.js
@@ -44,13 +44,28 @@ export function initFootLanguageMenu() {
export function initGlobalEnterQuickSubmit() {
- $('.js-quick-submit').on('keydown', function (e) {
- if (((e.ctrlKey && !e.altKey) || e.metaKey) && (e.keyCode === 13 || e.keyCode === 10)) {
- $(this).closest('form').trigger('submit');
+ $(document).on('keydown', '.js-quick-submit', (e) => {
+ if (((e.ctrlKey && !e.altKey) || e.metaKey) && (e.key === 'Enter')) {
+ handleGlobalEnterQuickSubmit(e.target);
+ return false;
}
});
}
+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