From d4cd8be48f83a7775c667bc6c968a4b9e14679be Mon Sep 17 00:00:00 2001 From: oco-odoo Date: Fri, 8 Jun 2018 15:20:49 +0200 Subject: [IMP] web: add decoration support for all field widgets (#25160) It is sometimes useful to be able to customize slightly the color of a field depending on some conditions on the current record. For example, imagine that we want to show a VAT number field in green/red, if it was validated or not. To do that, we can add a field with an onchange, and simply add decoration-danger and decoration-success attributes to the field. --- addons/web/static/src/js/fields/basic_fields.js | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'addons/web/static/src/js/fields/basic_fields.js') diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js index 31b0c53dd64..01b4cb4371d 100644 --- a/addons/web/static/src/js/fields/basic_fields.js +++ b/addons/web/static/src/js/fields/basic_fields.js @@ -206,6 +206,13 @@ var InputField = DebouncedField.extend({ this.isDirty = false; } if (this.isDirty || (event && event.target === this && event.data.changes[this.name] === this.value)) { + if (this.attrs.decorations) { + // if a field is modified, then it could have triggered an onchange + // which changed some of its decorations. Since we bypass the + // render function, we need to apply decorations here to make + // sure they are recomputed. + this._applyDecorations(); + } return $.when(); } else { return this._render(); -- cgit v1.2.3