| Current Path : /home/rtorresani/www/vendor/magento/module-sales/Controller/Adminhtml/Order/ |
| Current File : //home/rtorresani/www/vendor/magento/module-sales/Controller/Adminhtml/Order/AbstractMassAction.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Sales\Controller\Adminhtml\Order;
use Magento\Backend\App\Action\Context;
use Magento\Framework\App\ResponseInterface;
use Magento\Framework\Controller\ResultFactory;
use Magento\Framework\Controller\ResultInterface;
use Magento\Framework\Model\ResourceModel\Db\Collection\AbstractCollection;
use Magento\Ui\Component\MassAction\Filter;
/**
* Class AbstractMassStatus
* @deprecated 101.0.0
* Never extend from this action. Implement mass-action logic in the "execute" method of your controller.
*/
abstract class AbstractMassAction extends \Magento\Backend\App\Action
{
/**
* Authorization level of a basic admin session
*/
const ADMIN_RESOURCE = 'Magento_Sales::actions_edit';
/**
* @var string
*/
protected $redirectUrl = '*/*/';
/**
* @var \Magento\Ui\Component\MassAction\Filter
*/
protected $filter;
/**
* @var object
*/
protected $collectionFactory;
/**
* @param Context $context
* @param Filter $filter
*/
public function __construct(Context $context, Filter $filter)
{
parent::__construct($context);
$this->filter = $filter;
}
/**
* Execute action
*
* @return \Magento\Backend\Model\View\Result\Redirect
* @throws \Magento\Framework\Exception\LocalizedException|\Exception
*/
public function execute()
{
try {
$collection = $this->filter->getCollection($this->collectionFactory->create());
return $this->massAction($collection);
} catch (\Exception $e) {
$this->messageManager->addErrorMessage($e->getMessage());
/** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
$resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
return $resultRedirect->setPath($this->redirectUrl);
}
}
/**
* Return component referrer url
* TODO: Technical dept referrer url should be implement as a part of Action configuration in appropriate way
*
* @return null|string
*/
protected function getComponentRefererUrl()
{
return $this->filter->getComponentRefererUrl() ?: 'sales/*/';
}
/**
* Set status to collection items
*
* @param AbstractCollection $collection
* @return ResponseInterface|ResultInterface
*/
abstract protected function massAction(AbstractCollection $collection);
}