42 lines
1.3 KiB
PHP
42 lines
1.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Esun\MultiLocaleTranslation\Controller\Adminhtml\Queue;
|
|
|
|
use Esun\MultiLocaleTranslation\Model\Queue\QueueManager;
|
|
use Magento\Backend\App\Action;
|
|
use Magento\Framework\App\Action\HttpPostActionInterface;
|
|
use Magento\Framework\Controller\Result\Redirect;
|
|
|
|
class ClearAll extends Action implements HttpPostActionInterface
|
|
{
|
|
public const ADMIN_RESOURCE = 'Esun_MultiLocaleTranslation::queue_delete';
|
|
|
|
public function __construct(
|
|
Action\Context $context,
|
|
private readonly QueueManager $queueManager
|
|
) {
|
|
parent::__construct($context);
|
|
}
|
|
|
|
public function execute(): Redirect
|
|
{
|
|
try {
|
|
$result = $this->queueManager->clearAll();
|
|
$this->messageManager->addSuccessMessage(
|
|
__('%1 translation queue task(s) cleared.', $result['deleted'])
|
|
);
|
|
if ($result['processing'] > 0) {
|
|
$this->messageManager->addWarningMessage(
|
|
__('%1 task(s) were already processing and may still finish.', $result['processing'])
|
|
);
|
|
}
|
|
} catch (\Throwable $exception) {
|
|
$this->messageManager->addErrorMessage($exception->getMessage());
|
|
}
|
|
|
|
return $this->resultRedirectFactory->create()->setPath('*/*/index');
|
|
}
|
|
}
|