MassDelete.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace Dotdigitalgroup\Email\Controller\Adminhtml\Cron;
  3. use Magento\Framework\Controller\ResultFactory;
  4. use Magento\Ui\Component\MassAction\Filter;
  5. class MassDelete extends \Magento\Backend\App\Action
  6. {
  7. /**
  8. * Authorization level of a basic admin session
  9. *
  10. * @see _isAllowed()
  11. */
  12. const ADMIN_RESOURCE = 'Dotdigitalgroup_Email::cron';
  13. /**
  14. * @var \Dotdigitalgroup\Email\Model\ResourceModel\Cron\CollectionFactory
  15. */
  16. private $collectionFactory;
  17. /**
  18. * @var \Magento\Framework\Message\ManagerInterface
  19. */
  20. protected $messageManager;
  21. /**
  22. * @var \Magento\Cron\Model\ResourceModel\Schedule
  23. */
  24. private $scheduleResource;
  25. /**
  26. * @var Filter
  27. */
  28. private $filter;
  29. /**
  30. * MassDelete constructor.
  31. *
  32. * @param \Magento\Cron\Model\ResourceModel\Schedule $scheduleResource
  33. * @param \Magento\Backend\App\Action\Context $context
  34. * @param Filter $filter
  35. * @param \Dotdigitalgroup\Email\Model\ResourceModel\Cron\CollectionFactory $collectionFactory
  36. */
  37. public function __construct(
  38. \Magento\Cron\Model\ResourceModel\Schedule $scheduleResource,
  39. \Magento\Backend\App\Action\Context $context,
  40. Filter $filter,
  41. \Dotdigitalgroup\Email\Model\ResourceModel\Cron\CollectionFactory $collectionFactory
  42. ) {
  43. $this->filter = $filter;
  44. $this->collectionFactory = $collectionFactory;
  45. $this->scheduleResource = $scheduleResource;
  46. parent::__construct($context);
  47. }
  48. /**
  49. * @return \Magento\Backend\Model\View\Result\Redirect
  50. */
  51. public function execute()
  52. {
  53. $collection = $this->filter->getCollection($this->collectionFactory->create());
  54. $collectionSize = $collection->getSize();
  55. foreach ($collection as $item) {
  56. $this->scheduleResource->delete($item);
  57. }
  58. $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $collectionSize));
  59. /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
  60. $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
  61. return $resultRedirect->setPath('*/*/');
  62. }
  63. }