Move shortcuts instantiation into behaviors
This commit is contained in:
parent
2aa29872a6
commit
380001649b
3 changed files with 37 additions and 32 deletions
|
@ -7,9 +7,11 @@ import './details_behavior';
|
|||
import installGlEmojiElement from './gl_emoji';
|
||||
import './quick_submit';
|
||||
import './requires_input';
|
||||
import initPageShortcuts from './shortcuts';
|
||||
import './toggler_behavior';
|
||||
import './preview_markdown';
|
||||
|
||||
installGlEmojiElement();
|
||||
initCopyAsGFM();
|
||||
initCopyToClipboard();
|
||||
initPageShortcuts();
|
||||
|
|
35
app/assets/javascripts/behaviors/shortcuts.js
Normal file
35
app/assets/javascripts/behaviors/shortcuts.js
Normal file
|
@ -0,0 +1,35 @@
|
|||
import Shortcuts from '../shortcuts';
|
||||
|
||||
export default function initPageShortcuts() {
|
||||
const { page } = document.body.dataset;
|
||||
const pagesWithCustomShortcuts = [
|
||||
'projects:activity',
|
||||
'projects:artifacts:browse',
|
||||
'projects:artifacts:file',
|
||||
'projects:blame:show',
|
||||
'projects:blob:show',
|
||||
'projects:commit:show',
|
||||
'projects:commits:show',
|
||||
'projects:find_file:show',
|
||||
'projects:issues:edit',
|
||||
'projects:issues:index',
|
||||
'projects:issues:new',
|
||||
'projects:issues:show',
|
||||
'projects:merge_requests:creations:diffs',
|
||||
'projects:merge_requests:creations:new',
|
||||
'projects:merge_requests:edit',
|
||||
'projects:merge_requests:index',
|
||||
'projects:merge_requests:show',
|
||||
'projects:network:show',
|
||||
'projects:show',
|
||||
'projects:tree:show',
|
||||
'groups:show',
|
||||
];
|
||||
|
||||
// the pages above have their own shortcuts sub-classes instantiated elsewhere
|
||||
// TODO: replace this whitelist with something more automated/maintainable
|
||||
if (page && !pagesWithCustomShortcuts.includes(page)) {
|
||||
return new Shortcuts();
|
||||
}
|
||||
return false;
|
||||
}
|
|
@ -3,37 +3,6 @@
|
|||
import $ from 'jquery';
|
||||
import GfmAutoComplete from './gfm_auto_complete';
|
||||
import { convertPermissionToBoolean } from './lib/utils/common_utils';
|
||||
import Shortcuts from './shortcuts';
|
||||
|
||||
function initPageShortcuts(page) {
|
||||
const pagesWithCustomShortcuts = [
|
||||
'projects:activity',
|
||||
'projects:artifacts:browse',
|
||||
'projects:artifacts:file',
|
||||
'projects:blame:show',
|
||||
'projects:blob:show',
|
||||
'projects:commit:show',
|
||||
'projects:commits:show',
|
||||
'projects:find_file:show',
|
||||
'projects:issues:edit',
|
||||
'projects:issues:index',
|
||||
'projects:issues:new',
|
||||
'projects:issues:show',
|
||||
'projects:merge_requests:creations:diffs',
|
||||
'projects:merge_requests:creations:new',
|
||||
'projects:merge_requests:edit',
|
||||
'projects:merge_requests:index',
|
||||
'projects:merge_requests:show',
|
||||
'projects:network:show',
|
||||
'projects:show',
|
||||
'projects:tree:show',
|
||||
'groups:show',
|
||||
];
|
||||
|
||||
if (pagesWithCustomShortcuts.indexOf(page) === -1) {
|
||||
new Shortcuts();
|
||||
}
|
||||
}
|
||||
|
||||
function initGFMInput() {
|
||||
$('.js-gfm-input:not(.js-vue-textarea)').each((i, el) => {
|
||||
|
@ -57,7 +26,6 @@ function initGFMInput() {
|
|||
export default () => {
|
||||
const page = $('body').attr('data-page');
|
||||
if (page) {
|
||||
initPageShortcuts(page);
|
||||
initGFMInput();
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue