summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/fields/basic_fields_owl.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js/fields/basic_fields_owl.js')
-rw-r--r--addons/web/static/src/js/fields/basic_fields_owl.js23
1 files changed, 23 insertions, 0 deletions
diff --git a/addons/web/static/src/js/fields/basic_fields_owl.js b/addons/web/static/src/js/fields/basic_fields_owl.js
index a00b14fb9ee..8a5915410ee 100644
--- a/addons/web/static/src/js/fields/basic_fields_owl.js
+++ b/addons/web/static/src/js/fields/basic_fields_owl.js
@@ -7,6 +7,27 @@ odoo.define('web.basic_fields_owl', function (require) {
const _lt = core._lt;
+
+ /**
+ * FieldBadge displays the field's value inside a bootstrap pill badge.
+ * The supported field's types are 'char', 'selection' and 'many2one'.
+ *
+ * By default, the background color of the badge is a light gray, but it can
+ * be customized by setting a 'decoration-xxx' attribute on the field.
+ * For instance,
+ * <field name="some_field" widget="badge" decoration-danger="state == 'cancel'"/>
+ * renders a badge with a red background on records matching the condition.
+ */
+ class FieldBadge extends AbstractField {
+ _getClassFromDecoration(decoration) {
+ return `bg-${decoration.split('-')[1]}-light`;
+ }
+ }
+ FieldBadge.description = _lt("Badge");
+ FieldBadge.supportedFieldTypes = ['selection', 'many2one', 'char'];
+ FieldBadge.template = 'web.FieldBadge';
+
+
class FieldBoolean extends AbstractField {
patched() {
super.patched();
@@ -105,7 +126,9 @@ odoo.define('web.basic_fields_owl', function (require) {
FieldBoolean.supportedFieldTypes = ['boolean'];
FieldBoolean.template = 'web.FieldBoolean';
+
return {
+ FieldBadge,
FieldBoolean,
};
});