diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/controller/SubmissionController.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/controller/SubmissionController.java index c886a05b07bcae98c36d3a24d6d72f522920c3ec..07aa75f6f86cea0857c5f2fc8b209d51904be0e1 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/controller/SubmissionController.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/controller/SubmissionController.java @@ -52,8 +52,6 @@ public class SubmissionController implements ISubmission, HasProgress { @Override public FullSubmission addFullSubmission(FullSubmissionPostRequest fullSubmissionPostRequest, Integer version) { - - // create a new id if we found no id. String uuid = UUID.randomUUID().toString(); String requestCommand = "INSERT INTO"; @@ -87,7 +85,7 @@ public class SubmissionController implements ISubmission, HasProgress { // get the new submission from database - return getFullSubmission(uuid); + return getFullSubmission(uuid, version); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/view/SubmissionService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/view/SubmissionService.java index 12cc82fd28736ebf41e68a06d09613f480622a63..c35a7e3cb85ac6962c66d123d4ad2a59a5934e30 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/view/SubmissionService.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/submission/view/SubmissionService.java @@ -110,9 +110,10 @@ public class SubmissionService { @Path("/full/groupId/{groupId}/project/{projectName}/contributionCategory/{contributionCategory}") public Response getFullSubmission(@PathParam("projectName") String projectName, @PathParam("groupId") Integer groupId, - @PathParam("contributionCategory") ContributionCategory contributionCategory) { + @PathParam("contributionCategory") ContributionCategory contributionCategory, + @QueryParam("version") Integer version) { Project project = new Project(projectName); - FullSubmission fullSubmission = submissionController.getFullSubmissionBy(groupId, project, contributionCategory); + FullSubmission fullSubmission = submissionController.getFullSubmissionBy(groupId, project, contributionCategory, version); if (Objects.isNull(fullSubmission)) { return Response.status(Response.Status.NOT_FOUND).build(); @@ -133,7 +134,7 @@ public class SubmissionService { fullSubmission = dossierCreationProcess.updateSubmission(fullSubmissionPostRequest, user, new Project(fullSubmissionPostRequest.getProjectName()), finalize); if (finalize) { - dossierCreationProcess.createCloseFeedBackPhaseTask(new Project(fullSubmission.getProjectName())); + dossierCreationProcess.createCloseFeedBackPhaseTask(new Project(fullSubmission.getProjectName()), user); } return Response.ok(fullSubmission).build(); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java index 5b8d170bb082102f270bc4a0c425bb11bcc76ca9..5b775a861461cc60b558614b2b68e71c7e7a2022 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java @@ -133,7 +133,13 @@ public class DossierCreationProcess { } } - public void createCloseFeedBackPhaseTask(Project project) { + public void createCloseFeedBackPhaseTask(Project project, User user) { + Task task = new Task(); + task.setUserEmail(user.getEmail()); + task.setProjectName(project.getName()); + task.setProgress(Progress.FINISHED); + task.setTaskName(TaskName.REEDIT_DOSSIER); + taskDAO.updateForGroup(task); taskDAO.persistTeacherTask(project, TaskName.CLOSE_DOSSIER_FEEDBACK_PHASE, Phase.DossierFeedback); } @@ -174,7 +180,7 @@ public class DossierCreationProcess { FullSubmission fullSubmission = submissionController.getFullSubmission(submissionId); FullSubmissionPostRequest fspr = new FullSubmissionPostRequest(); fspr.setContributionCategory(fullSubmission.getContributionCategory()); - fspr.setHtml(fullSubmission.getText()); + fspr.setText(fullSubmission.getText()); fspr.setProjectName(project.getName()); fspr.setGroupdId(groupId); fspr.setVisibility(Visibility.GROUP); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/GroupTask.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/GroupTask.java index 71adfc06723002a40aaaf0d7af6c02ea610bc2ee..7dda1361463d49c0183456d395f9b0299fbe7af4 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/GroupTask.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/GroupTask.java @@ -13,5 +13,6 @@ public class GroupTask extends Task { setGroupTask(groupId); setTaskName(taskName); setProgress(progress); + setProjectName(project.getName()); } } 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 fc16842080d03fb4c139a560cf6a34c07f626f0a..48b6fdeed2373623357f7b51ae16017d35be32e4 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java @@ -403,8 +403,18 @@ public class TaskDAO { connect.close(); } + /** + * task needs to contain a user or a groupTask. Besides that it needs a projectName, TaskName and Progress + * + * @param task The task, that is meant to become updated + */ public void updateForGroup(Task task) { - Integer groupId = groupDAO.getGroupByStudent(new Project(task.getProjectName()), new User(task.getUserEmail())); + Integer groupId; + if (task.getUserEmail() != null) { + groupId = groupDAO.getGroupByStudent(new Project(task.getProjectName()), new User(task.getUserEmail())); + } else { + groupId = task.getGroupTask(); + } updateGroupTask(task, groupId); } diff --git a/gemeinsamforschen/src/main/webapp/annotation/create-unstructured-annotation.jsp b/gemeinsamforschen/src/main/webapp/annotation/create-unstructured-annotation.jsp index 0fb1a61af38ffc51773fc1d5e98aa296c3dc52ff..3a9296160acf46ab8cc9771575b3346ff11ff642 100644 --- a/gemeinsamforschen/src/main/webapp/annotation/create-unstructured-annotation.jsp +++ b/gemeinsamforschen/src/main/webapp/annotation/create-unstructured-annotation.jsp @@ -35,7 +35,7 @@ <script src="https://swisnl.github.io/jQuery-contextMenu/dist/jquery.contextMenu.js" type="text/javascript"></script> <!-- js - unstructuredRest --> - <script src="js/unstructuredRest.js"></script> + <script src="../taglibs/js/unstructuredRest.js"></script> <!-- js - unstructuredUpload --> <script src="js/unstructuredAnnotation.js"></script> diff --git a/gemeinsamforschen/src/main/webapp/annotation/give-feedback.jsp b/gemeinsamforschen/src/main/webapp/annotation/give-feedback.jsp index 208c352c2130b854ef07acebfe881c4628b29878..fb4b380e15c307ce32e0a7012a42ab51da5e2012 100644 --- a/gemeinsamforschen/src/main/webapp/annotation/give-feedback.jsp +++ b/gemeinsamforschen/src/main/webapp/annotation/give-feedback.jsp @@ -38,7 +38,7 @@ <script src="js/annotationWebsocket.js"></script> <!-- js - annotation REST script --> <script src="js/giveFeedbackRest.js"></script> - <script src="js/unstructuredRest.js"></script> + <script src="../taglibs/js/unstructuredRest.js"></script> <!-- js - feedbackScript --> <script src="js/giveFeedback.js"></script> <script src="js/feedbackUtils.js"></script> diff --git a/gemeinsamforschen/src/main/webapp/annotation/js/reedit-dossier.js b/gemeinsamforschen/src/main/webapp/annotation/js/reedit-dossier.js index b8f0f177627a987c314ffdbdf40a633640c2b7db..2d62ad4d2aebee946181fbb439d4681ad1bb170c 100644 --- a/gemeinsamforschen/src/main/webapp/annotation/js/reedit-dossier.js +++ b/gemeinsamforschen/src/main/webapp/annotation/js/reedit-dossier.js @@ -1,9 +1,10 @@ let groupId = 0; -let hierarchyLevel; let fullSubmissionId = ""; let contributionCategory; $(document).ready(function () { - getMyGroupId(getFullSubmissionOfGroup); + getMyGroupId(function (groupId) { + getFullSubmissionOfGroup(groupId, 1) + }); let contribution = getQueryVariable("contribution"); $('#contributionCategory').html(contribution[0] + contribution.substring(1, contribution.length).toLowerCase()); $('#finalize').on("click", function () { @@ -16,13 +17,16 @@ $(document).ready(function () { text: JSON.stringify(content), html: html, projectName: $('#projectName').text().trim(), - contributionCategory: contribution.toUpperCase() + contributionCategory: contribution.toUpperCase(), + visibility: 'GROUP' }; updateFullSubmission(fullSubmissionPostRequest, true, function () { location.href = "../project/tasks-student.jsp?projectName=" + $('#projectName').html().trim(); }); }); - + $('#backToTasks').on('click', function () { + location.href = "../project/tasks-student.jsp?projectName=" + projectName; + }); $('#btnSave').click(function () { if (quill.getText().length > 1) { @@ -35,14 +39,15 @@ $(document).ready(function () { text: JSON.stringify(content), html: html, projectName: $('#projectName').text().trim(), - contributionCategory: contribution.toUpperCase() + contributionCategory: contribution.toUpperCase(), + visibility: 'GROUP' }; // save request in database updateFullSubmission(fullSubmissionPostRequest, false, function () { // back to main page - location.href = hierarchyLevel + "project/tasks-student.jsp?projectName=" + $('#projectName').text().trim(); + location.href = "../project/tasks-student.jsp?projectName=" + $('#projectName').text().trim(); }); } else { alert("Ein Text wird benötigt"); diff --git a/gemeinsamforschen/src/main/webapp/annotation/js/unstructuredAnnotation.js b/gemeinsamforschen/src/main/webapp/annotation/js/unstructuredAnnotation.js index 84a772b968f4b70d6aca49a12482fd1b5fdebfbe..ae15425a6e8192be7c33207bef17fe1608bf9284 100644 --- a/gemeinsamforschen/src/main/webapp/annotation/js/unstructuredAnnotation.js +++ b/gemeinsamforschen/src/main/webapp/annotation/js/unstructuredAnnotation.js @@ -10,8 +10,9 @@ $(document).ready(function () { }); $('#missingAnnotation').hide(); // fetch the document text of the given id - getMyGroupId(getFullSubmissionOfGroup); - + getMyGroupId(function (groupId) { + getFullSubmissionOfGroup(groupId, 0) + }); $('#backToTasks').click(function () { location.href = "../project/tasks-student.jsp?projectName=" + $('#projectName').text().trim(); }); diff --git a/gemeinsamforschen/src/main/webapp/annotation/reedit-dossier.jsp b/gemeinsamforschen/src/main/webapp/annotation/reedit-dossier.jsp index 3d3576f69296a29bf8410ca33f8480b3725b3753..3a071e56397d991faa28f6d851ba0f5a5894296e 100644 --- a/gemeinsamforschen/src/main/webapp/annotation/reedit-dossier.jsp +++ b/gemeinsamforschen/src/main/webapp/annotation/reedit-dossier.jsp @@ -35,7 +35,7 @@ <!-- js - rangy TextRange Module --> <script src="../libs/jquery/jqueryRangyTextRange.js" type="text/javascript"></script> <!-- js - annotation REST script --> - <script src="js/unstructuredRest.js"></script> <!-- ! --> + <script src="../taglibs/js/unstructuredRest.js"></script> <!-- ! --> <!-- js - feedbackScript --> <script src="js/reedit-dossier.js"></script> diff --git a/gemeinsamforschen/src/main/webapp/annotation/see-feedback.jsp b/gemeinsamforschen/src/main/webapp/annotation/see-feedback.jsp index 13d9e522bffdf44c31b859448afb37ecb88cc5c4..3981ef759df36ef34dab4db9383445de313d80e2 100644 --- a/gemeinsamforschen/src/main/webapp/annotation/see-feedback.jsp +++ b/gemeinsamforschen/src/main/webapp/annotation/see-feedback.jsp @@ -38,7 +38,7 @@ <script src="js/annotationWebsocket.js"></script> <!-- js - annotation REST script --> <script src="js/giveFeedbackRest.js"></script> - <script src="js/unstructuredRest.js"></script> <!-- ! --> + <script src="../taglibs/js/unstructuredRest.js"></script> <!-- ! --> <!-- js - feedbackScript --> <script src="js/seeFeedback.js"></script> <script src="js/feedbackUtils.js"></script> diff --git a/gemeinsamforschen/src/main/webapp/project/js/tasks.js b/gemeinsamforschen/src/main/webapp/project/js/tasks.js index 570fc6a12a805b18f242571b95f97a3f42e04784..e972b435989ff00d66548687f5ff01f5d25ccf1d 100644 --- a/gemeinsamforschen/src/main/webapp/project/js/tasks.js +++ b/gemeinsamforschen/src/main/webapp/project/js/tasks.js @@ -336,6 +336,10 @@ function handleProgress(object, result) { "&fullSubmissionId=" + object.taskData.fullSubmission.id + "&category=" + object.taskData.category + "\')"; } } + if (object.taskName === "REEDIT_DOSSIER") { + result.infoText = "Ihre Gruppe hat eine finale Abgabe des Dossiers gespeichert. \n" + + "Warten sie nun auf die nächste Phase."; + } if (object.taskName === "ANNOTATE_DOSSIER" || object.taskName === "UPLOAD_DOSSIER") { result.solveTaskWith = ""; result.solveTaskWithLink = ""; diff --git a/gemeinsamforschen/src/main/webapp/taglibs/js/unstructuredUpload.js b/gemeinsamforschen/src/main/webapp/taglibs/js/unstructuredUpload.js index 5a555a2fd827295b97579ad6942fe2d3903ab13a..616a103fb79f07c4f0d408b693fb150d34ef5be1 100644 --- a/gemeinsamforschen/src/main/webapp/taglibs/js/unstructuredUpload.js +++ b/gemeinsamforschen/src/main/webapp/taglibs/js/unstructuredUpload.js @@ -10,7 +10,9 @@ $(document).ready(function () { contributionCategory = $('#contributionCategory').html().trim(); setPersonal(); if (!personal) { - getMyGroupId(getFullSubmissionOfGroup); + getMyGroupId(function (groupId) { + getFullSubmissionOfGroup(groupId, 0) + }); } hierarchyLevel = $('#hierarchyLevel').html().trim(); populateTextFields(); diff --git a/gemeinsamforschen/src/main/webapp/taglibs/js/utility.js b/gemeinsamforschen/src/main/webapp/taglibs/js/utility.js index 6fae36b2a55c8ed5cec0d96d5190ee164b72379b..64c4a90ddec132b9b93c54df6e6bc10b0e192742 100644 --- a/gemeinsamforschen/src/main/webapp/taglibs/js/utility.js +++ b/gemeinsamforschen/src/main/webapp/taglibs/js/utility.js @@ -244,11 +244,14 @@ function getMyGroupId(callback) { }) } -function getFullSubmissionOfGroup(groupId) { +function getFullSubmissionOfGroup(groupId, version) { let projectName = $('#projectName').html().trim(); let contributionCategory = $('#contributionCategory').html().trim(); $.ajax({ - url: '../rest/submissions/full/groupId/' + groupId + '/project/' + projectName + '/contributionCategory/' + contributionCategory.toUpperCase(), + url: '../rest/submissions/full/groupId/' + groupId + + '/project/' + projectName + + '/contributionCategory/' + contributionCategory.toUpperCase() + + '?version=' + version, type: 'GET', headers: { "Cache-Control": "no-cache" diff --git a/gemeinsamforschen/src/test/resources/database/fltrail.sql b/gemeinsamforschen/src/test/resources/database/fltrail.sql index ff8e87c9e4982fe91be6244c92a8b23611f140c6..3e27d1bbb4d68a5f0b0568bdb89555a5bfb54523 100644 --- a/gemeinsamforschen/src/test/resources/database/fltrail.sql +++ b/gemeinsamforschen/src/test/resources/database/fltrail.sql @@ -585,6 +585,8 @@ ALTER TABLE `fullsubmissions` ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `fullsubmissions_id_uindex` (`id`), ADD KEY `fullsubmissions_projects_name_fk` (`projectName`), + ADD KEY `fullsubmissions_version_fk` (`version`), + ADD KEY `fullsubmissions_contribution_category_fk` (`contributionCategory`), ADD KEY `fullsubmissions_users_email_fk` (`userEmail`), ADD KEY `fullsubmissions_groups_id_fk` (`groupId`);