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) {