diff options
| author | qsm-odoo <qsm@odoo.com> | 2015-05-13 10:11:42 +0200 |
|---|---|---|
| committer | qsm-odoo <qsm@odoo.com> | 2015-05-13 17:04:20 +0200 |
| commit | 84208a6ba1e88133719e39ea8fd608a63565a033 (patch) | |
| tree | d4e4feab344b67fe7309ee4372ca202c659e0206 /addons/web/static/src/js/views/form_widgets.js | |
| parent | af32bf13fc055699014f6ceb49f5d2bb8bad9710 (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.js | 26 |
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')); + }); + }); } }); |
