blob: e7ab462025d4be120a542dbaedd91221a2d56edb [file] [log] [blame]
<?php
namespace BaclucEventPackage\NextEvent;
use BaclucC5Crud\Controller\Renderer;
use BaclucC5Crud\Controller\VariableSetter;
use BaclucC5Crud\TableViewService;
use BaclucC5Crud\View\ViewActionRegistry;
use BaclucEventPackage\EventActionRegistryFactory;
use BaclucEventPackage\NoEditIdFallbackActionProcessor;
use function BaclucC5Crud\Lib\collect as collect;
class ShowNextEvent implements NoEditIdFallbackActionProcessor
{
/**
* @var TableViewService
*/
private $tableViewService;
/**
* @var VariableSetter
*/
private $variableSetter;
/**
* @var Renderer
*/
private $renderer;
/**
* @var ViewActionRegistry
*/
private $viewActionRegistry;
/**
* ShowFormActionProcessor constructor.
* @param TableViewService $tableViewService
* @param VariableSetter $variableSetter
* @param Renderer $renderer
*/
public function __construct(
TableViewService $tableViewService,
VariableSetter $variableSetter,
Renderer $renderer,
ViewActionRegistry $viewActionRegistry
) {
$this->tableViewService = $tableViewService;
$this->variableSetter = $variableSetter;
$this->renderer = $renderer;
$this->viewActionRegistry = $viewActionRegistry;
}
function getName(): string
{
return EventActionRegistryFactory::SHOW_NEXT_EVENT;
}
function process(array $get, array $post, ...$additionalParameters)
{
$tableView = $this->tableViewService->getTableView();
$rows = $tableView->getRows();
if (sizeof($rows) >= 1) {
$detailEntry = collect($rows)->first();
$eventfound = true;
} else {
$eventfound = false;
}
$this->variableSetter->set("eventfound", $eventfound);
if ($eventfound) {
foreach ($detailEntry as $key => $value) {
$this->variableSetter->set($key, $value);
}
$this->variableSetter->set("eventId", array_keys($rows)[0]);
}
$this->variableSetter->set("actions",
[$this->viewActionRegistry->getByName(EventActionRegistryFactory::SHOW_CANCEL_EVENT_FORM)]);
$this->renderer->render("view/nextevent");
}
}