diff --git a/client/src/ui/multi-select.js b/client/src/ui/multi-select.js
index 11c7fa60d1..6c17b37970 100644
--- a/client/src/ui/multi-select.js
+++ b/client/src/ui/multi-select.js
@@ -103,7 +103,7 @@ define('ui/multi-select', ['lib!Selectize'], (Selectize) => {
selectizeOptions.persist = false;
selectizeOptions.create = options.create;
selectizeOptions.render = {
- option_create: (data, escape) => {
+ option_create: data => {
return $('
')
.addClass('create')
.append(
@@ -197,7 +197,7 @@ define('ui/multi-select', ['lib!Selectize'], (Selectize) => {
let index, option;
if (
- e.keyCode === 8 &&
+ e.code === 'Backspace' &&
this.$control_input.val() === '' &&
!this.$activeItems.length
) {
diff --git a/client/src/views/email/fields/email-address-varchar.js b/client/src/views/email/fields/email-address-varchar.js
index fae8c0d33e..daa889899f 100644
--- a/client/src/views/email/fields/email-address-varchar.js
+++ b/client/src/views/email/fields/email-address-varchar.js
@@ -26,10 +26,9 @@
* these Appropriate Legal Notices must retain the display of the "EspoCRM" word.
************************************************************************/
-define(
- 'views/email/fields/email-address-varchar',
- ['views/fields/base', 'views/email/fields/from-address-varchar', 'views/email/fields/email-address'],
- function (Dep, From, EmailAddress) {
+define('views/email/fields/email-address-varchar',
+['views/fields/base', 'views/email/fields/from-address-varchar', 'views/email/fields/email-address'],
+function (Dep, From, EmailAddress) {
return Dep.extend({
@@ -40,7 +39,7 @@ define(
emailAddressRegExp: /[-!#$%&'*+/=?^_`{|}~A-Za-z0-9]+(?:\.[-!#$%&'*+/=?^_`{|}~A-Za-z0-9]+)*@([A-Za-z0-9]([A-Za-z0-9-]*[A-Za-z0-9])?\.)+[A-Za-z0-9][A-Za-z0-9-]*[A-Za-z0-9]/gi,
data: function () {
- var data = Dep.prototype.data.call(this);
+ let data = Dep.prototype.data.call(this);
data.valueIsSet = this.model.has(this.name);
@@ -49,59 +48,73 @@ define(
events: {
'click a[data-action="clearAddress"]': function (e) {
- var address = $(e.currentTarget).data('address').toString();
+ let address = $(e.currentTarget).data('address').toString();
this.deleteAddress(address);
},
'keyup input': function (e) {
- if (this.mode === 'search') {
+ if (!this.isEditMode()) {
return;
}
- if (e.keyCode === 188 || e.keyCode === 186 || e.keyCode === 13) {
- var $input = $(e.currentTarget);
- var address = $input.val().replace(',', '').replace(';', '').trim();
+ let key = Espo.Utils.getKeyFromKeyEvent(e);
- if (~address.indexOf('@')) {
- if (this.checkEmailAddressInString(address)) {
- this.addAddress(address, '');
- $input.val('');
- }
+ if (
+ key === 'Comma' ||
+ key === 'Semicolon' ||
+ key === 'Enter'
+ ) {
+ let $input = $(e.currentTarget);
+ let address = $input.val().replace(',', '').replace(';', '').trim();
+
+ if (address.indexOf('@') === -1) {
+ return;
}
- }
- },
- 'change input': function (e) {
- if (this.mode === 'search') {
- return;
- }
- var $input = $(e.currentTarget);
- var address = $input.val().replace(',','').replace(';','').trim();
-
- if (~address.indexOf('@')) {
if (this.checkEmailAddressInString(address)) {
this.addAddress(address, '');
-
$input.val('');
}
}
},
+ 'change input': function (e) {
+ if (!this.isEditMode()) {
+ return;
+ }
+
+ let $input = $(e.currentTarget);
+ let address = $input.val().replace(',','').replace(';','').trim();
+
+ if (address.indexOf('@') === -1) {
+ return;
+ }
+
+ if (this.checkEmailAddressInString(address)) {
+ this.addAddress(address, '');
+
+ $input.val('');
+ }
+ },
'click [data-action="createContact"]': function (e) {
- var address = $(e.currentTarget).data('address');
+ let address = $(e.currentTarget).data('address');
+
From.prototype.createPerson.call(this, 'Contact', address);
},
'click [data-action="createLead"]': function (e) {
- var address = $(e.currentTarget).data('address');
+ let address = $(e.currentTarget).data('address');
+
From.prototype.createPerson.call(this, 'Lead', address);
},
'click [data-action="addToContact"]': function (e) {
- var address = $(e.currentTarget).data('address');
+ let address = $(e.currentTarget).data('address');
+
From.prototype.addToPerson.call(this, 'Contact', address);
},
'click [data-action="addToLead"]': function (e) {
- var address = $(e.currentTarget).data('address');
+ let address = $(e.currentTarget).data('address');
+
From.prototype.addToPerson.call(this, 'Lead', address);
- }
+ },
},
getAutocompleteMaxCount: function () {
diff --git a/client/src/views/fields/array.js b/client/src/views/fields/array.js
index 8ee6dbed4e..dadc3191e8 100644
--- a/client/src/views/fields/array.js
+++ b/client/src/views/fields/array.js
@@ -179,12 +179,6 @@ function (Dep, RegExpPattern, /** module:ui/multi-select*/MultiSelect) {
this.events['change select.search-type'] = e => {
this.handleSearchType($(e.currentTarget).val());
};
-
- this.events['keydown .selectize-input input'] = e => {
- if ('keyCode' in e && e.keyCode === 13) {
- //this.trigger('search');
- }
- };
},
handleSearchType: function (type) {
@@ -325,8 +319,8 @@ function (Dep, RegExpPattern, /** module:ui/multi-select*/MultiSelect) {
$select.on('input', () => this.controlAddItemButton());
- $select.on('keypress', (e) => {
- if (e.keyCode === 13) {
+ $select.on('keydown', e => {
+ if (e.code === 'Enter' && !e.ctrlKey) {
let value = $select.val().toString();
this.addValueFromUi(value);
diff --git a/client/src/views/modals/image-preview.js b/client/src/views/modals/image-preview.js
index e6c9d7e7cb..d54e978514 100644
--- a/client/src/views/modals/image-preview.js
+++ b/client/src/views/modals/image-preview.js
@@ -50,20 +50,14 @@ define('views/modals/image-preview', ['views/modal', 'lib!exif'], function (Dep)
events: {
'keydown': function (e) {
- let keyCode = e.originalEvent.keyCode;
-
- if (keyCode === 37) {
- // arrow-left
+ if (e.code === 'ArrowLeft') {
this.switchToPrevious(true);
return;
}
- if (keyCode === 39) {
- // arrow-right
+ if (e.code === 'ArrowRight') {
this.switchToNext(true);
-
- return;
}
},
},