Browse Source

Fix integer input issues

pull/856/head
Artur Arseniev 9 years ago
parent
commit
c5caa96640
  1. 5
      src/domain_abstract/ui/InputNumber.js
  2. 17
      src/style_manager/model/Property.js
  3. 13
      src/style_manager/model/PropertyInteger.js
  4. 10
      src/style_manager/view/PropertyCompositeView.js
  5. 4
      src/style_manager/view/PropertyIntegerView.js
  6. 9
      src/style_manager/view/PropertyView.js

5
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;

17
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 || '';
}
});

13
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]);
}
});

10
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

4
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 '';
},

9
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);
},

Loading…
Cancel
Save