From eac08e17d88f485196058ddb20ff159afdfb5176 Mon Sep 17 00:00:00 2001
From: Thomas Schnaak <schnaak@uni-potsdam.de>
Date: Thu, 12 Jul 2018 11:04:37 +0200
Subject: [PATCH] fix: reload on Journal close

---
 .../model/ProjectDescriptionDAOImpl.java      |  7 ++
 .../service/DummyProjectDescription.java      | 65 -------------------
 .../service/ProjectDescriptionImpl.java       | 23 +++++--
 .../service/ProjectDescriptionService.java    |  6 +-
 .../gf/modules/journal/util/JournalUtils.java |  7 +-
 .../journal/view/ProjectDescriptionView.java  |  9 +--
 .../src/main/webapp/assets/js/e-portfolio.js  | 11 ++--
 7 files changed, 40 insertions(+), 88 deletions(-)
 delete mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyProjectDescription.java

diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescriptionDAOImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescriptionDAOImpl.java
index 6cda5c0e..6089ec8d 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescriptionDAOImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/model/ProjectDescriptionDAOImpl.java
@@ -1,12 +1,19 @@
 package unipotsdam.gf.modules.journal.model;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import unipotsdam.gf.core.database.mysql.MysqlConnect;
 import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
 import unipotsdam.gf.modules.journal.util.JournalUtils;
