note map can display notes if hoisted in hidden subtree

This commit is contained in:
zadam 2022-12-23 15:32:11 +01:00
parent 0441e7396a
commit c34bccf7e8
3 changed files with 20 additions and 5 deletions

View File

@ -887,7 +887,7 @@ class Note extends AbstractEntity {
/**
* @returns {{notes: Note[], relationships: Array.<{parentNoteId: string, childNoteId: string}>}}
*/
getSubtree({includeArchived = true, resolveSearch = false} = {}) {
getSubtree({includeArchived = true, includeHidden = false, resolveSearch = false} = {}) {
const noteSet = new Set();
const relationships = []; // list of tuples parentNoteId -> childNoteId
@ -903,8 +903,7 @@ class Note extends AbstractEntity {
}
function addSubtreeNotesInner(note, parentNote = null) {
// share can be removed after 0.57 since it will be put under hidden
if (note.noteId === '_hidden' || note.noteId === '_share') {
if (note.noteId === '_hidden' && !includeHidden) {
return;
}
@ -1042,6 +1041,10 @@ class Note extends AbstractEntity {
return false;
}
isInHiddenSubtree() {
return this.noteId === '_hidden' || this.hasAncestor('_hidden');
}
getTargetRelations() {
return this.targetRelations;
}

View File

@ -710,6 +710,10 @@ class NoteShort {
return false;
}
isInHiddenSubtree() {
return this.noteId === '_hidden' || this.hasAncestor('_hidden');
}
/**
* @deprecated NOOP
*/

View File

@ -93,7 +93,11 @@ function getLinkMap(req) {
// for search notes we want to consider the direct search results only without the descendants
unfilteredNotes = mapRootNote.getSearchResultNotes();
} else {
unfilteredNotes = mapRootNote.getSubtree({includeArchived: false, resolveSearch: true}).notes;
unfilteredNotes = mapRootNote.getSubtree({
includeArchived: false,
resolveSearch: true,
includeHidden: mapRootNote.isInHiddenSubtree()
}).notes;
}
const noteIds = new Set(
@ -156,7 +160,11 @@ function getTreeMap(req) {
// if the map root itself has ignore (journal typically) then there wouldn't be anything to display so
// we'll just ignore it
const ignoreExcludeFromNoteMap = mapRootNote.hasLabel('excludeFromNoteMap');
const subtree = mapRootNote.getSubtree({includeArchived: false, resolveSearch: true});
const subtree = mapRootNote.getSubtree({
includeArchived: false,
resolveSearch: true,
includeHidden: mapRootNote.isInHiddenSubtree()
});
const notes = subtree.notes
.filter(note => ignoreExcludeFromNoteMap || !note.hasLabel('excludeFromNoteMap'))