[FIX] web: 'toggle_button' widget in edit mode

The 'toggle_button' widget is one of special field widgets that
can trigger changes in readonly mode (in this case, toggle the
boolean value when clicked). It was working fine in form views in
'readonly' mode, as in this case, the new value is saved directly,
and the form view is re-rendered (a new widget is created with the
new value).

However, in 'edit' mode, the value isn't saved directly (the user
has to click on 'Save' to save the changes), the widget is reset
with its new value, and the reset wasn't correctly handled in this
particular widget.

Fixes #23400
This commit is contained in:
Aaron Bohy
2018-03-12 12:56:00 +01:00
parent 8a1603eeda
commit a0b06afcf3
3 changed files with 79 additions and 4 deletions
@@ -1993,8 +1993,9 @@ var FieldToggleBoolean = AbstractField.extend({
* @private
*/
_render: function () {
var className = this.value ? 'o_toggle_button_success' : 'text-muted';
this.$('i').addClass('fa fa-circle ' + className);
this.$('i')
.toggleClass('o_toggle_button_success', !!this.value)
.toggleClass('text-muted', !this.value);
var title = this.value ? this.attrs.options.active : this.attrs.options.inactive;
this.$el.attr('title', title);
},