summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/basic/basic_view.js
diff options
context:
space:
mode:
authoroco-odoo <oco@odoo.com>2018-06-08 15:20:49 +0200
committerGitHub <noreply@github.com>2018-06-08 15:20:49 +0200
commitd4cd8be48f83a7775c667bc6c968a4b9e14679be (patch)
tree9185c59636525a98292e31112ca00152c0db4fb3 /addons/web/static/src/js/views/basic/basic_view.js
parenta8aa0bcbbe48babe877e08d81e5bdcc9e5779fdc (diff)
[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.
Diffstat (limited to 'addons/web/static/src/js/views/basic/basic_view.js')
-rw-r--r--addons/web/static/src/js/views/basic/basic_view.js12
1 files changed, 12 insertions, 0 deletions
diff --git a/addons/web/static/src/js/views/basic/basic_view.js b/addons/web/static/src/js/views/basic/basic_view.js
index 22900e12d6b..2c4ed711223 100644
--- a/addons/web/static/src/js/views/basic/basic_view.js
+++ b/addons/web/static/src/js/views/basic/basic_view.js
@@ -209,6 +209,18 @@ var BasicView = AbstractView.extend({
var self = this;
attrs.Widget = this._getFieldWidgetClass(viewType, field, attrs);
+ // process decoration attributes
+ _.each(attrs, function (value, key) {
+ var splitKey = key.split('-');
+ if (splitKey[0] === 'decoration') {
+ attrs.decorations = attrs.decorations || [];
+ attrs.decorations.push({
+ className: 'text-' + splitKey[1],
+ expression: py.parse(py.tokenize(value))
+ });
+ }
+ });
+
if (!_.isObject(attrs.options)) { // parent arch could have already been processed (TODO this should not happen)
attrs.options = attrs.options ? pyeval.py_eval(attrs.options) : {};
}