diff --git a/application/Espo/Modules/Crm/Resources/layouts/Opportunity/listForContact.json b/application/Espo/Modules/Crm/Resources/layouts/Opportunity/listForContact.json index 49d64c47d2..69753bc90c 100644 --- a/application/Espo/Modules/Crm/Resources/layouts/Opportunity/listForContact.json +++ b/application/Espo/Modules/Crm/Resources/layouts/Opportunity/listForContact.json @@ -1,6 +1,6 @@ [ {"name":"name", "link": true}, - {"name":"stage", "width": 21}, - {"name":"closeDate", "width": 18}, + {"name":"stage", "width": 22}, + {"name":"contactRole", "width": 22, "notSortable": true}, {"name":"amount", "align": "right", "width": 20} ] \ No newline at end of file diff --git a/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Contact.json b/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Contact.json index feaadebd2e..74f25bff11 100644 --- a/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Contact.json +++ b/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Contact.json @@ -156,6 +156,7 @@ "layoutDetailDisabled": true, "layoutMassUpdateDisabled": true, "layoutFiltersDisabled": true, + "layoutAvailabilityList": ["listForAccount"], "exportDisabled": true, "importDisabled": true, "view": "crm:views/contact/fields/account-role", diff --git a/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Opportunity.json b/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Opportunity.json index a3266459a3..65048a4b3d 100644 --- a/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Opportunity.json +++ b/application/Espo/Modules/Crm/Resources/metadata/entityDefs/Opportunity.json @@ -109,8 +109,8 @@ "type": "enum", "notStorable": true, "layoutMassUpdateDisabled": true, - "layoutListDisabled": true, "layoutDetailDisabled": true, + "layoutAvailabilityList": ["listForContact"], "customizationDefaultDisabled": true, "customizationRequiredDisabled": true, "customizationIsSortedDisabled": true, diff --git a/application/Espo/Modules/Crm/Services/Contact.php b/application/Espo/Modules/Crm/Services/Contact.php index 3dba047966..0e660f1a00 100644 --- a/application/Espo/Modules/Crm/Services/Contact.php +++ b/application/Espo/Modules/Crm/Services/Contact.php @@ -43,13 +43,18 @@ class Contact extends \Espo\Core\Templates\Services\Person 'title' ]; - protected $linkSelectParams = array( - 'targetLists' => array( - 'additionalColumns' => array( + protected $linkSelectParams =[ + 'targetLists' => [ + 'additionalColumns' => [ 'optedOut' => 'isOptedOut' - ) - ) - ); + ] + ], + 'opportunities' => [ + 'additionalColumns' => [ + 'role' => 'contactRole' + ] + ] + ]; protected $mandatorySelectAttributeList = [ 'accountId', diff --git a/client/src/views/admin/layouts/detail.js b/client/src/views/admin/layouts/detail.js index 3e4f1f2cf2..a853242f23 100644 --- a/client/src/views/admin/layouts/detail.js +++ b/client/src/views/admin/layouts/detail.js @@ -162,6 +162,10 @@ Espo.define('views/admin/layouts/detail', 'views/admin/layouts/grid', function ( return false; } } + + var layoutList = model.getFieldParam(name, 'layoutAvailabilityList'); + if (layoutList && !~layoutList.indexOf(this.type)) return; + return !model.getFieldParam(name, 'disabled') && !model.getFieldParam(name, 'layoutDetailDisabled'); }, diff --git a/client/src/views/admin/layouts/list.js b/client/src/views/admin/layouts/list.js index 3890a3e019..034752d1a0 100644 --- a/client/src/views/admin/layouts/list.js +++ b/client/src/views/admin/layouts/list.js @@ -184,10 +184,12 @@ Espo.define('views/admin/layouts/list', 'views/admin/layouts/rows', function (De if (this.ignoreTypeList.indexOf(model.getFieldParam(name, 'type')) != -1) { return false; } + + var layoutList = model.getFieldParam(name, 'layoutAvailabilityList'); + if (layoutList && !~layoutList.indexOf(this.type)) return; + return !model.getFieldParam(name, 'disabled') && !model.getFieldParam(name, 'layoutListDisabled'); } }); }); - - diff --git a/client/src/views/admin/layouts/mass-update.js b/client/src/views/admin/layouts/mass-update.js index 989943059d..a6695ddb2d 100644 --- a/client/src/views/admin/layouts/mass-update.js +++ b/client/src/views/admin/layouts/mass-update.js @@ -120,6 +120,10 @@ Espo.define('views/admin/layouts/mass-update', 'views/admin/layouts/rows', funct if (this.ignoreTypeList.indexOf(model.getFieldParam(name, 'type')) != -1) { return false; } + + var layoutList = model.getFieldParam(name, 'layoutAvailabilityList'); + if (layoutList && !~layoutList.indexOf(this.type)) return; + return !model.getFieldParam(name, 'disabled') && !model.getFieldParam(name, 'layoutMassUpdateDisabled') && !model.getFieldParam(name, 'readOnly'); }