diff --git a/application/Espo/Core/Action/ActionFactory.php b/application/Espo/Core/Action/ActionFactory.php index ff8a49afc5..226df4aa55 100644 --- a/application/Espo/Core/Action/ActionFactory.php +++ b/application/Espo/Core/Action/ActionFactory.php @@ -105,7 +105,31 @@ class ActionFactory return true; } + if ($this->needsToBeAllowed($entityType)) { + if (!$this->isAllowed($action, $entityType)) { + return true; + } + } + return $this->metadata ->get(['recordDefs', $entityType, 'actions', $action, 'disabled']) ?? false; } + + private function needsToBeAllowed(string $entityType): bool + { + $isObject = $this->metadata->get(['scopes', $entityType, 'object']) ?? false; + + if (!$isObject) { + return true; + } + + return $this->metadata + ->get(['recordDefs', $entityType, 'notAllowedActionsDisabled']) ?? false; + } + + private function isAllowed(string $action, string $entityType): bool + { + return $this->metadata + ->get(['recordDefs', $entityType, 'actions', $action, 'allowed']) ?? false; + } } diff --git a/application/Espo/Core/MassAction/MassActionFactory.php b/application/Espo/Core/MassAction/MassActionFactory.php index eded4f1982..e60e016bf6 100644 --- a/application/Espo/Core/MassAction/MassActionFactory.php +++ b/application/Espo/Core/MassAction/MassActionFactory.php @@ -112,7 +112,31 @@ class MassActionFactory return true; } + if ($this->needsToBeAllowed($entityType)) { + if (!$this->isAllowed($action, $entityType)) { + return true; + } + } + return $this->metadata ->get(['recordDefs', $entityType, 'massActions', $action, 'disabled']) ?? false; } + + private function needsToBeAllowed(string $entityType): bool + { + $isObject = $this->metadata->get(['scopes', $entityType, 'object']) ?? false; + + if (!$isObject) { + return true; + } + + return $this->metadata + ->get(['recordDefs', $entityType, 'notAllowedActionsDisabled']) ?? false; + } + + private function isAllowed(string $action, string $entityType): bool + { + return $this->metadata + ->get(['recordDefs', $entityType, 'massActions', $action, 'allowed']) ?? false; + } } diff --git a/application/Espo/Resources/metadata/clientDefs/DashboardTemplate.json b/application/Espo/Resources/metadata/clientDefs/DashboardTemplate.json index 8704c4f581..86849a8c83 100644 --- a/application/Espo/Resources/metadata/clientDefs/DashboardTemplate.json +++ b/application/Espo/Resources/metadata/clientDefs/DashboardTemplate.json @@ -3,6 +3,9 @@ "views": { "detail": "views/dashboard-template/detail" }, + "recordViews": { + "list": "views/dashboard-template/record/list" + }, "menu": { "detail": { "buttons": [ diff --git a/application/Espo/Resources/metadata/clientDefs/EmailFilter.json b/application/Espo/Resources/metadata/clientDefs/EmailFilter.json index fd81ab1d8b..2bf48d6908 100644 --- a/application/Espo/Resources/metadata/clientDefs/EmailFilter.json +++ b/application/Espo/Resources/metadata/clientDefs/EmailFilter.json @@ -4,6 +4,7 @@ "edit": "views/email-filter/modals/edit" }, "recordViews": { + "list": "views/email-filter/record/list", "detail": "views/email-filter/record/detail", "edit": "views/email-filter/record/edit", "editQuick": "views/email-filter/record/edit-small", diff --git a/application/Espo/Resources/metadata/clientDefs/LayoutSet.json b/application/Espo/Resources/metadata/clientDefs/LayoutSet.json index 37e746e4be..1657efa986 100644 --- a/application/Espo/Resources/metadata/clientDefs/LayoutSet.json +++ b/application/Espo/Resources/metadata/clientDefs/LayoutSet.json @@ -1,5 +1,8 @@ { "controller": "controllers/layout-set", + "recordViews": { + "list": "views/layout-set/record/list" + }, "searchPanelDisabled": true, "duplicateDisabled": true, "relationshipPanels": { diff --git a/application/Espo/Resources/metadata/clientDefs/LeadCapture.json b/application/Espo/Resources/metadata/clientDefs/LeadCapture.json index 3278d78a01..65b847d4d7 100644 --- a/application/Espo/Resources/metadata/clientDefs/LeadCapture.json +++ b/application/Espo/Resources/metadata/clientDefs/LeadCapture.json @@ -2,7 +2,8 @@ "controller": "controllers/record", "searchPanelDisabled": true, "recordViews": { - "detail": "views/lead-capture/record/detail" + "detail": "views/lead-capture/record/detail", + "list": "views/lead-capture/record/list" }, "dynamicLogic": { "fields": { diff --git a/application/Espo/Resources/metadata/clientDefs/Portal.json b/application/Espo/Resources/metadata/clientDefs/Portal.json index 2b615ad64e..392eb472e6 100644 --- a/application/Espo/Resources/metadata/clientDefs/Portal.json +++ b/application/Espo/Resources/metadata/clientDefs/Portal.json @@ -1,12 +1,15 @@ { - "controller": "controllers/record", - "relationshipPanels": { - "users": { - "create": false, - "rowActionsView": "views/record/row-actions/relationship-unlink-only", - "layout": "listSmall", - "selectPrimaryFilterName": "activePortal" - } - }, - "searchPanelDisabled": true + "controller": "controllers/record", + "recordViews": { + "list":"views/portal/record/list" + }, + "relationshipPanels": { + "users": { + "create": false, + "rowActionsView": "views/record/row-actions/relationship-unlink-only", + "layout": "listSmall", + "selectPrimaryFilterName": "activePortal" + } + }, + "searchPanelDisabled": true } diff --git a/application/Espo/Resources/metadata/clientDefs/Webhook.json b/application/Espo/Resources/metadata/clientDefs/Webhook.json index f053c45b4f..24f80eed01 100644 --- a/application/Espo/Resources/metadata/clientDefs/Webhook.json +++ b/application/Espo/Resources/metadata/clientDefs/Webhook.json @@ -1,5 +1,8 @@ { "controller": "controllers/record", + "recordViews": { + "list": "views/webhook/record/list" + }, "dynamicLogic": { "fields": { "event": { diff --git a/application/Espo/Resources/metadata/recordDefs/ActionHistoryRecord.json b/application/Espo/Resources/metadata/recordDefs/ActionHistoryRecord.json index 3c8e04e553..4f3747b46d 100644 --- a/application/Espo/Resources/metadata/recordDefs/ActionHistoryRecord.json +++ b/application/Espo/Resources/metadata/recordDefs/ActionHistoryRecord.json @@ -4,5 +4,10 @@ ], "listLoaderClassNameList": [ "Espo\\Core\\FieldProcessing\\LinkParent\\TargetLoader" - ] + ], + "massActions": { + "delete": { + "allowed": true + } + } } diff --git a/application/Espo/Resources/metadata/recordDefs/Attachment.json b/application/Espo/Resources/metadata/recordDefs/Attachment.json new file mode 100644 index 0000000000..a04d7655cd --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/Attachment.json @@ -0,0 +1,7 @@ +{ + "massActions": { + "delete": { + "allowed": true + } + } +} diff --git a/application/Espo/Resources/metadata/recordDefs/AuthLogRecord.json b/application/Espo/Resources/metadata/recordDefs/AuthLogRecord.json index f511520cb0..a04d7655cd 100644 --- a/application/Espo/Resources/metadata/recordDefs/AuthLogRecord.json +++ b/application/Espo/Resources/metadata/recordDefs/AuthLogRecord.json @@ -1,10 +1,7 @@ { "massActions": { - "update": { - "disabled": true - }, - "recalculateFormula": { - "disabled": true + "delete": { + "allowed": true } } } diff --git a/application/Espo/Resources/metadata/recordDefs/AuthToken.json b/application/Espo/Resources/metadata/recordDefs/AuthToken.json new file mode 100644 index 0000000000..9e75be28c1 --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/AuthToken.json @@ -0,0 +1,18 @@ +{ + "assignmentNotificatorClassName": "Espo\\Classes\\AssignmentNotificators\\Email", + "readLoaderClassNameList": [ + "Espo\\Classes\\FieldProcessing\\Email\\AddressDataLoader", + "Espo\\Classes\\FieldProcessing\\Email\\UserColumnsLoader" + ], + "listLoaderClassNameList": [ + "Espo\\Classes\\FieldProcessing\\Email\\StringDataLoader" + ], + "massActions": { + "update": { + "allowed": true + }, + "delete": { + "allowed": true + } + } +} diff --git a/application/Espo/Resources/metadata/recordDefs/DashboardTemplate.json b/application/Espo/Resources/metadata/recordDefs/DashboardTemplate.json new file mode 100644 index 0000000000..a04d7655cd --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/DashboardTemplate.json @@ -0,0 +1,7 @@ +{ + "massActions": { + "delete": { + "allowed": true + } + } +} diff --git a/application/Espo/Resources/metadata/recordDefs/EmailAccount.json b/application/Espo/Resources/metadata/recordDefs/EmailAccount.json new file mode 100644 index 0000000000..9e77ee7f65 --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/EmailAccount.json @@ -0,0 +1,10 @@ +{ + "massActions": { + "update": { + "allowed": true + }, + "delete": { + "allowed": true + } + } +} diff --git a/application/Espo/Resources/metadata/recordDefs/EmailAddress.json b/application/Espo/Resources/metadata/recordDefs/EmailAddress.json new file mode 100644 index 0000000000..a04d7655cd --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/EmailAddress.json @@ -0,0 +1,7 @@ +{ + "massActions": { + "delete": { + "allowed": true + } + } +} diff --git a/application/Espo/Resources/metadata/recordDefs/EmailFilter.json b/application/Espo/Resources/metadata/recordDefs/EmailFilter.json new file mode 100644 index 0000000000..0cfd9e5e05 --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/EmailFilter.json @@ -0,0 +1,10 @@ +{ + "massActions": { + "delete": { + "allowed": true + }, + "update": { + "allowed": true + } + } +} diff --git a/application/Espo/Resources/metadata/recordDefs/EmailTemplate.json b/application/Espo/Resources/metadata/recordDefs/EmailTemplate.json new file mode 100644 index 0000000000..a9896728fa --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/EmailTemplate.json @@ -0,0 +1,15 @@ +{ + "massActions": { + "delete": { + "allowed": true + }, + "update": { + "allowed": true + } + }, + "actions": { + "merge": { + "allowed": true + } + } +} diff --git a/application/Espo/Resources/metadata/recordDefs/Import.json b/application/Espo/Resources/metadata/recordDefs/Import.json index 4b04a31e85..6466a58f0d 100644 --- a/application/Espo/Resources/metadata/recordDefs/Import.json +++ b/application/Espo/Resources/metadata/recordDefs/Import.json @@ -1,5 +1,10 @@ { "readLoaderClassNameList": [ "Espo\\Classes\\FieldProcessing\\Import\\CountsLoader" - ] + ], + "massActions": { + "delete": { + "allowed": true + } + } } diff --git a/application/Espo/Resources/metadata/recordDefs/InboundEmail.json b/application/Espo/Resources/metadata/recordDefs/InboundEmail.json new file mode 100644 index 0000000000..9e77ee7f65 --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/InboundEmail.json @@ -0,0 +1,10 @@ +{ + "massActions": { + "update": { + "allowed": true + }, + "delete": { + "allowed": true + } + } +} diff --git a/application/Espo/Resources/metadata/recordDefs/Job.json b/application/Espo/Resources/metadata/recordDefs/Job.json new file mode 100644 index 0000000000..a04d7655cd --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/Job.json @@ -0,0 +1,7 @@ +{ + "massActions": { + "delete": { + "allowed": true + } + } +} diff --git a/application/Espo/Resources/metadata/recordDefs/LayoutSet.json b/application/Espo/Resources/metadata/recordDefs/LayoutSet.json new file mode 100644 index 0000000000..a04d7655cd --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/LayoutSet.json @@ -0,0 +1,7 @@ +{ + "massActions": { + "delete": { + "allowed": true + } + } +} diff --git a/application/Espo/Resources/metadata/recordDefs/LeadCapture.json b/application/Espo/Resources/metadata/recordDefs/LeadCapture.json new file mode 100644 index 0000000000..0cfd9e5e05 --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/LeadCapture.json @@ -0,0 +1,10 @@ +{ + "massActions": { + "delete": { + "allowed": true + }, + "update": { + "allowed": true + } + } +} diff --git a/application/Espo/Resources/metadata/recordDefs/PhoneNumber.json b/application/Espo/Resources/metadata/recordDefs/PhoneNumber.json new file mode 100644 index 0000000000..9e77ee7f65 --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/PhoneNumber.json @@ -0,0 +1,10 @@ +{ + "massActions": { + "update": { + "allowed": true + }, + "delete": { + "allowed": true + } + } +} diff --git a/application/Espo/Resources/metadata/recordDefs/Portal.json b/application/Espo/Resources/metadata/recordDefs/Portal.json index 973c8bfc97..8bb52ce0af 100644 --- a/application/Espo/Resources/metadata/recordDefs/Portal.json +++ b/application/Espo/Resources/metadata/recordDefs/Portal.json @@ -4,5 +4,10 @@ ], "listLoaderClassNameList": [ "Espo\\Classes\\FieldProcessing\\Portal\\UrlLoader" - ] + ], + "massActions": { + "delete": { + "allowed": true + } + } } diff --git a/application/Espo/Resources/metadata/recordDefs/PortalRole.json b/application/Espo/Resources/metadata/recordDefs/PortalRole.json new file mode 100644 index 0000000000..a04d7655cd --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/PortalRole.json @@ -0,0 +1,7 @@ +{ + "massActions": { + "delete": { + "allowed": true + } + } +} diff --git a/application/Espo/Resources/metadata/recordDefs/Role.json b/application/Espo/Resources/metadata/recordDefs/Role.json new file mode 100644 index 0000000000..a04d7655cd --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/Role.json @@ -0,0 +1,7 @@ +{ + "massActions": { + "delete": { + "allowed": true + } + } +} diff --git a/application/Espo/Resources/metadata/recordDefs/ScheduledJob.json b/application/Espo/Resources/metadata/recordDefs/ScheduledJob.json new file mode 100644 index 0000000000..0cfd9e5e05 --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/ScheduledJob.json @@ -0,0 +1,10 @@ +{ + "massActions": { + "delete": { + "allowed": true + }, + "update": { + "allowed": true + } + } +} diff --git a/application/Espo/Resources/metadata/recordDefs/Team.json b/application/Espo/Resources/metadata/recordDefs/Team.json new file mode 100644 index 0000000000..a04d7655cd --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/Team.json @@ -0,0 +1,7 @@ +{ + "massActions": { + "delete": { + "allowed": true + } + } +} diff --git a/application/Espo/Resources/metadata/recordDefs/Template.json b/application/Espo/Resources/metadata/recordDefs/Template.json new file mode 100644 index 0000000000..0cfd9e5e05 --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/Template.json @@ -0,0 +1,10 @@ +{ + "massActions": { + "delete": { + "allowed": true + }, + "update": { + "allowed": true + } + } +} diff --git a/application/Espo/Resources/metadata/recordDefs/Webhook.json b/application/Espo/Resources/metadata/recordDefs/Webhook.json new file mode 100644 index 0000000000..0cfd9e5e05 --- /dev/null +++ b/application/Espo/Resources/metadata/recordDefs/Webhook.json @@ -0,0 +1,10 @@ +{ + "massActions": { + "delete": { + "allowed": true + }, + "update": { + "allowed": true + } + } +} diff --git a/client/src/views/dashboard-template/record/list.js b/client/src/views/dashboard-template/record/list.js new file mode 100644 index 0000000000..648b503d2b --- /dev/null +++ b/client/src/views/dashboard-template/record/list.js @@ -0,0 +1,37 @@ +/************************************************************************ + * This file is part of EspoCRM. + * + * EspoCRM - Open Source CRM application. + * Copyright (C) 2014-2021 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko + * Website: https://www.espocrm.com + * + * EspoCRM is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * EspoCRM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with EspoCRM. If not, see http://www.gnu.org/licenses/. + * + * The interactive user interfaces in modified source and object code versions + * of this program must display Appropriate Legal Notices, as required under + * Section 5 of the GNU General Public License version 3. + * + * In accordance with Section 7(b) of the GNU General Public License version 3, + * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. + ************************************************************************/ + +define('views/dashboard-template/record/list', 'views/record/list', function (Dep) { + + return Dep.extend({ + + massActionList: ['remove', 'export'], + + }); + +}); diff --git a/client/src/views/email-filter/record/list.js b/client/src/views/email-filter/record/list.js new file mode 100644 index 0000000000..9737c8e0fa --- /dev/null +++ b/client/src/views/email-filter/record/list.js @@ -0,0 +1,38 @@ +/************************************************************************ + * This file is part of EspoCRM. + * + * EspoCRM - Open Source CRM application. + * Copyright (C) 2014-2021 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko + * Website: https://www.espocrm.com + * + * EspoCRM is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * EspoCRM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with EspoCRM. If not, see http://www.gnu.org/licenses/. + * + * The interactive user interfaces in modified source and object code versions + * of this program must display Appropriate Legal Notices, as required under + * Section 5 of the GNU General Public License version 3. + * + * In accordance with Section 7(b) of the GNU General Public License version 3, + * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. + ************************************************************************/ + +define('views/email-filter/record/list', 'views/record/list', function (Dep) { + + return Dep.extend({ + + massActionList: ['remove', 'massUpdate', 'export'] + + }); + +}); + diff --git a/client/src/views/layout-set/record/list.js b/client/src/views/layout-set/record/list.js new file mode 100644 index 0000000000..51e7040d26 --- /dev/null +++ b/client/src/views/layout-set/record/list.js @@ -0,0 +1,40 @@ +/************************************************************************ + * This file is part of EspoCRM. + * + * EspoCRM - Open Source CRM application. + * Copyright (C) 2014-2021 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko + * Website: https://www.espocrm.com + * + * EspoCRM is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * EspoCRM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with EspoCRM. If not, see http://www.gnu.org/licenses/. + * + * The interactive user interfaces in modified source and object code versions + * of this program must display Appropriate Legal Notices, as required under + * Section 5 of the GNU General Public License version 3. + * + * In accordance with Section 7(b) of the GNU General Public License version 3, + * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. + ************************************************************************/ + +define('views/layout-set/record/list', 'views/record/list', function (Dep) { + + return Dep.extend({ + + massActionList: [ + 'remove', + 'export', + ], + }); + +}); + diff --git a/client/src/views/lead-capture/record/list.js b/client/src/views/lead-capture/record/list.js new file mode 100644 index 0000000000..a95cbeebcf --- /dev/null +++ b/client/src/views/lead-capture/record/list.js @@ -0,0 +1,36 @@ +/************************************************************************ + * This file is part of EspoCRM. + * + * EspoCRM - Open Source CRM application. + * Copyright (C) 2014-2021 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko + * Website: https://www.espocrm.com + * + * EspoCRM is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * EspoCRM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with EspoCRM. If not, see http://www.gnu.org/licenses/. + * + * The interactive user interfaces in modified source and object code versions + * of this program must display Appropriate Legal Notices, as required under + * Section 5 of the GNU General Public License version 3. + * + * In accordance with Section 7(b) of the GNU General Public License version 3, + * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. + ************************************************************************/ + +define('views/lead-capture/record/list', 'views/record/list', function (Dep) { + + return Dep.extend({ + + massActionList: ['remove', 'massUpdate', 'export'], + + }); +}); diff --git a/client/src/views/portal/record/list.js b/client/src/views/portal/record/list.js new file mode 100644 index 0000000000..7b11056d34 --- /dev/null +++ b/client/src/views/portal/record/list.js @@ -0,0 +1,39 @@ +/************************************************************************ + * This file is part of EspoCRM. + * + * EspoCRM - Open Source CRM application. + * Copyright (C) 2014-2021 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko + * Website: https://www.espocrm.com + * + * EspoCRM is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * EspoCRM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with EspoCRM. If not, see http://www.gnu.org/licenses/. + * + * The interactive user interfaces in modified source and object code versions + * of this program must display Appropriate Legal Notices, as required under + * Section 5 of the GNU General Public License version 3. + * + * In accordance with Section 7(b) of the GNU General Public License version 3, + * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. + ************************************************************************/ + +define('views/portal/record/list', 'views/record/list', function (Dep) { + + return Dep.extend({ + + massActionList: [ + 'remove', + ], + }); + +}); + diff --git a/client/src/views/webhook/record/list.js b/client/src/views/webhook/record/list.js new file mode 100644 index 0000000000..86735ce85e --- /dev/null +++ b/client/src/views/webhook/record/list.js @@ -0,0 +1,37 @@ +/************************************************************************ + * This file is part of EspoCRM. + * + * EspoCRM - Open Source CRM application. + * Copyright (C) 2014-2021 Yurii Kuznietsov, Taras Machyshyn, Oleksii Avramenko + * Website: https://www.espocrm.com + * + * EspoCRM is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * EspoCRM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with EspoCRM. If not, see http://www.gnu.org/licenses/. + * + * The interactive user interfaces in modified source and object code versions + * of this program must display Appropriate Legal Notices, as required under + * Section 5 of the GNU General Public License version 3. + * + * In accordance with Section 7(b) of the GNU General Public License version 3, + * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. + ************************************************************************/ + +define('views/webhook/record/list', 'views/record/list', function (Dep) { + + return Dep.extend({ + + massActionList: ['remove', 'massUpdate', 'export'], + + }); + +});