aboutsummaryrefslogtreecommitdiff
path: root/app/views/admin/courses/courses.php
blob: 0d19b0017820ef3adb433091d9a9c373e69babee (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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
<?php
/**
 * @var string $selected_action
 * @var array $view_filter
 * @var Semester $semester
 * @var int $count_courses
 * @var string $sortby
 * @var string $sortFlag
 * @var int $nav_elements
 * @var array $courses
 */

$colspan = 2
?>

<? if (!empty($actions[$selected_action]['multimode'])) : ?>
    <form action="<?= URLHelper::getLink($actions[$selected_action]['url']) ?>" method="post">
<? endif ?>
<?= CSRFProtection::tokenTag() ?>
<table class="default course-admin">
    <colgroup>
        <col style="width: 2%">
    <? if (in_array('number', $view_filter)) : ?>
        <? $colspan++ ?>
        <col style="width: 8%">
    <? endif ?>
    <? if (in_array('name', $view_filter)) : ?>
        <? $colspan++ ?>
        <col>
    <? endif ?>
    <? if (in_array('type', $view_filter)) : ?>
        <? $colspan++ ?>
        <col style="width: 10%">
    <? endif ?>
    <? if (in_array('room_time', $view_filter)) : ?>
        <? $colspan++ ?>
        <col style="width: 30%">
    <? endif ?>
        <? if (in_array('semester', $view_filter)) : ?>
            <? $colspan++ ?>
            <col style="width: 10%">
        <? endif ?>
        <? if (in_array('institute', $view_filter)) : ?>
            <? $colspan++ ?>
            <col style="width: 10%">
        <? endif ?>
        <? if (in_array('requests', $view_filter)) : ?>
        <? $colspan++ ?>
        <col style="width: 5%">
    <? endif ?>
    <? if (in_array('teachers', $view_filter)) : ?>
        <? $colspan++ ?>
        <col style="width: 10%">
    <? endif ?>
    <? if (in_array('members', $view_filter)) : ?>
        <? $colspan++ ?>
        <col style="width: 3%">
    <? endif ?>
    <? if (in_array('waiting', $view_filter)) : ?>
        <? $colspan++ ?>
        <col style="width: 5%">
    <? endif ?>
    <? if (in_array('preliminary', $view_filter)) : ?>
        <? $colspan++ ?>
        <col style="width: 5%">
    <? endif ?>
    <? if (in_array('contents', $view_filter)) : ?>
        <? $colspan++ ?>
        <col style="width: 8%">
    <? endif ?>
    <? if (in_array('last_activity', $view_filter)) : ?>
        <? $colspan++ ?>
        <col style="width: 8%">
    <? endif ?>
        <? foreach (PluginManager::getInstance()->getPlugins("AdminCourseContents") as $plugin) : ?>
            <? foreach ($plugin->adminAvailableContents() as $index => $label) : ?>
                <? if (in_array($plugin->getPluginId()."_".$index, $view_filter)) : ?>
                    <? $colspan++ ?>
                    <col style="width: 8%">
                <? endif ?>
            <? endforeach ?>
        <? endforeach ?>
        <col style="width: 15%">

    </colgroup>
    <caption>
        <? if (!$GLOBALS['user']->cfg->MY_COURSES_SELECTED_CYCLE || ($GLOBALS['user']->cfg->MY_COURSES_SELECTED_CYCLE === "all")) : ?>
            <?= _('Veranstaltungen') ?>
        <? else : ?>
            <?= htmlReady(sprintf(_('Veranstaltungen im %s'), $semester->name)) ?>
        <? endif ?>
        <span class="actions">
                <?= sprintf('%u %s', $count_courses, $count_courses > 1 ? _('Veranstaltungen') : _('Veranstaltung')) ?>
            </span>
    </caption>
    <thead>
    <tr class="sortable">
    <? if (Config::get()->ADMIN_COURSES_SHOW_COMPLETE): ?>
        <th <? if ($sortby === 'completion') printf('class="sort%s"', mb_strtolower($sortFlag)) ?>>
            <a href="<?= URLHelper::getLink('', ['sortby' => 'completion', 'sortFlag' => mb_strtolower($sortFlag)]) ?>" class="course-completion" title="<?= _('Bearbeitungsstatus') ?>">
                <?= _('Bearbeitungsstatus') ?>
            </a>
        </th>
    <? else: ?>
        <th>
            &nbsp;
        </th>
    <? endif; ?>
        <? if (in_array('number', $view_filter)) : ?>
            <th <?= ($sortby == 'VeranstaltungsNummer') ? sprintf('class="sort%s"', mb_strtolower($sortFlag)) : '' ?>>
                <a href="<?=
                URLHelper::getLink('', ['sortby'   => 'VeranstaltungsNummer',
                                             'sortFlag' => mb_strtolower($sortFlag)]) ?>">
                    <?= _('Nr.') ?>
                </a>
            </th>
        <? endif ?>
        <? if (in_array('name', $view_filter)) : ?>
            <th <?= ($sortby == 'Name') ? sprintf('class="sort%s"', mb_strtolower($sortFlag)) : '' ?>>
                <a href="<?=
                URLHelper::getLink('', ['sortby'   => 'Name',
                                             'sortFlag' => mb_strtolower($sortFlag)]) ?>">
                    <?= _('Name') ?>
                </a>
            </th>
        <? endif ?>
        <? if (in_array('type', $view_filter)) : ?>
            <th <?= ($sortby == 'status') ? sprintf('class="sort%s"', mb_strtolower($sortFlag)) : '' ?>>
                <a href="<?=
                URLHelper::getLink('', ['sortby'   => 'status',
                                             'sortFlag' => mb_strtolower($sortFlag)]) ?>">
                    <?= _("VA-Typ") ?>
                </a>
            </th>
        <? endif ?>
        <? if (in_array('room_time', $view_filter)) : ?>
            <th><?= _('Raum/Zeit') ?></th>
        <? endif ?>
        <? if (in_array('semester', $view_filter)) : ?>
            <th <?= ($sortby == 'start_time') ? sprintf('class="sort%s"', mb_strtolower($sortFlag)) : '' ?>>
                <a href="<?= URLHelper::getLink('', ['sortby'   => 'start_time', 'sortFlag' => mb_strtolower($sortFlag)]) ?>">
                    <?= _('Semester') ?>
                </a>
            </th>
        <? endif ?>
        <? if (in_array('institute', $view_filter)) : ?>
            <th <?= ($sortby == 'institute') ? sprintf('class="sort%s"', mb_strtolower($sortFlag)) : '' ?>>
                <a href="<?= URLHelper::getLink('', ['sortby'   => 'institute', 'sortFlag' => mb_strtolower($sortFlag)]) ?>">
                    <?= _('Einrichtung') ?>
                </a>
            </th>
        <? endif ?>
        <? if (in_array('requests', $view_filter)) : ?>
            <th <?= ($sortby == 'requests') ? sprintf('class="sort%s"', mb_strtolower($sortFlag)) : '' ?>>
                <a href="<?=
                URLHelper::getLink('', ['sortby'   => 'requests',
                                             'sortFlag' => mb_strtolower($sortFlag)]) ?>">
                    <abbr title="<?= _('Raumanfragen') ?>">
                        <?= _('RA') ?>
                    </abbr>
                </a>
            </th>
        <? endif ?>
        <? if (in_array('teachers', $view_filter)) : ?>
            <th><?= _('Lehrende') ?></th>
        <? endif ?>
        <? if (in_array('members', $view_filter)) : ?>
            <th <?= ($sortby == 'teilnehmer') ? sprintf('class="sort%s"', mb_strtolower($sortFlag)) : '' ?>>
                <a href="<?= URLHelper::getLink('', ['sortby'   => 'teilnehmer',
                                             'sortFlag' => mb_strtolower($sortFlag)]) ?>">
                    <abbr title="<?= _('Teilnehmende') ?>">
                        <?= _('TN') ?>
                    </abbr>
                </a>
            </th>
        <? endif ?>
        <? if (in_array('waiting', $view_filter)) : ?>
            <th <? if ($sortby == 'waiting') printf('class="sort%s"', mb_strtolower($sortFlag)); ?>>
                <a href="<?= URLHelper::getLink('', ['sortby'   => 'waiting',
                                                    'sortFlag' => mb_strtolower($sortFlag)]) ?>">
                    <?= _('Warteliste') ?>
                </a>
            </th>
        <? endif ?>
        <? if (in_array('preliminary', $view_filter)) : ?>
            <th <?= ($sortby == 'prelim') ? sprintf('class="sort%s"', mb_strtolower($sortFlag)) : '' ?>>
                <a href="<?=
                URLHelper::getLink('', ['sortby'   => 'prelim',
                                             'sortFlag' => mb_strtolower($sortFlag)]) ?>"><?= _('Vorläufig') ?></a>
            </th>
        <? endif ?>
        <? if (in_array('contents', $view_filter)) : ?>
            <th style="width: <?= $nav_elements * 27 ?>px">
                <?= _('Inhalt') ?>
            </th>
        <? endif ?>
        <? if (in_array('last_activity', $view_filter)) : ?>
            <th style="width: <?= $nav_elements * 27 ?>px">
                <?= _('letzte Aktivität') ?>
            </th>
        <? endif ?>
        <? foreach (PluginManager::getInstance()->getPlugins("AdminCourseContents") as $plugin) : ?>
            <? foreach ($plugin->adminAvailableContents() as $index => $label) : ?>
                <? if (in_array($plugin->getPluginId()."_".$index, $view_filter)) : ?>
                    <th style="width: <?= $nav_elements * 27 ?>px"><?= htmlReady($label) ?></th>
                <? endif ?>
            <? endforeach ?>
        <? endforeach ?>
        <th style="text-align: center" class="actions">
            <?= _('Aktion') ?>
        </th>
    </tr>
    <? if (!empty($actions[$selected_action]['multimode'])) : ?>
        <?= $this->render_partial('admin/courses/additional_inputs.php', compact('colspan')) ?>
        <? if (count($courses) > 10): ?>
            <tr>
                <th colspan="<?= $colspan ?>" style="text-align: right">
                    <? if (is_a($actions[$selected_action]['multimode'], "\\Studip\\Button")) : ?>
                        <?= $actions[$selected_action]['multimode'] ?>
                    <? else : ?>
                        <?= Studip\Button::createAccept(
                                is_string($actions[$selected_action]['multimode'])
                                    ? $actions[$selected_action]['multimode']
                                    : $actions[$selected_action]['title'],
                                'save_action',
                                $selected_action == 16 ? ['data-dialog' => 1] : null) ?>
                    <? endif ?>
                </th>
            </tr>
        <? endif; ?>
    <? endif ?>
    </thead>
    <tbody>
    <? foreach ($courses as $semid => $values) : ?>
        <?= $this->render_partial('admin/courses/_course',
            [
                'semid' => $semid,
                'values' => $values,
                'view_filter' => $view_filter,
                'actions' => $actions,
                'selected_action' => $selected_action,
                'courses' => $courses,
                'parent' => $parent ?? null
            ]
        ) ?>
    <? endforeach ?>
    </tbody>
<? if (!empty($actions[$selected_action]['multimode'])) : ?>
    <tfoot>
        <tr>
            <td colspan="<?= $colspan ?>" style="text-align: right">
                <? if (is_a($actions[$selected_action]['multimode'], "\\Studip\\Button")) : ?>
                    <?= $actions[$selected_action]['multimode'] ?>
                <? else : ?>
                    <?= Studip\Button::createAccept(
                        is_string($actions[$selected_action]['multimode'])
                            ? $actions[$selected_action]['multimode']
                            : $actions[$selected_action]['title'],
                        $actions[$selected_action]['name'],
                        $selected_action == 16 ? ['data-dialog' => 1] : null) ?>
                <? endif ?>
            </td>
        </tr>
    </tfoot>
    <? endif ?>
</table>
<? if (!empty($actions[$selected_action]['multimode'])) : ?>
</form>
<? endif ?>