mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 18:08:33 +02: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);
|
return await this.treeCache.getBranches(branchIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
async __getNotes(noteIds) {
|
getParentNoteIds() {
|
||||||
if (!noteIds) {
|
return this.treeCache.parents[this.noteId] || [];
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.treeCache.getNotes(noteIds);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async getParentNotes() {
|
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() {
|
async getChildNotes() {
|
||||||
return this.__getNotes(this.treeCache.children[this.noteId]);
|
return await this.treeCache.getNotes(this.getChildNoteIds());
|
||||||
}
|
}
|
||||||
|
|
||||||
get toString() {
|
get toString() {
|
||||||
|
@ -94,7 +94,7 @@ async function getExtraClasses(note) {
|
|||||||
extraClasses.push("protected");
|
extraClasses.push("protected");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((await note.getParentNotes()).length > 1) {
|
if (note.getParentNoteIds().length > 1) {
|
||||||
extraClasses.push("multiple-parents");
|
extraClasses.push("multiple-parents");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,12 +19,15 @@ async function getNotes(noteIds) {
|
|||||||
|
|
||||||
async function getRelations(noteIds) {
|
async function getRelations(noteIds) {
|
||||||
const questionMarks = noteIds.map(() => "?").join(",");
|
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
|
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() {
|
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(`
|
const branches = await sql.getRows(`
|
||||||
WITH RECURSIVE
|
WITH RECURSIVE
|
||||||
tree(branchId, noteId, isExpanded) AS (
|
tree(branchId, noteId, isExpanded) AS (
|
||||||
@ -34,7 +37,7 @@ async function getTree() {
|
|||||||
JOIN tree ON branches.parentNoteId = tree.noteId
|
JOIN tree ON branches.parentNoteId = tree.noteId
|
||||||
WHERE tree.isExpanded = 1 AND branches.isDeleted = 0
|
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);
|
const noteIds = branches.map(b => b.noteId);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user