From 4edfae8e24eac0469e0d9a24990aabdfa4b128ec Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Thu, 16 Feb 2017 23:32:04 +0100 Subject: [PATCH] Fix checkbox trait rendering on change --- src/demo.js | 3 -- src/trait_manager/view/TraitCheckboxView.js | 36 ++++++++++++--------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/demo.js b/src/demo.js index c2dcf04c0..0cf72e52c 100644 --- a/src/demo.js +++ b/src/demo.js @@ -333,9 +333,6 @@ require(['config/require-config'], function() { window.editor = editor; - - - editor.render(); }); }); diff --git a/src/trait_manager/view/TraitCheckboxView.js b/src/trait_manager/view/TraitCheckboxView.js index c729647d7..1d257e793 100644 --- a/src/trait_manager/view/TraitCheckboxView.js +++ b/src/trait_manager/view/TraitCheckboxView.js @@ -3,13 +3,13 @@ define(['./TraitView'], return TraitView.extend({ - initialize: function(o) { - TraitView.prototype.initialize.apply(this, arguments); - var iconCls = this.ppfx + 'chk-icon'; + initialize: function(o) { + TraitView.prototype.initialize.apply(this, arguments); + var iconCls = this.ppfx + 'chk-icon'; this.tmpl = '
'; }, - /** + /** * Fires when the input is changed * @private */ @@ -17,23 +17,27 @@ define(['./TraitView'], this.model.set('value', this.getInputEl().checked); }, - /** + /** * Returns input element * @return {HTMLElement} * @private */ getInputEl: function() { - var first; - if(!this.$input) - first = 1; - var el = TraitView.prototype.getInputEl.apply(this, arguments); - if(first){ - var md = this.model; - var name = md.get('name'); - if(md.get('changeProp')){ - el.checked = this.target.get(name); - } - } + var first; + if(!this.$input) + first = 1; + var el = TraitView.prototype.getInputEl.apply(this, arguments); + if(first){ + var md = this.model; + var name = md.get('name'); + var target = this.target; + if(md.get('changeProp')){ + el.checked = target.get(name); + } else { + var attrs = target.get('attributes'); + el.checked = !!attrs[name]; + } + } return el; },