aboutsummaryrefslogtreecommitdiff
path: root/app/views/resources/room_planning/semester_plan.php
blob: 7855f195b45cae05ff17286156b636812b925568 (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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
<? if (!empty($resource)) : ?>
    <? if (Request::get("allday")) {
        $min_time = '00:00:00';
        $max_time = '24:00:00';
    } else {
        $min_time = Config::get()->RESOURCES_BOOKING_PLAN_START_HOUR . ':00';
        $max_time = Config::get()->RESOURCES_BOOKING_PLAN_END_HOUR . ':00';
    } ?>

    <? if ($resource instanceof Room) : ?>
        <? if (Request::isDialog()) : ?>
            <section class="fullcalendar-dialogwidget-container">
                <div class="fullcalendar-dialogwidget-widget">
                    <div class="fullcalendar-dialogwidget-widget-header">
                    <?= _('Semester auswählen') ?>
                    </div>
                    <div class="fullcalendar-dialogwidget-widget-content">
                        <form action="<?= $plan_link ?>" method="get" data-dialog="size=big">
                            <input type="hidden" name="resource_id"
                                   value="<?= htmlReady($resource->id) ?>">
                            <input type="hidden" value="0" name="allday">
                            <select class="fullcalendar-dialogwidget-selectlist submit-upon-select"
                                    name="semester_id">
                                <? foreach ($dialog_semesters as $sem) : ?>
                                    <option value="<?= htmlReady($sem->id) ?>"
                                            title="<?= htmlReady($sem->name) ?>"
                                            <?= ($semester->id == $sem->id)
                                              ? 'selected="selected"' : '' ?>>
                                        <?= htmlReady($sem->name) ?>
                                    </option>
                                <? endforeach ?>
                            </select>
                            <noscript>
                                <button type="submit" class="button"
                                        name="Zuweisen"><?= _('Zuweisen') ?></button>
                            </noscript>
                        </form>
                    </div>
                </div>
            </section>
        <? endif ?>

        <section class="studip-fullcalendar-header <?= Request::isDialog()?'fullcalendar-dialog':'';?>"
                 data-semester-begin="" data-semester-end="">
            <div id="booking-plan-header-resource-name-line">
                <? if ($resource instanceof Room) : ?>
                    <?= htmlReady($resource->name) ?>,
                    <?= htmlReady(sprintf(_('%d Sitzplätze'), $resource->seats)) ?>,
                <? else : ?>
                    <?= htmlReady($resource->name) ?>
                <? endif ?>
                <span id="booking-plan-header-semrow">
                        <strong>
                            <?= _('Semester') ?>
                            <span id="booking-plan-header-semname"><?= htmlReady($semester->name) ?></span>
                        </strong>
                        <span id="booking-plan-header-semspan">
                            <? if (Request::get("semester_timerange") == 'fullsem') : ?>
                                <?= sprintf('(%1$s - %2$s)', date('d.m.Y',$semester->beginn), date('d.m.Y', $semester->ende)); ?>
                            <? else : ?>
                                <?= sprintf('(%1$s - %2$s)', date('d.m.Y',$semester->vorles_beginn), date('d.m.Y', $semester->vorles_ende)); ?>
                            <? endif ?>
                        </span>
                </span>
            </div>
            <? if ($resource->getProperty('room_administrator')): ?>
                <div id="booking-plan-header-room_administrator-line">
                    <a href="<?= $resource->getProperty('room_administrator');?>">
                        <?= Icon::create('person', Icon::ROLE_CLICKABLE, ['class' => 'text-bottom']); ?>
                        <?= $resource->getPropertyObject('room_administrator')->display_name; ?>
                    </a>
                </div>
            <? endif; ?>
            <? if ($resource->getProperty('administration_url')): ?>
                <div id="booking-plan-header-administration_url-line">
                    <a href="<?= $resource->getProperty('administration_url');?>">
                        <?= Icon::create('link-extern', Icon::ROLE_CLICKABLE, ['class' => 'text-bottom']); ?>
                        <?= $resource->getPropertyObject('administration_url')->display_name; ?>
                    </a>
                </div>
            <? endif; ?>
        </section>
    <? endif ?>
    <?= \Studip\Fullcalendar::create(
        _('Semesterplan'),
        [
            'editable' => true,
            'selectable' => isset($fullcalendar_studip_urls['add']),
            'studip_urls' => $fullcalendar_studip_urls,
            'slotMinTime' => $min_time,
            'slotMaxTime' => $max_time,
            'allDaySlot' => false,
            'dayHeaderFormat' => ['weekday'=> 'short'],
            'headerToolbar' => [
                'left' => '',
                'right' => ''
            ],
            'views' => [
                \Studip\Fullcalendar::VIEW_WEEK => [
                    'dayHeaderFormat' => ['weekday' => 'short', 'year' => 'numeric', 'month' => '2-digit', 'day' => '2-digit', 'omitCommas' => true]
                ],
            ],
            'initialView' => \Studip\Fullcalendar::VIEW_WEEK,
            'initialDate' => ((Request::get('semester_timerange') === 'fullsem') ? date('Y-m-d', $semester->beginn) : date('Y-m-d', $semester->vorles_beginn)),
            'display_holidays'  => false,
            'display_vacations' => false,
            'weekNumbers'       => false,
            'eventSources' => [
                [
                    'url' => URLHelper::getURL(
                        'dispatch.php/resources/ajax/get_semester_booking_plan/' . $resource->id
                    ),
                    'method' => 'GET',
                    'extraParams' => [
                        'booking_types' => [
                            ResourceBooking::TYPE_NORMAL,
                            ResourceBooking::TYPE_RESERVATION,
                            ResourceBooking::TYPE_LOCK,
                        ],
                        'semester_id' => $semester->id,
                        'semester_timerange' => Request::get('semester_timerange', 'vorles'),
                        'display_requests' => 1,
                        'display_all_requests' => $display_all_requests ? 1 : 0
                    ]
                ]
            ],
            'nowIndicator' => false
        ],
        ['class' => 'resource-plan semester-plan'],
        'resources-fullcalendar'
    ) ?>
    <ul class="map-key-list">
        <? foreach ($table_keys as $key): ?>
            <li class="map-key">
                <span style="background-color:<?= $key['colour'] ?>">
                    &nbsp;
                </span>
            <?= htmlReady($key['text']) ?>
            </li>
        <? endforeach ?>
        <li class="map-key">
            <?= Icon::create('refresh', Icon::ROLE_INFO, ['class' => 'text-bottom']); ?>
            <?= _('Wiederholungstermin') ?>
        </li>
        <li class="map-key">
            <?= Icon::create('chat2', Icon::ROLE_INFO, ['class' => 'text-bottom']); ?>
            <?= _('Kommentar') ?>
        </li>
    </ul>
<? elseif ($rooms): ?>
    <?= $this->render_partial(
        'resources/_common/_grouped_room_list.php',
        [
            'grouped_rooms' => RoomManager::groupRooms($rooms),
            'link_template' => $selection_link_template
        ]
    ) ?>
<? else: ?>
    <?= MessageBox::error(
        _('Es wurde kein Raum ausgewählt und Sie haben keine Berechtigungen an Räumen!')
    ) ?>
<? endif ?>

<div data-dialog-button>
    <?= Request::isDialog()?\Studip\LinkButton::create(_('Drucken'), $sem_url, ['class' => 'print_action']):'' ?>
</div>