From 399b874679169ce64495053ba0aa4553b590227b Mon Sep 17 00:00:00 2001 From: wiepke <wiepke@uni-potsdam.de> Date: Tue, 2 Jul 2019 13:05:54 +0200 Subject: [PATCH] stash. Working on #135 --- .../view/ContributionFeedbackView.java | 7 ++--- .../gf/process/DossierCreationProcess.java | 26 +++++++++++------- .../unipotsdam/gf/process/tasks/TaskDAO.java | 27 ++++++++++++++++--- .../annotation/js/unstructuredAnnotation.js | 6 ----- .../main/webapp/annotation/reedit-dossier.jsp | 10 ++++--- .../upload-unstructured-dossier.jsp | 2 +- .../src/main/webapp/project/js/tasks.js | 3 ++- .../src/main/webapp/taglibs/css/global.css | 6 ++++- .../src/main/webapp/taglibs/quillJsEditor.jsp | 10 ++++++- 9 files changed, 67 insertions(+), 30 deletions(-) diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/contributionFeedback/view/ContributionFeedbackView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/contributionFeedback/view/ContributionFeedbackView.java index 3eab5ff6..44b2a425 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/contributionFeedback/view/ContributionFeedbackView.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/contributionFeedback/view/ContributionFeedbackView.java @@ -96,11 +96,12 @@ public class ContributionFeedbackView { @POST @Path("/finalize/projects/{projectName}/groups/{groupId}") @Consumes(MediaType.APPLICATION_JSON) - public Response finalizeFeedback(@PathParam("groupId") int groupId, @PathParam("projectName") String projectName) { + public Response finalizeFeedback(@Context HttpServletRequest req, @PathParam("groupId") int groupId, @PathParam("projectName") String projectName) throws IOException { contributionFeedbackService.endFeedback(projectName, groupId); Project project = projectDAO.getProjectByName(projectName); - dossierCreationProcess.createSeeFeedBackTask(project, groupId); - dossierCreationProcess.createReeditDossierTask(project, groupId); + String userEmail = gfContexts.getUserEmail(req); + User user = userDAO.getUserByEmail(userEmail); + dossierCreationProcess.createSeeFeedBackTask(project, groupId, user); return Response.ok().build(); } diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java index 9f653ed6..0281a345 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/DossierCreationProcess.java @@ -3,6 +3,7 @@ package unipotsdam.gf.process; import com.itextpdf.text.DocumentException; import org.glassfish.jersey.media.multipart.FormDataContentDisposition; import unipotsdam.gf.interfaces.Feedback; +import unipotsdam.gf.interfaces.IPeerAssessment; import unipotsdam.gf.modules.fileManagement.FileManagementService; import unipotsdam.gf.modules.fileManagement.FileRole; import unipotsdam.gf.modules.fileManagement.FileType; @@ -17,11 +18,7 @@ import unipotsdam.gf.modules.user.User; import unipotsdam.gf.modules.user.UserDAO; import unipotsdam.gf.process.constraints.ConstraintsImpl; import unipotsdam.gf.process.phases.Phase; -import unipotsdam.gf.process.tasks.Progress; -import unipotsdam.gf.process.tasks.Task; -import unipotsdam.gf.process.tasks.TaskDAO; -import unipotsdam.gf.process.tasks.TaskName; -import unipotsdam.gf.process.tasks.TaskType; +import unipotsdam.gf.process.tasks.*; import javax.inject.Inject; import javax.inject.Singleton; @@ -53,6 +50,9 @@ public class DossierCreationProcess { @Inject private GroupDAO groupDAO; + @Inject + private IPeerAssessment peerAssessment; + @Inject private ReflexionProcess reflexionProcess; @@ -118,8 +118,7 @@ public class DossierCreationProcess { Progress.FINISHED); taskDAO.updateForGroup(taskAnnotate); taskDAO.persistTaskGroup(project, user, TaskName.GIVE_FEEDBACK, Phase.DossierFeedback); - - + createReeditDossierTask(project, groupDAO.getMyGroupId(user, project)); if (constraints.checkIfFeedbackCanBeDistributed(project)) { // create Task to give Feedback List<Group> groupsInProject = groupDAO.getGroupsByProjectName(project.getName()); @@ -163,9 +162,16 @@ public class DossierCreationProcess { //peerAssessmentProcess.startPeerAssessmentPhase(project); } - public void createSeeFeedBackTask(Project project, Integer groupId) { + public void createSeeFeedBackTask(Project project, Integer groupId, User user) { Integer feedbackedgroup = submissionController.getFeedbackedgroup(project, groupId); - taskDAO.persistTaskGroup(project, feedbackedgroup, TaskName.SEE_FEEDBACK, Phase.DossierFeedback); + int feedbackGroup = peerAssessment.whichGroupToRate(project, user); + ArrayList<Task> reeditDossierTasks = taskDAO.getTasksWithTaskName(feedbackGroup, project, TaskName.REEDIT_DOSSIER); + Task task; + if (reeditDossierTasks.size() != 0) { + task = reeditDossierTasks.get(0); + taskDAO.addTaskType(task, TaskType.LINKED); + } + taskDAO.persistTaskGroup(project, feedbackedgroup, TaskName.SEE_FEEDBACK, Phase.DossierFeedback, TaskType.LINKED); } public void createReeditDossierTask(Project project, Integer groupId) { @@ -178,7 +184,7 @@ public class DossierCreationProcess { fspr.setGroupId(groupId); fspr.setVisibility(Visibility.GROUP); submissionController.addFullSubmission(fspr, 1); - taskDAO.persistTaskGroup(project, groupId, TaskName.REEDIT_DOSSIER, Phase.DossierFeedback); + taskDAO.persistTaskGroup(project, groupId, TaskName.REEDIT_DOSSIER, Phase.DossierFeedback, TaskType.INFO); } public int getFeedBackTarget(Project project, User user) { 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 aa54926d..4a703a16 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/process/tasks/TaskDAO.java @@ -1,5 +1,6 @@ package unipotsdam.gf.process.tasks; +import org.slf4j.LoggerFactory; import unipotsdam.gf.interfaces.IGroupFinding; import unipotsdam.gf.modules.assessment.AssessmentDAO; import unipotsdam.gf.modules.fileManagement.FileRole; @@ -8,7 +9,6 @@ import unipotsdam.gf.modules.group.GroupDAO; import unipotsdam.gf.modules.group.GroupFormationMechanism; import unipotsdam.gf.modules.project.Project; import unipotsdam.gf.modules.project.ProjectDAO; -import unipotsdam.gf.modules.quiz.StudentIdentifier; import unipotsdam.gf.modules.submission.controller.SubmissionController; import unipotsdam.gf.modules.user.User; import unipotsdam.gf.modules.user.UserDAO; @@ -32,6 +32,8 @@ import static unipotsdam.gf.process.tasks.TaskName.WAIT_FOR_PARTICPANTS; @ManagedBean public class TaskDAO { + private static final org.slf4j.Logger log = LoggerFactory.getLogger(SubmissionController.class); + @Inject private ProjectDAO projectDAO; @@ -540,8 +542,8 @@ public class TaskDAO { persist(project, groupId, taskName, phase, TaskType.LINKED); } - public void persistTaskGroup(Project project, Integer groupId, TaskName taskName, Phase phase) { - persist(project, groupId, taskName, phase, TaskType.LINKED); + public void persistTaskGroup(Project project, Integer groupId, TaskName taskName, Phase phase, TaskType taskType) { + persist(project, groupId, taskName, phase, taskType); } public void persist(Project project, Integer groupId, TaskName taskName, Phase phase, TaskType linked) { @@ -572,4 +574,23 @@ public class TaskDAO { } } + public void addTaskType(Task task, TaskType taskType) { + boolean contains = false; + int position = 0; + for (TaskType containedTaskType : task.getTaskType()) { + if (containedTaskType == taskType) { + contains = true; + } + position++; + } + if (contains) { + log.info("taskType was already contained in Task."); + return; + } + connect.connect(); + String query = "UPDATE tasks set taskMode" + position + " = ? where projectName = ? AND taskName = ? AND groupTask = ? and userEmail = ?"; + connect.issueUpdateStatement(query, taskType, task.getProjectName(), task.getTaskName(), task.getGroupTask(), task.getUserEmail()); + connect.close(); + } + } diff --git a/gemeinsamforschen/src/main/webapp/annotation/js/unstructuredAnnotation.js b/gemeinsamforschen/src/main/webapp/annotation/js/unstructuredAnnotation.js index 5d6dec59..43afe744 100644 --- a/gemeinsamforschen/src/main/webapp/annotation/js/unstructuredAnnotation.js +++ b/gemeinsamforschen/src/main/webapp/annotation/js/unstructuredAnnotation.js @@ -129,12 +129,6 @@ function addSelectionDataToList(startCharacter, endCharacter, category) { * Iterate over the category cards and send each post request to the back-end */ function saveButtonHandler() { - // show alert message - /* - let checkSaveForReal = $('#saveForReal'); - if (checkSaveForReal.prop('checked')!==true){ - $('#divSaveForReal').show(); - }else {*/ // declare array of promises let promises = []; let categoriesSent = []; diff --git a/gemeinsamforschen/src/main/webapp/annotation/reedit-dossier.jsp b/gemeinsamforschen/src/main/webapp/annotation/reedit-dossier.jsp index fc8f77cb..2c63d862 100644 --- a/gemeinsamforschen/src/main/webapp/annotation/reedit-dossier.jsp +++ b/gemeinsamforschen/src/main/webapp/annotation/reedit-dossier.jsp @@ -57,19 +57,21 @@ <div class="col span_2_of_2"> <h3>Hier können Sie Ihr <span id="fileRole"></span> überarbeiten</h3> <br> - <div id="editor" style="border:solid 1px"></div> + <div id="editor"></div> <div style="display:flex;"> <button id="btnSave" type="button" class="btn btn-primary" title="weiter"> <i class="far fa-save"></i> speichern </button> <label class="checkbox" for="finalizeReedit"> - Dies ist die finale + <div style="display:flex; width: 100%"> + <p style="margin-left: 13px;">Dies ist die finale <a data-toggle='collapse' href='#whatIs' role='button' aria-expanded='false' aria-controls='whatIs'> <i class='fas fa-question'></i> </a> - Abgabe des Dossiers - <input id="finalizeReedit" style="margin:2px 0 0 0" type="checkbox" title="finalisieren"> + Abgabe des Dossiers</p> + <input id="finalizeReedit" style="margin:1px 0 0 0;" type="checkbox" title="finalisieren"> + </div> </label> </div> diff --git a/gemeinsamforschen/src/main/webapp/annotation/upload-unstructured-dossier.jsp b/gemeinsamforschen/src/main/webapp/annotation/upload-unstructured-dossier.jsp index e685af90..9a7aac03 100644 --- a/gemeinsamforschen/src/main/webapp/annotation/upload-unstructured-dossier.jsp +++ b/gemeinsamforschen/src/main/webapp/annotation/upload-unstructured-dossier.jsp @@ -93,7 +93,7 @@ <br> <div class="upload-text" id="documentText"> <label for="editor">Texteingabe</label> - <div id="editor" style="border:solid 1px"></div> + <div id="editor"></div> </div> <div class="document-text-buttons"> diff --git a/gemeinsamforschen/src/main/webapp/project/js/tasks.js b/gemeinsamforschen/src/main/webapp/project/js/tasks.js index cfa0bedc..e5ccd14f 100644 --- a/gemeinsamforschen/src/main/webapp/project/js/tasks.js +++ b/gemeinsamforschen/src/main/webapp/project/js/tasks.js @@ -152,7 +152,7 @@ function handleInfoTasks(object, result) { " geben sich gegenseitig Feedback."; break; case "REEDIT_DOSSIER": - result.infoText = "Basierend auf dem Feedback können Sie nun Ihr Dossier überarbeiten"; + result.infoText = "Sobald Sie ein Feedback bekommen haben, können Sie hier Ihr Dossier überarbeiten."; break; case "CLOSE_DOSSIER_FEEDBACK_PHASE": let count = object.taskData.length; @@ -262,6 +262,7 @@ function handleLinkedTasks(object, result) { result.solveTaskWithLink = "redirect(\'../annotation/upload-unstructured-dossier.jsp?projectName=" + object.projectName + "&fileRole=Dossier" + "\')"; break; case "REEDIT_DOSSIER": + result.infoText = "Basierend auf dem erhaltenen Feedback, können Sie nun Ihr Dossier überarbeiten."; result.solveTaskWith = "Überarbeite Dossier"; result.solveTaskWithLink = "redirect(\'../annotation/reedit-dossier.jsp?fullsubmissionid=" + object.taskData.fullSubmissionId + "&projectName=" + object.projectName + "&contribution=DOSSIER\')"; break; diff --git a/gemeinsamforschen/src/main/webapp/taglibs/css/global.css b/gemeinsamforschen/src/main/webapp/taglibs/css/global.css index 5e3d89bd..b7c5abbb 100644 --- a/gemeinsamforschen/src/main/webapp/taglibs/css/global.css +++ b/gemeinsamforschen/src/main/webapp/taglibs/css/global.css @@ -1119,5 +1119,9 @@ main.groups-manual{ padding-top: 10px; } - +#editor { + border: solid 1px; + height: 500px; + overflow: hidden; +} diff --git a/gemeinsamforschen/src/main/webapp/taglibs/quillJsEditor.jsp b/gemeinsamforschen/src/main/webapp/taglibs/quillJsEditor.jsp index 1e1792df..b7156b24 100644 --- a/gemeinsamforschen/src/main/webapp/taglibs/quillJsEditor.jsp +++ b/gemeinsamforschen/src/main/webapp/taglibs/quillJsEditor.jsp @@ -15,7 +15,15 @@ theme: 'snow', readOnly: <%=readOnlyBoolean%>, "modules": { - "toolbar": <%=!readOnlyBoolean%> + <%if (!readOnlyBoolean){%> + "toolbar": [ + [{header: [1, 2, false]}], + ['bold', 'italic', 'underline'], + ['image', 'code-block'] + ] + <%}else{%> + "toolbar": false + <%}%> } }); </script> \ No newline at end of file -- GitLab