Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 48
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
OlzOrganigramm
0.00% covered (danger)
0.00%
0 / 48
0.00% covered (danger)
0.00%
0 / 1
56
0.00% covered (danger)
0.00%
0 / 1
 getHtml
0.00% covered (danger)
0.00%
0 / 48
0.00% covered (danger)
0.00%
0 / 1
56
1<?php
2
3namespace Olz\Roles\Components\OlzOrganigramm;
4
5use Olz\Components\Common\OlzComponent;
6use Olz\Entity\Roles\Role;
7use Olz\Users\Components\OlzUserInfoModal\OlzUserInfoModal;
8
9/** @extends OlzComponent<array<string, mixed>> */
10class OlzOrganigramm extends OlzComponent {
11    public function getHtml(mixed $args): string {
12        $code_href = $this->envUtils()->getCodeHref();
13        $entityManager = $this->dbUtils()->getEntityManager();
14        $role_repo = $entityManager->getRepository(Role::class);
15
16        $out = "<div class='olz-organigramm'>";
17        $out .= "<h2>Organigramm OL Zimmerberg</h2>";
18
19        $root_roles = $role_repo->getRolesWithParent(null);
20        $out .= "<div id='organigramm-scroll'><div class='organigramm-wrapper'>";
21        foreach ($root_roles as $root_role) {
22            $root_role_name = nl2br($root_role->getName());
23            $root_role_username = $root_role->getUsername();
24            $out .= "<div class='organigramm-column'>";
25            $out .= "<div id='role-{$root_role->getId()}' class='role-box'>";
26            $out .= "<a href='{$code_href}verein/{$root_role_username}' class='root-role-name'><h6>{$root_role_name}</h6></a>";
27            $root_role_assignees = $root_role->getUsers();
28            foreach ($root_role_assignees as $root_role_assignee) {
29                $out .= OlzUserInfoModal::render([
30                    'user' => $root_role_assignee,
31                    'mode' => 'name_picture',
32                ]);
33            }
34            $out .= "</div>";
35            $roles = $role_repo->getRolesWithParent($root_role->getId());
36            foreach ($roles as $role) {
37                $role_name = nl2br($role->getName());
38                $role_username = nl2br($role->getUsername());
39                $out .= "<div class='organigramm-connect'><span></span></div>";
40                $out .= "<div id='role-{$role->getId()}' class='role-box'>";
41                $out .= "<a href='{$code_href}verein/{$role_username}' class='role-name'><h6>{$role_name}</h6></a>";
42                $role_assignees = $role->getUsers();
43                foreach ($role_assignees as $role_assignee) {
44                    $out .= OlzUserInfoModal::render([
45                        'user' => $role_assignee,
46                        'mode' => 'name',
47                    ]);
48                }
49                $sub_roles = $role_repo->getRolesWithParent($role->getId());
50                foreach ($sub_roles as $sub_role) {
51                    $sub_role_name = nl2br($sub_role->getName());
52                    $sub_role_username = nl2br($sub_role->getUsername());
53                    $out .= "<div id='role-{$sub_role->getId()}' class='sub-role-name'><a href='{$code_href}verein/{$sub_role_username}'>{$sub_role_name}</a></div>";
54                    $sub_role_assignees = $sub_role->getUsers();
55                    foreach ($sub_role_assignees as $sub_role_assignee) {
56                        $out .= OlzUserInfoModal::render([
57                            'user' => $sub_role_assignee,
58                            'mode' => 'name',
59                        ]);
60                    }
61                }
62                $out .= "</div>";
63            }
64            $out .= "</div>";
65        }
66        $out .= "</div></div></div>";
67
68        return $out;
69    }
70}