diff --git a/frontend/models/Collection.js b/frontend/models/Collection.js index 13d8e5e8..80d0ba39 100644 --- a/frontend/models/Collection.js +++ b/frontend/models/Collection.js @@ -93,7 +93,7 @@ class Collection extends BaseModel { } }; - updateData(data: Object = {}) { + @action updateData(data: Object = {}) { this.data = data; extendObservable(this, data); } @@ -107,6 +107,14 @@ class Collection extends BaseModel { this.on('documents.delete', (data: { collectionId: string }) => { if (data.collectionId === this.id) this.fetch(); }); + this.on( + 'collections.update', + (data: { id: string, collection: Collection }) => { + // FIXME: calling this.updateData won't update the + // UI. Some mobx issue + if (data.id === this.id) this.fetch(); + } + ); } } diff --git a/frontend/models/Document.js b/frontend/models/Document.js index ea39c2f6..eade3779 100644 --- a/frontend/models/Document.js +++ b/frontend/models/Document.js @@ -160,6 +160,11 @@ class Document extends BaseModel { this.updateData(res.data); this.hasPendingChanges = false; }); + + this.emit('collections.update', { + id: this.collection.id, + collection: this.collection, + }); } catch (e) { this.errors.add('Document failed saving'); } finally {