-
Notifications
You must be signed in to change notification settings - Fork 772
/
GlobalView.php
88 lines (79 loc) · 3.72 KB
/
GlobalView.php
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
<?php
namespace app\views;
class GlobalView extends AbstractView {
public function header($breadcrumbs, $css=array(), $js=array()) {
$messages = [];
foreach (array('error', 'notice', 'success') as $type) {
foreach ($_SESSION['messages'][$type] as $key => $error) {
$messages[] = [
"type" => $type,
"key" => $key,
"error" => $error
];
unset($_SESSION['messages'][$type][$key]);
}
}
$pageTitle = $this->core->getConfig()->isCourseLoaded() ? $this->core->getFullCourseName() : "Submitty";
//Allow courses to override css
if ($this->core->getConfig()->isCourseLoaded() && file_exists($this->core->getConfig()->getCoursePath()."/config/override.css")) {
$css[] = $this->core->getConfig()->getCoursePath()."/config/override.css";
}
$navURLs = [];
if ($this->core->getConfig()->isCourseLoaded() && $this->core->userLoaded()) {
if ($this->core->getUser()->accessGrading()) {
if ($this->core->getUser()->accessAdmin()) {
$navURLs[] = [
"href" => $this->core->buildUrl(array('component' => 'admin', 'page' => 'configuration', 'action' => 'view')),
"title" => "Course Settings"
];
$navURLs[] = [
"href" => $this->core->buildUrl(array('component' => 'admin', 'page' => 'users')),
"title" => "Students"
];
$navURLs[] = [
"href" => $this->core->buildUrl(array('component' => 'admin', 'page' => 'users', 'action' => 'graders')),
"title" => "Graders"
];
$navURLs[] = [
"href" => $this->core->buildUrl(array('component' => 'admin', 'page' => 'users', 'action' => 'rotating_sections')),
"title" => "Setup Sections"
];
$navURLs[] = [
"href" => $this->core->buildUrl(array('component' => 'admin', 'page' => 'late', 'action' => 'view_late')),
"title" => "Late Days Allowed"
];
$navURLs[] = [
"href" => $this->core->buildUrl(array('component' => 'admin', 'page' => 'late', 'action' => 'view_extension')),
"title" => "Excused Absence Extensions"
];
$navURLs[] = [
"href" => $this->core->buildUrl(array('component' => 'admin', 'page' => 'reports', 'action' => 'reportpage')),
"title" => "Grade Summaries / CSV Report"
];
$navURLs[] = [
"href" => $this->core->buildUrl(array('component' => 'admin', 'page' => 'plagiarism')),
"title" => "Lichen Plagiarism Detection [WIP]"
];
}
}
}
return $this->core->getOutput()->renderTwigTemplate("GlobalHeader.twig", [
"messages" => $messages,
"css" => $css,
"js" => $js,
"pageTitle" => $pageTitle,
"navURLs" => $navURLs,
"breadcrumbs" => $breadcrumbs
]);
}
public function footer($runtime) {
return $this->core->getOutput()->renderTwigTemplate("GlobalFooter.twig", [
"runtime" => $runtime
]);
}
public function invalidPage($page) {
return $this->core->getOutput()->renderTwigTemplate("error/InvalidPage.twig", [
"page" => $page
]);
}
}