From 2cdbf0ba76651e30238589331b96d445de522af2 Mon Sep 17 00:00:00 2001 From: yuri Date: Fri, 21 Dec 2018 11:20:14 +0200 Subject: [PATCH] email address autocomplete max size --- application/Espo/Controllers/EmailAddress.php | 9 ++++----- client/src/views/email/fields/email-address-varchar.js | 9 ++++++++- client/src/views/email/fields/email-address.js | 9 ++++++++- client/src/views/fields/email.js | 9 ++++++++- 4 files changed, 28 insertions(+), 8 deletions(-) diff --git a/application/Espo/Controllers/EmailAddress.php b/application/Espo/Controllers/EmailAddress.php index b0ad7811ec..bb5d9f1ea3 100644 --- a/application/Espo/Controllers/EmailAddress.php +++ b/application/Espo/Controllers/EmailAddress.php @@ -42,11 +42,10 @@ class EmailAddress extends \Espo\Core\Controllers\Record throw new Forbidden(); } $q = $request->get('q'); - $limit = intval($request->get('limit')); - if (empty($limit) || $limit > 30) { - $limit = 5; + $maxSize = intval($request->get('maxSize')); + if (empty($maxSize) || $maxSize > 50) { + $maxSize = $this->getConfig()->get('recordsPerPage', 20); } - return $this->getRecordService()->searchInAddressBook($q, $limit); + return $this->getRecordService()->searchInAddressBook($q, $maxSize); } } - diff --git a/client/src/views/email/fields/email-address-varchar.js b/client/src/views/email/fields/email-address-varchar.js index 7a7f8339b2..8273f67952 100644 --- a/client/src/views/email/fields/email-address-varchar.js +++ b/client/src/views/email/fields/email-address-varchar.js @@ -87,6 +87,13 @@ Espo.define('views/email/fields/email-address-varchar', ['views/fields/varchar', } }, + getAutocompleteMaxCount: function () { + if (this.autocompleteMaxCount) { + return this.autocompleteMaxCount; + } + return this.getConfig().get('recordsPerPage'); + }, + parseNameFromStringAddress: function (s) { return From.prototype.parseNameFromStringAddress.call(this, s); }, @@ -143,7 +150,7 @@ Espo.define('views/email/fields/email-address-varchar', ['views/fields/varchar', this.$input.autocomplete({ serviceUrl: function (q) { - return 'EmailAddress/action/searchInAddressBook?limit=5'; + return 'EmailAddress/action/searchInAddressBook?maxSize=' + this.getAutocompleteMaxCount(); }.bind(this), paramName: 'q', minChars: 1, diff --git a/client/src/views/email/fields/email-address.js b/client/src/views/email/fields/email-address.js index ca913c3987..12c9c28a7c 100644 --- a/client/src/views/email/fields/email-address.js +++ b/client/src/views/email/fields/email-address.js @@ -29,6 +29,13 @@ Espo.define('views/email/fields/email-address', ['views/fields/base'], function return Dep.extend({ + getAutocompleteMaxCount: function () { + if (this.autocompleteMaxCount) { + return this.autocompleteMaxCount; + } + return this.getConfig().get('recordsPerPage'); + }, + afterRender: function () { Dep.prototype.afterRender.call(this); @@ -37,7 +44,7 @@ Espo.define('views/email/fields/email-address', ['views/fields/base'], function if (this.mode == 'search') { this.$input.autocomplete({ serviceUrl: function (q) { - return 'EmailAddress/action/searchInAddressBook?limit=5'; + return 'EmailAddress/action/searchInAddressBook?maxSize=' + this.getAutocompleteMaxCount(); }.bind(this), paramName: 'q', minChars: 1, diff --git a/client/src/views/fields/email.js b/client/src/views/fields/email.js index c496a807a2..bcf66edf4e 100644 --- a/client/src/views/fields/email.js +++ b/client/src/views/fields/email.js @@ -126,6 +126,13 @@ Espo.define('views/fields/email', 'views/fields/varchar', function (Dep) { return data; }, + getAutocompleteMaxCount: function () { + if (this.autocompleteMaxCount) { + return this.autocompleteMaxCount; + } + return this.getConfig().get('recordsPerPage'); + }, + events: { 'click [data-action="mailTo"]': function (e) { this.mailTo($(e.currentTarget).data('email-address')); @@ -230,7 +237,7 @@ Espo.define('views/fields/email', 'views/fields/varchar', function (Dep) { if (this.mode == 'search') { this.$element.autocomplete({ serviceUrl: function (q) { - return 'EmailAddress/action/searchInAddressBook?limit=5'; + return 'EmailAddress/action/searchInAddressBook?maxSize=' + this.getAutocompleteMaxCount(); }.bind(this), paramName: 'q', minChars: 1,