mirror of
https://github.com/Karaka-Management/oms-Organization.git
synced 2026-01-11 16:18:40 +00:00
80 lines
1.7 KiB
PHP
Executable File
80 lines
1.7 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Jingga
|
|
*
|
|
* PHP Version 8.2
|
|
*
|
|
* @package Modules\Organization
|
|
* @copyright Dennis Eichhorn
|
|
* @license OMS License 2.0
|
|
* @version 1.0.0
|
|
* @link https://jingga.app
|
|
*/
|
|
declare(strict_types=1);
|
|
|
|
/**
|
|
* @var \phpOMS\Views\View $this
|
|
*/
|
|
$unitTree = $this->data['unitTree'];
|
|
$depTree = $this->data['departmentTree'];
|
|
$posTree = $this->data['positionTree'];
|
|
|
|
function renderTree($parent, $ref, &$unitTree, &$depTree, &$posTree, $type = 'unit')
|
|
{
|
|
$first = true;
|
|
|
|
$tree = [];
|
|
if ($type === 'unit') {
|
|
$tree = &$unitTree;
|
|
} elseif ($type === 'dep') {
|
|
$tree = &$depTree;
|
|
} else {
|
|
$tree = &$posTree;
|
|
}
|
|
|
|
$result = '';
|
|
|
|
foreach ($tree as $leaf) {
|
|
if (($parent !== $leaf['obj']->parent->id) || $ref !== $leaf['ref']) {
|
|
continue;
|
|
}
|
|
|
|
if ($first && $parent !== 0) {
|
|
$result .= '<ul>';
|
|
$first = false;
|
|
}
|
|
|
|
$result .= '<li><span><section class="box">' . $leaf['obj']->name . '</section>';
|
|
|
|
if ($type === 'unit') {
|
|
$temp = \renderTree(0, $leaf['obj']->id, $unitTree, $depTree, $posTree, $type === 'unit' ? 'dep' : 'pos');
|
|
|
|
if ($temp !== '') {
|
|
$result .= '<ul class="tree">';
|
|
$result .= $temp;
|
|
$result .= '</ul>';
|
|
}
|
|
}
|
|
|
|
$result .= '</span>';
|
|
|
|
$result .= \renderTree($leaf['obj']->id, $ref, $unitTree, $depTree, $posTree, $type);
|
|
$result .= '</li>';
|
|
}
|
|
|
|
if (!$first) {
|
|
$result .= '</ul>';
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
|
|
?>
|
|
|
|
<div class="row">
|
|
<div class="col-xs-12">
|
|
<ul class="tree wf-100">
|
|
<?= \renderTree(0, 0, $unitTree, $depTree, $posTree, 'unit'); ?>
|
|
</ul>
|
|
</div>
|
|
</div>
|