From d2bc49755d101cfd8ddb0f28292d5d007bbbf1a4 Mon Sep 17 00:00:00 2001 From: yuri Date: Tue, 11 Aug 2015 11:52:07 +0300 Subject: [PATCH] email address autocomplete 2 --- frontend/client/src/views/fields/email.js | 37 +++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/frontend/client/src/views/fields/email.js b/frontend/client/src/views/fields/email.js index e31cbd3267..a5db789f92 100644 --- a/frontend/client/src/views/fields/email.js +++ b/frontend/client/src/views/fields/email.js @@ -188,6 +188,43 @@ Espo.define('Views.Fields.Email', 'Views.Fields.Base', function (Dep) { Dep.prototype.afterRender.call(this); this.manageButtonsVisibility(); this.manageAddButton(); + + + if (this.mode == 'search') { + this.$element.autocomplete({ + serviceUrl: function (q) { + return 'EmailAddress/action/searchInAddressBook?limit=5'; + }.bind(this), + paramName: 'q', + minChars: 1, + autoSelectFirst: true, + formatResult: function (suggestion) { + return suggestion.name + ' <' + suggestion.id + '>'; + }, + transformResult: function (response) { + var response = JSON.parse(response); + var list = []; + response.forEach(function(item) { + list.push({ + id: item.emailAddress, + name: item.entityName, + emailAddress: item.emailAddress, + entityId: item.entityId, + entityName: item.entityName, + entityType: item.entityType, + data: item.emailAddress, + value: item.emailAddress + }); + }, this); + return { + suggestions: list + }; + }.bind(this), + onSelect: function (s) { + this.$element.val(s.emailAddress); + }.bind(this) + }); + } }, manageAddButton: function () {