diff --git a/public/javascripts/dialogs/note_history.js b/public/javascripts/dialogs/note_history.js index d9c5bf36c..7254e6f58 100644 --- a/public/javascripts/dialogs/note_history.js +++ b/public/javascripts/dialogs/note_history.js @@ -61,7 +61,7 @@ const noteHistory = (function() { $(document).on('click', "a[action='note-history']", event => { const linkEl = $(event.target); - const noteId = linkEl.attr('note-id'); + const noteId = linkEl.attr('note-path'); const noteHistoryId = linkEl.attr('note-history-id'); showNoteHistoryDialog(noteId, noteHistoryId); diff --git a/public/javascripts/dialogs/recent_changes.js b/public/javascripts/dialogs/recent_changes.js index 86a5af086..a1ab34bce 100644 --- a/public/javascripts/dialogs/recent_changes.js +++ b/public/javascripts/dialogs/recent_changes.js @@ -34,7 +34,7 @@ const recentChanges = (function() { href: 'javascript:', text: 'rev' }).attr('action', 'note-history') - .attr('note-id', change.note_id) + .attr('note-path', change.note_id) .attr('note-history-id', change.note_history_id); changesListEl.append($('
  • ') diff --git a/public/javascripts/link.js b/public/javascripts/link.js index f523e89fb..036c0865b 100644 --- a/public/javascripts/link.js +++ b/public/javascripts/link.js @@ -22,19 +22,23 @@ const link = (function() { return null; } - function createNoteLink(noteId) { + function createNoteLink(noteId, noteTitle) { + if (!noteTitle) { + noteTitle = noteTree.getNoteTitle(noteId); + } + const noteLink = $("", { href: 'javascript:', - text: noteTree.getNoteTitle(noteId) + text: noteTitle }).attr('action', 'note') - .attr('note-id', noteId); + .attr('note-path', noteId); return noteLink; } function goToInternalNote(e) { const linkEl = $(e.target); - let noteId = linkEl.attr("note-id"); + let noteId = linkEl.attr("note-path"); if (!noteId) { noteId = getNotePathFromLink(linkEl.attr('href')); diff --git a/public/javascripts/note_tree.js b/public/javascripts/note_tree.js index 691c2a36d..b3b420f3c 100644 --- a/public/javascripts/note_tree.js +++ b/public/javascripts/note_tree.js @@ -3,6 +3,8 @@ const noteTree = (function() { const noteDetailEl = $('#note-detail'); const treeEl = $("#tree"); + const parentListEl = $("#parent-list"); + let startNoteTreeId = null; let treeLoadTime = null; let clipboardNoteTreeId = null; @@ -55,7 +57,7 @@ const noteTree = (function() { const title = noteIdToTitle[noteId]; if (!title) { - throw new Error("Can't find title for noteId=" + noteId); + throw new Error("Can't find title for noteId='" + noteId + "'"); } return title; @@ -113,8 +115,6 @@ const noteTree = (function() { } if (childToParents[childNoteId].length > 1) { - console.log("Multiple classes!"); - note.extraClasses += ",multiple-parents"; } @@ -184,26 +184,83 @@ const noteTree = (function() { childNoteId = parentNoteId; } + const noteId = treeUtils.getNoteIdFromNotePath(notePath); + const runPath = effectivePath.reverse(); let parentNoteId = 'root'; - for (let i = 0; i < runPath.length; i++) { - const childNoteId = runPath[i]; + for (const childNoteId of runPath) { const noteTreeId = getNoteTreeId(parentNoteId, childNoteId); const node = treeUtils.getNodeByNoteTreeId(noteTreeId); - if (i < runPath.length - 1) { - await node.setExpanded(); + if (childNoteId === noteId) { + await node.setActive(); } else { - await node.setActive(); + await node.setExpanded(); } parentNoteId = childNoteId; } } + function showParentList(noteId, node) { + const parents = childToParents[noteId]; + + if (parents.length <= 1) { + parentListEl.hide(); + } + else { + parentListEl.show(); + parentListEl.empty(); + + const list = $("