Browse Source

Parse the value in getLayersFromStyle

no-jquery
Artur Arseniev 9 years ago
parent
commit
7357dcf5f0
  1. 16
      src/style_manager/model/Layers.js
  2. 20
      src/style_manager/view/PropertyStackView.js

16
src/style_manager/model/Layers.js

@ -21,7 +21,8 @@ module.exports = Backbone.Collection.extend({
/** /**
* Get layers from a value string (for not detached properties), * Get layers from a value string (for not detached properties),
* eg: propertyName: layer1Value, layer2Value, layer3Value, ...; * example of input:
* `layer1Value, layer2Value, layer3Value, ...`
* @param {string} value * @param {string} value
* @return {Array} * @return {Array}
* @private * @private
@ -43,10 +44,13 @@ module.exports = Backbone.Collection.extend({
}, },
/** /**
* Get layers from a style object (for detached properties), eg: * Get layers from a style object (for detached properties),
* sub-propname1: sub-propvalue11, sub-propvalue12, sub-propvalue13, ... * example of input:
* sub-propname2: sub-propvalue21, sub-propvalue22, sub-propvalue23, ... * {
* sub-propname3: sub-propvalue31, sub-propvalue32, sub-propvalue33, ... * subPropname1: sub-propvalue11, sub-propvalue12, sub-propvalue13, ...
* subPropname2: sub-propvalue21, sub-propvalue22, sub-propvalue23, ...
* subPropname3: sub-propvalue31, sub-propvalue32, sub-propvalue33, ...
* }
* @param {Object} styleObj * @param {Object} styleObj
* @return {Array} * @return {Array}
* @private * @private
@ -59,7 +63,7 @@ module.exports = Backbone.Collection.extend({
const style = styleObj[propModel.get('property')]; const style = styleObj[propModel.get('property')];
const values = style ? style.split(', ') : []; const values = style ? style.split(', ') : [];
values.forEach((value, i) => { values.forEach((value, i) => {
value = value.trim(); value = propModel.parseValue(value.trim());
const layer = layers[i]; const layer = layers[i];
const propertyObj = Object.assign({}, propModel.attributes, {value}); const propertyObj = Object.assign({}, propModel.attributes, {value});

20
src/style_manager/view/PropertyStackView.js

@ -133,18 +133,11 @@ module.exports = PropertyCompositeView.extend({
}, },
/** /**
* The value that should update view inputs. * There is no need to handle input update by the property itself,
* In case of a detached property the value might something like this * this will be done by layers
* @param {string} value
* @param {Object} [opts={}]
* @private * @private
*/ */
setValue(value, opts = {}) { setValue() {},
const model = this.model;
let val = value || model.get('value') || model.getDefaultValue();
//const input = this.getInputEl();
//input && (input.value = val);
},
/** /**
* Create value by layers * Create value by layers
@ -173,6 +166,9 @@ module.exports = PropertyCompositeView.extend({
if (model.get('detached')) { if (model.get('detached')) {
const subProp = subModel.get('property'); const subProp = subModel.get('property');
const values = self.getLayers().getPropertyValues(subProp); const values = self.getLayers().getPropertyValues(subProp);
if (subProp == 'background-image') {
console.log('value is', values, self.getLayers());
}
view.updateTargetStyle(values, null, opt); view.updateTargetStyle(values, null, opt);
} else { } else {
model.set('value', model.getFullValue(), opt); model.set('value', model.getFullValue(), opt);
@ -182,7 +178,7 @@ module.exports = PropertyCompositeView.extend({
// How to get a value on a single sub-property. // How to get a value on a single sub-property.
// eg. When the target is updated // eg. When the target is updated
customValue(property, mIndex) { customValue(property, mIndex) {
return self.valueOnIndex(mIndex, property); //return self.valueOnIndex(mIndex, property);
} }
}; };
const layers = new LayersView({ const layers = new LayersView({
@ -201,7 +197,7 @@ module.exports = PropertyCompositeView.extend({
onChange: propsConfig.onChange, onChange: propsConfig.onChange,
propTarget: propsConfig.propTarget, propTarget: propsConfig.propTarget,
customValue: propsConfig.customValue, customValue: propsConfig.customValue,
}).render().el; }).render();
//model.get('properties') //model.get('properties')
fieldEl.appendChild(layers); fieldEl.appendChild(layers);

Loading…
Cancel
Save