mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +01:00 
			
		
		
		
	fix note cache for out of order synced entities
This commit is contained in:
		
							
								
								
									
										1
									
								
								db/migrations/0167__remove_activateParentNote.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								db/migrations/0167__remove_activateParentNote.sql
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| DELETE FROM options WHERE name = 'keyboardShortcutsActivateParentNote'; | ||||
| @@ -4,7 +4,7 @@ const build = require('./build'); | ||||
| const packageJson = require('../../package'); | ||||
| const {TRILIUM_DATA_DIR} = require('./data_dir'); | ||||
|  | ||||
| const APP_DB_VERSION = 166; | ||||
| const APP_DB_VERSION = 167; | ||||
| const SYNC_VERSION = 16; | ||||
| const CLIPPER_PROTOCOL_VERSION = "1.0"; | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,7 @@ | ||||
| "use strict"; | ||||
|  | ||||
| import Note from './note.js'; | ||||
|  | ||||
| class Attribute { | ||||
|     constructor(noteCache, row) { | ||||
|         /** @param {NoteCache} */ | ||||
| @@ -23,6 +25,12 @@ class Attribute { | ||||
|         this.isInheritable = !!row.isInheritable; | ||||
|  | ||||
|         this.noteCache.attributes[this.attributeId] = this; | ||||
|  | ||||
|         if (!(this.noteId in this.noteCache.notes)) { | ||||
|             // entities can come out of order in sync, create skeleton which will be filled later | ||||
|             this.noteCache.notes[this.noteId] = new Note(this.noteCache, {noteId: this.noteId}); | ||||
|         } | ||||
|  | ||||
|         this.noteCache.notes[this.noteId].ownedAttributes.push(this); | ||||
|  | ||||
|         const key = `${this.type}-${this.name}`; | ||||
|   | ||||
| @@ -1,5 +1,7 @@ | ||||
| "use strict"; | ||||
|  | ||||
| import Note from "./note.js"; | ||||
|  | ||||
| class Branch { | ||||
|     constructor(noteCache, row) { | ||||
|         /** @param {NoteCache} */ | ||||
| @@ -17,14 +19,9 @@ class Branch { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         const childNote = this.noteCache.notes[this.noteId]; | ||||
|         const childNote = this.childNote; | ||||
|         const parentNote = this.parentNote; | ||||
|  | ||||
|         if (!childNote) { | ||||
|             console.log(`Cannot find child note ${this.noteId} of a branch ${this.branchId}`); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         childNote.parents.push(parentNote); | ||||
|         childNote.parentBranches.push(this); | ||||
|  | ||||
| @@ -35,14 +32,23 @@ class Branch { | ||||
|     } | ||||
|  | ||||
|     /** @return {Note} */ | ||||
|     get parentNote() { | ||||
|         const note = this.noteCache.notes[this.parentNoteId]; | ||||
|  | ||||
|         if (!note) { | ||||
|             console.log(`Cannot find note ${this.parentNoteId}`); | ||||
|     get childNote() { | ||||
|         if (!(this.noteId in this.noteCache.notes)) { | ||||
|             // entities can come out of order in sync, create skeleton which will be filled later | ||||
|             this.noteCache.notes[this.noteId] = new Note(this.noteCache, {noteId: this.noteId}); | ||||
|         } | ||||
|  | ||||
|         return note; | ||||
|         return this.noteCache.notes[this.noteId]; | ||||
|     } | ||||
|  | ||||
|     /** @return {Note} */ | ||||
|     get parentNote() { | ||||
|         if (!(this.parentNoteId in this.noteCache.notes)) { | ||||
|             // entities can come out of order in sync, create skeleton which will be filled later | ||||
|             this.noteCache.notes[this.parentNoteId] = new Note(this.noteCache, {noteId: this.parentNoteId}); | ||||
|         } | ||||
|  | ||||
|         return this.noteCache.notes[this.parentNoteId]; | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user