diff --git a/client/modules/crm/src/views/case/fields/contact.js b/client/modules/crm/src/views/case/fields/contact.js index 48f5639ef7..1b7f803274 100644 --- a/client/modules/crm/src/views/case/fields/contact.js +++ b/client/modules/crm/src/views/case/fields/contact.js @@ -35,9 +35,12 @@ Espo.define('crm:views/case/fields/contact', 'views/fields/link', function (Dep) return { 'account': { type: 'equals', - field: 'accountId', + attribute: 'accountId', value: this.model.get('accountId'), - valueName: this.model.get('accountName'), + data: { + type: 'is', + nameValue: this.model.get('accountName') + } } }; } diff --git a/client/modules/crm/src/views/case/fields/contacts.js b/client/modules/crm/src/views/case/fields/contacts.js index a1bbb4ae12..5510b32579 100644 --- a/client/modules/crm/src/views/case/fields/contacts.js +++ b/client/modules/crm/src/views/case/fields/contacts.js @@ -37,9 +37,12 @@ Espo.define('crm:views/case/fields/contacts', 'views/fields/link-multiple-with-p return { 'account': { type: 'equals', - field: 'accountId', + attribute: 'accountId', value: this.model.get('accountId'), - valueName: this.model.get('accountName') + data: { + type: 'is', + nameValue: this.model.get('accountName') + } } }; } diff --git a/client/modules/crm/src/views/contact/detail.js b/client/modules/crm/src/views/contact/detail.js index f32b8c8c91..bbcd32715e 100644 --- a/client/modules/crm/src/views/contact/detail.js +++ b/client/modules/crm/src/views/contact/detail.js @@ -48,10 +48,13 @@ Espo.define('crm:views/contact/detail', 'views/detail', function (Dep) { 'account': function () { if (this.model.get('accountId')) { return { - field: 'accountId', + attribute: 'accountId', type: 'equals', value: this.model.get('accountId'), - valueName: this.model.get('accountName') + data: { + type: 'is', + nameValue: this.model.get('accountName') + } }; } } @@ -60,10 +63,13 @@ Espo.define('crm:views/contact/detail', 'views/detail', function (Dep) { 'account': function () { if (this.model.get('accountId')) { return { - field: 'accountId', + attribute: 'accountId', type: 'equals', value: this.model.get('accountId'), - valueName: this.model.get('accountName') + data: { + type: 'is', + nameValue: this.model.get('accountName') + } }; } } @@ -72,4 +78,3 @@ Espo.define('crm:views/contact/detail', 'views/detail', function (Dep) { }); }); - diff --git a/client/modules/crm/src/views/lead/fields/created-contact.js b/client/modules/crm/src/views/lead/fields/created-contact.js index d2a014b34c..dc97860b05 100644 --- a/client/modules/crm/src/views/lead/fields/created-contact.js +++ b/client/modules/crm/src/views/lead/fields/created-contact.js @@ -35,9 +35,12 @@ Espo.define('crm:views/lead/fields/created-contact', 'views/fields/link', functi return { 'account': { type: 'equals', - field: 'accountId', + attribute: 'accountId', value: this.model.get('createdAccountId'), - valueName: this.model.get('createdAccountName') + data: { + type: 'is', + nameValue: this.model.get('createdAccountName') + } } }; } diff --git a/client/modules/crm/src/views/lead/fields/created-opportunity.js b/client/modules/crm/src/views/lead/fields/created-opportunity.js index af23e97d72..7cecc2d4b5 100644 --- a/client/modules/crm/src/views/lead/fields/created-opportunity.js +++ b/client/modules/crm/src/views/lead/fields/created-opportunity.js @@ -35,9 +35,12 @@ Espo.define('crm:views/lead/fields/created-opportunity', 'views/fields/link', fu return { 'account': { type: 'equals', - field: 'accountId', + attribute: 'accountId', value: this.model.get('createdAccountId'), - valueName: this.model.get('createdAccountName') + data: { + type: 'is', + nameValue: this.model.get('createdAccountName') + } } }; } diff --git a/client/modules/crm/src/views/meeting/fields/contacts.js b/client/modules/crm/src/views/meeting/fields/contacts.js index 0c25b74663..ef0846ef6b 100644 --- a/client/modules/crm/src/views/meeting/fields/contacts.js +++ b/client/modules/crm/src/views/meeting/fields/contacts.js @@ -35,9 +35,12 @@ Espo.define('crm:views/meeting/fields/contacts', 'crm:views/meeting/fields/atten return { 'account': { type: 'equals', - field: 'accountId', + attribute: 'accountId', value: this.model.get('parentId'), - valueName: this.model.get('parentName'), + data: { + type: 'is', + nameValue: this.model.get('parentName') + } } }; } diff --git a/client/modules/crm/src/views/opportunity/detail.js b/client/modules/crm/src/views/opportunity/detail.js index 790d2208da..545441f9bd 100644 --- a/client/modules/crm/src/views/opportunity/detail.js +++ b/client/modules/crm/src/views/opportunity/detail.js @@ -52,10 +52,13 @@ Espo.define('crm:views/opportunity/detail', 'views/detail', function (Dep) { 'account': function () { if (this.model.get('accountId')) { return { - field: 'accountId', + attribute: 'accountId', type: 'equals', value: this.model.get('accountId'), - valueName: this.model.get('accountName') + data: { + type: 'is', + nameValue: this.model.get('accountName') + } }; } }, @@ -70,14 +73,14 @@ Espo.define('crm:views/opportunity/detail', 'views/detail', function (Dep) { field: 'accounts', type: 'linkedWith', value: [accountId], - nameHash: nameHash + data: { + nameHash: nameHash + } }; } }, - }, }, }); }); - diff --git a/client/modules/crm/src/views/opportunity/fields/contacts.js b/client/modules/crm/src/views/opportunity/fields/contacts.js index c5726779a3..71b1a76d75 100644 --- a/client/modules/crm/src/views/opportunity/fields/contacts.js +++ b/client/modules/crm/src/views/opportunity/fields/contacts.js @@ -35,9 +35,12 @@ Espo.define('crm:views/opportunity/fields/contacts', 'views/fields/link-multiple return { 'account': { type: 'equals', - field: 'accountId', + attribute: 'accountId', value: this.model.get('accountId'), - valueName: this.model.get('accountName'), + data: { + type: 'is', + nameValue: this.model.get('accountName') + } } }; } diff --git a/client/src/views/email-account/fields/email-folder.js b/client/src/views/email-account/fields/email-folder.js index bb7e21feb2..bf8c0bb1bb 100644 --- a/client/src/views/email-account/fields/email-folder.js +++ b/client/src/views/email-account/fields/email-folder.js @@ -39,9 +39,12 @@ Espo.define('views/email-account/fields/email-folder', 'views/fields/link', func return { assignedUser: { type: 'equals', - field: 'assignedUserId', + attribute: 'assignedUserId', value: this.model.get('assignedUserId'), - valueName: this.model.get('assignedUserName') + data: { + type: 'is', + nameValue: this.model.get('assignedUserName') + } } }; } diff --git a/client/src/views/email-filter/fields/email-folder.js b/client/src/views/email-filter/fields/email-folder.js index 06d18d100d..483fbc6dbc 100644 --- a/client/src/views/email-filter/fields/email-folder.js +++ b/client/src/views/email-filter/fields/email-folder.js @@ -39,9 +39,11 @@ Espo.define('views/email-filter/fields/email-folder', 'views/fields/link', funct return { assignedUser: { type: 'equals', - field: 'assignedUserId', + attribute: 'assignedUserId', value: this.model.get('parentId'), - valueName: this.model.get('parentName') + data: { + nameValue: this.model.get('parentName') + } } }; } diff --git a/client/src/views/fields/link-multiple.js b/client/src/views/fields/link-multiple.js index 2244f5966b..a397388eb1 100644 --- a/client/src/views/fields/link-multiple.js +++ b/client/src/views/fields/link-multiple.js @@ -96,12 +96,14 @@ Espo.define('views/fields/link-multiple', 'views/fields/base', function (Dep) { var self = this; - this.ids = Espo.Utils.clone(this.model.get(this.idsName) || []); - this.nameHash = Espo.Utils.clone(this.model.get(this.nameHashName) || {}); - if (this.mode == 'search') { - this.nameHash = Espo.Utils.clone(this.searchParams.nameHash) || {}; - this.ids = Espo.Utils.clone(this.searchParams.value) || []; + var nameHash = this.getSearchParamsData().nameHash || this.searchParams.nameHash || {}; + var idList = this.getSearchParamsData().idList || this.searchParams.value || []; + this.nameHash = Espo.Utils.clone(nameHash); + this.ids = Espo.Utils.clone(idList); + } else { + this.ids = Espo.Utils.clone(this.model.get(this.idsName) || []); + this.nameHash = Espo.Utils.clone(this.model.get(this.nameHashName) || {}); } this.listenTo(this.model, 'change:' + this.idsName, function () { diff --git a/client/src/views/fields/link.js b/client/src/views/fields/link.js index 0d14a23678..8b132029e4 100644 --- a/client/src/views/fields/link.js +++ b/client/src/views/fields/link.js @@ -185,10 +185,13 @@ Espo.define('views/fields/link', 'views/fields/base', function (Dep) { }, setupSearch: function () { - this.searchData.oneOfIdList = this.searchParams.oneOfIdList || []; - this.searchData.oneOfNameHash = this.searchParams.oneOfNameHash || {}; - this.searchData.idValue = this.getSearchParamsData().idValue || this.searchParams.idValue || this.searchParams.value; - this.searchData.nameValue = this.getSearchParamsData().nameValue || this.searchParams.valueName; + this.searchData.oneOfIdList = this.getSearchParamsData().oneOfIdList || this.searchParams.oneOfIdList || []; + this.searchData.oneOfNameHash = this.getSearchParamsData().oneOfNameHash || this.searchParams.oneOfNameHash || {}; + + if (~['is', 'isNot', 'equals'].indexOf(this.getSearchType())) { + this.searchData.idValue = this.getSearchParamsData().idValue || this.searchParams.idValue || this.searchParams.value; + this.searchData.nameValue = this.getSearchParamsData().nameValue || this.searchParams.nameValue || this.searchParams.valueName; + } this.events = _.extend({ 'change select.search-type': function (e) { @@ -420,7 +423,7 @@ Espo.define('views/fields/link', 'views/fields/base', function (Dep) { if (type == 'isEmpty') { var data = { type: 'isNull', - field: this.idName, + attribute: this.idName, data: { type: type } @@ -429,7 +432,7 @@ Espo.define('views/fields/link', 'views/fields/base', function (Dep) { } else if (type == 'isNotEmpty') { var data = { type: 'isNotNull', - field: this.idName, + attribute: this.idName, data: { type: type } @@ -438,12 +441,12 @@ Espo.define('views/fields/link', 'views/fields/base', function (Dep) { } else if (type == 'isOneOf') { var data = { type: 'in', - field: this.idName, + attribute: this.idName, value: this.searchData.oneOfIdList, - oneOfIdList: this.searchData.oneOfIdList, - oneOfNameHash: this.searchData.oneOfNameHash, data: { - type: type + type: type, + oneOfIdList: this.searchData.oneOfIdList, + oneOfNameHash: this.searchData.oneOfNameHash } }; return data; @@ -461,23 +464,22 @@ Espo.define('views/fields/link', 'views/fields/base', function (Dep) { attribute: this.idName } ], - field: this.idName, - oneOfIdList: this.searchData.oneOfIdList, - oneOfNameHash: this.searchData.oneOfNameHash, data: { - type: type + type: type, + oneOfIdList: this.searchData.oneOfIdList, + oneOfNameHash: this.searchData.oneOfNameHash } }; return data; } else if (type == 'isNotOneOfAndIsNotEmpty') { var data = { type: 'notIn', - field: this.idName, + attribute: this.idName, value: this.searchData.oneOfIdList, - oneOfIdList: this.searchData.oneOfIdList, - oneOfNameHash: this.searchData.oneOfNameHash, data: { - type: type + type: type, + oneOfIdList: this.searchData.oneOfIdList, + oneOfNameHash: this.searchData.oneOfNameHash } }; return data; @@ -499,7 +501,6 @@ Espo.define('views/fields/link', 'views/fields/base', function (Dep) { attribute: this.idName } ], - field: this.idName, data: { type: type, idValue: value, @@ -514,7 +515,7 @@ Espo.define('views/fields/link', 'views/fields/base', function (Dep) { var nameValue = this.$el.find('[name="' + this.nameName + '"]').val(); var data = { type: 'notEquals', - field: this.idName, + attribute: this.idName, value: value, data: { type: type, @@ -530,7 +531,7 @@ Espo.define('views/fields/link', 'views/fields/base', function (Dep) { var nameValue = this.$el.find('[name="' + this.nameName + '"]').val(); var data = { type: 'equals', - field: this.idName, + attribute: this.idName, value: value, data: { type: type, @@ -548,4 +549,3 @@ Espo.define('views/fields/link', 'views/fields/base', function (Dep) { }); }); -