aboutsummaryrefslogtreecommitdiff
path: root/templates/sidebar/room-search-tree-widget.php
blob: 008b1bcdf877c86fd9812cfd8f63093ff895501c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<ul class="resource-tree">
    <? foreach($resources as $resource): ?>
        <? $selected = $resource->id == $selected_resource; ?>
        <? $resource = $resource->getDerivedClassInstance() ?>
        <? $resource_class = get_class($resource); ?>
        <? $search_object = strtolower($resource_class) . '_' . $resource->id; ?>

        <li <?=  ((!$resource_path && $resource->level > $max_open_depth) || $hide) ? 'style="display: none;"' : ''; ?> >
            <? if (count($resource->children)): ?>

                <?= Icon::create('arr_1right')->asImg(
                    [
                        'class' => implode(
                            ' ',
                            [
                                'resource-tree-node',
                                (
                                    in_array($resource->id, $resource_path) || (!$resource_path && $resource->level < $max_open_depth)
                                    ? 'rotated'
                                    : ''
                                )
                            ]
                        ),
                        'style' => implode(
                            '; ',
                            [
                                (
                                    in_array($resource->id, $resource_path) || (!$resource_path && $resource->level < $max_open_depth)
                                    ? 'transform: rotate(90deg)'
                                    : ''
                                ),
                                'cursor: pointer;'
                            ]
                        ),
                        'onClick' => 'STUDIP.Resources.toggleTreeNode($(this).parent());'
                    ]
                ) ?>

            <? endif ?>
            <span id="<?= $search_object; ?>" style="cursor: pointer;">
                <?= $resource->getIcon()->asImg(
                    [
                        'class' => 'text-bottom'
                    ]
                ) ?>
                <?= htmlReady($resource->name) ?>
            </span>
            <script type="text/javascript">
                jQuery(function ($) {
                    $('#<?= $search_object; ?>').on('click', function(event) {
                        $('input[name="special__building_location"]').val('<?= $search_object; ?>');
                        $('button[name="room_search"]').trigger('click');
                    });
                });
            </script>
            <? if ($resource->children): ?>
                <?= $this->render_partial(
                    'sidebar/room-search-tree-widget',
                    [
                        'resources' => $resource->children->orderBy('sort_position DESC, name'),
                        'selected_resource' => $selected_resource,
                        'resource_path' => $resource_path,
                        'hide' => ($resource_path && !in_array($resource->id, $resource_path))
                    ]
                ) ?>
                <? endif ?>
            </a>
        </li>
    <? endforeach ?>
</ul>