mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 18:08:33 +02:00
load search result only on explicit action (expand node, execute search), #1759
This commit is contained in:
parent
59e8cb8c8b
commit
6edc6e2825
@ -164,43 +164,47 @@ class TreeCache {
|
|||||||
|
|
||||||
this.addResp(resp);
|
this.addResp(resp);
|
||||||
|
|
||||||
for (const note of resp.notes) {
|
appContext.triggerEvent('notesReloaded', {noteIds});
|
||||||
if (note.type === 'search') {
|
}
|
||||||
const searchResultNoteIds = await server.get('search-note/' + note.noteId);
|
|
||||||
|
|
||||||
if (!Array.isArray(searchResultNoteIds)) {
|
async loadSearchNote(noteId) {
|
||||||
throw new Error(`Search note ${note.noteId} failed: ${searchResultNoteIds}`);
|
const note = await this.getNote(noteId);
|
||||||
}
|
|
||||||
|
|
||||||
// reset all the virtual branches from old search results
|
if (!note || note.type !== 'search') {
|
||||||
if (note.noteId in treeCache.notes) {
|
return;
|
||||||
treeCache.notes[note.noteId].children = [];
|
|
||||||
treeCache.notes[note.noteId].childToBranch = {};
|
|
||||||
}
|
|
||||||
|
|
||||||
const branches = resp.branches.filter(b => b.noteId === note.noteId || b.parentNoteId === note.noteId);
|
|
||||||
|
|
||||||
searchResultNoteIds.forEach((resultNoteId, index) => branches.push({
|
|
||||||
// branchId should be repeatable since sometimes we reload some notes without rerendering the tree
|
|
||||||
branchId: "virt-" + note.noteId + '-' + resultNoteId,
|
|
||||||
noteId: resultNoteId,
|
|
||||||
parentNoteId: note.noteId,
|
|
||||||
notePosition: (index + 1) * 10,
|
|
||||||
fromSearchNote: true
|
|
||||||
}));
|
|
||||||
|
|
||||||
// update this note with standard (parent) branches + virtual (children) branches
|
|
||||||
this.addResp({
|
|
||||||
notes: [note],
|
|
||||||
branches,
|
|
||||||
attributes: []
|
|
||||||
});
|
|
||||||
|
|
||||||
treeCache.notes[note.noteId].searchResultsLoaded = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
appContext.triggerEvent('notesReloaded', {noteIds});
|
const searchResultNoteIds = await server.get('search-note/' + note.noteId);
|
||||||
|
|
||||||
|
if (!Array.isArray(searchResultNoteIds)) {
|
||||||
|
throw new Error(`Search note ${note.noteId} failed: ${searchResultNoteIds}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
// reset all the virtual branches from old search results
|
||||||
|
if (note.noteId in treeCache.notes) {
|
||||||
|
treeCache.notes[note.noteId].children = [];
|
||||||
|
treeCache.notes[note.noteId].childToBranch = {};
|
||||||
|
}
|
||||||
|
|
||||||
|
const branches = [...note.getBranches(), ...note.getChildBranches()];
|
||||||
|
|
||||||
|
searchResultNoteIds.forEach((resultNoteId, index) => branches.push({
|
||||||
|
// branchId should be repeatable since sometimes we reload some notes without rerendering the tree
|
||||||
|
branchId: "virt-" + note.noteId + '-' + resultNoteId,
|
||||||
|
noteId: resultNoteId,
|
||||||
|
parentNoteId: note.noteId,
|
||||||
|
notePosition: (index + 1) * 10,
|
||||||
|
fromSearchNote: true
|
||||||
|
}));
|
||||||
|
|
||||||
|
// update this note with standard (parent) branches + virtual (children) branches
|
||||||
|
this.addResp({
|
||||||
|
notes: [note],
|
||||||
|
branches,
|
||||||
|
attributes: []
|
||||||
|
});
|
||||||
|
|
||||||
|
treeCache.notes[note.noteId].searchResultsLoaded = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @return {NoteShort[]} */
|
/** @return {NoteShort[]} */
|
||||||
|
@ -472,7 +472,7 @@ export default class NoteTreeWidget extends TabAwareWidget {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
data.result = treeCache.reloadNotes([noteId]).then(() => {
|
data.result = treeCache.loadSearchNote(noteId).then(() => {
|
||||||
const note = treeCache.getNoteFromCache(noteId);
|
const note = treeCache.getNoteFromCache(noteId);
|
||||||
|
|
||||||
let childNoteIds = note.getChildNoteIds();
|
let childNoteIds = note.getChildNoteIds();
|
||||||
|
@ -265,7 +265,7 @@ export default class SearchDefinitionWidget extends TabAwareWidget {
|
|||||||
|
|
||||||
async refreshResultsCommand() {
|
async refreshResultsCommand() {
|
||||||
try {
|
try {
|
||||||
await treeCache.reloadNotes([this.noteId]);
|
await treeCache.loadSearchNote(this.noteId);
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
toastService.showError(e.message);
|
toastService.showError(e.message);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user