diff --git a/src/domain_abstract/ui/InputNumber.js b/src/domain_abstract/ui/InputNumber.js index 98c99cb7c..434a2cc96 100644 --- a/src/domain_abstract/ui/InputNumber.js +++ b/src/domain_abstract/ui/InputNumber.js @@ -228,7 +228,8 @@ module.exports = Input.extend({ var force = 0; var opt = opts || {}; var model = this.model; - var val = value !== '' ? value : model.get('defaults'); + const defValue = ''; //model.get('defaults'); + var val = !isUndefined(value) ? value : defValue; var units = model.get('units') || []; var unit = model.get('unit') || (units.length && units[0]) || ''; var max = model.get('max'); @@ -248,7 +249,7 @@ module.exports = Input.extend({ var valCopy = val + ''; val += ''; // Make it suitable for replace val = parseFloat(val.replace(',', '.')); - val = !isNaN(val) ? val : model.get('defaults'); + val = !isNaN(val) ? val : defValue; var uN = valCopy.replace(val, ''); // Check if exists as unit if (_.indexOf(units, uN) >= 0) unit = uN; diff --git a/src/style_manager/model/Property.js b/src/style_manager/model/Property.js index cf0d757cf..2604fed10 100644 --- a/src/style_manager/model/Property.js +++ b/src/style_manager/model/Property.js @@ -1,3 +1,5 @@ +import { isUndefined } from 'underscore'; + module.exports = require('backbone').Model.extend({ defaults: { name: '', @@ -36,6 +38,15 @@ module.exports = require('backbone').Model.extend({ init && init(); }, + /** + * Clear the value + * @return {this} + */ + clearValue(opts = {}) { + this.set({ value: undefined }, opts); + return this; + }, + /** * Update value * @param {any} value @@ -117,12 +128,12 @@ module.exports = require('backbone').Model.extend({ */ getFullValue(val) { const fn = this.get('functionName'); - let value = val || this.get('value'); + let value = isUndefined(val) ? this.get('value') : val; - if (fn) { + if (fn && !isUndefined(value)) { value = `${fn}(${value})`; } - return value; + return value || ''; } }); diff --git a/src/style_manager/model/PropertyInteger.js b/src/style_manager/model/PropertyInteger.js index 5aea5c69b..63b73a20f 100644 --- a/src/style_manager/model/PropertyInteger.js +++ b/src/style_manager/model/PropertyInteger.js @@ -1,3 +1,5 @@ +import { isUndefined } from 'underscore'; + const Property = require('./Property'); const InputNumber = require('domain_abstract/ui/InputNumber'); @@ -30,6 +32,11 @@ module.exports = Property.extend({ } }, + clearValue(opts = {}) { + this.set({ value: undefined, unit: undefined }, opts); + return this; + }, + parseValue(val) { const parsed = Property.prototype.parseValue.apply(this, arguments); const { value, unit } = this.input.validateInputValue(parsed.value, { @@ -41,7 +48,11 @@ module.exports = Property.extend({ }, getFullValue() { - let value = this.get('value') + this.get('unit'); + let value = this.get('value'); + let unit = this.get('unit'); + value = !isUndefined(value) ? value : ''; + unit = !isUndefined(unit) && value ? unit : ''; + value = `${value}${unit}`; return Property.prototype.getFullValue.apply(this, [value]); } }); diff --git a/src/style_manager/view/PropertyCompositeView.js b/src/style_manager/view/PropertyCompositeView.js index 7d8fa6e08..ff8a5d34e 100644 --- a/src/style_manager/view/PropertyCompositeView.js +++ b/src/style_manager/view/PropertyCompositeView.js @@ -18,6 +18,16 @@ module.exports = PropertyView.extend({ PropertyView.prototype.inputValueChanged.apply(this, args); } }, + /* + clear(e) { + e && e.stopPropagation(); + const target = this.getTargetModel(); + target.removeStyle(this.model.get('property')); + if (!this.model.get('detached')) { + + } + this.targetUpdated(); + },*/ /** * Renders input diff --git a/src/style_manager/view/PropertyIntegerView.js b/src/style_manager/view/PropertyIntegerView.js index d40248c89..6518a9d4f 100644 --- a/src/style_manager/view/PropertyIntegerView.js +++ b/src/style_manager/view/PropertyIntegerView.js @@ -1,7 +1,9 @@ const InputNumber = require('domain_abstract/ui/InputNumber'); +const PropertyView = require('./PropertyView'); const $ = Backbone.$; +let timeout; -module.exports = require('./PropertyView').extend({ +module.exports = PropertyView.extend({ templateInput() { return ''; }, diff --git a/src/style_manager/view/PropertyView.js b/src/style_manager/view/PropertyView.js index 97556d91a..7d4b1b2aa 100644 --- a/src/style_manager/view/PropertyView.js +++ b/src/style_manager/view/PropertyView.js @@ -1,4 +1,4 @@ -import { bindAll, isArray } from 'underscore'; +import { bindAll, isArray, isUndefined } from 'underscore'; import { camelCase } from 'utils/mixins'; const clearProp = 'data-clear-style'; @@ -114,10 +114,13 @@ module.exports = Backbone.View.extend({ */ clear(e) { e && e.stopPropagation(); + this.model.clearValue(); + this.targetUpdated(); + /* const target = this.getTargetModel(); - console.log(target.getStyle(), this.model.get('property')); target.removeStyle(this.model.get('property')); this.targetUpdated(); + */ }, /** @@ -438,7 +441,7 @@ module.exports = Backbone.View.extend({ * */ setValue(value) { const model = this.model; - let val = value || model.getDefaultValue(); + let val = isUndefined(value) ? model.getDefaultValue() : value; const input = this.getInputEl(); input && (input.value = val); },