diff --git a/src/block_manager/index.js b/src/block_manager/index.js index a0af59eec..194145235 100644 --- a/src/block_manager/index.js +++ b/src/block_manager/index.js @@ -135,6 +135,14 @@ module.exports = () => { return view.render().el; }, + /** + * Remove block by id + * @param {string} id Block id + */ + remove(id) { + return blocks.remove(id); + }, + }; }; diff --git a/src/editor/model/Editor.js b/src/editor/model/Editor.js index a6f9f80b1..ec11e5a0e 100644 --- a/src/editor/model/Editor.js +++ b/src/editor/model/Editor.js @@ -161,6 +161,12 @@ module.exports = Backbone.Model.extend({ * @private * */ componentsUpdated(model, val, opt) { + var temp = opt ? opt.temporary : 0; + if (temp) { + //component has been added temporarily - do not update storage or record changes + return; + } + timedInterval && clearInterval(timedInterval); timedInterval = setTimeout(() => { var count = this.get('changesCount') + 1; @@ -276,12 +282,12 @@ module.exports = Backbone.Model.extend({ this.stopListening(classes, 'add remove', this.componentsUpdated); this.listenTo(classes, 'add remove', this.componentsUpdated); - var evn = 'change:style change:content'; + var evn = 'change:style change:content change:attributes'; this.stopListening(model, evn, this.componentsUpdated); this.listenTo(model, evn, this.componentsUpdated); if(!avSt) - this.componentsUpdated(); + this.componentsUpdated(model, val, opt); }, /** @@ -310,7 +316,7 @@ module.exports = Backbone.Model.extend({ var avSt = opt ? opt.avoidStore : 0; if(!avSt) - this.componentsUpdated(); + this.componentsUpdated(model, val, opt); }, /** diff --git a/src/style_manager/view/PropertyFileView.js b/src/style_manager/view/PropertyFileView.js index 28598bf10..df6c4bac1 100644 --- a/src/style_manager/view/PropertyFileView.js +++ b/src/style_manager/view/PropertyFileView.js @@ -120,15 +120,20 @@ module.exports = PropertyView.extend({ * */ openAssetManager(e) { var that = this; - if(this.modal && this.am){ + var em = this.em; + var editor = em ? em.get('Editor') : ''; + + if(editor) { this.modal.setTitle('Select image'); this.modal.setContent(this.am.render()); this.am.setTarget(null); - this.modal.open(); - this.am.onSelect(model => { - that.modal.close(); - that.spreadUrl(model.get('src')); - that.valueChanged(e); + editor.runCommand('open-assets', { + target: this.model, + onSelect(target) { + that.modal.close(); + that.spreadUrl(target.get('src')); + that.valueChanged(e); + } }); } }, diff --git a/src/utils/Sorter.js b/src/utils/Sorter.js index ae4f762a2..494518436 100644 --- a/src/utils/Sorter.js +++ b/src/utils/Sorter.js @@ -283,8 +283,8 @@ module.exports = Backbone.View.extend({ if (dropContent && em) { if (!dropModel) { let comps = em.get('DomComponents').getComponents(); - let tempModel = comps.add(dropContent, {avoidUpdateStyle: 1}); - dropModel = comps.remove(tempModel); + let tempModel = comps.add(dropContent, {avoidUpdateStyle: 1, temporary: 1}); + dropModel = comps.remove(tempModel, {temporary: 1}); this.dropModel = dropModel instanceof Array ? dropModel[0] : dropModel; } return dropModel;