[FIX] validation of float fields

bzr revid: xmo@openerp.com-20110720110134-fi1zczzf5m579l12
This commit is contained in:
Xavier Morel 2011-07-20 13:01:34 +02:00
parent a5a925d472
commit 7dda46b605
1 changed files with 23 additions and 15 deletions

View File

@ -593,32 +593,40 @@ openerp.base.search.BooleanField = openerp.base.search.Field.extend({
}
}
});
openerp.base.search.IntegerField = openerp.base.search.Field.extend({
openerp.base.search.NumberField = openerp.base.search.Field.extend(/** @lends openerp.base.search.NumberField# */{
get_value: function () {
if (!this.$element.val()) {
return null;
}
var val = parseInt(this.$element.val());
var check = Number(this.$element.val());
if (isNaN(check) || val !== check) {
var val = this.parse(this.$element.val()),
check = Number(this.$element.val());
if (isNaN(val) || val !== check) {
this.$element.addClass('error');
throw new openerp.base.search.Invalid(
this.attrs.name, this.$element.val(), "not a valid integer");
this.attrs.name, this.$element.val(), this.error_message);
}
this.$element.removeClass('error');
return val;
}
});
openerp.base.search.FloatField = openerp.base.search.Field.extend({
get_value: function () {
var val = Number(this.$element.val());
if (isNaN(val)) {
this.$element.addClass('error');
throw new openerp.base.search.Invalid(
this.attrs.name, this.$element.val(), "not a valid number");
}
this.$element.removeClass('error');
return val;
/**
* @class
* @extends openerp.base.search.NumberField
*/
openerp.base.search.IntegerField = openerp.base.search.NumberField.extend(/** @lends openerp.base.search.IntegerField# */{
error_message: "not a valid integer",
parse: function (value) {
return parseInt(value, 10);
}
});
/**
* @class
* @extends openerp.base.search.NumberField
*/
openerp.base.search.FloatField = openerp.base.search.NumberField.extend(/** @lends openerp.base.search.FloatField# */{
error_message: "not a valid number",
parse: function (value) {
return parseFloat(value);
}
});
openerp.base.search.SelectionField = openerp.base.search.Field.extend({