MassDelete.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace Dotdigitalgroup\Email\Controller\Adminhtml\Abandoned;
  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::abandoned';
  13. /**
  14. * @var \Dotdigitalgroup\Email\Model\ResourceModel\Abandoned
  15. */
  16. public $abandonedResource;
  17. /**
  18. * @var
  19. */
  20. public $abandonedCollection;
  21. /**
  22. * @var \Magento\Framework\Message\ManagerInterface
  23. */
  24. protected $messageManager;
  25. /**
  26. * @var Filter
  27. */
  28. private $filter;
  29. /**
  30. * @var \Dotdigitalgroup\Email\Model\ResourceModel\Automation
  31. */
  32. private $automationResource;
  33. /**
  34. * MassDelete constructor.
  35. * @param \Dotdigitalgroup\Email\Model\ResourceModel\Abandoned $abandonedResource
  36. * @param \Magento\Backend\App\Action\Context $context
  37. * @param Filter $filter
  38. * @param \Dotdigitalgroup\Email\Model\ResourceModel\Abandoned\CollectionFactory $abandonedCollection
  39. */
  40. public function __construct(
  41. \Dotdigitalgroup\Email\Model\ResourceModel\Abandoned $abandonedResource,
  42. \Magento\Backend\App\Action\Context $context,
  43. Filter $filter,
  44. \Dotdigitalgroup\Email\Model\ResourceModel\Abandoned\CollectionFactory $abandonedCollection
  45. ) {
  46. $this->filter = $filter;
  47. $this->abandonedCollection = $abandonedCollection->create();
  48. $this->abandonedResource = $abandonedResource;
  49. parent::__construct($context);
  50. }
  51. /**
  52. * @return \Magento\Backend\Model\View\Result\Redirect
  53. */
  54. public function execute()
  55. {
  56. $collection = $this->filter->getCollection($this->abandonedCollection);
  57. $collectionSize = $collection->getSize();
  58. foreach ($collection as $item) {
  59. $this->abandonedResource->delete($item);
  60. }
  61. $this->messageManager->addSuccess(__('A total of %1 record(s) have been deleted.', $collectionSize));
  62. /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
  63. $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
  64. return $resultRedirect->setPath('*/*/');
  65. }
  66. }