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 packageJson = require('../../package'); | ||||||
| const {TRILIUM_DATA_DIR} = require('./data_dir'); | const {TRILIUM_DATA_DIR} = require('./data_dir'); | ||||||
|  |  | ||||||
| const APP_DB_VERSION = 166; | const APP_DB_VERSION = 167; | ||||||
| const SYNC_VERSION = 16; | const SYNC_VERSION = 16; | ||||||
| const CLIPPER_PROTOCOL_VERSION = "1.0"; | const CLIPPER_PROTOCOL_VERSION = "1.0"; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,5 +1,7 @@ | |||||||
| "use strict"; | "use strict"; | ||||||
|  |  | ||||||
|  | import Note from './note.js'; | ||||||
|  |  | ||||||
| class Attribute { | class Attribute { | ||||||
|     constructor(noteCache, row) { |     constructor(noteCache, row) { | ||||||
|         /** @param {NoteCache} */ |         /** @param {NoteCache} */ | ||||||
| @@ -23,6 +25,12 @@ class Attribute { | |||||||
|         this.isInheritable = !!row.isInheritable; |         this.isInheritable = !!row.isInheritable; | ||||||
|  |  | ||||||
|         this.noteCache.attributes[this.attributeId] = this; |         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); |         this.noteCache.notes[this.noteId].ownedAttributes.push(this); | ||||||
|  |  | ||||||
|         const key = `${this.type}-${this.name}`; |         const key = `${this.type}-${this.name}`; | ||||||
|   | |||||||
| @@ -1,5 +1,7 @@ | |||||||
| "use strict"; | "use strict"; | ||||||
|  |  | ||||||
|  | import Note from "./note.js"; | ||||||
|  |  | ||||||
| class Branch { | class Branch { | ||||||
|     constructor(noteCache, row) { |     constructor(noteCache, row) { | ||||||
|         /** @param {NoteCache} */ |         /** @param {NoteCache} */ | ||||||
| @@ -17,14 +19,9 @@ class Branch { | |||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         const childNote = this.noteCache.notes[this.noteId]; |         const childNote = this.childNote; | ||||||
|         const parentNote = this.parentNote; |         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.parents.push(parentNote); | ||||||
|         childNote.parentBranches.push(this); |         childNote.parentBranches.push(this); | ||||||
|  |  | ||||||
| @@ -35,14 +32,23 @@ class Branch { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** @return {Note} */ |     /** @return {Note} */ | ||||||
|     get parentNote() { |     get childNote() { | ||||||
|         const note = this.noteCache.notes[this.parentNoteId]; |         if (!(this.noteId in this.noteCache.notes)) { | ||||||
|  |             // entities can come out of order in sync, create skeleton which will be filled later | ||||||
|         if (!note) { |             this.noteCache.notes[this.noteId] = new Note(this.noteCache, {noteId: this.noteId}); | ||||||
|             console.log(`Cannot find note ${this.parentNoteId}`); |  | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         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