Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 28
0.00% covered (danger)
0.00%
0 / 4
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 / 28
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 / 25
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 true;
21    }
22
23    public function getSearchTitle(): string {
24        return 'TODO';
25    }
26
27    public function getSearchResultsWhenHasAccess(array $terms): array {
28        return [];
29    }
30
31    public function getHtmlWhenHasAccess(mixed $args): string {
32        $this->httpUtils()->validateGetParams(OlzLogsParams::class);
33        $code_href = $this->envUtils()->getCodeHref();
34
35        $out = OlzHeader::render([
36            'back_link' => "{$code_href}service/",
37            'title' => "Logs",
38            'norobots' => true,
39        ]);
40
41        $metadata = new Metadata();
42
43        $out .= <<<'ZZZZZZZZZZ'
44            <style>
45            .menu-container {
46                max-width: none;
47            } 
48            .site-container {
49                max-width: none;
50            }
51            </style>
52            ZZZZZZZZZZ;
53
54        $out .= "<div class='content-full olz-logs'>";
55        if ($this->authUtils()->hasPermission('all')) {
56            $channels_data = [];
57            foreach (LogsDefinitions::getLogsChannels() as $channel) {
58                $channels_data[$channel::getId()] = $channel::getName();
59            }
60            $esc_channels = json_encode($channels_data);
61            $out .= <<<ZZZZZZZZZZ
62                    <script>
63                        window.olzLogsChannels = {$esc_channels};
64                    </script>
65                    <div id='react-root'></div>
66                ZZZZZZZZZZ;
67        } else {
68            $out .= OlzNoAppAccess::render([
69                'app' => $metadata,
70            ]);
71        }
72        $out .= "</div>";
73
74        $out .= $metadata->getJsCssImports();
75        $out .= OlzFooter::render();
76
77        return $out;
78    }
79}