more actions on jump to note dialog

This commit is contained in:
azivner 2017-11-19 22:31:30 -05:00
parent c8aaf6085d
commit d98a5b6299
4 changed files with 62 additions and 24 deletions

View File

@ -48,11 +48,11 @@ const addLink = (function() {
} }
formEl.submit(() => { formEl.submit(() => {
let val = autoCompleteEl.val(); const value = autoCompleteEl.val();
const noteId = link.getNodePathFromLabel(val); const notePath = link.getNodePathFromLabel(value);
if (noteId) { if (notePath) {
const linkTitle = linkTitleEl.val(); const linkTitle = linkTitleEl.val();
dialogEl.dialog("close"); dialogEl.dialog("close");
@ -61,7 +61,7 @@ const addLink = (function() {
noteDetailEl.summernote('createLink', { noteDetailEl.summernote('createLink', {
text: linkTitle, text: linkTitle,
url: 'app#' + noteId, url: 'app#' + notePath,
isNewWindow: true isNewWindow: true
}); });
} }

View File

@ -4,8 +4,11 @@ const jumpToNote = (function() {
const dialogEl = $("#jump-to-note-dialog"); const dialogEl = $("#jump-to-note-dialog");
const autoCompleteEl = $("#jump-to-note-autocomplete"); const autoCompleteEl = $("#jump-to-note-autocomplete");
const formEl = $("#jump-to-note-form"); const formEl = $("#jump-to-note-form");
const noteDetailEl = $('#note-detail');
async function showDialog() { async function showDialog() {
noteDetailEl.summernote('editor.saveRange');
glob.activeDialog = dialogEl; glob.activeDialog = dialogEl;
autoCompleteEl.val(''); autoCompleteEl.val('');
@ -21,9 +24,13 @@ const jumpToNote = (function() {
}); });
} }
function goToNote() { function getSelectedNotePath() {
const val = autoCompleteEl.val(); const val = autoCompleteEl.val();
const notePath = link.getNodePathFromLabel(val); return link.getNodePathFromLabel(val);
}
function goToNote() {
const notePath = getSelectedNotePath();
if (notePath) { if (notePath) {
noteTree.activateNode(notePath); noteTree.activateNode(notePath);
@ -37,9 +44,37 @@ const jumpToNote = (function() {
formEl.submit(() => { formEl.submit(() => {
const action = dialogEl.find("button:focus").val(); const action = dialogEl.find("button:focus").val();
if (action === 'jump') { if (!action || action === 'jump') {
goToNote(); goToNote();
} }
else if (action === 'add-link') {
const notePath = getSelectedNotePath();
if (notePath) {
dialogEl.dialog("close");
noteDetailEl.summernote('editor.restoreRange');
noteDetailEl.summernote('createLink', {
text: noteTree.getNoteTitle(notePath),
url: 'app#' + notePath,
isNewWindow: true
});
}
}
else if (action === 'add-current-as-child') {
treeUtils.addAsChild(getSelectedNotePath(), noteTree.getCurrentNotePath());
dialogEl.dialog("close");
}
else if (action === 'add-selected-as-child') {
treeUtils.addAsChild(noteTree.getCurrentNotePath(), getSelectedNotePath());
dialogEl.dialog("close");
}
else {
console.error("Unknown action=" + action);
}
return false; return false;
}); });

View File

@ -103,27 +103,16 @@ const recentNotes = (function() {
}); });
} }
async function addAsChild(parentNotePath, childNotePath) { async function addCurrentAsChild() {
const parentNoteId = treeUtils.getNoteIdFromNotePath(parentNotePath); await treeUtils.addAsChild(getSelectedNotePath(), noteTree.getCurrentNotePath());
const childNoteId = treeUtils.getNoteIdFromNotePath(childNotePath);
await $.ajax({
url: baseApiUrl + 'tree/' + parentNoteId + '/addChild/' + childNoteId,
type: 'PUT',
error: () => showError("Error adding child.")
});
dialogEl.dialog("close"); dialogEl.dialog("close");
await noteTree.reload();
}
async function addCurrentAsChild() {
await addAsChild(getSelectedNotePath(), noteTree.getCurrentNotePath());
} }
async function addRecentAsChild() { async function addRecentAsChild() {
addAsChild(noteTree.getCurrentNotePath(), getSelectedNotePath()); await treeUtils.addAsChild(noteTree.getCurrentNotePath(), getSelectedNotePath());
dialogEl.dialog("close");
} }
selectBoxEl.keydown(e => { selectBoxEl.keydown(e => {

View File

@ -66,6 +66,19 @@ const treeUtils = (function() {
return path.reverse().join("/"); return path.reverse().join("/");
} }
async function addAsChild(parentNotePath, childNotePath) {
const parentNoteId = treeUtils.getNoteIdFromNotePath(parentNotePath);
const childNoteId = treeUtils.getNoteIdFromNotePath(childNotePath);
await $.ajax({
url: baseApiUrl + 'tree/' + parentNoteId + '/addChild/' + childNoteId,
type: 'PUT',
error: () => showError("Error adding child.")
});
await noteTree.reload();
}
return { return {
getParentNoteTreeId, getParentNoteTreeId,
getParentProtectedStatus, getParentProtectedStatus,
@ -74,6 +87,7 @@ const treeUtils = (function() {
getFullName, getFullName,
getFullNameForPath, getFullNameForPath,
getNotePath, getNotePath,
getNoteIdFromNotePath getNoteIdFromNotePath,
addAsChild
}; };
})(); })();