From d1be813d051078952aef9e8cc819231d680fdfd6 Mon Sep 17 00:00:00 2001 From: yuri Date: Wed, 13 Feb 2019 16:05:46 +0200 Subject: [PATCH] multi enum: is sorted param --- application/Espo/Resources/metadata/fields/multiEnum.json | 4 ++++ client/src/views/fields/array.js | 7 +++++++ 2 files changed, 11 insertions(+) diff --git a/application/Espo/Resources/metadata/fields/multiEnum.json b/application/Espo/Resources/metadata/fields/multiEnum.json index 5ee7b86dc6..8337784a0a 100644 --- a/application/Espo/Resources/metadata/fields/multiEnum.json +++ b/application/Espo/Resources/metadata/fields/multiEnum.json @@ -10,6 +10,10 @@ "type":"array", "view": "views/admin/field-manager/fields/options" }, + { + "name":"isSorted", + "type":"bool" + }, { "name":"translation", "type":"varchar", diff --git a/client/src/views/fields/array.js b/client/src/views/fields/array.js index 61b30615d8..4177d9bf77 100644 --- a/client/src/views/fields/array.js +++ b/client/src/views/fields/array.js @@ -115,6 +115,13 @@ Espo.define('views/fields/array', ['views/fields/base', 'lib!Selectize'], functi this.setupTranslation(); } + if (this.params.isSorted && this.translatedOptions) { + this.params.options = Espo.Utils.clone(this.params.options); + this.params.options = this.params.options.sort(function (v1, v2) { + return (this.translatedOptions[v1] || v1).localeCompare(this.translatedOptions[v2] || v2); + }.bind(this)); + } + if (this.options.customOptionList) { this.setOptionList(this.options.customOptionList, true); }