Browse Source

Update extendProperties, allow property extension with id key

pull/506/merge
Artur Arseniev 8 years ago
parent
commit
7c840d681f
  1. 1
      src/editor/model/Editor.js
  2. 24
      src/style_manager/model/Sector.js

1
src/editor/model/Editor.js

@ -283,6 +283,7 @@ module.exports = Backbone.Model.extend({
UndoManager.removeUndoType("change"); UndoManager.removeUndoType("change");
UndoManager.addUndoType("change:style", customUndoType); UndoManager.addUndoType("change:style", customUndoType);
UndoManager.addUndoType("change:attributes", customUndoType);
UndoManager.addUndoType("change:content", customUndoType); UndoManager.addUndoType("change:content", customUndoType);
} }
}, },

24
src/style_manager/model/Sector.js

@ -1,6 +1,8 @@
var Backbone = require('backbone'); import { extend } from 'underscore';
var Properties = require('./Properties');
var PropertyFactory = require('./PropertyFactory'); const Backbone = require('backbone');
const Properties = require('./Properties');
const PropertyFactory = require('./PropertyFactory');
module.exports = Backbone.Model.extend({ module.exports = Backbone.Model.extend({
@ -17,10 +19,7 @@ module.exports = Backbone.Model.extend({
var o = opts || {}; var o = opts || {};
var props = []; var props = [];
var builded = this.buildProperties(o.buildProps); var builded = this.buildProperties(o.buildProps);
!this.get('id') && this.set('id', this.get('name'));
if (!this.get('id')) {
this.set('id', this.get('name'))
}
if(!builded) if(!builded)
props = this.get('properties'); props = this.get('properties');
@ -46,19 +45,20 @@ module.exports = Backbone.Model.extend({
var ext = this.get('extendBuilded'); var ext = this.get('extendBuilded');
var isolated = []; var isolated = [];
for (var i = 0, len = mProps.length; i < len; i++){ for (var i = 0, len = mProps.length; i < len; i++) {
var mProp = mProps[i]; var mProp = mProps[i];
var found = 0; var found = 0;
for(var j = 0; j < pLen; j++){ for (var j = 0; j < pLen; j++) {
var prop = props[j]; var prop = props[j];
if(mProp.property == prop.property){ if (mProp.property == prop.property ||
mProp.id == prop.property) {
// Check for nested properties // Check for nested properties
var mPProps = mProp.properties; var mPProps = mProp.properties;
if(mPProps && mPProps.length){ if (mPProps && mPProps.length) {
mProp.properties = this.extendProperties(prop.properties, mPProps, 1); mProp.properties = this.extendProperties(prop.properties, mPProps, 1);
} }
props[j] = ext ? _.extend(prop, mProp) : mProp; props[j] = ext ? extend(prop, mProp) : mProp;
isolated[j] = props[j]; isolated[j] = props[j];
found = 1; found = 1;
continue; continue;

Loading…
Cancel
Save