From 3e74dc18e596708ddc2edfffe59af4f725fd3c3d Mon Sep 17 00:00:00 2001
From: Axel <wiepke@uni-potsdam.de>
Date: Thu, 5 Jul 2018 14:52:24 +0200
Subject: [PATCH] feat: first real db to website works!! on viewQuiz.jsp

---
 .../gf/core/management/ManagementImpl.java    | 51 +++++++++++++++++--
 .../controller/service/PeerAssessment.java    |  2 +-
 .../assessment/controller/view/QuizView.java  | 12 +++--
 .../src/main/webapp/assets/js/Quiz.js         |  3 +-
 .../src/main/webapp/assets/js/createQuiz.js   |  2 +-
 .../src/main/webapp/assets/js/takeQuiz.js     |  3 +-
 .../src/main/webapp/assets/js/viewQuiz.js     |  4 +-
 .../src/main/webapp/pages/Quiz.jsp            |  2 +-
 .../src/main/webapp/pages/createQuiz.jsp      |  2 +-
 .../src/main/webapp/pages/takeQuiz.jsp        |  4 +-
 .../src/main/webapp/pages/viewQuiz.jsp        |  2 +-
 11 files changed, 67 insertions(+), 20 deletions(-)

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 8d98b2c0..b29ba445 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java
@@ -203,15 +203,15 @@ public class ManagementImpl implements Management {
     public Quiz getQuizByProjectGroupId(String projectId, String quizId){
         MysqlConnect connect = new MysqlConnect();
         connect.connect();
-        String mysqlRequest = "SELECT * FROM quiz where projectId=" + projectId + " , question="+quizId;
+        String mysqlRequest = "SELECT * FROM quiz where projectId=? AND question=?";
         VereinfachtesResultSet vereinfachtesResultSet =
-                connect.issueSelectStatement(mysqlRequest, "");
+                connect.issueSelectStatement(mysqlRequest, projectId,quizId);
         boolean next = vereinfachtesResultSet.next();
         String question = "";
         ArrayList<String> correctAnswers = new ArrayList<String>();
         ArrayList<String> incorrectAnswers = new ArrayList<String>();
-        String answer = "";
-        Boolean correct = false;
+        String answer;
+        Boolean correct;
         String mcType = "";
         while (next) {
             mcType = vereinfachtesResultSet.getString("mcType");
@@ -230,6 +230,49 @@ public class ManagementImpl implements Management {
         return quiz;
     }
 
+    public ArrayList<Quiz> getQuizByProjectId(String projectId) {
+        MysqlConnect connect = new MysqlConnect();
+        ArrayList<Quiz> result= new ArrayList<Quiz>();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM quiz where projectId= ?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, projectId);
+        boolean next = vereinfachtesResultSet.next();
+        String question = "";
+        ArrayList<String> correctAnswers = new ArrayList<String>();
+        ArrayList<String> incorrectAnswers = new ArrayList<String>();
+        String answer;
+        String oldQuestion="";
+        Boolean correct;
+        String mcType = "";
+        while (next) {
+            mcType = vereinfachtesResultSet.getString("mcType");
+            question = vereinfachtesResultSet.getString("question");
+            answer = vereinfachtesResultSet.getString("answer");
+            correct = vereinfachtesResultSet.getBoolean("correct");
+            if (oldQuestion.equals(question)){
+                if (correct){
+                    correctAnswers.add(answer);
+                }else{
+                    incorrectAnswers.add(answer);
+                }
+            }else{
+                result.add(new Quiz(mcType,question, correctAnswers, incorrectAnswers));
+                correctAnswers.clear();
+                incorrectAnswers.clear();
+                if (correct){
+                    correctAnswers.add(answer);
+                }else{
+                    incorrectAnswers.add(answer);
+                }
+
+            }
+            oldQuestion = question;
+            next = vereinfachtesResultSet.next();
+        }
+        return result;
+    }
+
     private User getUserByField(String field, String value) {
         MysqlConnect connect = new MysqlConnect();
         connect.connect();
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 9ab276c6..5c88e90d 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
@@ -22,7 +22,7 @@ public class PeerAssessment implements IPeerAssessment {
 
     @Override //returns all quizzes in the course
     public ArrayList<Quiz> getQuiz(String projectId) {
-        return null;
+        return new ManagementImpl().getQuizByProjectId(projectId);
     }
 
     @Override
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java
index 4ee52595..9c542dda 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java
@@ -12,7 +12,7 @@ import java.util.List;
 
 @Path("/assessments")
 public class QuizView implements IPeerAssessment {
-    private static IPeerAssessment peer =  new PeerAssessmentDummy();   //TestSubject
+    private static IPeerAssessment peer =  new PeerAssessment();   //TestSubject
     //private static IPeerAssessment peer =  new PeerAssessment();      //correct DB-conn and stuff
     @GET
     @Produces(MediaType.APPLICATION_JSON)
@@ -60,7 +60,7 @@ public class QuizView implements IPeerAssessment {
     public Assessment getAssessmentDataFromDB(@PathParam("projectId") String projectId,@PathParam("studentId") String studentId){
         StudentIdentifier student = new StudentIdentifier(projectId, studentId);
         return getAssessmentDataFromDB(student);
-    }  ///////////////////////////////funktioniert wie geplant//////////////////////////////////
+    }  //////////dummy//////////////funktioniert wie geplant//////////////////////////////////
 
 
     @POST
@@ -71,6 +71,7 @@ public class QuizView implements IPeerAssessment {
     public void createQuiz(StudentAndQuiz studentAndQuiz) {
         peer.createQuiz(studentAndQuiz);
     }
+    ////////////////////////////////todo: sollte das nächste Element sein, was ich baue////////
 
     @POST
     @Consumes(MediaType.APPLICATION_JSON)
@@ -80,6 +81,7 @@ public class QuizView implements IPeerAssessment {
     public List<Grading> calculateAssessment(ArrayList<Performance> totalPerformance) {
         return peer.calculateAssessment(totalPerformance);
     }
+    ///////////////dummy/////////funktioniert glaube ich!?////////////////////////////////////////
 
     @GET
     @Produces(MediaType.APPLICATION_JSON)
@@ -96,12 +98,12 @@ public class QuizView implements IPeerAssessment {
     public ArrayList<Performance> getTotalAssessment(@PathParam("projectId") String ProjectId,@PathParam("student") String student){
         StudentIdentifier studentIdentifier = new StudentIdentifier(ProjectId, student);
         return getTotalAssessment(studentIdentifier);
-    }  ///////////////////////////////funktioniert wie geplant//////////////////////////////////
+    }  //////////dummy/////////////funktioniert wie geplant//////////////////////////////////
 
     @Override
     public ArrayList<Performance> getTotalAssessment(StudentIdentifier studentIdentifier) {
         return peer.getTotalAssessment(studentIdentifier);
-    }  ///////////////////////////////funktioniert wie geplant//////////////////////////////////
+    }  /////////dummy/////////////funktioniert wie geplant//////////////////////////////////
 
 
     @GET
@@ -116,6 +118,6 @@ public class QuizView implements IPeerAssessment {
         result.add(pf);
         result.add(pf2);
         return result;
-    }  ///////////////////////////////returns what i expect it to return!!!!!//////////////////////////////////
+    }  /////////dummy////////////returns what i expect it to return!!!!!//////////////////////////////////
 
 }
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js b/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js
index afd43343..c5053ab2 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/Quiz.js
@@ -1,6 +1,7 @@
 $(document).ready(function(){
+    var projectId = document.getElementById('projectId').innerText.trim();
     $.ajax({
-        url: '../rest/assessments/project/1/quiz/',
+        url: '../rest/assessments/project/'+projectId+'/quiz/',
         type: 'GET',
         success: function (data) {
             var table = document.getElementById('myQuizzes');
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js b/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js
index 764a7a90..5da5a5f0 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/createQuiz.js
@@ -1,5 +1,5 @@
 $(document).ready(function () {
-    $("#save").on('click', function () {
+    $("#save").on('click', function () {//todo: remember to cut out whitespace and signs (?.,;)
         document.location = "Quiz.jsp?token=" + getUserTokenFromUrl();
     });
 });
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/takeQuiz.js b/gemeinsamforschen/src/main/webapp/assets/js/takeQuiz.js
index 9bc22615..69aa397b 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/takeQuiz.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/takeQuiz.js
@@ -28,8 +28,9 @@ $(document).ready(function () {
             return 'CORRECT';
     };
 
+    var projectId = document.getElementById('projectId').innerText.trim();
     $.ajax({
-        url: '../rest/assessments/project/1/quiz/',
+        url: '../rest/assessments/project/'+projectId+'/quiz/',
         type: 'GET',
         success: function (data) {
             var table = document.getElementById('tableQuiz');
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/viewQuiz.js b/gemeinsamforschen/src/main/webapp/assets/js/viewQuiz.js
index 362479e7..06a59b90 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/viewQuiz.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/viewQuiz.js
@@ -34,9 +34,9 @@ $(document).ready(function () {
         $_GET[decodeURIComponent(temp[0])] = decodeURIComponent(temp[1]);
     }
     var quizId = $_GET['quizId'];
-
+    var projectId = document.getElementById('projectId').innerText.trim();
     $.ajax({
-        url: '../rest/assessments/project/1/quiz/'+quizId,
+        url: '../rest/assessments/project/'+projectId+'/quiz/'+quizId,
         type: 'GET',
         success: function (data) {
             var table = document.getElementById('tableQuiz');
diff --git a/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp b/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp
index 276a9e02..6b160e8d 100644
--- a/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp
@@ -30,7 +30,7 @@
     <menu:menu></menu:menu>
     <div class="page-content-wrapper">
         <div class="container-fluid">
-            <h1 id="projectId">project1
+            <h1 id="projectId">gemeinsamForschen
                 <a href="#">
                 <span class="glyphicon glyphicon-envelope"
                       style="font-size:27px;margin-top:-17px;margin-left:600px;"></span>
diff --git a/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp b/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp
index ad122bc9..742ecfb0 100644
--- a/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp
@@ -33,7 +33,7 @@
         </div>
         <div style="margin-left:50px;">
             <div>
-            <input placeholder="Ihre Frage">
+            <input placeholder="Ihre Frage"><!--todo: remember to cut out whitespace and signs (?.,;)-->
             </div>
             <div><label><input type="radio" name="type">Schwierigkeit 3</label></div>
             <div><label><input type="radio" name="type">Schwierigkeit 2</label></div>
diff --git a/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp b/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp
index 9ddb2424..6d187767 100644
--- a/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp
@@ -24,7 +24,7 @@
     <menu:menu></menu:menu>
     <div class="page-content-wrapper">
         <div class="container-fluid">
-            <h1 id="projectId">project1
+            <h1 id="projectId">gemeinsamForschen
                 <a href="#">
                 <span class="glyphicon glyphicon-envelope"
                       style="font-size:27px;margin-top:-17px;margin-left:600px;"></span>
@@ -37,7 +37,7 @@
             <table>
                 <tr>
                     <td  id="yourContent">
-                        <h1>Quiz for project1 </h1>
+                        <h1>Quiz for gemeinsamForschen </h1>
                         <!-- here will be all the content -->
 
 
diff --git a/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp b/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp
index a484d938..800ad4dc 100644
--- a/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp
@@ -25,7 +25,7 @@
     <menu:menu></menu:menu>
     <div class="page-content-wrapper">
         <div class="container-fluid">
-            <h1 id="projectId">project1
+            <h1 id="projectId">gemeinsamForschen
                 <a href="#">
                 <span class="glyphicon glyphicon-envelope"
                       style="font-size:27px;margin-top:-17px;margin-left:600px;"></span>
-- 
GitLab