Skip to content

Commit 6dc488d

Browse files
committed
Merge remote-tracking branch 'origin/markingtool2' into develop
2 parents d3edf67 + e6924f0 commit 6dc488d

File tree

4 files changed

+92
-22
lines changed

4 files changed

+92
-22
lines changed

UI/MarkingTool2.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525

2626
//Gibt den HTML Kopf aus, der dann alles nachlädt
2727

28-
$menu = MakeNavigationElement($user_course_data,
29-
PRIVILEGE_LEVEL::TUTOR,true);
28+
// $menu = MakeNavigationElement($user_course_data,
29+
// PRIVILEGE_LEVEL::TUTOR,true);
3030

3131
// $h = Template::WithTemplateFile('include/Header/Header.template.html');
3232
// $h->bind($user_course_data);
@@ -36,7 +36,10 @@
3636
$c = Template::WithTemplateFile('include/MarkingTool2/MarkingTool2.template.html');
3737
$c->bind($markingTool_data);
3838
$c->bind(array(
39-
"restricted" => Authentication::checkRight(PRIVILEGE_LEVEL::LECTURER, $cid, $uid, $globalUserData)
39+
"restricted" => Authentication::checkRight(PRIVILEGE_LEVEL::LECTURER, $cid, $uid, $globalUserData),
40+
"userLevel" => $userLevel = Authentication::getUserLevel($cid, $uid, $globalUserData),
41+
"backUrl" => "$serverURI/UI/".PRIVILEGE_LEVEL::$SITES[$userLevel]."?cid=$cid",
42+
"uid" => $uid
4043
));
4144

4245

UI/include/AbstractAuthentication.php

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,35 @@ public static function checkRight($minimum, $cid, $uid, $data)
246246

247247
return true;
248248
}
249+
250+
/**
251+
* Gibt den Nutzerlevel vom aktuellen Nutzer zurück.
252+
*
253+
* @param int $cid Is the courseid.
254+
* @param int $uid Is the userid.
255+
* @param array $data An associative array that contains the coursestatus.
256+
* @return PRIVILEGE_LEVEL (INT) Die Berechtigungsstufe, falls Nutzer im Kurs
257+
* BOOL false, falls der Nutzer nicht im Kurs
258+
*/
259+
public static function getUserLevel($cid, $uid, $data) {
260+
if (isset($data['isSuperAdmin']) && $data['isSuperAdmin']=='1')
261+
return PRIVILEGE_LEVEL::SUPER_ADMIN;
262+
263+
if ($data !== array() && $data !== null) {
264+
// find the right course
265+
$status = -1;
266+
if ($data!==null)
267+
foreach ($data['courses'] as $element)
268+
if ($element['course']['id'] == $cid) {
269+
$status = $element['status'];
270+
break;
271+
}
272+
273+
if ($status == -1) return false;
274+
else return $status;
275+
}
276+
else return false;
277+
}
249278

