Skip to content
Snippets Groups Projects
Commit 7cf9096b authored by Axel's avatar Axel
Browse files

fix: more TaskNames are supported in tasks-student.js. Task Deadline is Timestamp now

parent 393842c4
No related branches found
No related tags found
No related merge requests found
package unipotsdam.gf.modules.tasks;
import unipotsdam.gf.modules.states.ProjectPhase;
import java.sql.Timestamp;
public class Task {
// as in "Feedback"
......@@ -23,7 +24,7 @@ public class Task {
// relevant for time based warnings
private Long eventCreated;
private Long deadline;
private Timestamp deadline;
private Boolean groupTask;
private Importance importance;
......@@ -87,11 +88,11 @@ public class Task {
this.eventCreated = eventCreated;
}
public Long getDeadline() {
public Timestamp getDeadline() {
return deadline;
}
public void setDeadline(Long deadline) {
public void setDeadline(Timestamp deadline) {
this.deadline = deadline;
}
......
package unipotsdam.gf.modules.tasks;
import org.glassfish.grizzly.http.util.TimeStamp;
import unipotsdam.gf.modules.project.Project;
import unipotsdam.gf.modules.project.ProjectDAO;
import unipotsdam.gf.modules.states.ProjectPhase;
......@@ -34,6 +35,7 @@ public class TaskDAO {
TaskName taskName1 = TaskName.valueOf(taskName);
Task task = getGeneralTask(vereinfachtesResultSet);
task.setTaskName(taskName1);
switch (taskName1) {
case WAIT_FOR_PARTICPANTS: {
result.add(getTaskWaitForParticipants(task, vereinfachtesResultSet));
......@@ -61,7 +63,7 @@ public class TaskDAO {
task.setGroupTask(vereinfachtesResultSet.getBoolean("groupTask"));
task.setProgress(Progress.valueOf(vereinfachtesResultSet.getString("progress")));
task.setEventCreated(vereinfachtesResultSet.getLong("created"));
task.setDeadline(vereinfachtesResultSet.getLong("due"));
task.setDeadline(vereinfachtesResultSet.getTimestamp("due"));
task.setPhase(ProjectPhase.valueOf(vereinfachtesResultSet.getString("phase")));
getTaskType(task, vereinfachtesResultSet);
......
$(document).ready(function(){
let userEmail = $('#userEmail').html().trim();
let projectName = $('#projectName').html().trim();
fillTasks(projectName, userEmail);
});
function fillTasks(projectName, userEmail){
$.ajax({
url: '../rest/tasks/user/'+encodeURI(userEmail)+'/project/' + projectName,
headers: {
"Content-Type": "application/json",
"Cache-Control": "no-cache"
},
type: 'GET',
success: function (response) {
let object = fillObjectWithTasks(response);
for (let task in object){
let tmplObject = fitObjectInTmpl(object[task]);
$('#taskTemplate').tmpl(tmplObject).appendTo('#listOfTasks');
}
},
error: function(a){}
});
}
function fitObjectInTmpl(object){
let result = {
taskType: "",
infoText: "",
phase: "",
solveTaskWith: "",
helpLink: "",
timeFrame: ""
};
if (object.taskType!=="INFO"){
if (object.groupTask===true){
result.taskType="grouptask"
}else{
result.taskType="usertask"
}
}else{
result.taskType="infotask"
}
switch (object.phase){
case "CourseCreation":
result.phase="card-draft";
break;
case "GroupFormation":
result.phase="card-grouping";
break;
case "DossierFeedback":
result.phase="card-feedback";
break;
case "Execution":
result.phase="card-execution";
break;
case "Assessment":
result.phase="card-assessment";
break;
case "Projectfinished":
result.phase="card-grades";
break;
default:
result.phase="";
}
if (object.link !=="")
result.helpLink = object.link;
if (object.deadline != null){
let daysLeft = Math.round((object.deadline - Date.now())/1000/60/60/24);
if (daysLeft>=1)
result.timeFrame="<div class='status icon'><p>Noch "+daysLeft+" Tage Zeit</p></div>";
else
result.timeFrame="<div class='status alert icon'><p>Du bist zu spät.</p></div>";
}else {result.timeFrame="";}
switch (object.taskName){
case "WAIT_FOR_PARTICPANTS":
result.infoText = "Warten Sie auf die Anmeldungen der Studenten.";
break;
case "BUILD_GROUPS":
result.infoText="Erstellen Sie die Gruppen.";
break;
case "CLOSE_GROUP_FINDING_PHASE":
result.infoText="Gehen Sie zur nächsten Phase über.";
break;
default:
result.infoText="";
}
if (object.taskType.includes("LINKED")){
//todo: implement rest
switch (object.taskName) {
case "UPLOAD_DOSSIER":
result.solveTaskWith="Lege ein Dossier an";
result.solveTaskWithLink="../annotation/annotation-document.jsp?projectName="+object.projectName;
break;
case "GIVE_FEEDBACK":
result.solveTaskWith="Erteile Feedback";
result.solveTaskWithLink="../feedback/give-feedback.jsp?projectName="+object.projectName;
break;
case "CREATE_QUIZ":
result.solveTaskWith="Erstelle ein Quiz";
result.solveTaskWithLink="../assessment/create-quiz.jsp?projectName="+object.projectName;
break;
case "WRITE_EJOURNAL":
result.solveTaskWith="Lege ein EJournal an";
result.solveTaskWithLink="../journal/create-journal.jsp?projectName="+object.projectName;
break;
case "FINALIZE_DOSSIER":
result.solveTaskWith="Finalisiere das Dossier";
result.solveTaskWithLink="../annotation/annotation-document.jsp?projectName="+object.projectName;
break;
case "FINALIZE_EJOURNAL":
result.solveTaskWith="Finalisiere dein EJournal";
result.solveTaskWithLink="../journal/edit-description.jsp?projectName="+object.projectName;
break;
case "ASSESSMENT":
result.solveTaskWith="Starte Bewertung";
result.solveTaskWithLink="../assessment/assess-work.jsp?projectName="+object.projectName;
break;
default:
result.solveTaskWith=null;
}
}
return result;
}
function fillObjectWithTasks(response){
let tempObject=[];
for (let task in response){
if (response.hasOwnProperty(task))
tempObject.push({
taskType: response[task].taskType, //
taskData: response[task].taskData,
taskName: response[task].taskName, //
hasRenderModel: response[task].hasRenderModel,
eventCreated: response[task].eventCreated,
deadline: response[task].deadline, //
groupTask: response[task].groupTask,//
importance: response[task].importance,
phase: response[task].phase, //
link: response[task].link, //
userEmail: response[task].userEmail,
projectName: response[task].projectName,
progress: response[task].progress
});
}
return tempObject;
}
\ No newline at end of file
......@@ -2,40 +2,6 @@ $(document).ready(function(){
let userEmail = $('#userEmail').html().trim();
let projectName = $('#projectName').html().trim();
fillTasks(projectName, userEmail);
/*let object = [{
taskType: "ONSITE", //
taskData: "",
taskName: "WAIT_FOR_PARTICPANTS", //
hasRenderModel: false,
eventCreated: Date.now(),
deadline: Date.now()+172800000, //
groupTask: false,//
importance: "",
phase: "CourseCreation", //
link: "www.google.de", //
userEmail: userEmail,
projectName: projectName,
progress: "JUSTSTARTED"
}, {
taskType: "LINKED", //
taskData: "",
taskName: "ASSESSMENT", //
hasRenderModel: false,
eventCreated: Date.now()-410,
deadline: Date.now() + 17223613, //
groupTask: false,//
importance: "",
phase: "Assessment", //
link: "www.youtube.de", //
userEmail: userEmail,
projectName: projectName,
progress: "FINISHED"
}
];
for (let task in object){
let tmplObject = fitObjectInTmpl(object[task]);
$('#taskTemplate').tmpl(tmplObject).appendTo('#listOfTasks');
}*/
});
function fillTasks(projectName, userEmail){
......@@ -68,7 +34,7 @@ function fitObjectInTmpl(object){
helpLink: "",
timeFrame: ""
};
if (object.taskType!=="INFO"){
if (object.taskType.includes("INFO")){
if (object.groupTask===true){
result.taskType="grouptask"
}else{
......@@ -100,7 +66,7 @@ function fitObjectInTmpl(object){
result.phase="";
}
if (object.link !=="")
result.helpLink = object.link;
result.helpLink = object.link+"?projectName="+object.projectName;
if (object.deadline != null){
let daysLeft = Math.round((object.deadline - Date.now())/1000/60/60/24);
if (daysLeft>=1)
......@@ -118,6 +84,30 @@ function fitObjectInTmpl(object){
case "CLOSE_GROUP_FINDING_PHASE":
result.infoText="Gehen Sie zur nächsten Phase über.";
break;
case "WAITING_FOR_GROUP":
result.infoText="Warten auf Gruppen.";
break;
case "UPLOAD_DOSSIER":
result.infoText="Warten auf Gruppen.";
break;
case "GIVE_FEEDBACK":
result.infoText="Warten auf Gruppen.";
break;
case "CREATE_QUIZ":
result.infoText="Warten auf Gruppen.";
break;
case "WRITE_EJOURNAL":
result.infoText="Warten auf Gruppen.";
break;
case "FINALIZE_DOSSIER":
result.infoText="Warten auf Gruppen.";
break;
case "FINALIZE_EJOURNAL":
result.infoText="Warten auf Gruppen.";
break;
case "ASSESSMENT":
result.infoText="Ihre Bewertung";
break;
default:
result.infoText="";
}
......@@ -149,8 +139,11 @@ function fitObjectInTmpl(object){
result.solveTaskWithLink="../journal/edit-description.jsp?projectName="+object.projectName;
break;
case "ASSESSMENT":
result.solveTaskWith="Starte Bewertung";
result.solveTaskWithLink="../assessment/assess-work.jsp?projectName="+object.projectName;
if (object.progress != "FINISHED"){
result.solveTaskWith="Starte Bewertung";
result.solveTaskWithLink="../assessment/assess-work.jsp?projectName="+object.projectName;
}
break;
default:
result.solveTaskWith=null;
......
<%--
Created by IntelliJ IDEA.
User: dehne
Date: 04.10.2018
Time: 11:24
To change this template use File | Settings | File Templates.
todo: probably this page is not needed at all. as well as tasks-docent.js
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="menu" %>
<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="headLine" %>
<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="omniDependencies" %>
<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="footer" %>
<!DOCTYPE html>
<html lang="de">
<head>
<title>Title</title>
<omniDependencies:omniDependencies hierarchy="1"/>
<script src="js/tasks-docent.js"></script>
</head>
<body>
<menu:menu hierarchy="1"/>
<div class="col span_l_of_2"> <!-- col right-->
<headLine:headLine/>
<div id="listOfTasks">
</div>
<script id="taskTemplate" type="text/x-jQuery-tmpl">
<div class="card ${phase}">
<div class="col span_s_of_2 icon ${taskType}">
</div>
<div class="col span_l_of_2" id="${taskName}">
{{if infoText}}
<h4>${infoText}</h4>
{{/if}}
{{if solveTaskWith}}
<a href="${solveTaskWithLink}"><button class='primary'>${solveTaskWith}</button></a>
{{/if}}
{{if helpLink}}
<div style="width:100%"><a href='${helpLink}'>Hier</a> bekommst du Hilfe.</div>
{{/if}}
</div>
{{if timeFrame}}
{{html timeFrame}}
{{/if}}
<div style="clear:left"></div>
</div>
</div>
</script>
</div>
<footer:footer/>
</body>
</html>
......@@ -15,8 +15,6 @@
<head>
<omniDependencies:omniDependencies hierarchy="1"/>
<script src="js/tasks-student.js"></script>
<title>Projecttitle | Gemeinsam Forschen</title>
</head>
<body>
<menu:menu hierarchy="1"/>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment