mirror of https://github.com/go-gitea/gitea.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.5 KiB
35 lines
1.5 KiB
import {applyAreYouSure, initAreYouSure} from '../vendor/jquery.are-you-sure.ts'; |
|
import {handleGlobalEnterQuickSubmit} from './comp/QuickSubmit.ts'; |
|
import {queryElems} from '../utils/dom.ts'; |
|
import {initComboMarkdownEditor} from './comp/ComboMarkdownEditor.ts'; |
|
|
|
export function initGlobalFormDirtyLeaveConfirm() { |
|
initAreYouSure(window.jQuery); |
|
// Warn users that try to leave a page after entering data into a form. |
|
// Except on sign-in pages, and for forms marked as 'ignore-dirty'. |
|
if (!document.querySelector('.page-content.user.signin')) { |
|
applyAreYouSure('form:not(.ignore-dirty)'); |
|
} |
|
} |
|
|
|
export function initGlobalEnterQuickSubmit() { |
|
document.addEventListener('keydown', (e) => { |
|
if (e.key !== 'Enter') return; |
|
const hasCtrlOrMeta = ((e.ctrlKey || e.metaKey) && !e.altKey); |
|
if (hasCtrlOrMeta && (e.target as HTMLElement).matches('textarea')) { |
|
if (handleGlobalEnterQuickSubmit(e.target as HTMLElement)) { |
|
e.preventDefault(); |
|
} |
|
} else if ((e.target as HTMLElement).matches('input') && !(e.target as HTMLElement).closest('form')) { |
|
// input in a normal form could handle Enter key by default, so we only handle the input outside a form |
|
// eslint-disable-next-line unicorn/no-lonely-if |
|
if (handleGlobalEnterQuickSubmit(e.target as HTMLElement)) { |
|
e.preventDefault(); |
|
} |
|
} |
|
}); |
|
} |
|
|
|
export function initGlobalComboMarkdownEditor() { |
|
queryElems<HTMLElement>(document, '.combo-markdown-editor:not(.custom-init)', (el) => initComboMarkdownEditor(el)); |
|
}
|
|
|