From 7c840d681fbd6d0fa12daa0cdc81e7cf4cb2d151 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Tue, 7 Nov 2017 22:24:57 +0100 Subject: [PATCH] Update extendProperties, allow property extension with id key --- src/editor/model/Editor.js | 1 + src/style_manager/model/Sector.js | 24 ++++++++++++------------ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/editor/model/Editor.js b/src/editor/model/Editor.js index b61790f46..6d5dc6553 100644 --- a/src/editor/model/Editor.js +++ b/src/editor/model/Editor.js @@ -283,6 +283,7 @@ module.exports = Backbone.Model.extend({ UndoManager.removeUndoType("change"); UndoManager.addUndoType("change:style", customUndoType); + UndoManager.addUndoType("change:attributes", customUndoType); UndoManager.addUndoType("change:content", customUndoType); } }, diff --git a/src/style_manager/model/Sector.js b/src/style_manager/model/Sector.js index 5cd532be3..19b6d1950 100644 --- a/src/style_manager/model/Sector.js +++ b/src/style_manager/model/Sector.js @@ -1,6 +1,8 @@ -var Backbone = require('backbone'); -var Properties = require('./Properties'); -var PropertyFactory = require('./PropertyFactory'); +import { extend } from 'underscore'; + +const Backbone = require('backbone'); +const Properties = require('./Properties'); +const PropertyFactory = require('./PropertyFactory'); module.exports = Backbone.Model.extend({ @@ -17,10 +19,7 @@ module.exports = Backbone.Model.extend({ var o = opts || {}; var props = []; var builded = this.buildProperties(o.buildProps); - - if (!this.get('id')) { - this.set('id', this.get('name')) - } + !this.get('id') && this.set('id', this.get('name')); if(!builded) props = this.get('properties'); @@ -46,19 +45,20 @@ module.exports = Backbone.Model.extend({ var ext = this.get('extendBuilded'); 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 found = 0; - for(var j = 0; j < pLen; j++){ + for (var j = 0; j < pLen; j++) { var prop = props[j]; - if(mProp.property == prop.property){ + if (mProp.property == prop.property || + mProp.id == prop.property) { // Check for nested properties var mPProps = mProp.properties; - if(mPProps && mPProps.length){ + if (mPProps && mPProps.length) { 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]; found = 1; continue;