diff --git a/src/style_manager/model/Sectors.js b/src/style_manager/model/Sectors.js index df38fe47e..3ecf73e0c 100644 --- a/src/style_manager/model/Sectors.js +++ b/src/style_manager/model/Sectors.js @@ -2,5 +2,14 @@ import Backbone from 'backbone'; import Sector from './Sector'; export default Backbone.Collection.extend({ - model: Sector + model: Sector, + + initialize() { + this.listenTo(this, 'reset', this.onReset); + }, + + onReset(models, opts = {}) { + const prev = opts.previousModels || []; + prev.forEach(sect => sect.get('properties').reset()); + } }); diff --git a/src/style_manager/view/PropertyColorView.js b/src/style_manager/view/PropertyColorView.js index ba5a31749..6831e9a56 100644 --- a/src/style_manager/view/PropertyColorView.js +++ b/src/style_manager/view/PropertyColorView.js @@ -7,6 +7,11 @@ export default PropertyIntegerView.extend({ this.inputInst.setValue(value, opts); }, + remove() { + PropertyIntegerView.prototype.remove.apply(this, arguments); + ['inputInst', '$color'].forEach(i => (this[i] = {})); + }, + onRender() { if (!this.input) { const ppfx = this.ppfx; diff --git a/src/style_manager/view/PropertyCompositeView.js b/src/style_manager/view/PropertyCompositeView.js index d319e1eb9..fa49d312b 100644 --- a/src/style_manager/view/PropertyCompositeView.js +++ b/src/style_manager/view/PropertyCompositeView.js @@ -27,6 +27,12 @@ export default PropertyView.extend({ PropertyView.prototype.clear.apply(this, arguments); }, + remove() { + this.model.get('properties').reset(); + PropertyView.prototype.remove.apply(this, arguments); + ['properties', 'props', '$props'].forEach(i => (this[i] = {})); + }, + /** * Renders input * */ diff --git a/src/style_manager/view/PropertyView.js b/src/style_manager/view/PropertyView.js index e1908d878..c36d25c5d 100644 --- a/src/style_manager/view/PropertyView.js +++ b/src/style_manager/view/PropertyView.js @@ -95,6 +95,9 @@ export default Backbone.View.extend({ remove() { Backbone.View.prototype.remove.apply(this, arguments); + ['em', 'target', 'input', '$input', 'propTarget', 'sector'].forEach( + i => (this[i] = {}) + ); this.__destroyFn(this._getClbOpts()); },