diff --git a/src/style_manager/model/Layers.js b/src/style_manager/model/Layers.js index f8f90fba9..47a4e239a 100644 --- a/src/style_manager/model/Layers.js +++ b/src/style_manager/model/Layers.js @@ -53,6 +53,7 @@ module.exports = Backbone.Collection.extend({ */ getLayersFromStyle(styleObj) { const layers = []; + const propNames = this.properties.pluck('property'); this.properties.each(propModel => { const style = styleObj[propModel.get('property')]; @@ -72,6 +73,18 @@ module.exports = Backbone.Collection.extend({ }); }); + // Now whit all layers are in, will check missing properties + layers.forEach(layer => { + const layerProprs = layer.properties.map(prop => prop.property); + this.properties.each(propModel => { + const propertyName = propModel.get('property'); + + if (layerProprs.indexOf(propertyName) < 0) { + layer.properties.push(Object.assign({}, propModel.attributes)) + } + }) + }); + return layers; }, diff --git a/src/style_manager/view/PropertyFileView.js b/src/style_manager/view/PropertyFileView.js index f41cd4a5d..4d5a9c87f 100644 --- a/src/style_manager/view/PropertyFileView.js +++ b/src/style_manager/view/PropertyFileView.js @@ -26,9 +26,9 @@ module.exports = PropertyView.extend({ }, init() { - this.assets = this.target.get('assets'); - this.modal = this.target.get('Modal'); - this.am = this.target.get('AssetManager'); + const em = this.em; + this.modal = em.get('Modal'); + this.am = em.get('AssetManager'); this.events['click #'+this.pfx+'close'] = 'removeFile'; this.events['click #'+this.pfx+'images'] = 'openAssetManager'; this.delegateEvents(); diff --git a/src/style_manager/view/PropertyStackView.js b/src/style_manager/view/PropertyStackView.js index 797b80cf7..b980d65ab 100644 --- a/src/style_manager/view/PropertyStackView.js +++ b/src/style_manager/view/PropertyStackView.js @@ -233,7 +233,7 @@ module.exports = PropertyCompositeView.extend({ if (model.get('detached')) { const subProp = subModel.get('property'); const values = self.getLayers().getPropertyValues(subProp); - view.updateTargetStyle(propVal, null, opt); + view.updateTargetStyle(values, null, opt); } else { model.set('value', model.getFullValue(), opt); }