MassDelete.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. <?php
  2. namespace Dotdigitalgroup\Email\Controller\Adminhtml\Dashboard;
  3. use Magento\Framework\Controller\ResultFactory;
  4. class MassDelete extends \Magento\Backend\App\Action
  5. {
  6. /**
  7. * Authorization level of a basic admin session
  8. *
  9. * @see _isAllowed()
  10. */
  11. const ADMIN_RESOURCE = 'Dotdigitalgroup_Email::dashboard';
  12. /**
  13. * @var \Magento\Cron\Model\ScheduleFactory
  14. */
  15. private $schedule;
  16. /**
  17. * @var \Magento\Framework\Escaper
  18. */
  19. private $escaper;
  20. /**
  21. * @var \Magento\Cron\Model\ResourceModel\Schedule
  22. */
  23. private $scheduleResource;
  24. /**
  25. * MassDelete constructor.
  26. *
  27. * @param \Magento\Cron\Model\ResourceModel\Schedule $scheduleResource
  28. * @param \Magento\Backend\App\Action\Context $context
  29. * @param \Magento\Cron\Model\ScheduleFactory $schedule
  30. * @param \Magento\Framework\Escaper $escaper
  31. */
  32. public function __construct(
  33. \Magento\Cron\Model\ResourceModel\Schedule $scheduleResource,
  34. \Magento\Backend\App\Action\Context $context,
  35. \Magento\Cron\Model\ScheduleFactory $schedule,
  36. \Magento\Framework\Escaper $escaper
  37. ) {
  38. $this->schedule = $schedule;
  39. $this->escaper = $escaper;
  40. $this->scheduleResource = $scheduleResource;
  41. parent::__construct($context);
  42. }
  43. /**
  44. * @return \Magento\Backend\Model\View\Result\Redirect
  45. */
  46. public function execute()
  47. {
  48. $ids = $this->getRequest()->getParam('id');
  49. if (!is_array($ids)) {
  50. $this->messageManager->addErrorMessage(__('Please select cron.'));
  51. } else {
  52. try {
  53. foreach ($ids as $id) {
  54. $model = $this->schedule->create()
  55. ->setId($id);
  56. $this->scheduleResource->delete($model);
  57. }
  58. $this->messageManager->addSuccessMessage(__('Total of %1 record(s) were deleted.', count($ids)));
  59. } catch (\Exception $e) {
  60. $this->messageManager->addErrorMessage($e->getMessage());
  61. }
  62. }
  63. /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
  64. $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
  65. $resultRedirect->setPath('*/*/');
  66. return $resultRedirect;
  67. }
  68. }