BacLuc | 955e126 | 2020-03-15 11:13:38 +0100 | [diff] [blame] | 1 | <?php |
| 2 | |
| 3 | |
| 4 | namespace BaclucEventPackage\NextEvent; |
| 5 | |
| 6 | |
BacLuc | 955e126 | 2020-03-15 11:13:38 +0100 | [diff] [blame] | 7 | use BaclucC5Crud\Controller\Renderer; |
| 8 | use BaclucC5Crud\Controller\VariableSetter; |
| 9 | use BaclucC5Crud\TableViewService; |
BacLuc | b665bb5 | 2020-03-21 17:01:32 +0100 | [diff] [blame] | 10 | use BaclucC5Crud\View\ViewActionRegistry; |
BacLuc | ae20eda | 2020-03-17 22:00:44 +0100 | [diff] [blame] | 11 | use BaclucEventPackage\EventActionRegistryFactory; |
BacLuc | a125477 | 2020-03-29 12:34:34 +0200 | [diff] [blame] | 12 | use BaclucEventPackage\NoEditIdFallbackActionProcessor; |
BacLuc | 955e126 | 2020-03-15 11:13:38 +0100 | [diff] [blame] | 13 | use function BaclucC5Crud\Lib\collect as collect; |
| 14 | |
BacLuc | a125477 | 2020-03-29 12:34:34 +0200 | [diff] [blame] | 15 | class ShowNextEvent implements NoEditIdFallbackActionProcessor |
BacLuc | 955e126 | 2020-03-15 11:13:38 +0100 | [diff] [blame] | 16 | { |
BacLuc | 955e126 | 2020-03-15 11:13:38 +0100 | [diff] [blame] | 17 | /** |
| 18 | * @var TableViewService |
| 19 | */ |
| 20 | private $tableViewService; |
| 21 | /** |
| 22 | * @var VariableSetter |
| 23 | */ |
| 24 | private $variableSetter; |
| 25 | /** |
| 26 | * @var Renderer |
| 27 | */ |
| 28 | private $renderer; |
BacLuc | b665bb5 | 2020-03-21 17:01:32 +0100 | [diff] [blame] | 29 | /** |
| 30 | * @var ViewActionRegistry |
| 31 | */ |
| 32 | private $viewActionRegistry; |
BacLuc | 955e126 | 2020-03-15 11:13:38 +0100 | [diff] [blame] | 33 | |
| 34 | /** |
| 35 | * ShowFormActionProcessor constructor. |
| 36 | * @param TableViewService $tableViewService |
| 37 | * @param VariableSetter $variableSetter |
| 38 | * @param Renderer $renderer |
| 39 | */ |
BacLuc | b665bb5 | 2020-03-21 17:01:32 +0100 | [diff] [blame] | 40 | public function __construct( |
| 41 | TableViewService $tableViewService, |
| 42 | VariableSetter $variableSetter, |
| 43 | Renderer $renderer, |
| 44 | ViewActionRegistry $viewActionRegistry |
| 45 | ) { |
BacLuc | 955e126 | 2020-03-15 11:13:38 +0100 | [diff] [blame] | 46 | $this->tableViewService = $tableViewService; |
| 47 | $this->variableSetter = $variableSetter; |
| 48 | $this->renderer = $renderer; |
BacLuc | b665bb5 | 2020-03-21 17:01:32 +0100 | [diff] [blame] | 49 | $this->viewActionRegistry = $viewActionRegistry; |
BacLuc | 955e126 | 2020-03-15 11:13:38 +0100 | [diff] [blame] | 50 | } |
| 51 | |
| 52 | |
| 53 | function getName(): string |
| 54 | { |
BacLuc | ae20eda | 2020-03-17 22:00:44 +0100 | [diff] [blame] | 55 | return EventActionRegistryFactory::SHOW_NEXT_EVENT; |
BacLuc | 955e126 | 2020-03-15 11:13:38 +0100 | [diff] [blame] | 56 | } |
| 57 | |
| 58 | function process(array $get, array $post, ...$additionalParameters) |
| 59 | { |
| 60 | $tableView = $this->tableViewService->getTableView(); |
| 61 | |
BacLuc | b665bb5 | 2020-03-21 17:01:32 +0100 | [diff] [blame] | 62 | $rows = $tableView->getRows(); |
| 63 | if (sizeof($rows) >= 1) { |
| 64 | $detailEntry = collect($rows)->first(); |
BacLuc | 89e7c46 | 2020-03-15 17:43:38 +0100 | [diff] [blame] | 65 | $eventfound = true; |
BacLuc | 955e126 | 2020-03-15 11:13:38 +0100 | [diff] [blame] | 66 | } else { |
BacLuc | 89e7c46 | 2020-03-15 17:43:38 +0100 | [diff] [blame] | 67 | $eventfound = false; |
BacLuc | 955e126 | 2020-03-15 11:13:38 +0100 | [diff] [blame] | 68 | } |
BacLuc | 89e7c46 | 2020-03-15 17:43:38 +0100 | [diff] [blame] | 69 | $this->variableSetter->set("eventfound", $eventfound); |
| 70 | if ($eventfound) { |
| 71 | foreach ($detailEntry as $key => $value) { |
| 72 | $this->variableSetter->set($key, $value); |
| 73 | } |
BacLuc | b665bb5 | 2020-03-21 17:01:32 +0100 | [diff] [blame] | 74 | $this->variableSetter->set("eventId", array_keys($rows)[0]); |
BacLuc | 89e7c46 | 2020-03-15 17:43:38 +0100 | [diff] [blame] | 75 | } |
BacLuc | b665bb5 | 2020-03-21 17:01:32 +0100 | [diff] [blame] | 76 | $this->variableSetter->set("actions", |
| 77 | [$this->viewActionRegistry->getByName(EventActionRegistryFactory::SHOW_CANCEL_EVENT_FORM)]); |
BacLuc | 89e7c46 | 2020-03-15 17:43:38 +0100 | [diff] [blame] | 78 | $this->renderer->render("view/nextevent"); |
BacLuc | 955e126 | 2020-03-15 11:13:38 +0100 | [diff] [blame] | 79 | } |
| 80 | |
| 81 | } |