mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 18:36:30 +01:00 
			
		
		
		
	fix for clones & optimizations
This commit is contained in:
		| @@ -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); | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user