diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/GroupFormationProcess.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/GroupFormationProcess.java index 5639df7e06a0483c80f513a18f7219ea9772e4d7..59b7da4c2b314db163792a14c3d41e6221c5d743 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/GroupFormationProcess.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/GroupFormationProcess.java @@ -8,6 +8,8 @@ import unipotsdam.gf.modules.project.Project; import unipotsdam.gf.modules.project.ProjectDAO; import unipotsdam.gf.process.phases.Phase; import unipotsdam.gf.process.phases.PhasesImpl; +import unipotsdam.gf.process.tasks.Progress; +import unipotsdam.gf.process.tasks.Task; import unipotsdam.gf.process.tasks.TaskDAO; import unipotsdam.gf.process.tasks.TaskName; @@ -58,6 +60,8 @@ public class GroupFormationProcess { public void finalizeGroups( Project project, Group ... groups) { groupfinding.persistGroups(Arrays.asList(groups), project); taskDAO.persistTeacherTask(project, TaskName.CLOSE_GROUP_FINDING_PHASE, Phase.GroupFormation); + Task task = new Task(TaskName.CLOSE_GROUP_FINDING_PHASE, project.getAuthorEmail(), project.getName(), Progress.FINISHED); + taskDAO.updateForUser(task); taskDAO.persistMemberTask(project, TaskName.CONTACT_GROUP_MEMBERS, Phase.GroupFormation); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/phases/PhasesImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/phases/PhasesImpl.java index ba7a54319cf9eddb0c307863654b7249da1c5e89..a334fdf9254bf56c71b9cf60a362a7e153da449e 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/phases/PhasesImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/phases/PhasesImpl.java @@ -80,6 +80,7 @@ public class PhasesImpl implements IPhases { switch (currentPhase) { case CourseCreation: // saving the state + saveState(project, changeToPhase); break; case GroupFormation: diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java index 2010dd6c66f71ea0e853f0d1ce461d6729fd947a..6cb247f14f4287e7e7ac1e861c2fe1e835c71601 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java @@ -45,8 +45,12 @@ public class TaskDAO { task.setProjectName(vereinfachtesResultSet.getString("projectName")); task.setGroupTask(vereinfachtesResultSet.getBoolean("groupTask")); task.setProgress(Progress.valueOf(vereinfachtesResultSet.getString("progress"))); - task.setEventCreated(vereinfachtesResultSet.getLong("created")); - task.setDeadline(vereinfachtesResultSet.getLong("due")); + try{ + task.setEventCreated(vereinfachtesResultSet.getTimestamp("created").getTime()); + }catch(Exception e){ } + try{ + task.setDeadline(vereinfachtesResultSet.getTimestamp("due").getTime()); + }catch(Exception e){ } task.setPhase(Phase.valueOf(vereinfachtesResultSet.getString("phase"))); task.setTaskName(TaskName.valueOf(vereinfachtesResultSet.getString("taskName"))); task.setHasRenderModel(false); diff --git a/gemeinsamforschen/src/main/webapp/project/css/style.css b/gemeinsamforschen/src/main/webapp/project/css/style.css index dea3a46e17b72102c450d0d337103fdd91027eac..5d13b8fb997c134ec18f81c2c35b7fa603f93c28 100644 --- a/gemeinsamforschen/src/main/webapp/project/css/style.css +++ b/gemeinsamforschen/src/main/webapp/project/css/style.css @@ -353,6 +353,17 @@ body { border-left-color:#F3A184; } +.card-finished{ + max-width:400px; + text-align: center; + position:relative; + background:#fff; + padding:1em; + box-sizing:border-box; + margin-bottom:1em; + +} + .inactive { color:#dedede; } diff --git a/gemeinsamforschen/src/main/webapp/project/js/tasks.js b/gemeinsamforschen/src/main/webapp/project/js/tasks.js index a300b3b1fa6a084fce4ecdada41895d7ac69988c..1dd834e6640f3779256210de5c0bca9bc0cd11b0 100644 --- a/gemeinsamforschen/src/main/webapp/project/js/tasks.js +++ b/gemeinsamforschen/src/main/webapp/project/js/tasks.js @@ -36,9 +36,24 @@ function fitObjectInTmpl(object){ solveTaskWith: "", helpLink: "", timeFrame: "", - taskData: object.taskData + taskData: object.taskData, + taskProgress: "" }; + + if (object.progress==="FINISHED"){ + if(object.taskName.includes("CLOSE")){ + result.taskProgress="FINISHED"; + result.infoText=object.phase; + let created = new Date(object.eventCreated); + let deadline=new Date(object.deadline); + result.timeFrame="<p>"+created.getDate()+"."+(created.getMonth()+1)+"."+created.getFullYear() + + " bis "+deadline.getDate()+"."+(deadline.getMonth()+1)+"."+deadline.getFullYear()+"</p>"; + return result; + } + } + + if (object.taskType!=="INFO"){ if (object.groupTask===true){ result.taskType="grouptask" @@ -188,7 +203,8 @@ function closePhase(phase, projectName){ "Cache-Control": "no-cache" }, type: 'GET', - success: function (response) { + success: function () { + location.reload(); }, error: function(a){ } diff --git a/gemeinsamforschen/src/main/webapp/project/tasks-docent.jsp b/gemeinsamforschen/src/main/webapp/project/tasks-docent.jsp index 5e8265442565bf45283a59dcdaac7afcb0d52805..8c40df687e33d099529ad25e56337497a7a6484a 100644 --- a/gemeinsamforschen/src/main/webapp/project/tasks-docent.jsp +++ b/gemeinsamforschen/src/main/webapp/project/tasks-docent.jsp @@ -21,7 +21,13 @@ </div> <script id="taskTemplate" type="text/x-jQuery-tmpl"> + {{if taskProgress === "FINISHED"}} + <div class="card-finished"><h4 class="icon closed">${infoText}</h4> + {{html timeFrame}} + </div> + {{else}} <div class="card ${phase}"> + <div class="col span_s_of_2 icon ${taskType}"> </div> <div class="col span_l_of_2" id="${taskName}"> @@ -29,7 +35,7 @@ <h4>${infoText}</h4> {{/if}} {{if solveTaskWith}} - <button class='primary' onClick="${solveTaskWithLink}">${solveTaskWith}</button> + <button class='primary' onClick='${solveTaskWithLink}'>${solveTaskWith}</button> {{/if}} {{if helpLink}} <div style="width:100%"><a href='${helpLink}'>Hier</a> bekommst du Hilfe.</div> @@ -41,7 +47,8 @@ <div style="clear:left"></div> </div> </div> - </script> + {{/if}} +</script> </div> <footer:footer/> </body> diff --git a/gemeinsamforschen/src/main/webapp/project/tasks-student.jsp b/gemeinsamforschen/src/main/webapp/project/tasks-student.jsp index 4f1aebd400a567a99a341eafcbd7467cca4d88c2..d56eb5756c191cafd703845eb78b977f0a37c580 100644 --- a/gemeinsamforschen/src/main/webapp/project/tasks-student.jsp +++ b/gemeinsamforschen/src/main/webapp/project/tasks-student.jsp @@ -31,6 +31,7 @@ </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}"> diff --git a/gemeinsamforschen/src/test/resources/database/fltrail.sql b/gemeinsamforschen/src/test/resources/database/fltrail.sql index f6d42f83517e444f9e2d0ab7b546680ed6baf139..9b1be4b4c6ccfe73e6580d067205e48d76da8495 100644 --- a/gemeinsamforschen/src/test/resources/database/fltrail.sql +++ b/gemeinsamforschen/src/test/resources/database/fltrail.sql @@ -132,8 +132,8 @@ CREATE TABLE `tasks` ( `importance` varchar(100) DEFAULT NULL, `progress` varchar(100) DEFAULT NULL, `phase` varchar(100) DEFAULT NULL, - `created` mediumtext, - `due` mediumtext, + `created` timestamp , + `due` timestamp , `taskMode2` varchar(100) DEFAULT NULL, `taskMode3` varchar(100) DEFAULT NULL, `taskMode` varchar(100) DEFAULT NULL