Component save-item make sure it exists
This commit is contained in:
@@ -23,7 +23,7 @@ angular.module('app')
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
.controller('EditorCtrl', function ($sce, $timeout, authManager, $rootScope, actionsManager, syncManager, modelManager, themeManager, componentManager, storageManager, sessionHistory) {
|
.controller('EditorCtrl', function ($sce, $timeout, authManager, $rootScope, actionsManager, syncManager, modelManager, themeManager, componentManager, storageManager, sessionHistory) {
|
||||||
|
|
||||||
this.spellcheck = true;
|
this.spellcheck = true;
|
||||||
this.componentManager = componentManager;
|
this.componentManager = componentManager;
|
||||||
|
|
||||||
|
|||||||
@@ -481,8 +481,13 @@ class ComponentManager {
|
|||||||
*/
|
*/
|
||||||
var localItems = this.modelManager.mapResponseItemsToLocalModels(responseItems, SFModelManager.MappingSourceComponentRetrieved, component.uuid);
|
var localItems = this.modelManager.mapResponseItemsToLocalModels(responseItems, SFModelManager.MappingSourceComponentRetrieved, component.uuid);
|
||||||
|
|
||||||
for(var item of localItems) {
|
for(var responseItem of responseItems) {
|
||||||
var responseItem = _.find(responseItems, {uuid: item.uuid});
|
var item = _.find(localItems, {uuid: responseItem.uuid});
|
||||||
|
if(!item) {
|
||||||
|
// An item this extension is trying to save was possibly removed locally, notify user
|
||||||
|
alert(`The extension ${component.name} is trying to save an item with type ${responseItem.content_type}, but that item does not exist. Please restart this extension and try again.`);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
_.merge(item.content, responseItem.content);
|
_.merge(item.content, responseItem.content);
|
||||||
if(responseItem.clientData) {
|
if(responseItem.clientData) {
|
||||||
item.setDomainDataItem(component.getClientDataKey(), responseItem.clientData, ComponentManager.ClientDataDomain);
|
item.setDomainDataItem(component.getClientDataKey(), responseItem.clientData, ComponentManager.ClientDataDomain);
|
||||||
|
|||||||
Reference in New Issue
Block a user