diff --git a/app/assets/javascripts/app/services/componentManager.js b/app/assets/javascripts/app/services/componentManager.js index a41b4da3c..e5547905d 100644 --- a/app/assets/javascripts/app/services/componentManager.js +++ b/app/assets/javascripts/app/services/componentManager.js @@ -371,7 +371,7 @@ class ComponentManager { // push immediately now var items = []; for(var contentType of message.data.content_types) { - items = items.concat(this.modelManager.itemsForContentType(contentType)); + items = items.concat(this.modelManager.validItemsForContentType(contentType)); } this.sendItemsInReply(component, items, message); }); diff --git a/app/assets/javascripts/app/services/modelManager.js b/app/assets/javascripts/app/services/modelManager.js index 3ba84cf01..ea8beea45 100644 --- a/app/assets/javascripts/app/services/modelManager.js +++ b/app/assets/javascripts/app/services/modelManager.js @@ -102,9 +102,9 @@ class ModelManager { }) } - itemsForContentType(contentType) { - return this.allItems.filter(function(item){ - return item.content_type == contentType; + validItemsForContentType(contentType) { + return this.allItems.filter((item) => { + return item.content_type == contentType && !item.errorDecrypting; }); } @@ -185,7 +185,11 @@ class ModelManager { this.addItem(item, isDirtyItemPendingDelete); - modelsToNotifyObserversOf.push(item); + // Observers do not need to handle items that errored while decrypting. + if(!item.errorDecrypting) { + modelsToNotifyObserversOf.push(item); + } + models.push(item); processedObjects.push(json_obj); }