diff --git a/src/selector_manager/view/ClassTagView.js b/src/selector_manager/view/ClassTagView.js index 01b634c31..b45e42929 100644 --- a/src/selector_manager/view/ClassTagView.js +++ b/src/selector_manager/view/ClassTagView.js @@ -93,14 +93,9 @@ module.exports = require('backbone').View.extend({ * @private */ removeTag(e) { - const em = this.em; - const model = this.model; - const coll = this.coll; - const el = this.el; + const { em, model } = this; const sel = em && em.getSelected(); - sel && sel.get & sel.get('classes').remove(model); - coll && coll.remove(model); - setTimeout(() => this.remove(), 0); + sel && setTimeout(() => sel.getSelectors().remove(model)); }, /** diff --git a/src/selector_manager/view/ClassTagsView.js b/src/selector_manager/view/ClassTagsView.js index 9c5fef058..430c31df4 100644 --- a/src/selector_manager/view/ClassTagsView.js +++ b/src/selector_manager/view/ClassTagsView.js @@ -274,16 +274,10 @@ module.exports = Backbone.View.extend({ * @private */ renderClasses() { - var fragment = document.createDocumentFragment(); - - this.collection.each(function(model) { - this.addToClasses(model, fragment); - }, this); - - if (this.getClasses()) - this.getClasses() - .empty() - .append(fragment); + const frag = document.createDocumentFragment(); + const classes = this.getClasses(); + this.collection.each(model => this.addToClasses(model, frag)); + classes.get(0) && classes.empty().append(frag); return this; }, @@ -294,8 +288,7 @@ module.exports = Backbone.View.extend({ * @private */ getClasses() { - if (!this.$classes) - this.$classes = this.$el.find('#' + this.pfx + 'tags-c'); + if (!this.$classes) this.$classes = this.$el.find(`#${this.pfx}tags-c`); return this.$classes; }, diff --git a/test/specs/selector_manager/e2e/ClassManager.js b/test/specs/selector_manager/e2e/ClassManager.js index 0bd677a9c..130b211f7 100644 --- a/test/specs/selector_manager/e2e/ClassManager.js +++ b/test/specs/selector_manager/e2e/ClassManager.js @@ -97,7 +97,7 @@ module.exports = { expect(tagEl.collection.at(0).get('name')).toEqual('test'); }); - test.only('Removing from container removes also from selected component', () => { + test('Removing from container removes also from selected component', () => { var model = components.add({}); gjs.editor.setSelected(model); tagEl.addNewTag('test'); @@ -105,7 +105,7 @@ module.exports = { .getClasses() .find('.tag #close') .trigger('click'); - expect(model.get('classes').length).toEqual(0); + setTimeout(() => expect(model.get('classes').length).toEqual(0)); }); test('Trigger correctly event on target with new class add', () => {