From beb97f33d09fdb7ac2462d6bf799382eced00bb7 Mon Sep 17 00:00:00 2001 From: Axel <wiepke@uni-potsdam.de> Date: Mon, 27 Aug 2018 13:22:07 +0200 Subject: [PATCH] fix: DB communication for assessments feat: docent quiz page --- .../gf/core/management/ManagementImpl.java | 6 +- .../gf/core/management/user/Menu.java | 4 +- .../service/AssessmentDBCommunication.java | 17 ++- .../controller/service/PeerAssessment.java | 3 +- .../src/main/webapp/assets/js/Quiz-docent.js | 87 +++++++++++++ .../src/main/webapp/assets/js/Quiz.js | 14 +-- .../main/webapp/assets/js/finalAssessment.js | 2 +- .../main/webapp/assets/js/overview-docent.js | 4 +- .../src/main/webapp/pages/Quiz-docent.jsp | 28 +++++ .../src/main/webapp/pages/overview-docent.jsp | 4 +- .../src/main/webapp/pages/project-docent.jsp | 118 ++++++++++-------- .../src/main/webapp/pages/takeQuiz.jsp | 2 +- 12 files changed, 213 insertions(+), 76 deletions(-) create mode 100644 gemeinsamforschen/src/main/webapp/assets/js/Quiz-docent.js create mode 100644 gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java index 5d1dcc69..c86b8aa6 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java @@ -212,9 +212,9 @@ public class ManagementImpl implements Management { /** - * TODO @Axel bitte in modules/asessment verschieben - * @param projectId - * @param quizId + * + * @param field + * @param value * @return */ private User getUserByField(String field, String value) { diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java index f62ec00b..d08c07de 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java @@ -38,7 +38,7 @@ public class Menu extends SimpleTagSupport { out.println("<div id=\"sidebar-wrapper\">\n" + " <ul class=\"sidebar-nav\">\n" + " <li class=\"sidebar-brand\"><a href=\"overview-docent.jsp?token="+token+"&projectId="+projectId+"\">overview</a></li>\n" + - " <li><a href=\"Quiz.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" + + " <li><a href=\"Quiz-docent.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" + " <li><a href=\"#\">ePortfolio</a></li>\n" + " <li><a href=\"#\">Beitrag</a></li>\n" + " <li><a href=\"#\">Gruppen erstellen</a></li>\n" + @@ -64,4 +64,4 @@ public class Menu extends SimpleTagSupport { } -}; \ No newline at end of file +} \ No newline at end of file diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java index cf44c177..c5e80324 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java @@ -16,6 +16,7 @@ import java.util.Map; @Resource @Singleton class AssessmentDBCommunication { + ArrayList<Map<String, Double>> getWorkRating(StudentIdentifier student) { ArrayList<Map<String, Double>> result = new ArrayList<>(); MysqlConnect connect = new MysqlConnect(); @@ -124,13 +125,19 @@ class AssessmentDBCommunication { void writeContributionRatingToDB(StudentIdentifier student, String fromStudent, Map<String, Integer> contributionRating) { MysqlConnect connect = new MysqlConnect(); connect.connect(); - String mysqlRequest = "INSERT INTO `contributionrating`(`studentId`, `projectId`, `fromPeer`, " + + String mysqlRequest = "INSERT INTO `contributionrating`(" + + "`studentId`, " + + "`projectId`, " + + "`fromPeer`, " + "`dossier`, " + "`eJournal`, " + - "`research`" + - ") VALUES (?,?,?,?,?,?)"; - connect.issueInsertOrDeleteStatement(mysqlRequest, student.getProjectId(), student.getStudentId(), fromStudent, - contributionRating.get("Dossier"), + "`research`) " + + "VALUES (?,?,?,?,?,?)"; + connect.issueInsertOrDeleteStatement(mysqlRequest, + student.getStudentId(), + student.getProjectId(), + fromStudent, + contributionRating.get("dossier"), contributionRating.get("eJournal"), contributionRating.get("research") ); diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java index f10eb228..820adb76 100644 --- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java +++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java @@ -1,5 +1,6 @@ package unipotsdam.gf.modules.assessment.controller.service; +import unipotsdam.gf.core.management.user.User; import unipotsdam.gf.interfaces.IPeerAssessment; import unipotsdam.gf.modules.assessment.QuizAnswer; import unipotsdam.gf.modules.assessment.controller.model.*; @@ -202,7 +203,7 @@ public class PeerAssessment implements IPeerAssessment { public void postPeerRating(ArrayList<PeerRating> peerRatings, String projectId) { for (PeerRating peer: peerRatings){ StudentIdentifier student = new StudentIdentifier(projectId, peer.getToPeer()); - new AssessmentDBCommunication().writeWorkRatingToDB(student, peerRatings.get(1).getFromPeer(), peerRatings.get(1).getWorkRating()); + new AssessmentDBCommunication().writeWorkRatingToDB(student, peer.getFromPeer(), peer.getWorkRating()); } } diff --git a/gemeinsamforschen/src/main/webapp/assets/js/Quiz-docent.js b/gemeinsamforschen/src/main/webapp/assets/js/Quiz-docent.js new file mode 100644 index 00000000..2eedd8af --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/assets/js/Quiz-docent.js @@ -0,0 +1,87 @@ +$(document).ready(function () { + $('#newQuiz').on('click', function(){ + location.href="createQuiz.jsp?token="+getUserTokenFromUrl()+"&projectId="+$('#projectId').html().trim(); + }); + + let loading = $('#loadbar').hide(); + $(document) + .ajaxStart(function () { + loading.show(); + }).ajaxStop(function () { + loading.hide(); + }); + + $("label.btn").on('click',function () { + let choice = $(this).find('input:radio').val(); + $('#loadbar').show(); + $('#quiz').fadeOut(); + setTimeout(function(){ + $( "#answer" ).html( $(this).checking(choice) ); + $('#quiz').show(); + $('#loadbar').fadeOut(); + /* something else */ + }, 1500); + }); + + $ans = 3; + + let projectId = document.getElementById('projectId').innerText.trim(); + $.ajax({ + url: '../rest/assessments/project/'+projectId+'/quiz/', + type: 'GET', + success: function (data) { + let table = document.getElementById('tableQuiz'); + for (let quiz = 0; quiz < data.length; quiz++){ + let question = data[quiz].question.replace(/ /g,"").replace("?","").replace(",",""); + let answers = data[quiz].correctAnswers.concat(data[quiz].incorrectAnswers); + let colspan = answers.length; + let trQuestion = document.createElement('TR'); + let tdQuestion = '<td colspan="' + colspan + '"' + + ' data-toggle="collapse" href="#'+question+'" aria-expanded="false" aria-controls="'+question+'">' + + '' + data[quiz].question + '</td>'; + trQuestion.innerHTML = tdQuestion; + let trAnswers = document.createElement('TR'); + let answersTd='<td style="display: block;">' + + '<div ' + + 'class="quiz collapse" ' + + 'id="'+question+'" ' + + 'data-toggle="buttons">' + + '<p hidden>'+data[quiz].question+'</p>'; + for (let i = 0; i < answers.length; i++) { + answersTd = answersTd + '<div>' + + '<label class="element-animation1 btn btn-lg btn-primary btn-block">' + + '<span class="btn-label">' + + '<i class="glyphicon glyphicon-chevron-right">' + + '</i>' + + '</span>' + + '<input type="checkbox" value="'+answers[i]+'">' + answers[i] + '' + + '</label>' + + '</div>'; + } + tdQuestion =""; + answers=[]; + let deletebutton = '<button class="btn btn-danger" id="delete'+question+'">löschen</button>'; + trAnswers.innerHTML = answersTd+deletebutton+'</div></td>'; + table.appendChild(trQuestion); + table.appendChild(trAnswers); + $("#delete"+question).click({quizId: data[quiz].question}, deleteQuiz); + } + }, + error: function (a) { + alert('Fehler ' + a); + } + }); + + function deleteQuiz(event){ + $.ajax({ + url: '../rest/assessments/quiz/' + encodeURIComponent(event.data.quizId), + type: 'POST', + success: function () { + document.location.href="Quiz-docent.jsp?token="+getUserTokenFromUrl()+"&projectId="+$('#projectId').html().trim(); + }, + error: function(a){ + alert(a) + } + }); + } +}); diff --git a/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js b/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js index cc9a73e5..fcb6ea70 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js @@ -1,15 +1,15 @@ $(document).ready(function(){ - var projectId = document.getElementById('projectId').innerText.trim(); + let projectId = document.getElementById('projectId').innerText.trim(); $.ajax({ url: '../rest/assessments/project/'+projectId+'/quiz/', projectId: projectId, type: 'GET', success: function (data) { - var table = document.getElementById('myQuizzes'); - for (var quiz = 0; quiz < data.length; quiz++){ - var answers = data[quiz].correctAnswers.concat(data[quiz].incorrectAnswers); - var colspan = answers.length; - var trQuestion = document.createElement('TR'); + let table = document.getElementById('myQuizzes'); + for (let quiz = 0; quiz < data.length; quiz++){ + let answers = data[quiz].correctAnswers.concat(data[quiz].incorrectAnswers); + let colspan = answers.length; + let trQuestion = document.createElement('TR'); trQuestion.className="pageChanger"; trQuestion.innerHTML = '<td colspan="' + colspan + '"><h3>' + '<a href="viewQuiz.jsp' + @@ -20,7 +20,7 @@ $(document).ready(function(){ table.appendChild(trQuestion); } }, - error: function (a, b, c) { + error: function (a) { alert('Fehler ' + a); } }); diff --git a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js index c56a5da9..a56e8a76 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js @@ -33,7 +33,7 @@ function assessPeer(){ } for (let peer=0; peer< dataP.length; peer++){ for (let workRating=0; workRating<rateThis.length;workRating++){ - if(dataP[peer][workRating]===undefined){ + if(dataP[peer].workRating[rateThis[workRating]]===undefined){ $('#notAllRated').show(); return; } diff --git a/gemeinsamforschen/src/main/webapp/assets/js/overview-docent.js b/gemeinsamforschen/src/main/webapp/assets/js/overview-docent.js index 0bd803d8..77cd2693 100644 --- a/gemeinsamforschen/src/main/webapp/assets/js/overview-docent.js +++ b/gemeinsamforschen/src/main/webapp/assets/js/overview-docent.js @@ -1,9 +1,9 @@ $(document).ready(function(){ $('#project1Link').on('click', function(){ - location.href="project-docent.jsp?token="+getUserTokenFromUrl(); + location.href="project-docent.jsp?token="+getUserTokenFromUrl()+'&projectId='+'gemeinsamForschen'; }); $('#project2Link').on('click', function(){ - location.href="project-docent.jsp?token="+getUserTokenFromUrl(); + location.href="project-docent.jsp?token="+getUserTokenFromUrl()+'&projectId='+'Kaleo'; }); $('#createProject').on('click', function(){ location.href="createProject.jsp?token="+getUserTokenFromUrl(); diff --git a/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp b/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp new file mode 100644 index 00000000..64db788d --- /dev/null +++ b/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp @@ -0,0 +1,28 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> +<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> + +<html> +<head> + <omniDependencies:omniDependencies/> + <script src="../assets/js/Quiz-docent.js"></script> +</head> + +<body> +<div id="wrapper"> + <menu:menu/> + <div class="page-content-wrapper"> + <headLine:headLine/> + <table class="table-striped"> + <tbody id="tableQuiz"> + + </tbody> + </table> + <button class="btn btn-primary" id="newQuiz">neues Quiz</button> + + </div> +</div> + +</body> +</html> diff --git a/gemeinsamforschen/src/main/webapp/pages/overview-docent.jsp b/gemeinsamforschen/src/main/webapp/pages/overview-docent.jsp index 66419d37..736db5bd 100644 --- a/gemeinsamforschen/src/main/webapp/pages/overview-docent.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/overview-docent.jsp @@ -1,4 +1,4 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> @@ -85,8 +85,6 @@ </div> <button class="btn btn-default" type="button" id="createProject" style="margin-left:250px;">Projekt erstellen</button> </div> -</div> - </body> </html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp b/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp index 1ec616d0..9dbf5687 100644 --- a/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/project-docent.jsp @@ -1,5 +1,5 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> -<%@ taglib prefix = "communication" uri = "/communication/chatWindow.tld"%> +<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> +<%@ taglib prefix="communication" uri="/communication/chatWindow.tld" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> @@ -16,11 +16,11 @@ <div id="wrapper"> <menu:menu/> <div class="page-content-wrapper"> - <div class="container-fluid"> - <h1>dummy Projekt1 für Dozent1</h1><button class="btn btn-default" type="button">Gruppen erstellen</button><button class="btn btn-default" type="button">Projekt finalisieren</button><button class="btn btn-default" type="button">Exportiere Projektergebnisse</button> - </div> - <button - class="btn btn-default" type="button">Exportiere Zwischenstand</button><button class="btn btn-default" type="button">Quizfrage erstellen</button> + <headLine:headLine/> + <button + class="btn btn-default" type="button">Exportiere Zwischenstand + </button> + <button class="btn btn-default" type="button">Quizfrage erstellen</button> <div> <div class="container"> <div class="row"> @@ -28,60 +28,60 @@ <div class="table-responsive" style="width:294px;"> <table class="table"> <thead> - <tr> - <th>Gruppe1 </th> - <th>Beiträge </th> - </tr> + <tr> + <th>Gruppe1</th> + <th>Beiträge</th> + </tr> </thead> <tbody> - <tr> - <td>student1 </td> - <td>Interfaces </td> - </tr> - <tr> - <td>student2 </td> - <td>Design </td> - </tr> + <tr> + <td>student1</td> + <td>Interfaces</td> + </tr> + <tr> + <td>student2</td> + <td>Design</td> + </tr> </tbody> </table> </div> <div class="table-responsive" style="width:294px;"> <table class="table"> <thead> - <tr> - <th>Gruppe2 </th> - <th>Beiträge </th> - </tr> + <tr> + <th>Gruppe2</th> + <th>Beiträge</th> + </tr> </thead> <tbody> - <tr> - <td>student3 </td> - <td>Interfaces </td> - </tr> - <tr> - <td>student4 </td> - <td>Design </td> - </tr> + <tr> + <td>student3</td> + <td>Interfaces</td> + </tr> + <tr> + <td>student4</td> + <td>Design</td> + </tr> </tbody> </table> </div> <div class="table-responsive" style="width:294px;"> <table class="table"> <thead> - <tr> - <th>Gruppe3 </th> - <th>Beiträge </th> - </tr> + <tr> + <th>Gruppe3</th> + <th>Beiträge</th> + </tr> </thead> <tbody> - <tr> - <td>student5 </td> - <td>Interfaces </td> - </tr> - <tr> - <td>student6 </td> - <td>Design </td> - </tr> + <tr> + <td>student5</td> + <td>Interfaces</td> + </tr> + <tr> + <td>student6</td> + <td>Design</td> + </tr> </tbody> </table> </div> @@ -98,12 +98,18 @@ <div class="media-left"><a></a></div> <div class="media-body"> <div class="media" style="overflow:visible;"> - <div class="media-left"><a><img src="../assets/img/1.jpg" class="img-rounded" style="width: 25px; height:25px;"></a></div> + <div class="media-left"><a><img src="../assets/img/1.jpg" + class="img-rounded" + style="width: 25px; height:25px;"></a> + </div> <div class="media-body" style="overflow:visible;"> <div class="row"> <div class="col-md-12"> - <p><a href="#">Sara Doe:</a> This guy has been going 100+ MPH on side streets. <br> -<small class="text-muted">August 6, 2016 @ 10:35am </small></p> + <p><a href="#">Sara Doe:</a> This guy has been going + 100+ MPH on side streets. <br> + <small class="text-muted">August 6, 2016 @ 10:35am + </small> + </p> </div> </div> </div> @@ -116,12 +122,18 @@ <div class="media-left"><a></a></div> <div class="media-body"> <div class="media" style="overflow:visible;"> - <div class="media-left"><a><img src="../assets/img/1.jpg" class="img-rounded" style="width: 25px; height:25px;"></a></div> + <div class="media-left"><a><img src="../assets/img/1.jpg" + class="img-rounded" + style="width: 25px; height:25px;"></a> + </div> <div class="media-body" style="overflow:visible;"> <div class="row"> <div class="col-md-12"> - <p><a href="#">Brennan Prill:</a> This guy has been going 100+ MPH on side streets. <br> -<small class="text-muted">August 6, 2016 @ 10:35am </small></p> + <p><a href="#">Brennan Prill:</a> This guy has been + going 100+ MPH on side streets. <br> + <small class="text-muted">August 6, 2016 @ 10:35am + </small> + </p> </div> </div> </div> @@ -129,7 +141,11 @@ </div> </div> </li> - </ul><button class="btn btn-default" type="button" style="margin-left:601px;margin-top:-9px;">Add Comment</button></div> + </ul> + <button class="btn btn-default" type="button" + style="margin-left:601px;margin-top:-9px;">Add Comment + </button> + </div> </div> </div> </div> @@ -137,7 +153,7 @@ </div> </div> </div> - <communication:chatWindow orientation="right"></communication:chatWindow> +<communication:chatWindow orientation="right" /> </body> </html> \ No newline at end of file diff --git a/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp b/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp index 4ea6f940..0eb33c1e 100644 --- a/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp +++ b/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp @@ -1,4 +1,4 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %> <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %> -- GitLab