diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IGroupFinding.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IGroupFinding.java index 4708281160f29938c3ff4c1ee19052d21b0f0dcf..6bdb547171c81097ae87bfebfa5a38e6b3a4254c 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IGroupFinding.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IGroupFinding.java @@ -19,6 +19,8 @@ public interface IGroupFinding { void selectGroupfindingCriteria( GroupfindingCriteria groupfindingCriteria, Project project); + GroupFormationMechanism getGFM(Project project); + /** * Persist the selected manual groups * @param groupComposition @@ -47,5 +49,7 @@ public interface IGroupFinding { int getMinNumberOfStudentsNeeded(Project project); + void deleteGroups(Project project); + List<Group> createRandomGroups(Project project); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java index e6ae168f67c0e0bf262b3e39cfaaf57b2d621a44..f89aeac178348e4de980f7db8cede2dffff39047 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupDAO.java @@ -182,9 +182,11 @@ public class GroupDAO { } public void deleteGroups(Project project) { - String query = "DELETE from groups where projectName = ?"; + String query ="DELETE gu FROM groupuser gu INNER JOIN groups g ON gu.groupId=g.id WHERE g.projectName = ?;"; + String query2="DELETE FROM groups WHERE projectName=?;"; connect.connect(); connect.issueInsertOrDeleteStatement(query, project.getName()); + connect.issueInsertOrDeleteStatement(query2, project.getName()); connect.close(); } } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupView.java index deb9f85adc2d84ee420e0c8bd55107c19b14eee7..79922ea1e1ff1a0e79ab1269a3664bb861882f0d 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupView.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupView.java @@ -1,5 +1,6 @@ package unipotsdam.gf.modules.group; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import unipotsdam.gf.modules.project.Management; import unipotsdam.gf.modules.project.Project; import unipotsdam.gf.modules.project.ProjectDAO; @@ -14,6 +15,7 @@ import java.io.IOException; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.Arrays; +import java.util.List; @Path("/group") public class GroupView { @@ -34,7 +36,7 @@ public class GroupView { @GET @Produces(MediaType.APPLICATION_JSON) @Path("/all/projects/{projectName}") - public GroupData getGroups(@PathParam("projectName") String projectName) { + public GroupData getOrInitializeGroups(@PathParam("projectName") String projectName) { GroupData data = groupFormationProcess.getOrInitializeGroups(new Project(projectName)); return data; } @@ -94,6 +96,16 @@ public class GroupView { } + @GET + @Produces(MediaType.APPLICATION_JSON) + @Path("/get/projects/{projectName}") + public List<Group> getGroups(@PathParam("projectName") String projectName) { + List<Group> result = groupfinding.getGroups(projectDAO.getProjectByName(projectName)); + return result; + } + + + /** * find out if this is used by learning goal * @param projectName @@ -105,7 +117,7 @@ public class GroupView { @Path("/projects/{projectName}") public void saveGroups(@PathParam("projectName") String projectName, Group[] groups) { Project project = new Project(projectName); - groupfinding.persistGroups(Arrays.asList(groups), project); + groupFormationProcess.saveGroups(Arrays.asList(groups), project); } @PUT @@ -113,8 +125,7 @@ public class GroupView { @Path("/projects/{projectName}/groups") public void persistGroups(@PathParam("projectName") String projectName, GroupData data) { Project project = new Project(projectName); - - groupfinding.persistGroups(data.getGroups(), project); + groupFormationProcess.saveGroups(data.getGroups(), project); } @POST diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupfindingImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupfindingImpl.java index 04ea415eaa08f0cd170b35d8515acc37d400166f..53b0cb1590473e3b3aee3ca26d627479081e570e 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupfindingImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/group/GroupfindingImpl.java @@ -30,6 +30,11 @@ public class GroupfindingImpl implements IGroupFinding { // } + @Override + public GroupFormationMechanism getGFM(Project project){ + return groupDAO.getGroupFormationMechanism(project); + } + @Override public void persistGroups(List<Group> groupComposition, Project project) { for (Group group : groupComposition) { @@ -67,6 +72,11 @@ public class GroupfindingImpl implements IGroupFinding { return participantsNeeded; } + @Override + public void deleteGroups(Project project){ + groupDAO.deleteGroups(project); + } + @Override public List<Group> createRandomGroups(Project project) { ArrayList<Group> result = new ArrayList<>(); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/user/User.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/user/User.java index cac8e7a0da8c5d9b83aa8a34b85bf59b9d969478..2a877f7d7e042e7f0465c1d0acde24daa7c80e9f 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/user/User.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/user/User.java @@ -1,5 +1,6 @@ package unipotsdam.gf.modules.user; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import java.util.Objects; @@ -53,6 +54,7 @@ public class User { return name; } + @JsonIgnore public String getPassword() { return password; } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/GroupFormationProcess.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/GroupFormationProcess.java index 2cd418eaaded38648d2ed7086339a1bf27f7c9e4..d0dede28a2c255b9f3bb83cba3baeeb490bc91f3 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/GroupFormationProcess.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/GroupFormationProcess.java @@ -77,6 +77,10 @@ public class GroupFormationProcess { groups = groupfinding.createRandomGroups(project); } return new GroupData(groups); + } + public void saveGroups(List<Group> groups,Project project){ + groupfinding.deleteGroups(project); + groupfinding.persistGroups(groups, project); } } 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 ed4bd984dcbaa7a211fb869306f5057a4fdbae0d..909b69d55a6c4b033eb77cc69450181f11f46b0a 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java @@ -1,6 +1,7 @@ package unipotsdam.gf.process.tasks; import unipotsdam.gf.interfaces.IGroupFinding; +import unipotsdam.gf.modules.group.GroupFormationMechanism; import unipotsdam.gf.modules.project.Project; import unipotsdam.gf.modules.project.ProjectDAO; import unipotsdam.gf.modules.submission.controller.SubmissionController; @@ -14,6 +15,8 @@ import unipotsdam.gf.mysql.VereinfachtesResultSet; import javax.annotation.ManagedBean; import javax.inject.Inject; import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; import static unipotsdam.gf.process.tasks.TaskName.*; @@ -88,7 +91,14 @@ public class TaskDAO { project.setName(vereinfachtesResultSet.getString("projectName")); ParticipantsCount participantsCount = projectDAO.getParticipantCount(project); participantsCount.setParticipantsNeeded(groupFinding.getMinNumberOfStudentsNeeded(project)); - task.setTaskData(participantsCount); + Map<String, Object> taskData = new HashMap<>(); + taskData.put("participantCount", participantsCount); + GroupFormationMechanism gfm =groupFinding.getGFM(project); + taskData.put("gfm", gfm); + task.setTaskData(taskData); + if (gfm.equals(GroupFormationMechanism.Manual)){ + task.setTaskType(TaskType.LINKED); + } task.setHasRenderModel(true); return task; } diff --git a/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-learninggoal.jsp b/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-learninggoal.jsp index 081e7b3f1f8cff3dc18ef019c02d3958e0aaeac6..76acbd7864f487810002a995584e4ea2c5ed32f3 100644 --- a/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-learninggoal.jsp +++ b/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-learninggoal.jsp @@ -1,7 +1,7 @@ -<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page contentType="text/html; charset=UTF-8" pageEncoding="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> @@ -25,62 +25,61 @@ <body> <menu:menu hierarchy="1"/> -<div id="wrapper"> - <div class="page-content-wrapper"> - <div class="container-fluid"><a class="btn btn-link" role="button" href="#menu-toggle" id="menu-toggle"></a> - <div class="row"> - <div class="col-md-12"> +<div class="page-content-wrapper"> + <div class="container-fluid"><a class="btn btn-link" role="button" href="#menu-toggle" id="menu-toggle"></a> + <div class="row"> + <div class="col-md-12"> - <div class="page-header"></div> - </div> + <div class="page-header"></div> </div> </div> </div> +</div> - <div> - <div class="container"> - <div class="row"> - <div class="col-md-offset-3 col-sm-8 col-xs-1"> - <h3>Projekt</h3> - <div class="dropdown"> - <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown" - id="projectDropdown">Projekt auswählen - <span class="caret"></span></button> - <ul class="dropdown-menu" id="dropdownOptions"> - </ul> - </div> +<div> + <div class="container"> + <div class="row"> + <div class="col-md-offset-3 col-sm-8 col-xs-1"> + <h3>Projekt</h3> + <div class="dropdown"> + <button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown" + id="projectDropdown">Projekt auswählen + <span class="caret"></span></button> + <ul class="dropdown-menu" id="dropdownOptions"> + </ul> </div> </div> - <div id="tablesHolder"></div> - <!-- <table class="table table-striped table-bordered table-list" style="width: 40%;margin-top: 10px;"> - <thead id="tableHead"> - <tr> - <th class="hidden-xs">Student</th> - <th>E-Mail</th> - </tr> - </thead> - <tbody> - <tr id="student2"> + </div> + <div id="tablesHolder"></div> + <!-- <table class="table table-striped table-bordered table-list" style="width: 40%;margin-top: 10px;"> + <thead id="tableHead"> + <tr> + <th class="hidden-xs">Student</th> + <th>E-Mail</th> + </tr> + </thead> + <tbody> + <tr id="student2"> - </tr> - <tr id="student3"> + </tr> + <tr id="student3"> - </tr> - <tr id="student4"> + </tr> + <tr id="student4"> - </tr> - <tr id="student5"> + </tr> + <tr id="student5"> - </tr> + </tr> - </tbody> + </tbody> - </table>--> - <!--<p>Hier können sie ihre Gruppen zu allen Projekten einsehen. Klicken sie dafür auf das Dropdownmenü - um ihren Kurs auszuwählen.</p>--> - </div> + </table>--> + <!--<p>Hier können sie ihre Gruppen zu allen Projekten einsehen. Klicken sie dafür auf das Dropdownmenü + um ihren Kurs auszuwählen.</p>--> </div> </div> +<footer:footer/> </body> </html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-manual.jsp b/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-manual.jsp new file mode 100644 index 0000000000000000000000000000000000000000..27262c879e889cd031d1260a6b89eb1d0357df96 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-manual.jsp @@ -0,0 +1,59 @@ +<%-- + Created by IntelliJ IDEA. + User: dehne + Date: 18.09.2018 + Time: 13:36 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" %> +<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="menu" %> +<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="omniDependencies" %> +<%@ taglib uri="../taglibs/gemeinsamForschen.tld" prefix="footer" %> + +<html> +<head> + <omniDependencies:omniDependencies hierarchy="1"/> + <script src="js/create-groups-manual.js"></script> + <link rel="stylesheet" href="css/create-groups-manual.css"> +</head> + +<script id="groupTemplate" type="text/x-jQuery-tmpl"> + <div style="display: block; margin-top: 5px; margin-left: 5px;" id="${groupName}"> + <button type="button" class="group-button list-group-item list-group-item-action">${groupName}</button> + {{each groupMember}} + <button type="button" name="student" class="student-button list-group-item list-group-item-action"> + <span>${name}</span> + <p name="userEmail" hidden>${email}</p></button> + {{/each}} + <p name="chatRoomId" hidden>${chatRoomId}</p> + </div> +</script> + +<body> +<menu:menu hierarchy="1"/> +<div style="display: block"> + <div style="display: flex"> + <div style="display:block"> + <div id="studentsWithoutGroup" class="alert alert-warning"> + Es sind noch Studenten "gruppenlos". + </div> + Gruppen: + <div class="list-group" style="display: flex; flex-wrap: wrap;" id="groupsInProject"> + <div style="display:block;" id="gruppenlos"> + <button type="button" class="group-button list-group-item list-group-item-action active"> + gruppenlos + </button> + </div> + </div> + <button id="openNewGroup">neue Gruppe öffnen</button> + </div> + + </div> + <div style="margin-top: 50px; margin-left: 5px;margin-right: 5px;"> + <button id="btnRelocate"><<verschieben>></button> + </div> +</div> +<button type="button" class="btn-success" id="btnSave"> speichern</button> +<footer:footer/> +</body> +</html> diff --git a/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-manual_dummy.jsp b/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-manual_dummy.jsp deleted file mode 100644 index 8a9ec37cc4a1665acda91dd81a154c67d950e387..0000000000000000000000000000000000000000 --- a/gemeinsamforschen/src/main/webapp/groupfinding/create-groups-manual_dummy.jsp +++ /dev/null @@ -1,87 +0,0 @@ -<!doctype html> -<html lang="en"> -<head> - <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - <title>jQuery UI Sortable - Handle empty lists</title> - <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> - <link rel="stylesheet" href="/resources/demos/style.css"> - <style> - #sortable1, #sortable2, #sortable3, #sortable4 { - list-style-type: none; - margin: 0; - float: left; - margin-right: 10px; - background: #eee; - padding: 5px; - width: 143px; - } - - #sortable1 li, #sortable2 li, #sortable3 li, #sortable4 li { - margin: 5px; - padding: 5px; - font-size: 1.2em; - width: 120px; - } - </style> - <script src="https://code.jquery.com/jquery-1.12.4.js"></script> - <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> - <script> - $(function () { - $("ul.droptrue").sortable({ - connectWith: "ul" - }); - - $("#sortable1, #sortable2, #sortable3, #sortable4").disableSelection(); - }); - </script> -</head> -<body> - - -<table> - - <tr> - <td> - <h3>Gruppe 1</h3> - <ul id="sortable1" class="droptrue"> - <li class="ui-state-default">Can be dropped..</li> - <li class="ui-state-default">..on an empty list</li> - <li class="ui-state-default">Item 3</li> - <li class="ui-state-default">Item 4</li> - <li class="ui-state-default">Item 5</li> - </ul> - </td> - <td> - <h3>Gruppe 2</h3> - <ul id="sortable2" class="droptrue"> - <li class="ui-state-highlight">Cannot be dropped..</li> - <li class="ui-state-highlight">..on an empty list</li> - <li class="ui-state-highlight">Item 3</li> - <li class="ui-state-highlight">Item 4</li> - <li class="ui-state-highlight">Item 5</li> - </ul> - </td> - </tr> - <td> - <h3>Gruppe 3</h3> - <ul id="sortable3" class="droptrue"> - <li class="ui-state-highlight">x..</li> - <li class="ui-state-highlight">.x2t</li> - <li class="ui-state-highlight">x 3</li> - <li class="ui-state-highlight">x 4</li> - <li class="ui-state-highlight">x 5</li> - </ul> - </td> - <td> - <h3>Gruppe 4</h3> - <ul id="sortable4" class="droptrue"> - <li class="ui-state-highlight">x 6</li> - </ul> - </td> - -</table> - - -</body> -</html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/groupfinding/css/create-groups-manual.css b/gemeinsamforschen/src/main/webapp/groupfinding/css/create-groups-manual.css new file mode 100644 index 0000000000000000000000000000000000000000..76ee71207ee525e8b52f04ab4b3c5ef5efd84e44 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/groupfinding/css/create-groups-manual.css @@ -0,0 +1,8 @@ +.group-button{ + margin-left: 2px; + height: 35px; +} + +.student-button{ + margin-left: 2px; +} \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/groupfinding/js/create-groups-manual.js b/gemeinsamforschen/src/main/webapp/groupfinding/js/create-groups-manual.js new file mode 100644 index 0000000000000000000000000000000000000000..8d599c21446b0abaf7e8c999bd72bc945856c8c5 --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/groupfinding/js/create-groups-manual.js @@ -0,0 +1,155 @@ +$(document).ready(function () { + $('#studentsWithoutGroup').hide(); + getAllGroups(function (allGroups) { + groupsToTemplate(allGroups, function (done) { + selectableButtons(done); + }); + }); + $('#btnRelocate').click(function () { + relocateMember(function (done) { + selectableButtons(done); + }); + relocateMember(function (done) { + selectableButtons(done); //i have no clue why this needs to be called twice, but it seems necessary + }); + }); + $('#btnSave').click(function () { + viewToGroup(function (groups) { + saveNewGroups(groups); + }) + }); + $('#openNewGroup').click(function () { + openNewGroup(function(done){ + selectableButtons(done); + }); + selectableButtons(true); //i have no clue why this needs to be called twice, but it seems necessary + }); +}); + +function getAllGroups(callback) { + $.ajax({ + url: "../rest/group/all/projects/" + $('#projectName').html().trim(), + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + type: 'GET', + success: function (response) { + callback(response.groups); + }, + error: function (a) { + } + }); +} + +function groupsToTemplate(allGroups, callback) { + let groupTmplObject = []; + for (let group = 0; group < allGroups.length; group++) { + groupTmplObject.push({ + groupName: "group" + group, + groupMember: allGroups[group].members, + chatRoomId: allGroups[group].chatRoomId, + }); + } + $('#groupTemplate').tmpl(groupTmplObject).appendTo('#groupsInProject'); + let done = true; + callback(done); +} + +function selectableButtons(done) { + if (done) { + $(".student-button").click(function () { + $(this).toggleClass('active'); + }); + $(".group-button").click(function () { + $(".group-button.active").toggleClass('active'); + $(this).toggleClass('active'); + }); + } +} + +function relocateMember(callback) { + let memberBtns = $('.student-button.active'); + let newGroupBtn = $('.group-button.active'); + newGroupBtn.each(function () { + let newGroup = $('#' + $(this).html().trim()); + memberBtns.each(function () { + $(this).toggleClass('active'); + $(newGroup).append($(this)); + }); + }); + let done = true; + callback(done); +} + +function viewToGroup(callback) { + if ($('#gruppenlos').children().length > 1) { + $('#studentsWithoutGroup').show(); + return null; + } + let groups = []; + $('#groupsInProject').children().each(function () { + if ($(this).attr("id").trim() !== "gruppenlos") { + let members = []; + let chatRoomId = 0; + $(this).children().each(function () { + if ($(this).attr("name") === "student") { + let entries = $(this).children(); + let email = entries[1].innerText; + let name = entries[0].innerText; + members.push({ + email: email, + name: name, + rocketChatPersonalAccessToken: "", + rocketChatUserId: "", + rocketChatUsername: "", + student: true + }); + } + if ($(this).attr("name") === "chatRoomId") { + chatRoomId = $(this).html().trim(); + } + }); + if (members.length !== 0){ + groups.push({ + chatRoomId: chatRoomId, + id: "", + members: members, + }) + } + } + }); + callback(groups); +} + +function saveNewGroups(groups) { + let data = JSON.stringify(groups); + $.ajax({ + url: "../rest/group/projects/" + $('#projectName').html().trim(), + data: data, + headers: { + "Content-Type": "application/json", + "Cache-Control": "no-cache" + }, + type: 'POST', + success: function (response) { + alert("done"); + }, + error: function (a) { + alert(a); + } + }); +} + +function openNewGroup(callback) { + let groupTmplObject = []; + let nextGroup = $('#groupsInProject').children().length; + groupTmplObject.push({ + groupName: "group" + nextGroup, + groupMember: [], + chatRoomId: "", + }); + $('#groupTemplate').tmpl(groupTmplObject).appendTo('#groupsInProject'); + let done = true; + callback(done); +} \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/project/js/tasks.js b/gemeinsamforschen/src/main/webapp/project/js/tasks.js index 1dd834e6640f3779256210de5c0bca9bc0cd11b0..3f42037bdefb00cdc2f767cb7fc3f410328a4a51 100644 --- a/gemeinsamforschen/src/main/webapp/project/js/tasks.js +++ b/gemeinsamforschen/src/main/webapp/project/js/tasks.js @@ -94,7 +94,8 @@ function fitObjectInTmpl(object){ }else {result.timeFrame="";} switch (object.taskName){ case "WAIT_FOR_PARTICPANTS": - result.infoText = "Warten Sie auf die Anmeldungen der Studenten."; + result.infoText = "Warten Sie auf die Anmeldungen der Studenten.\n" + + "Es sind bereits "+object.taskData.participantCount.participants+" Studenten eingetragen."; break; case "BUILD_GROUPS": result.infoText="Erstellen Sie die Gruppen."; @@ -119,6 +120,12 @@ function fitObjectInTmpl(object){ } if (object.taskType.includes("LINKED")){ switch (object.taskName) { + case "WAIT_FOR_PARTICPANTS": + if (object.taskData.gfm==="Manual"){ + result.solveTaskWith="Gruppen erstellen"; + result.solveTaskWithLink="redirect(\'../groupfinding/create-groups-manual.jsp?projectName="+object.projectName+"\')"; + } + break; case "CLOSE_GROUP_FINDING_PHASE": result.solveTaskWith="Entwurfsphase starten"; result.solveTaskWithLink="closePhase(\'"+object.phase+"\', \'"+object.projectName+"\');";