blob: 988062ea4acdd55f75cd50ea239a73514fc3d57b (
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
|
<?php
class RunningProcessesController extends AuthenticatedController
{
public function widget_action()
{
$this->processes = array_merge(
\Studip\Processes\Questionnaires::getProcesses(User::findCurrent()),
\Studip\Processes\TimedFolders::getProcesses(User::findCurrent())
);
$plugins = PluginManager::getInstance()->getPlugins('RunningProcessPlugin');
foreach ($plugins as $plugin) {
$this->processes = array_merge($this->processes, $plugin->getRunningProcesses());
}
$this->contexts = [];
foreach ($this->processes as $process) {
if (!isset($this->contexts[$process->context_id])) {
$context = get_object_by_range_id($process->context_id);
if ($context) {
if ($context instanceof Course) {
$avatar = CourseAvatar::getAvatar($process->context_id);
} else {
$avatar = InstituteAvatar::getAvatar($process->context_id);
}
$this->contexts[$process->context_id] = [
'id' => $process->context_id,
'name' => (string) $context->name,
'url' => URLHelper::getURL('dispatch.php/course/go', ['to' => $process->context_id]),
'avatar' => $avatar->getURL(Avatar::SMALL),
];
}
}
}
$this->render_vue_app(
Studip\VueApp::create('RunningProcesses')
->withProps([
'contexts' => $this->contexts,
'processes' => array_map(function ($process) { return $process->toArray(); }, $this->processes)
])
);
}
}
|