diff options
Diffstat (limited to 'addons/web/static/src/js/fields')
| -rw-r--r-- | addons/web/static/src/js/fields/basic_fields.js | 54 |
1 files changed, 42 insertions, 12 deletions
diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js index 1477d017852..33728565cf5 100644 --- a/addons/web/static/src/js/fields/basic_fields.js +++ b/addons/web/static/src/js/fields/basic_fields.js @@ -1668,29 +1668,59 @@ var FieldProgressBar = AbstractField.extend({ }); /** - This widget is intended to be used on boolean fields. It toggles a button - switching between a green bullet / gray bullet. + * This widget is intended to be used on boolean fields. It toggles a button + * switching between a green bullet / gray bullet. */ var FieldToggleBoolean = AbstractField.extend({ template: "toggle_button", events: { - 'click': 'set_toggle_button' + 'click': '_onToggleButton' }, supportedFieldTypes: ['boolean'], + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + /** + * A boolean field is always set since false is a valid value. + * + * @override + */ + isSet: function () { + return true; + }, + + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + + /** + * @override + * @private + */ _render: function () { var class_name = this.value ? 'o_toggle_button_success' : 'text-muted'; this.$('i').attr('class', ('fa fa-circle ' + class_name)); + var title = this.value ? this.attrs.options.active : this.attrs.options.inactive; + this.$el.attr('title', title); }, - set_toggle_button: function () { - var toggle_value = !this.value; - this._setValue(toggle_value); - if (this.mode === 'edit') { - this._render(); - } - }, - isSet: function () { - return true; + + //-------------------------------------------------------------------------- + // Handlers + //-------------------------------------------------------------------------- + + /** + * Toggle the button + * + * @private + * @param {MouseEvent} event + */ + _onToggleButton: function (event) { + event.stopPropagation(); + this._setValue(!this.value); }, + }); var JournalDashboardGraph = AbstractField.extend({ |
