trilium/src/public/javascripts/dialogs/jump_to_note.js

59 lines
1.3 KiB
JavaScript
Raw Normal View History

"use strict";
2017-11-05 01:59:43 +08:00
const jumpToNote = (function() {
const $showDialogButton = $("#jump-to-note-button");
const $dialog = $("#jump-to-note-dialog");
const $autoComplete = $("#jump-to-note-autocomplete");
const $form = $("#jump-to-note-form");
2017-11-20 09:36:13 +08:00
async function showDialog() {
glob.activeDialog = $dialog;
2017-11-05 05:03:15 +08:00
$autoComplete.val('');
$dialog.dialog({
2017-11-05 01:59:43 +08:00
modal: true,
width: 800
});
2017-10-11 08:37:45 +08:00
await $autoComplete.autocomplete({
2018-03-25 09:39:15 +08:00
source: await stopWatch("building autocomplete", treeService.getAutocompleteItems),
2017-11-05 01:59:43 +08:00
minLength: 0
});
}
2017-11-20 11:31:30 +08:00
function getSelectedNotePath() {
const val = $autoComplete.val();
2017-11-20 11:31:30 +08:00
return link.getNodePathFromLabel(val);
}
function goToNote() {
const notePath = getSelectedNotePath();
2017-11-20 09:36:13 +08:00
if (notePath) {
2018-03-25 09:39:15 +08:00
treeService.activateNode(notePath);
2017-11-05 01:59:43 +08:00
$dialog.dialog('close');
2017-11-05 01:59:43 +08:00
}
2017-11-20 09:36:13 +08:00
}
2017-12-19 12:41:13 +08:00
$(document).bind('keydown', 'ctrl+j', e => {
showDialog();
e.preventDefault();
});
2017-11-20 09:36:13 +08:00
$form.submit(() => {
const action = $dialog.find("button:focus").val();
2017-11-20 09:36:13 +08:00
goToNote();
2017-11-05 01:59:43 +08:00
return false;
});
$showDialogButton.click(showDialog);
2017-11-05 01:59:43 +08:00
return {
showDialog
};
})();