Neos\Neos\Controller\Module\Administration\PackagesController::batchAction PHP Method

batchAction() public method

public batchAction ( array $packageKeys, string $action ) : void
$packageKeys array
$action string
return void
    public function batchAction(array $packageKeys, $action)
    {
        switch ($action) {
            case 'freeze':
                $frozenPackages = array();
                foreach ($packageKeys as $packageKey) {
                    $message = $this->freezePackage($packageKey);
                    if ($message instanceof Error || $message instanceof Warning) {
                        $this->flashMessageContainer->addMessage($message);
                    } else {
                        array_push($frozenPackages, $packageKey);
                    }
                }
                if (count($frozenPackages) > 0) {
                    $message = new Message('Following packages have been frozen: %s', 1412547087, array(implode(', ', $frozenPackages)));
                } else {
                    $message = new Warning('Unable to freeze the selected packages', 1412547216);
                }
                break;
            case 'unfreeze':
                foreach ($packageKeys as $packageKey) {
                    $this->packageManager->unfreezePackage($packageKey);
                }
                $message = new Message('Following packages have been unfrozen: %s', 1412547219, array(implode(', ', $packageKeys)));
                break;
            case 'activate':
                $activatedPackages = array();
                foreach ($packageKeys as $packageKey) {
                    $message = $this->activatePackage($packageKey);
                    if ($message instanceof Error || $message instanceof Warning) {
                        $this->flashMessageContainer->addMessage($message);
                    } else {
                        array_push($activatedPackages, $packageKey);
                    }
                }
                if (count($activatedPackages) > 0) {
                    $message = new Message('Following packages have been activated: %s', 1412547283, array(implode(', ', $activatedPackages)));
                } else {
                    $message = new Warning('Unable to activate the selected packages', 1412547324);
                }
                break;
            case 'deactivate':
                $deactivatedPackages = array();
                foreach ($packageKeys as $packageKey) {
                    $message = $this->deactivatePackage($packageKey);
                    if ($message instanceof Error || $message instanceof Warning) {
                        $this->flashMessageContainer->addMessage($message);
                    } else {
                        array_push($deactivatedPackages, $packageKey);
                    }
                }
                if (count($deactivatedPackages) > 0) {
                    $message = new Message('Following packages have been deactivated: %s', 1412545904, array(implode(', ', $deactivatedPackages)));
                } else {
                    $message = new Warning('Unable to deactivate the selected packages', 1412545976);
                }
                break;
            case 'delete':
                $deletedPackages = array();
                foreach ($packageKeys as $packageKey) {
                    $message = $this->deletePackage($packageKey);
                    if ($message instanceof Error || $message instanceof Warning) {
                        $this->flashMessageContainer->addMessage($message);
                    } else {
                        array_push($deletedPackages, $packageKey);
                    }
                }
                if (count($deletedPackages) > 0) {
                    $message = new Message('Following packages have been deleted: %s', 1412547479, array(implode(', ', $deletedPackages)));
                } else {
                    $message = new Warning('Unable to delete the selected packages', 1412546138);
                }
                break;
            default:
                throw new \RuntimeException('Invalid action "' . $action . '" given.', 1347463918);
        }
        $this->flashMessageContainer->addMessage($message);
        $this->redirect('index');
    }