mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 18:08:33 +02:00
fixed corner cases in becca updates from sync
This commit is contained in:
parent
89d28ef27c
commit
f9cfd134b7
@ -60,25 +60,31 @@ eventService.subscribe([eventService.ENTITY_CHANGED, eventService.ENTITY_CHANGE_
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
eventService.subscribe([eventService.ENTITY_DELETED, eventService.ENTITY_DELETE_SYNCED], ({entityName, entity}) => {
|
eventService.subscribe([eventService.ENTITY_DELETED, eventService.ENTITY_DELETE_SYNCED], ({entityName, entityId}) => {
|
||||||
if (!becca.loaded) {
|
if (!becca.loaded) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entityName === 'notes') {
|
if (entityName === 'notes') {
|
||||||
noteDeleted(entity);
|
noteDeleted(entityId);
|
||||||
} else if (entityName === 'branches') {
|
} else if (entityName === 'branches') {
|
||||||
branchDeleted(entity);
|
branchDeleted(entityId);
|
||||||
} else if (entityName === 'attributes') {
|
} else if (entityName === 'attributes') {
|
||||||
attributeDeleted(entity);
|
attributeDeleted(entityId);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
function noteDeleted(note) {
|
function noteDeleted(noteId) {
|
||||||
delete becca.notes[note.noteId];
|
delete becca.notes[noteId];
|
||||||
}
|
}
|
||||||
|
|
||||||
function branchDeleted(branch) {
|
function branchDeleted(branchId) {
|
||||||
|
const branch = becca.branches[branchId];
|
||||||
|
|
||||||
|
if (!branch) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const childNote = becca.notes[branch.noteId];
|
const childNote = becca.notes[branch.noteId];
|
||||||
|
|
||||||
if (childNote) {
|
if (childNote) {
|
||||||
@ -110,7 +116,13 @@ function branchUpdated(branch) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function attributeDeleted(attribute) {
|
function attributeDeleted(attributeId) {
|
||||||
|
const attribute = becca.attributes[attributeId];
|
||||||
|
|
||||||
|
if (!attribute) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const note = becca.notes[attribute.noteId];
|
const note = becca.notes[attribute.noteId];
|
||||||
|
|
||||||
if (note) {
|
if (note) {
|
||||||
|
@ -110,7 +110,7 @@ class AbstractEntity {
|
|||||||
|
|
||||||
this.addEntityChange(true);
|
this.addEntityChange(true);
|
||||||
|
|
||||||
eventService.emit(eventService.ENTITY_DELETED, { entityName, entity: this });
|
eventService.emit(eventService.ENTITY_DELETED, { entityName, entityId, entity: this });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,14 +26,14 @@ function updateEntity(entityChange, entity) {
|
|||||||
? updateNoteReordering(entityChange, entity)
|
? updateNoteReordering(entityChange, entity)
|
||||||
: updateNormalEntity(entityChange, entity);
|
: updateNormalEntity(entityChange, entity);
|
||||||
|
|
||||||
if (updated && !entityChange.isErased) {
|
if (updated) {
|
||||||
if (entity.isDeleted) {
|
if (entity.isDeleted) {
|
||||||
eventService.emit(eventService.ENTITY_DELETE_SYNCED, {
|
eventService.emit(eventService.ENTITY_DELETE_SYNCED, {
|
||||||
entityName: entityChange.entityName,
|
entityName: entityChange.entityName,
|
||||||
entityId: entityChange.entityId
|
entityId: entityChange.entityId
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else {
|
else if (!entityChange.isErased) {
|
||||||
eventService.emit(eventService.ENTITY_CHANGE_SYNCED, {
|
eventService.emit(eventService.ENTITY_CHANGE_SYNCED, {
|
||||||
entityName: entityChange.entityName,
|
entityName: entityChange.entityName,
|
||||||
entity
|
entity
|
||||||
|
Loading…
x
Reference in New Issue
Block a user