Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 38
0.00% covered (danger)
0.00%
0 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 1
OlzLogsParams
n/a
0 / 0
n/a
0 / 0
0
n/a
0 / 0
OlzLogs
0.00% covered (danger)
0.00%
0 / 38
0.00% covered (danger)
0.00%
0 / 5
56
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
 searchSqlWhenHasAccess
0.00% covered (danger)
0.00%
0 / 7
0.00% covered (danger)
0.00%
0 / 1
2
 getPageTitle
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getPageDescription
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 / 28
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2
3namespace Olz\Apps\Logs\Components\OlzLogs;
4
5use Olz\Apps\Logs\Metadata;
6use Olz\Apps\Logs\Utils\LogsDefinitions;
7use Olz\Components\Apps\OlzNoAppAccess\OlzNoAppAccess;
8use Olz\Components\Common\OlzRootComponent;
9use Olz\Components\Page\OlzFooter\OlzFooter;
10use Olz\Components\Page\OlzHeader\OlzHeader;
11use Olz\Utils\HttpParams;
12
13/** @extends HttpParams<array{}> */
14class OlzLogsParams extends HttpParams {
15}
16
17/** @extends OlzRootComponent<array<string, mixed>> */
18class OlzLogs extends OlzRootComponent {
19    public function hasAccess(): bool {
20        return (new Metadata())->isAccessibleToUser($this->authUtils()->getCurrentUser());
21    }
22
23    public function searchSqlWhenHasAccess(array $terms): string|array|null {
24        $metadata = new Metadata();
25        return $this->searchUtils()->getStaticResultQuery([
26            'link' => $metadata->getHref(),
27            'icon' => $metadata->getIconHref(),
28            'title' => "Apps: {$this->getPageTitle()}",
29            'text' => $this->getPageDescription(),
30        ], $terms);
31    }
32
33    public function getPageTitle(): string {
34        return "Logs";
35    }
36
37    public function getPageDescription(): string {
38        return "Website-Logdateien durchsuchen";
39    }
40
41    public function getHtmlWhenHasAccess(mixed $args): string {
42        $this->httpUtils()->validateGetParams(OlzLogsParams::class);
43        $code_href = $this->envUtils()->getCodeHref();
44
45        $out = OlzHeader::render([
46            'back_link' => "{$code_href}service/",
47            'title' => $this->getPageTitle(),
48            'description' => $this->getPageDescription(),
49            'norobots' => true,
50        ]);
51
52        $metadata = new Metadata();
53
54        $out .= <<<'ZZZZZZZZZZ'
55            <style>
56            .menu-container {
57                max-width: none;
58            } 
59            .site-container {
60                max-width: none;
61            }
62            </style>
63            ZZZZZZZZZZ;
64
65        $out .= "<div class='content-full olz-logs'>";
66        if ($this->authUtils()->hasPermission('all')) {
67            $channels_data = [];
68            foreach (LogsDefinitions::getLogsChannels() as $channel) {
69                $channels_data[$channel::getId()] = $channel::getName();
70            }
71            $esc_channels = json_encode($channels_data);
72            $out .= <<<ZZZZZZZZZZ
73                    <script>
74                        window.olzLogsChannels = {$esc_channels};
75                    </script>
76                    <div id='react-root'></div>
77                ZZZZZZZZZZ;
78        } else {
79            $out .= OlzNoAppAccess::render([
80                'app' => $metadata,
81            ]);
82        }
83        $out .= "</div>";
84
85        $out .= $metadata->getJsCssImports();
86        $out .= OlzFooter::render();
87
88        return $out;
89    }
90}