From 90e775c27a609cb283b3a8cdcd64ec3edeb8183c Mon Sep 17 00:00:00 2001 From: yuri Date: Mon, 11 May 2015 12:30:36 +0300 Subject: [PATCH] fix multi enum search --- .../client/res/templates/fields/array/search.tpl | 6 ++++++ frontend/client/src/views/fields/array.js | 14 +++++++++++--- frontend/client/src/views/fields/multi-enum.js | 2 +- 3 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 frontend/client/res/templates/fields/array/search.tpl diff --git a/frontend/client/res/templates/fields/array/search.tpl b/frontend/client/res/templates/fields/array/search.tpl new file mode 100644 index 0000000000..ec972d89e4 --- /dev/null +++ b/frontend/client/res/templates/fields/array/search.tpl @@ -0,0 +1,6 @@ + + + + diff --git a/frontend/client/src/views/fields/array.js b/frontend/client/src/views/fields/array.js index c77d54cf3e..986e6d9150 100644 --- a/frontend/client/src/views/fields/array.js +++ b/frontend/client/src/views/fields/array.js @@ -31,6 +31,8 @@ Espo.define('Views.Fields.Array', 'Views.Fields.Enum', function (Dep) { editTemplate: 'fields.array.edit', + searchTemplate: 'fields.array.search', + data: function () { var itemHtmlList = []; (this.selected || []).forEach(function (value) { @@ -120,7 +122,7 @@ Espo.define('Views.Fields.Array', 'Views.Fields.Enum', function (Dep) { }, afterRender: function () { - if (this.mode == 'edit' || this.mode == 'search') { + if (this.mode == 'edit') { this.$list = this.$el.find('.list-group'); var $select = this.$select = this.$el.find('.select'); @@ -213,8 +215,13 @@ Espo.define('Views.Fields.Array', 'Views.Fields.Enum', function (Dep) { fetchSearch: function () { var field = this.name; var arr = []; + var af = []; $.each(this.$el.find('[name="' + this.name + '"]').find('option:selected'), function (i, el) { - arr.push( {type: 'like', field: field, value: "%" + $(el).val() + "%"} ); + var value = $(el).val(); + arr.push({ + type: 'like', field: field, value: "%" + value + "%" + }); + af.push(value); }); if (arr.length == 0) { @@ -223,7 +230,8 @@ Espo.define('Views.Fields.Array', 'Views.Fields.Enum', function (Dep) { var data = { type: 'or', - value: arr + value: arr, + valueFront: af }; return data; }, diff --git a/frontend/client/src/views/fields/multi-enum.js b/frontend/client/src/views/fields/multi-enum.js index ca0dee7719..ac5d64f3ad 100644 --- a/frontend/client/src/views/fields/multi-enum.js +++ b/frontend/client/src/views/fields/multi-enum.js @@ -57,7 +57,7 @@ Espo.define('Views.Fields.MultiEnum', ['Views.Fields.Array', 'lib!Select2'], fun }, afterRender: function () { - if (this.mode == 'edit' || this.mode == 'search') { + if (this.mode == 'edit') { var $element = this.$element = this.$el.find('[name="' + this.name + '"]'); this.$element.val(this.selected.join(','));