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

View File

@ -710,6 +710,10 @@ class NoteShort {
return false; return false;
} }
isInHiddenSubtree() {
return this.noteId === '_hidden' || this.hasAncestor('_hidden');
}
/** /**
* @deprecated NOOP * @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 // for search notes we want to consider the direct search results only without the descendants
unfilteredNotes = mapRootNote.getSearchResultNotes(); unfilteredNotes = mapRootNote.getSearchResultNotes();
} else { } else {
unfilteredNotes = mapRootNote.getSubtree({includeArchived: false, resolveSearch: true}).notes; unfilteredNotes = mapRootNote.getSubtree({
includeArchived: false,
resolveSearch: true,
includeHidden: mapRootNote.isInHiddenSubtree()
}).notes;
} }
const noteIds = new Set( 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 // if the map root itself has ignore (journal typically) then there wouldn't be anything to display so
// we'll just ignore it // we'll just ignore it
const ignoreExcludeFromNoteMap = mapRootNote.hasLabel('excludeFromNoteMap'); 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 const notes = subtree.notes
.filter(note => ignoreExcludeFromNoteMap || !note.hasLabel('excludeFromNoteMap')) .filter(note => ignoreExcludeFromNoteMap || !note.hasLabel('excludeFromNoteMap'))