Browse Source

Setup `setIdStyle` in CssComposer

pull/540/head
Artur Arseniev 9 years ago
parent
commit
03a4e03f88
  1. 26
      src/css_composer/index.js
  2. 6
      src/dom_components/view/ComponentView.js
  3. 7
      src/selector_manager/index.js

26
src/css_composer/index.js

@ -24,12 +24,14 @@
*/ */
module.exports = () => { module.exports = () => {
let em;
var c = {}, var c = {},
defaults = require('./config/config'), defaults = require('./config/config'),
CssRule = require('./model/CssRule'), CssRule = require('./model/CssRule'),
CssRules = require('./model/CssRules'), CssRules = require('./model/CssRules'),
Selectors = require('./model/Selectors'), Selectors = require('./model/Selectors'),
CssRulesView = require('./view/CssRulesView'); CssRulesView = require('./view/CssRulesView'),
Selector = require('selector_manager/model/Selector');
var rules, rulesView; var rules, rulesView;
@ -79,6 +81,7 @@ module.exports = () => {
c.rules = elStyle || c.rules; c.rules = elStyle || c.rules;
c.sm = c.em; c.sm = c.em;
em = c.em;
rules = new CssRules([], c); rules = new CssRules([], c);
rulesView = new CssRulesView({ rulesView = new CssRulesView({
collection: rules, collection: rules,
@ -273,22 +276,19 @@ module.exports = () => {
/** /**
* Add/update a css rule * Add/update a css rule with id selector
* @param {string} selector Selector string, eg. '.class1.class2, #id1' * @param {string} name Id selector name, eg. 'my-id'
* @param {Object} style Style properties and values * @param {Object} style Style properties and values
*/ */
set(selector, style, opts = {}) { setIdStyle(name, style = {}, opts = {}) {
const state = opts.state || ''; const state = opts.state || '';
const media = opts.mediaText || ''; const media = opts.mediaText || '';
// opts.state, opts.media const sm = em.get('SelectorManager');
/* const selector = sm.add({ name, type: Selector.TYPE_ID });
1. from selectorString to selectorObjects (using Selectors API) console.log(media);
[ const rule = this.add(selector, state, media);
[{'class1'}, {'class2'}], rule.setStyle(style);
[{'id1'}, {'class2'}] return rule;
]
2. add(selectors, state, media)
*/
}, },

6
src/dom_components/view/ComponentView.js

@ -147,13 +147,12 @@ module.exports = Backbone.View.extend({
updateStyle() { updateStyle() {
const em = this.em; const em = this.em;
const model = this.model; const model = this.model;
const selector = `#${model.getId()}`;
const style = model.getStyle(); const style = model.getStyle();
const state = model.get('state'); const state = model.get('state');
em.get('CssComposer').set(selector, style, { state }); em.get('CssComposer').setIdStyle(model.getId(), style, { state });
//this.setAttribute('style', this.getStyleString());
}, },
/** /**
* Update classe attribute * Update classe attribute
* @private * @private
@ -207,6 +206,7 @@ module.exports = Backbone.View.extend({
} }
src && (attrs.src = src); src && (attrs.src = src);
attrs.id = model.getId();
this.$el.attr(attrs); this.$el.attr(attrs);
this.updateHighlight(); this.updateHighlight();
this.updateStyle(); this.updateStyle();

7
src/selector_manager/index.js

@ -133,7 +133,7 @@ module.exports = config => {
} }
const cname = opts.name; const cname = opts.name;
const selector = cname ? this.get(cname) : selectors.where(opts)[0]; const selector = cname ? this.get(cname, opts.type) : selectors.where(opts)[0];
if (!selector) { if (!selector) {
return selectors.add(opts); return selectors.add(opts);
@ -167,12 +167,13 @@ module.exports = config => {
/** /**
* Get the selector by its name * Get the selector by its name
* @param {String} name Selector name * @param {String} name Selector name
* @param {String} tyoe Selector type
* @return {Model|null} * @return {Model|null}
* @example * @example
* var selector = selectorManager.get('selectorName'); * var selector = selectorManager.get('selectorName');
* */ * */
get(name) { get(name, type = Selector.TYPE_CLASS) {
return selectors.where({name})[0]; return selectors.where({name, type})[0];
}, },
/** /**

Loading…
Cancel
Save