mirror of
https://github.com/zadam/trilium.git
synced 2024-09-22 00:26:01 +08:00
fix for clones & optimizations
This commit is contained in:
parent
b4005a7ffe
commit
85a9748291
|
@ -36,20 +36,20 @@ class NoteShort {
|
|||
return await this.treeCache.getBranches(branchIds);
|
||||
}
|
||||
|
||||
async __getNotes(noteIds) {
|
||||
if (!noteIds) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return this.treeCache.getNotes(noteIds);
|
||||
getParentNoteIds() {
|
||||
return this.treeCache.parents[this.noteId] || [];
|
||||
}
|
||||
|
||||
async getParentNotes() {
|
||||
return this.__getNotes(this.treeCache.parents[this.noteId]);
|
||||
return await this.treeCache.getNotes(this.getParentNoteIds());
|
||||
}
|
||||
|
||||
getChildNoteIds() {
|
||||
return this.treeCache.children[this.noteId] || [];
|
||||
}
|
||||
|
||||
async getChildNotes() {
|
||||
return this.__getNotes(this.treeCache.children[this.noteId]);
|
||||
return await this.treeCache.getNotes(this.getChildNoteIds());
|
||||
}
|
||||
|
||||
get toString() {
|
||||
|
|
|
@ -94,7 +94,7 @@ async function getExtraClasses(note) {
|
|||
extraClasses.push("protected");
|
||||
}
|
||||
|
||||
if ((await note.getParentNotes()).length > 1) {
|
||||
if (note.getParentNoteIds().length > 1) {
|
||||
extraClasses.push("multiple-parents");
|
||||
}
|
||||
|
||||
|
|
|
@ -19,12 +19,15 @@ async function getNotes(noteIds) {
|
|||
|
||||
async function getRelations(noteIds) {
|
||||
const questionMarks = noteIds.map(() => "?").join(",");
|
||||
const doubledNoteIds = noteIds.concat(noteIds);
|
||||
|
||||
return await sql.getRows(`SELECT branchId, noteId AS 'childNoteId', parentNoteId FROM branches WHERE isDeleted = 0
|
||||
AND parentNoteId IN (${questionMarks})`, noteIds);
|
||||
AND (parentNoteId IN (${questionMarks}) OR noteId IN (${questionMarks}))`, doubledNoteIds);
|
||||
}
|
||||
|
||||
async function getTree() {
|
||||
// we fetch all branches of notes, even if that particular branch isn't visible
|
||||
// this allows us to e.g. detect and properly display clones
|
||||
const branches = await sql.getRows(`
|
||||
WITH RECURSIVE
|
||||
tree(branchId, noteId, isExpanded) AS (
|
||||
|
@ -34,7 +37,7 @@ async function getTree() {
|
|||
JOIN tree ON branches.parentNoteId = tree.noteId
|
||||
WHERE tree.isExpanded = 1 AND branches.isDeleted = 0
|
||||
)
|
||||
SELECT branches.* FROM tree JOIN branches USING(branchId);`);
|
||||
SELECT branches.* FROM tree JOIN branches USING(noteId)`);
|
||||
|
||||
const noteIds = branches.map(b => b.noteId);
|
||||
|
||||
|
|
Loading…
Reference in a new issue