+import unipotsdam.gf.modules.journal.view.ProjectDescriptionView;
 
 import java.util.UUID;
 
 public class ProjectDescriptionDAOImpl implements ProjectDescriptionDAO {
+
+    private Logger log = LoggerFactory.getLogger(ProjectDescriptionDAOImpl.class);
+
+
     @Override
     public void createDescription(ProjectDescription projectDescription) {
         // create a new id
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
deleted file mode 100644
index 7fc9a5d8..00000000
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/DummyProjectDescription.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package unipotsdam.gf.modules.journal.service;
-
-import unipotsdam.gf.core.management.project.Project;
-import unipotsdam.gf.modules.journal.model.Link;
-import unipotsdam.gf.modules.journal.model.ProjectDescription;
-
-import java.lang.reflect.Array;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-
-public class DummyProjectDescription implements ProjectDescriptionService {
-
-    private ProjectDescription testProject;
-
-    public DummyProjectDescription(){
-
-        ArrayList<Link> links = new ArrayList<>();
-        links.add(new Link("0","0","Test", "www.test.de"));
-        links.add(new Link("0","0","Google", "www.google.de"));
-
-        ArrayList<String> group = new ArrayList<>();
-        group.add("Test Person");
-        group.add("Person Test");
-
-        String desc = " *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* \n" +
-                "\n" +
-                "**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.** \n" +
-                "\n" +
-                "![Bild](https://upload.wikimedia.org/wikipedia/commons/thumb/1/1c/FuBK_testcard_vectorized.svg/2000px-FuBK_testcard_vectorized.svg.png)\n" +
-                "\n" +
-                "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. \n" +
-                "\n" +
-                "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. ";
-
-        testProject = new ProjectDescription("0","Eine kreative Ãœberschrift",desc, "asd", links, group, new Date().getTime());
-    }
-
-
-    @Override
-    public ProjectDescription getProject(String project) {
-        return testProject;
-    }
-
-    @Override
-    public void saveProjectText(String text) {
-        testProject.setDescription(text);
-    }
-
-    @Override
-    public void addLink(String link, String name) {
-        //convert String to List
-        //setLinks
-    }
-
-    @Override
-    public void deleteLink(String link) {
-
-    }
-
-    @Override
-    public void closeDescription(String desc) {
-
-    }
-}
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java
index 17b2e1a7..7ec02b48 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionImpl.java
@@ -1,30 +1,39 @@
 package unipotsdam.gf.modules.journal.service;
 
-import unipotsdam.gf.modules.journal.model.ProjectDescription;
+import unipotsdam.gf.modules.journal.model.*;
 
 public class ProjectDescriptionImpl implements ProjectDescriptionService {
+
+    ProjectDescriptionDAO descriptionDAO = new ProjectDescriptionDAOImpl();
+    LinkDAO linkDAO = new LinkDAOImpl();
+
     @Override
     public ProjectDescription getProject(String project) {
-        return null;
+
+        return descriptionDAO.getDescription(project);
     }
 
     @Override
-    public void saveProjectText(String text) {
+    public void saveProjectText(String project, String text) {
 
+        ProjectDescription desc = getProject(project);
+        desc.setDescription(text);
+        descriptionDAO.updateDescription(desc);
     }
 
     @Override
-    public void addLink(String link, String name) {
-
+    public void addLink(String project, String link, String name) {
+        Link newLink = new Link("0",project,name,link);
+        linkDAO.addLink(newLink);
     }
 
     @Override
     public void deleteLink(String link) {
-
+        linkDAO.deleteLink(link);
     }
 
     @Override
     public void closeDescription(String desc) {
-
+        descriptionDAO.closeDescription(desc);
     }
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionService.java
index dfe3966f..a58f836c 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionService.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/service/ProjectDescriptionService.java
@@ -11,11 +11,11 @@ public interface ProjectDescriptionService {
 
     ProjectDescription getProject(String project);
 
-    void saveProjectText(String text);
+    void saveProjectText(String project, String text);
 
-    void addLink(String link, String name);
+    void addLink(String project, String link, String name);
 
     void deleteLink(String link);
 
-    void closeDescription(String desc);
+    void closeDescription(String project);
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/util/JournalUtils.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/util/JournalUtils.java
index 474bfbc1..6000fb28 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/util/JournalUtils.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/util/JournalUtils.java
@@ -67,9 +67,10 @@ public class JournalUtils {
         connection.connect();
 
         // build and execute request
-        String request = "SELECT COUNT(*) > 0 AS `exists` FROM ? WHERE id = ?;";
-        VereinfachtesResultSet rs = connection.issueSelectStatement(request,table, id);
-
+        //TODO Formatstring
+        String request = "SELECT COUNT(*) > 0 AS `exists` FROM " + table+ " WHERE id = ?;";
+        VereinfachtesResultSet rs = connection.issueSelectStatement(request,id);
+        log.debug("querry: " + rs.toString());
         if (rs.next()) {
             // save the response
             int count = rs.getInt("exists");
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java
index ba29c259..fd4db2c1 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/journal/view/ProjectDescriptionView.java
@@ -3,7 +3,7 @@ package unipotsdam.gf.modules.journal.view;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import unipotsdam.gf.modules.journal.model.ProjectDescription;
-import unipotsdam.gf.modules.journal.service.DummyProjectDescription;
+import unipotsdam.gf.modules.journal.service.ProjectDescriptionImpl;
 import unipotsdam.gf.modules.journal.service.ProjectDescriptionService;
 
 import javax.ws.rs.*;
@@ -22,7 +22,7 @@ import java.net.URISyntaxException;
 public class ProjectDescriptionView {
 
     private Logger log = LoggerFactory.getLogger(ProjectDescriptionView.class);
-    private ProjectDescriptionService descriptionService = new DummyProjectDescription();
+    private ProjectDescriptionService descriptionService = new ProjectDescriptionImpl();
 
     //get Description
     @GET
@@ -45,7 +45,7 @@ public class ProjectDescriptionView {
     public Response saveProjectText(@FormParam("student")String student,@FormParam("project")String project,@FormParam("text")String text){
         log.debug(">>> saveText: " + text);
 
-        descriptionService.saveProjectText(text);
+        descriptionService.saveProjectText("0",text);
 
         //TODO token
         try {
@@ -70,7 +70,7 @@ public class ProjectDescriptionView {
     public Response addLink(@FormParam("link") String link, @FormParam("name") String name){
         log.debug(">>> addLink: " + name + ":" + link);
 
-        descriptionService.addLink(link, name );
+        descriptionService.addLink("0",link, name );
 
 
         try {
@@ -115,6 +115,7 @@ public class ProjectDescriptionView {
     //close descr
     @POST
     @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.TEXT_PLAIN)
     @Path("/close")
     public Response closeDescription(String desc){
         log.debug(">>> closeDescription: " + desc);
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/e-portfolio.js b/gemeinsamforschen/src/main/webapp/assets/js/e-portfolio.js
index 90c909ee..45d3585a 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/e-portfolio.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/e-portfolio.js
@@ -11,8 +11,9 @@ $(document).ready(function() {
     });
 
     $.ajax({
-        url: "../rest/projectdescription/0"
+        url: "../rest/projectdescription/test"
     }).then(function(data) {
+        console.log("desc: " + data);
         $('.journal-description-title').append('<h2>' + data.name + '</h2>');
         $('.journal-description-text').append(data.descriptionHTML);
         for(var link in data.links){
@@ -99,7 +100,6 @@ function loadJournals(data) {
         $('.journal').append(journalString)
     }};
 
-
 function linkLoeschen(name) {
     console.log("löschen" + name);
     $.ajax({
@@ -128,12 +128,11 @@ function closeJournal() {
         data: journalID,
         contentType: "application/json; charset=utf-8",
         crossDomain: true,
-        dataType: "json",
+        dataType: "text",
         success: function (data, status, jqXHR) {
-
+            console.log("succ");
+            filterJournals();
 
         }
-
     });
-    filterJournals();
 }
\ No newline at end of file
-- 
GitLab