250279
/**
251280
* Generates a random Salt hashed with sha1.

UI/include/MarkingTool2/MarkingTool2.template.html

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828

2929
</div>
3030

31+
<?php
32+
$restricted = !($restricted == 1);
33+
?>
3134
<!--Alle Daten, die zur Oberfläche übermittelt werden-->
3235
<script type="text/javascript">
3336
MarkingTool.Editor.View.StateCodes = <?php
@@ -54,23 +57,33 @@
5457
?>;
5558
MarkingTool.Editor.View.TutorCodes = <?php
5659
$d = array();
57-
$d[] = array("key"=>"all", "value"=>"Alle");
58-
foreach ($tutors as $tutor)
59-
$d[] = array("key"=>$tutor["id"], "value"=>$tutor['firstName'] .
60-
' ' . $tutor['lastName'] . ' ('.$tutor['userName'].')');
60+
if ($restricted) {
61+
foreach ($tutors as $tutor)
62+
if ($tutor["id"] == $uid)
63+
$d[] = array("key"=>$tutor["id"], "value"=>$tutor['firstName'] .
64+
' ' . $tutor['lastName'] . ' ('.$tutor['userName'].')');
65+
}
66+
else {
67+
$d[] = array("key"=>"all", "value"=>"Alle");
68+
foreach ($tutors as $tutor)
69+
$d[] = array("key"=>$tutor["id"], "value"=>$tutor['firstName'] .
70+
' ' . $tutor['lastName'] . ' ('.$tutor['userName'].')');
71+
}
6172
echo json_encode($d);
6273
?>;
6374
MarkingTool.Editor.Data = <?php
6475
$d = array();
6576
$c = 0;
6677
foreach ($groups as $group) {
6778
$user = array();
68-
$user[] = array(
79+
if ($restricted)
80+
$user[] = array("id" => 0, "name" => "", "user" => "");
81+
else $user[] = array(
6982
"id" => intval($group["leader"]["id"]),
7083
"name" => $group["leader"]["firstName"] . " " . $group["leader"]["lastName"],
7184
"user" => $group["leader"]["userName"]
7285
);
73-
if (isset($group["member"]))
86+
if (!$restricted && isset($group["member"]))
7487
foreach($group["member"] as $member)
7588
$user[] = array(
7689
"id" => intval($member["id"]),
@@ -79,6 +92,7 @@
7992
);
8093
$tasks = array();
8194
foreach ($group["exercises"] as $exercise) {
95+
if ($restricted && !isset($exercise["submission"])) continue;
8296
$c++;
8397
$tasks[] = array(
8498
"groupIndex" => count($d),
@@ -140,5 +154,7 @@
140154
echo json_encode($d);
141155
?>;
142156
MarkingTool.Editor.Logic.TaskLeftCounter = <?php echo $c; ?>;
143-
MarkingTool.Editor.Settings.RestrictedMode = <?php echo $restricted == 1 ? "false" : "true"; ?>;
157+
MarkingTool.Editor.Settings.RestrictedMode = <?php echo $restricted ? "true" : "false"; ?>;
158+
MarkingTool.Editor.Settings.UserLevel = <?php echo $userLevel; ?>;
159+
MarkingTool.Editor.Settings.BackUrl = "<?php echo $backUrl; ?>";
144160
</script>

UI/javascript/marking_tool2_editor.js

Lines changed: 34 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -107,10 +107,12 @@ MarkingTool.Editor.HTML = new function(){
107107
var element = data.element || "div";
108108
var css = data.css || [];
109109
var children = data.children || [];
110+
var text = data.text;
110111
data.content = undefined;
111112
data.element = undefined;
112113
data.css = undefined;
113114
data.children = undefined;
115+
data.text = undefined;
114116
var obj = $("<"+element+"/>");
115117
for (var key in data)
116118
if (data.hasOwnProperty(key)) {
@@ -119,6 +121,7 @@ MarkingTool.Editor.HTML = new function(){
119121
for (var i = 0; i<css.length; ++i)
120122
obj.addClass(css[i]);
121123
obj.html(content);
124+
if (text) obj.text(text);
122125
for (var i = 0; i<children.length; ++i)
123126
if (children[i] != null)
124127
obj.append(children[i]);
@@ -339,7 +342,9 @@ MarkingTool.Editor.View = new function() {
339342
var optionsBar = hc.CreateElementRaw({
340343
css: ["ui-commandbar"],
341344
children: [
342-
hc.CreateButton("Zurück"),
345+
hc.CreateButton("Zurück", function() {
346+
document.location.href = MarkingTool.Editor.Settings.BackUrl;
347+
}),
343348
hc.CreateElementRaw({
344349
css: ["ui-commandbar-container"],
345350
children: [
@@ -389,7 +394,7 @@ MarkingTool.Editor.View = new function() {
389394
hc.CreateElement("div", "Dieser Bestandteil der Plattform befindet sich noch im aktiven Entwicklungsstadium, "+
390395
"weshalb einige Dinge unter Umständen noch nicht funktionieren oder sich in Zukunft sehr stark "+
391396
"verändern werden.<br/>Probleme und Anmerkungen hier melden: <a href=\"http://www3.informatik.uni-halle.de/mantis/\""+
392-
">Mantis</a>")
397+
" target=\"_blank\">Mantis</a>")
393398
]
394399
}),
395400
hc.CreateElementRaw({
@@ -533,15 +538,19 @@ MarkingTool.Editor.View = new function() {
533538
inpPoints = hc.CreateInput("text", function(){
534539
changeState++;
535540
if (changeState == 1) {
536-
var val = $(this).val();
541+
var val = String($(this).val()).replace(/,/g, ".");
537542
try { task.points = val == "" || val == undefined ? undefined : val * 1.0; }
538543
catch (e) {
539544
if ($(this).val() == "" || $(this).val() == undefined) task.points = undefined;
540545
else $(this).focus();
541546
}
542547
}
543548
changeState--;
544-
}, {css: ["ui-task-points small"], value: (task.points == undefined ? "": task.points), placeholder: "leer" } ),
549+
}, {
550+
css: ["ui-task-points small"],
551+
value: String(task.points == undefined ? "": task.points).replace(/\./g, ","),
552+
placeholder: "leer"
553+
} ),
545554
hc.CreateElement("span", "/" + task.maxPoints + (task.isBonus ? "<span title=\"Bonus\"> (B)</span>" : ""), {
546555
title: "Punkte"
547556
})
@@ -600,7 +609,7 @@ MarkingTool.Editor.View = new function() {
600609
task.UpdatedEvent.add(function() {
601610
changeState++;
602611
if (changeState == 1) {
603-
inpPoints.val(task.points == undefined ? "": task.points);
612+
inpPoints.val(String(task.points == undefined ? "": task.points).replace(/\./g, ","));
604613
inpState.val(task.status);
605614
}
606615
changeState--;
@@ -698,7 +707,7 @@ MarkingTool.Editor.View = new function() {
698707
task.changeState_detailContent++;
699708
if (task.changeState_detailContent == 1) {
700709
task.points = value;
701-
pointInput.val(task.points == null ? "" : task.points);
710+
pointInput.val(String(task.points == null ? "" : task.points).replace(/\./g, ","));
702711
}
703712
task.changeState_detailContent--;
704713
})),
@@ -707,7 +716,7 @@ MarkingTool.Editor.View = new function() {
707716
pointInput = hc.CreateInput("text", function() {
708717
task.changeState_detailContent++;
709718
if (task.changeState_detailContent == 1) {
710-
var val = $(this).val();
719+
var val = String($(this).val()).replace(/,/g, ".");
711720
try {
712721
task.points = val == "" || val == undefined ? undefined : val * 1.0;
713722
}
@@ -719,7 +728,7 @@ MarkingTool.Editor.View = new function() {
719728
}
720729
task.changeState_detailContent--;
721730
}, {
722-
value: task.points == null ? "" : task.points,
731+
value: String(task.points == null ? "" : task.points).replace(/\./g, ","),
723732
placeholder: "leer"
724733
}),
725734
hc.CreateElement("span", "/" + task.maxPoints + (task.isBonus ? "<span title=\"Bonus\"> (B)</span>" : ""), {
@@ -771,11 +780,16 @@ MarkingTool.Editor.View = new function() {
771780
hc.CreateElement("div", "kein Kommentar", {
772781
style: "font-style: italic; font-weight: normal;"
773782
}) :
774-
hc.CreateElement("textarea", task.studentComment, {
783+
hc.CreateElementRaw({
784+
element: "textarea",
785+
text: task.studentComment,
775786
readonly: "readonly"
776787
}),
777788
hc.CreateElement("div", "Kontrolleur:"),
778-
tutorComment = hc.CreateElement("textarea", task.tutorComment)
789+
tutorComment = hc.CreateElementRaw({
790+
element: "textarea",
791+
text: task.tutorComment
792+
})
779793
]
780794
})
781795
]
@@ -872,7 +886,7 @@ MarkingTool.Editor.View = new function() {
872886
//Points
873887
try { slider.slider("value", task.points == null ? 0 : task.points); }
874888
catch (e) {} //ignore this shit
875-
pointInput.val(task.points == null ? "" : task.points);
889+
pointInput.val(String(task.points == null ? "" : task.points).replace(/\./g, ","));
876890
//Status
877891
stateobj[task.status][0].checked = true;
878892
//Accepted
@@ -1081,10 +1095,13 @@ MarkingTool.Editor.View = new function() {
10811095
}
10821096
//show |= includes(task.maxPoints, filter.text);
10831097
show |= includes(task.points, filter.text);
1084-
show |= includes(MarkingTool.Editor.View.StateCodes[task.status], filter.text);
1098+
for (var i = 0; i<MarkingTool.Editor.View.StateCodes.length; ++i)
1099+
if (MarkingTool.Editor.View.StateCodes[i].key == task.status)
1100+
show |= includes(MarkingTool.Editor.View.StateCodes[i].value, filter.text);
10851101
show |= includes(task.tutorComment, filter.text);
10861102
show |= includes(task.studentComment, filter.text);
10871103
show |= includes(task.date, filter.text);
1104+
show |= includes(task.path[1], filter.text);
10881105
}
10891106
if (result.box != null) {
10901107
if (show) result.box.removeClass("ui-hide");
@@ -1457,6 +1474,11 @@ MarkingTool.Editor.Settings = new function() {
14571474
var thisref = this;
14581475
//Bool - Bestimmt, ob der Nutzer nur eingeschränkte Rechte hat.
14591476
this.RestrictedMode = false;
1477+
//Int - Bestimmt den Nutzerlevel, der diese Seite betrachtet.
1478+
//0 = Student, 1 = Tutor, 2 = Dozent, 3 = Admin, 4 = Super-Admin
1479+
this.UserLevel = 0;
1480+
//String - Gibt eine Rücksprung-URL an, wo die Serienübersicht ist.
1481+
this.BackUrl = "";
14601482
};
14611483

14621484
//=== Bibliothek um die Updates nachzuvollziehen

0 commit comments

Comments
 (0)