Notes/public/javascripts/dialogs/jump_to_note.js

56 lines
1.2 KiB
JavaScript
Raw Normal View History

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