Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 26
0.00% covered (danger)
0.00%
0 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
OlzTerminTemplatesListParams
n/a
0 / 0
n/a
0 / 0
0
n/a
0 / 0
OlzTerminTemplatesList
0.00% covered (danger)
0.00%
0 / 26
0.00% covered (danger)
0.00%
0 / 4
42
0.00% covered (danger)
0.00%
0 / 1
 hasAccess
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getSearchTitle
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getSearchResultsWhenHasAccess
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getHtmlWhenHasAccess
0.00% covered (danger)
0.00%
0 / 23
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2
3namespace Olz\Termine\Components\OlzTerminTemplatesList;
4
5use Olz\Components\Common\OlzRootComponent;
6use Olz\Components\Page\OlzFooter\OlzFooter;
7use Olz\Components\Page\OlzHeader\OlzHeader;
8use Olz\Entity\Termine\TerminTemplate;
9use Olz\Termine\Components\OlzTerminTemplatesListItem\OlzTerminTemplatesListItem;
10use Olz\Utils\HttpParams;
11
12/** @extends HttpParams<array{}> */
13class OlzTerminTemplatesListParams extends HttpParams {
14}
15
16/** @extends OlzRootComponent<array<string, mixed>> */
17class OlzTerminTemplatesList extends OlzRootComponent {
18    public function hasAccess(): bool {
19        return true;
20    }
21
22    public function getSearchTitle(): string {
23        return 'TODO';
24    }
25
26    public function getSearchResultsWhenHasAccess(array $terms): array {
27        return [];
28    }
29
30    public function getHtmlWhenHasAccess(mixed $args): string {
31        $this->httpUtils()->validateGetParams(OlzTerminTemplatesListParams::class);
32        $code_href = $this->envUtils()->getCodeHref();
33
34        if (!$this->authUtils()->hasPermission('termine')) {
35            $this->httpUtils()->dieWithHttpError(401);
36            throw new \Exception('should already have failed');
37        }
38
39        $out = OlzHeader::render([
40            'back_link' => "{$code_href}termine",
41            'title' => 'Termin-Vorlagen',
42            'description' => "Vorlagen, um OL Zimmerberg-Termine zu erstellen.",
43            'norobots' => true,
44        ]);
45
46        $out .= <<<ZZZZZZZZZZ
47            <div class='content-right'>
48            </div>
49            <div class='content-middle'>
50                <button
51                    id='create-termin-template-button'
52                    class='btn btn-secondary'
53                    onclick='return olz.initOlzEditTerminTemplateModal()'
54                >
55                    <img src='{$code_href}assets/icns/new_white_16.svg' class='noborder' />
56                    Neue Vorlage erstellen
57                </button>
58                <h1>Termin-Vorlagen</h1>
59            ZZZZZZZZZZ;
60        $termin_template_repo = $this->entityManager()->getRepository(TerminTemplate::class);
61        $termin_templates = $termin_template_repo->findBy(['on_off' => 1]);
62        foreach ($termin_templates as $termin_template) {
63            $out .= OlzTerminTemplatesListItem::render([
64                'termin_template' => $termin_template,
65            ]);
66        }
67
68        $out .= <<<'ZZZZZZZZZZ'
69            </div>
70            ZZZZZZZZZZ;
71
72        $out .= OlzFooter::render();
73
74        return $out;
75    }
76}