Files
esun3d/app/code/Esun/MultiLocaleTranslation/Controller/Adminhtml/Queue/ClearAll.php
T
2026-09-15 10:35:56 +08:00

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');
}
}