Browse Source

Improve new rule creation with CSSRule

pull/261/head
Artur Arseniev 9 years ago
parent
commit
b1d723551e
  1. 23
      src/css_composer/model/CssRule.js
  2. 12
      test/specs/css_composer/e2e/CssComposer.js

23
src/css_composer/model/CssRule.js

@ -26,18 +26,21 @@ module.exports = Backbone.Model.extend(Styleable).extend({
},
initialize(c, opt) {
this.config = c || {};
this.sm = opt ? opt.sm || {} : {};
this.slct = this.config.selectors || [];
if(this.sm.get){
var slct = [];
for(var i = 0; i < this.slct.length; i++)
slct.push(this.sm.get('SelectorManager').add(this.slct[i].name || this.slct[i]));
this.slct = slct;
this.config = c || {};
const em = opt && opt.sm;
let selectors = this.config.selectors || [];
this.em = em;
if (em) {
const sm = em.get('SelectorManager');
const slct = [];
selectors.forEach((selector) => {
slct.push(sm.add(selector));
});
selectors = slct;
}
this.set('selectors', new Selectors(this.slct));
this.set('selectors', new Selectors(selectors));
},
/**

12
test/specs/css_composer/e2e/CssComposer.js

@ -54,9 +54,9 @@ module.exports = {
it('Rules are correctly imported from default property', () => {
var gj = grapesjs.init({
stylePrefix: '',
storageManager: { autoload: 0, type:'none' },
assetManager: { storageType: 'none', },
cssComposer: { rules: rulesSet},
storageManager: {autoload: 0, type:'none' },
assetManager: {storageType: 'none', },
cssComposer: {rules: rulesSet},
container: 'csscomposer-fixture',
});
var cssc = gj.editor.get('CssComposer');
@ -68,8 +68,10 @@ module.exports = {
it('New rule adds correctly the class inside selector manager', () => {
var rules = cssc.getAll();
rules.add({ selectors: [{name: 'test1'}] });
expect(clsm.getAll().at(0).get('name')).toEqual('test1');
rules.add({ selectors: [{name: 'test1', private: true}] });
var rule = clsm.getAll().at(0);
expect(rule.get('name')).toEqual('test1');
expect(rule.get('private')).toEqual(true);
});
it('New rules are correctly imported inside selector manager', () => {

Loading…
Cancel
Save