From a79c07b718f46a536db62b97c48d9efe174803f3 Mon Sep 17 00:00:00 2001
From: tudtianus <tudtianus@gmail.com>
Date: Sun, 17 Jun 2018 12:30:30 +0200
Subject: [PATCH] feat: use rest to load content of html pages

---
 .../gf/modules/journal/model/Journal.java     | 11 +++
 .../journal/model/ProjectDescription.java     | 14 +--
 .../journal/service/DummyJournalService.java  |  5 +
 .../service/DummyProjectDescription.java      | 17 ++--
 .../src/main/webapp/pages/createJournal.html  | 46 ++++++++--
 .../src/main/webapp/pages/eportfolio.html     | 91 +++++++++++--------
 6 files changed, 124 insertions(+), 60 deletions(-)

diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java
index b0bc10c1..50d6dd3c 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/Journal.java
@@ -9,6 +9,7 @@ public class Journal {
 
     long id;
     StudentIdentifier studentIdentifier;
+    String creator;
     String entry;
     long timestamp;
     Visibility visibility;
@@ -19,6 +20,7 @@ public class Journal {
     public Journal(long id, StudentIdentifier studentIdentifier, String entry, long timestamp, Visibility visibility, String category) {
         this.id = id;
         this.studentIdentifier = studentIdentifier;
+        // TODO setName per StudentID
         this.entry = entry;
         this.timestamp = timestamp;
         this.visibility = visibility;
@@ -73,11 +75,20 @@ public class Journal {
         this.category = category;
     }
 
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+
     @Override
     public String toString() {
         return "Journal{" +
                 "id=" + id +
                 ", studentIdentifier=" + studentIdentifier +
+                ", creator='" + creator + '\'' +
                 ", entry='" + entry + '\'' +
                 ", timestamp=" + timestamp +
                 ", visibility=" + visibility +
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescription.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescription.java
index 5d6bc688..b1d55afe 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescription.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescription.java
@@ -16,14 +16,14 @@ public class ProjectDescription {
     String name;
     String description;
     Project project;
-    ArrayList<Map<String,String>> links ;
-    ArrayList<StudentIdentifier> group;
+    Map<String,String> links;
+    ArrayList<String> group;
     long timestamp;
 
     public ProjectDescription() {
     }
 
-    public ProjectDescription(long id, String name, String description, Project project, ArrayList<Map<String, String>> links, ArrayList<StudentIdentifier> group, long timestamp) {
+    public ProjectDescription(long id, String name, String description, Project project, Map<String, String> links, ArrayList<String> group, long timestamp) {
         this.id = id;
         this.name = name;
         this.description = description;
@@ -65,19 +65,19 @@ public class ProjectDescription {
         this.project = project;
     }
 
-    public ArrayList<Map<String, String>> getLinks() {
+    public Map<String, String> getLinks() {
         return links;
     }
 
-    public void setLinks(ArrayList<Map<String, String>> links) {
+    public void setLinks(Map<String, String> links) {
         this.links = links;
     }
 
-    public ArrayList<StudentIdentifier> getGroup() {
+    public ArrayList<String> getGroup() {
         return group;
     }
 
-    public void setGroup(ArrayList<StudentIdentifier> group) {
+    public void setGroup(ArrayList<String> group) {
         this.group = group;
     }
 
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyJournalService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyJournalService.java
index eef3702d..5386c2ab 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyJournalService.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyJournalService.java
@@ -128,10 +128,15 @@ public class DummyJournalService implements JournalService {
         StudentIdentifier studentIdentifier2 = new StudentIdentifier("0","1");
 
         Journal j1 = new Journal(0,studentIdentifier,"test", cal.getTimeInMillis() , Visibility.ALL, "test1");
+        j1.setCreator("Test Test");
         Journal j2 = new Journal(1,studentIdentifier,"test2", cal.getTimeInMillis() , Visibility.NONE, "test2");
+        j2.setCreator("Test Test");
         Journal j3 = new Journal(2,studentIdentifier,"test3", cal.getTimeInMillis() , Visibility.GROUP, "test3");
+        j3.setCreator("Test Test");
         Journal j4 = new Journal(3,studentIdentifier,"test4", cal.getTimeInMillis() , Visibility.DOZENT ,"test4");
+        j4.setCreator("Test Test");
         Journal j5 = new Journal(4,studentIdentifier2,"test5", cal.getTimeInMillis() , Visibility.GROUP, "test5");
+        j5.setCreator("ASD DSA");
 
         journals = new ArrayList<>();
 
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyProjectDescription.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyProjectDescription.java
index ceb6e07d..62f1f2f6 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyProjectDescription.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyProjectDescription.java
@@ -13,24 +13,21 @@ import java.util.Map;
 public class DummyProjectDescription implements ProjectDescriptionService {
 
     ArrayList<Map<String,String>> links;
-    ArrayList<StudentIdentifier> group;
+    ArrayList<String> group;
     ProjectDescription testProject;
 
     public DummyProjectDescription(){
 
         links = new ArrayList();
-        HashMap<String,String> l1 = new HashMap<>();
-        HashMap<String,String> l2 = new HashMap<>();
-        l1.put("Test", "www.test.de");
-        l2.put("Google", "www.google.de");
-        links.add(l1);
-        links.add(l2);
+        HashMap<String,String> link = new HashMap<>();
+        link.put("Test", "www.test.de");
+        link.put("Google", "www.google.de");
 
         group = new ArrayList<>();
-        group.add(new StudentIdentifier("0","0"));
-        group.add(new StudentIdentifier("0","1"));
+        group.add("Test Person");
+        group.add("Person Test");
 
-        testProject = new ProjectDescription(0,"Test","Testdesription", new Project(), links, group, new Date().getTime());
+        testProject = new ProjectDescription(0,"Test","Testdesription", new Project(), link, group, new Date().getTime());
     }
 
 
diff --git a/gemeinsamforschen/src/main/webapp/pages/createJournal.html b/gemeinsamforschen/src/main/webapp/pages/createJournal.html
index 8ad322dc..451fa327 100644
--- a/gemeinsamforschen/src/main/webapp/pages/createJournal.html
+++ b/gemeinsamforschen/src/main/webapp/pages/createJournal.html
@@ -5,6 +5,8 @@
 
 	<link rel="stylesheet" type="text/css" href="../assets/css/create-journal.css">
 	<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/inscrybmde@1.11.3/dist/inscrybmde.min.css">
+	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
+    <script src="../assets/js/utility.js"></script>
 
 	<title>Tagebucheintrag erstellen</title>
 </head>
@@ -21,7 +23,7 @@
 
 		<div class = "journal-form-visibility">
 			Sichtbarkeit:
-			<select name="visibility" form="journalform">
+			<select id="visibility" name="visibility" form="journalform">
 				<option value="ALL"> Alle </option>
 				<option value="GROUP"> Gruppe </option>
 				<option value="DOZENT"> Dozent </option>
@@ -45,18 +47,48 @@
 
 		<div class="journal-form-buttons">
 			<input type="submit">
-			<button> Zurü &uuml; k </button>
+			<button> Zur&uuml;ck </button>
 		</div>
 
 	</div>
 </form>
 
 <script>
-    var editor = new InscrybMDE({
-        element: document.getElementById("editor"),
-        spellChecker: false,
-        forceSync: true,
-    });
+    /*
+*/
+    function getQueryVariable(variable)
+    {
+        var query = window.location.search.substring(1);
+        var vars = query.split("&");
+        for (var i=0;i<vars.length;i++) {
+            var pair = vars[i].split("=");
+            if(pair[0] == variable){return pair[1];}
+        }
+        return(false);
+    }
+
+    $(document).ready(function() {
+        var journalID = getQueryVariable("journal");
+        console.log(journalID);
+        if(journalID){
+            $.ajax({
+                url: "../rest/journal/"+journalID
+            }).then(function(data) {
+                $('#editor').append(data.entry);
+
+                //TODO preselet in select tags
+
+                new InscrybMDE({
+                    element: document.getElementById("editor"),
+                    spellChecker: false,
+                    forceSync: true,
+                });
+
+                console.log(data);
+
+            });
+        }
+    })
 </script>
 
 </body>
diff --git a/gemeinsamforschen/src/main/webapp/pages/eportfolio.html b/gemeinsamforschen/src/main/webapp/pages/eportfolio.html
index 00cce961..1729905c 100644
--- a/gemeinsamforschen/src/main/webapp/pages/eportfolio.html
+++ b/gemeinsamforschen/src/main/webapp/pages/eportfolio.html
@@ -5,6 +5,7 @@
     <title>E Portfolio</title>
 
     <link rel="stylesheet" type="text/css" href="../assets/css/eportfolio.css">
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
 
 </head>
 <body>
@@ -12,35 +13,18 @@
 <h1>E-Portfolio</h1>
 <div class="journal-description-container">
     <div class="journal-description-title">
-        <h2>Projektname</h2>
     </div>
     <div class="journal-description-edit">
         <button>ändern</button>
     </div>
     <div class="journal-description-text">
-        Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
-
-        Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
-
-        Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.
-
-        Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.
-
-        Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis.
-
-        At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur
     </div>
     <div class="journal-description-group">
         <h3>Gruppe</h3>
-        Test Testname<br/>
-        Test Testname<br/>
-        Test Testname<br/>
     </div>
     <div class="journal-description-links">
         <h3>Links</h3>
-        <a href="www.google.de">Test</a><br/>
-        <a href="www.google.de">Test</a><br/>
-        <a href="www.google.de">Test</a><br/>
+
     </div>
 
 </div>
@@ -53,26 +37,61 @@
 
     <a href="createJournal.html">Neu</a>
 
-<div class="journal-container">
-    <div class="journal-avatar">
-        BIld
-    </div>
+    <div class="journal">
 
-    <div class="journal-date">
-        01.01.2000
-    </div>
-    <div class="journal-name">
-        Max Mustermann
-    </div>
-    <div class="journal-category">
-        Methodik
-    </div>
-    <div class="journal-edit">
-        <button>ändern</button>
-    </div>
-    <div class="journal-text">
-        Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
     </div>
 </div>
+
+<script>
+
+    //TODO Get student and project form context
+
+    $(document).ready(function() {
+        $.ajax({
+            url: "../rest/prejectdescription/0"
+        }).then(function(data) {
+            $('.journal-description-title').append('<h2>' + data.name + '</h2>');
+            $('.journal-description-text').append(data.description);
+            for(var link in data.links){
+                $('.journal-description-links').append('<a href=' + data.links[link] + '>' + link + '</a><br/>');
+            }
+            for(var g in data.group){
+                $('.journal-description-group').append(data.group[g]+ '<br/>');
+
+            }
+        });
+
+        $.ajax({
+            url: "../rest/journal//journals/0/0"
+        }).then(function(data) {
+            for (var journal in data){
+                $('.journal').append(
+                    '<div class="journal-container"><div class="journal-avatar">' +
+                    'getBild'    +
+                    '</div><div class="journal-date"> ' +
+                    data[journal].creator +
+                    '</div><div class="journal-name">' +
+                    timestamptToDateString(data[journal].timestamp)  +
+                    '</div><div class="journal-category">' +
+                    data[journal].category +
+                    '</div><div class="journal-edit">' +
+                    '<a href="createJournal.html?journal='+ data[journal].id + '"><button>ändern</button></a>' +
+                    ' </div><div class="journal-text">' +
+                    data[journal].entry +
+                    '</div>')
+            }
+            console.log(data);
+
+        });
+
+    });
+
+    function timestamptToDateString(timestamp) {
+        var date = new Date(timestamp);
+        return date.toLocaleString("de-DE");
+    }
+
+
+</script>
 </body>
 </html>
\ No newline at end of file
-- 
GitLab