summaryrefslogtreecommitdiff
path: root/addons/base/static/src
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2011-05-12 16:32:22 +0200
committerFabien Meghazi <fme@openerp.com>2011-05-12 16:32:22 +0200
commit50194d321eaed52d993b6e7e42fddfde6bdd3905 (patch)
tree46caa0957f1ca263ce89da79b1ffb564832bd882 /addons/base/static/src
parent4a6155d80cc54bdce05b8455a4e2af9a963e4414 (diff)
[ADD] Added float_time form widget
bzr revid: fme@openerp.com-20110512143222-2gc42sludahd7c6i
Diffstat (limited to 'addons/base/static/src')
-rw-r--r--addons/base/static/src/js/form.js26
1 files changed, 24 insertions, 2 deletions
diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js
index b4e9e0cbc33..589ebaf692a 100644
--- a/addons/base/static/src/js/form.js
+++ b/addons/base/static/src/js/form.js
@@ -150,7 +150,7 @@ openerp.base.FormView = openerp.base.View.extend( /** @lends openerp.base.FormV
args.push(value == null ? false : value);
} else {
args.push(false);
- this.log("warning : on_change can't find field " + field, onchange);
+ self.log("warning : on_change can't find field " + field, onchange);
}
});
var ajax = {
@@ -718,6 +718,28 @@ openerp.base.form.FieldDate = openerp.base.form.FieldDatetime.extend({
format: openerp.base.parse_date
});
+openerp.base.form.FieldFloatTime = openerp.base.form.FieldChar.extend({
+ init: function(view, node) {
+ this._super(view, node);
+ this.validation_regex = /^\d+:\d+$/;
+ },
+ set_value: function(value) {
+ value = value || 0;
+ this._super.apply(this, [value]);
+ var show_value = _.sprintf("%02d:%02d", Math.floor(value), Math.round((value % 1) * 60));
+ this.$element.find('input').val(show_value);
+ },
+ validate: function() {
+ if (typeof(this.value) == "string") {
+ this._super.apply(this, arguments);
+ if (!this.invalid) {
+ var time = this.value.split(':');
+ this.value = parseInt(time[0], 10) + parseInt(time[1], 10) / 60;
+ }
+ }
+ }
+});
+
openerp.base.form.FieldText = openerp.base.form.Field.extend({
init: function(view, node) {
this._super(view, node);
@@ -1005,7 +1027,7 @@ openerp.base.form.widgets = new openerp.base.Registry({
'float' : 'openerp.base.form.FieldFloat',
'integer': 'openerp.base.form.FieldFloat',
'progressbar': 'openerp.base.form.FieldProgressBar',
- 'float_time': 'openerp.base.form.FieldFloat'
+ 'float_time': 'openerp.base.form.FieldFloatTime'
});
};