diff --git a/application/Espo/Resources/metadata/fields/multiEnum.json b/application/Espo/Resources/metadata/fields/multiEnum.json
index a1cc2e5030..dd12e4bb7b 100644
--- a/application/Espo/Resources/metadata/fields/multiEnum.json
+++ b/application/Espo/Resources/metadata/fields/multiEnum.json
@@ -8,7 +8,7 @@
{
"name":"options",
"type":"array",
- "view": "views/admin/field-manager/fields/options"
+ "view": "views/admin/field-manager/fields/options-with-style"
},
{
"name":"isSorted",
@@ -28,6 +28,15 @@
"type": "int",
"min": 1
},
+ {
+ "name":"style",
+ "type":"jsonObject",
+ "hidden": true
+ },
+ {
+ "name":"displayAsLabel",
+ "type":"bool"
+ },
{
"name":"audited",
"type":"bool"
diff --git a/client/src/views/fields/array.js b/client/src/views/fields/array.js
index 5a3b77a4ff..d4f9e408e6 100644
--- a/client/src/views/fields/array.js
+++ b/client/src/views/fields/array.js
@@ -104,6 +104,8 @@ Espo.define('views/fields/array', ['views/fields/base', 'lib!Selectize'], functi
this.selected = [];
}
+ this.styleMap = this.params.style || {};
+
this.setupOptions();
if ('translatedOptions' in this.options) {
@@ -332,7 +334,7 @@ Espo.define('views/fields/array', ['views/fields/base', 'lib!Selectize'], functi
},
getValueForDisplay: function () {
- return this.selected.map(function (item) {
+ var list = this.selected.map(function (item) {
var label = null;
if (this.translatedOptions != null) {
if (item in this.translatedOptions) {
@@ -345,8 +347,24 @@ Espo.define('views/fields/array', ['views/fields/base', 'lib!Selectize'], functi
if (label === '') {
label = this.translate('None');
}
+
+ var style = this.styleMap[item] || 'default';
+ if (this.params.displayAsLabel) {
+ label = '' + label + '';
+ } else {
+ if (style && style != 'default') {
+ label = '' + label + '';
+ }
+ }
return label;
- }, this).join(', ');
+ }, this)
+
+
+ if (this.params.displayAsLabel) {
+ return list.join(' ');
+ } else {
+ return list.join(', ')
+ }
},
getItemHtml: function (value) {