mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 18:08:33 +02:00
make sure all keyboard shortcuts use utility methods to not break mobile frontend
This commit is contained in:
parent
493cd1a7e0
commit
f30eec7737
@ -45,7 +45,7 @@ function showInFullText(e) {
|
|||||||
|
|
||||||
$showInFullTextButton.click(showInFullText);
|
$showInFullTextButton.click(showInFullText);
|
||||||
|
|
||||||
$dialog.bind('keydown', 'ctrl+return', showInFullText);
|
utils.bindElShortcut($dialog, 'ctrl+return', showInFullText);
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
showDialog
|
showDialog
|
||||||
|
@ -53,7 +53,7 @@ async function sendForm() {
|
|||||||
|
|
||||||
$importButton.click(sendForm);
|
$importButton.click(sendForm);
|
||||||
|
|
||||||
$dialog.bind('keydown', 'ctrl+return', sendForm);
|
utils.bindElShortcut($dialog, 'ctrl+return', sendForm);
|
||||||
|
|
||||||
// for CKEditor integration (button on block toolbar)
|
// for CKEditor integration (button on block toolbar)
|
||||||
window.glob.importMarkdownInline = importMarkdownInline;
|
window.glob.importMarkdownInline = importMarkdownInline;
|
||||||
|
@ -127,7 +127,7 @@ async function showTables() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$query.bind('keydown', 'ctrl+return', execute);
|
utils.bindElShortcut($query, 'ctrl+return', execute);
|
||||||
|
|
||||||
$executeButton.click(execute);
|
$executeButton.click(execute);
|
||||||
|
|
||||||
|
@ -23,11 +23,11 @@ function registerEntrypoints() {
|
|||||||
jQuery.hotkeys.options.filterContentEditable = false;
|
jQuery.hotkeys.options.filterContentEditable = false;
|
||||||
jQuery.hotkeys.options.filterTextInputs = false;
|
jQuery.hotkeys.options.filterTextInputs = false;
|
||||||
|
|
||||||
utils.bindShortcut('ctrl+l', addLinkDialog.showDialog);
|
utils.bindGlobalShortcut('ctrl+l', addLinkDialog.showDialog);
|
||||||
utils.bindShortcut('ctrl+shift+l', addLinkDialog.showDialogForClone);
|
utils.bindGlobalShortcut('ctrl+shift+l', addLinkDialog.showDialogForClone);
|
||||||
|
|
||||||
$("#jump-to-note-dialog-button").click(jumpToNoteDialog.showDialog);
|
$("#jump-to-note-dialog-button").click(jumpToNoteDialog.showDialog);
|
||||||
utils.bindShortcut('ctrl+j', jumpToNoteDialog.showDialog);
|
utils.bindGlobalShortcut('ctrl+j', jumpToNoteDialog.showDialog);
|
||||||
|
|
||||||
$("#recent-changes-button").click(recentChangesDialog.showDialog);
|
$("#recent-changes-button").click(recentChangesDialog.showDialog);
|
||||||
|
|
||||||
@ -35,11 +35,11 @@ function registerEntrypoints() {
|
|||||||
$("#leave-protected-session-button").click(protectedSessionService.leaveProtectedSession);
|
$("#leave-protected-session-button").click(protectedSessionService.leaveProtectedSession);
|
||||||
|
|
||||||
$("#toggle-search-button").click(searchNotesService.toggleSearch);
|
$("#toggle-search-button").click(searchNotesService.toggleSearch);
|
||||||
utils.bindShortcut('ctrl+s', searchNotesService.toggleSearch);
|
utils.bindGlobalShortcut('ctrl+s', searchNotesService.toggleSearch);
|
||||||
|
|
||||||
const $noteTabContainer = $("#note-tab-container");
|
const $noteTabContainer = $("#note-tab-container");
|
||||||
$noteTabContainer.on("click", ".show-attributes-button", attributesDialog.showDialog);
|
$noteTabContainer.on("click", ".show-attributes-button", attributesDialog.showDialog);
|
||||||
utils.bindShortcut('alt+a', attributesDialog.showDialog);
|
utils.bindGlobalShortcut('alt+a', attributesDialog.showDialog);
|
||||||
|
|
||||||
$noteTabContainer.on("click", ".show-note-info-button", noteInfoDialog.showDialog);
|
$noteTabContainer.on("click", ".show-note-info-button", noteInfoDialog.showDialog);
|
||||||
|
|
||||||
@ -66,10 +66,10 @@ function registerEntrypoints() {
|
|||||||
$("#options-button").click(optionsDialog.showDialog);
|
$("#options-button").click(optionsDialog.showDialog);
|
||||||
|
|
||||||
$("#show-help-button").click(helpDialog.showDialog);
|
$("#show-help-button").click(helpDialog.showDialog);
|
||||||
utils.bindShortcut('f1', helpDialog.showDialog);
|
utils.bindGlobalShortcut('f1', helpDialog.showDialog);
|
||||||
|
|
||||||
$("#open-sql-console-button").click(sqlConsoleDialog.showDialog);
|
$("#open-sql-console-button").click(sqlConsoleDialog.showDialog);
|
||||||
utils.bindShortcut('alt+o', sqlConsoleDialog.showDialog);
|
utils.bindGlobalShortcut('alt+o', sqlConsoleDialog.showDialog);
|
||||||
|
|
||||||
$("#show-about-dialog-button").click(aboutDialog.showDialog);
|
$("#show-about-dialog-button").click(aboutDialog.showDialog);
|
||||||
|
|
||||||
@ -80,32 +80,32 @@ function registerEntrypoints() {
|
|||||||
|
|
||||||
if (utils.isMac()) {
|
if (utils.isMac()) {
|
||||||
// Mac has a different history navigation shortcuts - https://github.com/zadam/trilium/issues/376
|
// Mac has a different history navigation shortcuts - https://github.com/zadam/trilium/issues/376
|
||||||
utils.bindShortcut('meta+left', window.history.back);
|
utils.bindGlobalShortcut('meta+left', window.history.back);
|
||||||
utils.bindShortcut('meta+right', window.history.forward);
|
utils.bindGlobalShortcut('meta+right', window.history.forward);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
utils.bindShortcut('alt+left', window.history.back);
|
utils.bindGlobalShortcut('alt+left', window.history.back);
|
||||||
utils.bindShortcut('alt+right', window.history.forward);
|
utils.bindGlobalShortcut('alt+right', window.history.forward);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
utils.bindShortcut('alt+m', e => {
|
utils.bindGlobalShortcut('alt+m', e => {
|
||||||
$(".hide-toggle").toggle();
|
$(".hide-toggle").toggle();
|
||||||
$("#container").toggleClass("distraction-free-mode");
|
$("#container").toggleClass("distraction-free-mode");
|
||||||
});
|
});
|
||||||
|
|
||||||
// hide (toggle) everything except for the note content for distraction free writing
|
// hide (toggle) everything except for the note content for distraction free writing
|
||||||
utils.bindShortcut('alt+t', e => {
|
utils.bindGlobalShortcut('alt+t', e => {
|
||||||
const date = new Date();
|
const date = new Date();
|
||||||
const dateString = utils.formatDateTime(date);
|
const dateString = utils.formatDateTime(date);
|
||||||
|
|
||||||
linkService.addTextToEditor(dateString);
|
linkService.addTextToEditor(dateString);
|
||||||
});
|
});
|
||||||
|
|
||||||
utils.bindShortcut('f5', utils.reloadApp);
|
utils.bindGlobalShortcut('f5', utils.reloadApp);
|
||||||
|
|
||||||
$("#reload-frontend-button").click(utils.reloadApp);
|
$("#reload-frontend-button").click(utils.reloadApp);
|
||||||
utils.bindShortcut('ctrl+r', utils.reloadApp);
|
utils.bindGlobalShortcut('ctrl+r', utils.reloadApp);
|
||||||
|
|
||||||
$("#open-dev-tools-button").toggle(utils.isElectron());
|
$("#open-dev-tools-button").toggle(utils.isElectron());
|
||||||
|
|
||||||
@ -116,7 +116,7 @@ function registerEntrypoints() {
|
|||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
utils.bindShortcut('ctrl+shift+i', openDevTools);
|
utils.bindGlobalShortcut('ctrl+shift+i', openDevTools);
|
||||||
$("#open-dev-tools-button").click(openDevTools);
|
$("#open-dev-tools-button").click(openDevTools);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -141,7 +141,7 @@ function registerEntrypoints() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (utils.isElectron()) {
|
if (utils.isElectron()) {
|
||||||
utils.bindShortcut('ctrl+f', () => {
|
utils.bindGlobalShortcut('ctrl+f', () => {
|
||||||
findInPage.openFindWindow();
|
findInPage.openFindWindow();
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@ -161,7 +161,7 @@ function registerEntrypoints() {
|
|||||||
|
|
||||||
$("#toggle-fullscreen-button").click(toggleFullscreen);
|
$("#toggle-fullscreen-button").click(toggleFullscreen);
|
||||||
|
|
||||||
utils.bindShortcut('f11', toggleFullscreen);
|
utils.bindGlobalShortcut('f11', toggleFullscreen);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// outside of electron this is handled by the browser
|
// outside of electron this is handled by the browser
|
||||||
@ -169,8 +169,8 @@ function registerEntrypoints() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (utils.isElectron()) {
|
if (utils.isElectron()) {
|
||||||
utils.bindShortcut('ctrl+-', zoomService.decreaseZoomFactor);
|
utils.bindGlobalShortcut('ctrl+-', zoomService.decreaseZoomFactor);
|
||||||
utils.bindShortcut('ctrl+=', zoomService.increaseZoomFactor);
|
utils.bindGlobalShortcut('ctrl+=', zoomService.increaseZoomFactor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ function FrontendScriptApi(startNote, currentNote, originEntity = null, tabConte
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (opts.shortcut) {
|
if (opts.shortcut) {
|
||||||
$(document).bind('keydown', opts.shortcut, opts.action);
|
utils.bindGlobalShortcut(opts.shortcut, opts.action);
|
||||||
|
|
||||||
button.attr("title", "Shortcut " + opts.shortcut);
|
button.attr("title", "Shortcut " + opts.shortcut);
|
||||||
}
|
}
|
||||||
|
@ -5,12 +5,12 @@ import utils from "./utils.js";
|
|||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
if (utils.isElectron() && utils.isMac()) {
|
if (utils.isElectron() && utils.isMac()) {
|
||||||
utils.bindShortcut('meta+c', () => exec("copy"));
|
utils.bindGlobalShortcut('meta+c', () => exec("copy"));
|
||||||
utils.bindShortcut('meta+v', () => exec('paste'));
|
utils.bindGlobalShortcut('meta+v', () => exec('paste'));
|
||||||
utils.bindShortcut('meta+x', () => exec('cut'));
|
utils.bindGlobalShortcut('meta+x', () => exec('cut'));
|
||||||
utils.bindShortcut('meta+a', () => exec('selectAll'));
|
utils.bindGlobalShortcut('meta+a', () => exec('selectAll'));
|
||||||
utils.bindShortcut('meta+z', () => exec('undo'));
|
utils.bindGlobalShortcut('meta+z', () => exec('undo'));
|
||||||
utils.bindShortcut('meta+y', () => exec('redo'));
|
utils.bindGlobalShortcut('meta+y', () => exec('redo'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -457,17 +457,17 @@ $(tabRow.el).on('contextmenu', '.note-tab', e => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
if (utils.isElectron()) {
|
if (utils.isElectron()) {
|
||||||
utils.bindShortcut('ctrl+t', () => {
|
utils.bindGlobalShortcut('ctrl+t', () => {
|
||||||
openEmptyTab();
|
openEmptyTab();
|
||||||
});
|
});
|
||||||
|
|
||||||
utils.bindShortcut('ctrl+w', () => {
|
utils.bindGlobalShortcut('ctrl+w', () => {
|
||||||
if (tabRow.activeTabEl) {
|
if (tabRow.activeTabEl) {
|
||||||
tabRow.removeTab(tabRow.activeTabEl);
|
tabRow.removeTab(tabRow.activeTabEl);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
utils.bindShortcut('ctrl+tab', () => {
|
utils.bindGlobalShortcut('ctrl+tab', () => {
|
||||||
const nextTab = tabRow.nextTabEl;
|
const nextTab = tabRow.nextTabEl;
|
||||||
|
|
||||||
if (nextTab) {
|
if (nextTab) {
|
||||||
@ -475,7 +475,7 @@ if (utils.isElectron()) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
utils.bindShortcut('ctrl+shift+tab', () => {
|
utils.bindGlobalShortcut('ctrl+shift+tab', () => {
|
||||||
const prevTab = tabRow.previousTabEl;
|
const prevTab = tabRow.previousTabEl;
|
||||||
|
|
||||||
if (prevTab) {
|
if (prevTab) {
|
||||||
|
@ -83,7 +83,7 @@ class TabContext {
|
|||||||
|
|
||||||
if (utils.isDesktop()) {
|
if (utils.isDesktop()) {
|
||||||
// keyboard plugin is not loaded in mobile
|
// keyboard plugin is not loaded in mobile
|
||||||
this.$noteTitle.bind('keydown', 'return', () => {
|
utils.bindElShortcut(this.$noteTitle, 'return', () => {
|
||||||
this.getComponent().focus();
|
this.getComponent().focus();
|
||||||
|
|
||||||
return false; // to not propagate the enter into the editor (causes issues with codemirror)
|
return false; // to not propagate the enter into the editor (causes issues with codemirror)
|
||||||
|
@ -769,7 +769,7 @@ messagingService.subscribeToSyncMessages(syncData => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
utils.bindShortcut('ctrl+o', async () => {
|
utils.bindGlobalShortcut('ctrl+o', async () => {
|
||||||
const node = getActiveNode();
|
const node = getActiveNode();
|
||||||
const parentNoteId = node.data.parentNoteId;
|
const parentNoteId = node.data.parentNoteId;
|
||||||
const isProtected = await treeUtils.getParentProtectedStatus(node);
|
const isProtected = await treeUtils.getParentProtectedStatus(node);
|
||||||
@ -815,9 +815,9 @@ async function reloadNote(noteId) {
|
|||||||
|
|
||||||
window.glob.createNoteInto = createNoteInto;
|
window.glob.createNoteInto = createNoteInto;
|
||||||
|
|
||||||
utils.bindShortcut('ctrl+p', createNoteInto);
|
utils.bindGlobalShortcut('ctrl+p', createNoteInto);
|
||||||
|
|
||||||
utils.bindShortcut('ctrl+.', scrollToActiveNote);
|
utils.bindGlobalShortcut('ctrl+.', scrollToActiveNote);
|
||||||
|
|
||||||
$(window).bind('hashchange', async function() {
|
$(window).bind('hashchange', async function() {
|
||||||
if (isNotePathInAddress()) {
|
if (isNotePathInAddress()) {
|
||||||
@ -845,7 +845,7 @@ $tree.on('mousedown', '.fancytree-title', e => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
utils.bindShortcut('alt+c', () => collapseTree()); // don't use shortened form since collapseTree() accepts argument
|
utils.bindGlobalShortcut('alt+c', () => collapseTree()); // don't use shortened form since collapseTree() accepts argument
|
||||||
$collapseTreeButton.click(() => collapseTree());
|
$collapseTreeButton.click(() => collapseTree());
|
||||||
|
|
||||||
$createTopLevelNoteButton.click(createNewTopLevelNote);
|
$createTopLevelNoteButton.click(createNewTopLevelNote);
|
||||||
|
@ -129,7 +129,7 @@ function randomString(len) {
|
|||||||
return text;
|
return text;
|
||||||
}
|
}
|
||||||
|
|
||||||
function bindShortcut(keyboardShortcut, handler) {
|
function bindGlobalShortcut(keyboardShortcut, handler) {
|
||||||
bindElShortcut($(document), keyboardShortcut, handler);
|
bindElShortcut($(document), keyboardShortcut, handler);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -221,7 +221,7 @@ export default {
|
|||||||
download,
|
download,
|
||||||
toObject,
|
toObject,
|
||||||
randomString,
|
randomString,
|
||||||
bindShortcut,
|
bindGlobalShortcut,
|
||||||
bindElShortcut,
|
bindElShortcut,
|
||||||
isMobile,
|
isMobile,
|
||||||
isDesktop,
|
isDesktop,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user