summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/form_widgets.js
diff options
context:
space:
mode:
authorqsm-odoo <qsm@odoo.com>2015-05-13 10:11:42 +0200
committerqsm-odoo <qsm@odoo.com>2015-05-13 17:04:20 +0200
commit84208a6ba1e88133719e39ea8fd608a63565a033 (patch)
treed4e4feab344b67fe7309ee4372ca202c659e0206 /addons/web/static/src/js/views/form_widgets.js
parentaf32bf13fc055699014f6ceb49f5d2bb8bad9710 (diff)
[IMP] web: New generic progressbar widget + FieldProgressBar adaptation
Diffstat (limited to 'addons/web/static/src/js/views/form_widgets.js')
-rw-r--r--addons/web/static/src/js/views/form_widgets.js26
1 files changed, 19 insertions, 7 deletions
diff --git a/addons/web/static/src/js/views/form_widgets.js b/addons/web/static/src/js/views/form_widgets.js
index 273b18958a1..b23bff4cc84 100644
--- a/addons/web/static/src/js/views/form_widgets.js
+++ b/addons/web/static/src/js/views/form_widgets.js
@@ -5,6 +5,7 @@ var core = require('web.core');
var crash_manager = require('web.crash_manager');
var data = require('web.data');
var datepicker = require('web.datepicker');
+var ProgressBar = require('web.ProgressBar');
var Dialog = require('web.Dialog');
var common = require('web.form_common');
var formats = require('web.formats');
@@ -689,15 +690,26 @@ var FieldBoolean = common.AbstractField.extend({
/**
The progressbar field expect a float from 0 to 100.
*/
-var FieldProgressBar = common.AbstractField.extend({
- template: 'FieldProgressBar',
- render_value: function() {
- this.$el.progressbar({
+var FieldProgressBar = common.AbstractField.extend(common.ReinitializeFieldMixin, {
+ initialize_content: function() {
+ if(this.progressbar) {
+ this.progressbar.destroy();
+ }
+
+ this.progressbar = new ProgressBar(this, {
+ readonly: this.get('effective_readonly'),
value: this.get('value') || 0,
- disabled: this.get("effective_readonly")
});
- var formatted_value = formats.format_value(this.get('value') || 0, { type : 'float' });
- this.$('span').html(formatted_value + '%');
+
+ var self = this;
+ this.progressbar.appendTo('<div>').done(function() {
+ self.progressbar.$el.addClass(self.$el.attr('class'));
+ self.replaceElement(self.progressbar.$el);
+
+ self.progressbar.on('change:value', self, function() {
+ self.set('value', self.progressbar.get('value'));
+ });
+ });
}
});