From 601fd4ff22f8a15a4cafa13ef65926d0b8864c5b Mon Sep 17 00:00:00 2001
From: Axel <wiepke@uni-potsdam.de>
Date: Fri, 7 Sep 2018 14:16:38 +0200
Subject: [PATCH] feat: phaseSelection works for docent. Student can see phase.
 Menu is effected. beaut: pageAppearence is an own package now containing menu
 headLine footer and omniDependencies.

---
 .../gf/core/management/ManagementImpl.java    |   9 +-
 .../core/management/pageAppearance/Menu.java  | 112 ++++++++++++++++++
 .../management/pageAppearance/footer.java     |  54 +++++++++
 .../{user => pageAppearance}/headLine.java    |  10 +-
 .../omniDependencies.java                     |  16 +--
 .../gf/core/management/project/Project.java   |   6 +-
 .../gf/core/management/user/Menu.java         |  68 -----------
 .../gf/core/management/user/footer.java       |  29 -----
 .../unipotsdam/gf/core/states/PhasesImpl.java |  12 +-
 .../gf/core/states/PhasesService.java         |  11 +-
 .../gf/core/states/ProjectPhase.java          |   2 +-
 .../assessment/controller/view/QuizView.java  |   5 +-
 .../src/main/webapp/assets/css/footer.css     |  31 ++---
 .../src/main/webapp/assets/img/noImg.png      | Bin 0 -> 4496 bytes
 .../src/main/webapp/assets/js/changePhase.js  |  43 ++++++-
 .../main/webapp/assets/js/finalAssessment.js  |   2 +-
 .../src/main/webapp/assets/js/footer.js       |  30 +----
 .../src/main/webapp/assets/js/profile.js      |  49 ++++++++
 .../src/main/webapp/assets/js/utility.js      |  10 +-
 .../webapp/core/pages/gemeinsamForschen.tld   |   8 +-
 .../core/pages/gemeinsamForschen.tld.orig     |   6 +-
 .../src/main/webapp/pages/changePhase.jsp     |  22 ++--
 .../src/main/webapp/pages/profile.jsp         |  14 ++-
 23 files changed, 339 insertions(+), 210 deletions(-)
 create mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/Menu.java
 create mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/footer.java
 rename gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/{user => pageAppearance}/headLine.java (95%)
 rename gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/{user => pageAppearance}/omniDependencies.java (73%)
 delete mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java
 delete mode 100644 gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/footer.java
 create mode 100644 gemeinsamforschen/src/main/webapp/assets/img/noImg.png
 create mode 100644 gemeinsamforschen/src/main/webapp/assets/js/profile.js

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 c86b8aa6..5b51d0fd 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/ManagementImpl.java
@@ -171,8 +171,10 @@ public class ManagementImpl implements Management {
         String adminPassword = vereinfachtesResultSet.getString("adminpassword");
         String token = vereinfachtesResultSet.getString("token");
         String phase = vereinfachtesResultSet.getString("phase");
-
-        return new Project(id, password, active, timestamp, author, adminPassword, token);
+        Project project = new Project(id, password, active, timestamp, author, adminPassword, token);
+        ProjectPhase projectPhase = ProjectPhase.valueOf(phase);
+        project.setPhase(projectPhase);
+        return project;
     }
 
     private Group getGroupFromResultSet(VereinfachtesResultSet vereinfachtesResultSet) {
@@ -236,6 +238,9 @@ public class ManagementImpl implements Management {
 
     @Override
     public Project getProjectById(String id) {
+        if (id == null){
+            return null;
+        }
         MysqlConnect connect = new MysqlConnect();
         connect.connect();
         String mysqlRequest = "SELECT * FROM projects where id = ?";
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/Menu.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/Menu.java
new file mode 100644
index 00000000..894babb0
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/Menu.java
@@ -0,0 +1,112 @@
+package unipotsdam.gf.core.management.pageAppearance;
+
+import unipotsdam.gf.core.management.ManagementImpl;
+import unipotsdam.gf.core.management.user.User;
+import unipotsdam.gf.core.states.ProjectPhase;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspWriter;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.tagext.SimpleTagSupport;
+import java.io.IOException;
+
+public class Menu extends SimpleTagSupport {
+    public void doTag() throws IOException {
+        PageContext pageContext = (PageContext) getJspContext();
+        HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
+        String token = request.getParameter("token");
+        String projectId = request.getParameter("projectId");
+        ManagementImpl management = new ManagementImpl();
+        ProjectPhase projectPhase;
+        try{
+            projectPhase = management.getProjectById(projectId).getPhase();
+        }catch(Exception e){
+            projectPhase = null;
+        }
+        JspWriter out = getJspContext().getOut();
+        if (token!=null){
+            User user =  management.getUserByToken(token);
+            Boolean isStudent = user.getStudent();
+            if (isStudent){
+                String menuString = "<div id=\"sidebar-wrapper\">\n" +
+                        "        <ul class=\"sidebar-nav\">\n" +
+                        "            <li class=\"sidebar-brand\"><a href=\"overview-student.jsp?token="+token+"&projectId="+projectId+"\">overview</a></li>\n" +
+                        "            <li><a href=\"profile.jsp?token="+token+"&projectId="+projectId+"\">Profil</a></li>\n";
+                if (projectPhase!=null){
+                    if (projectPhase.equals(ProjectPhase.CourseCreation)){
+                        menuString += "      <li><p>Quizfrage</p></li>\n" +
+                                "            <li><a href=\"eportfolio.jsp?token="+token+"&projectId="+projectId+"\">ePortfolio</a></li>\n" +
+                                "            <li><p>Beitrag</p></li>\n" +
+                                "            <li><p>Bewertung</p></li>\n";
+                    }
+                    if (projectPhase.equals(ProjectPhase.GroupFormation)){
+                        menuString += "      <li><p>Quizfrage</p></li>\n" +
+                                "            <li><a href=\"eportfolio.jsp?token="+token+"&projectId="+projectId+"\">ePortfolio</a></li>\n" +
+                                "            <li><p>Beitrag</p></li>\n" +
+                                "            <li><p>Bewertung</p></li>\n";
+                    }
+                    if (projectPhase.equals(ProjectPhase.DossierFeedback)){
+                        menuString += "      <li><p>Quizfrage</p></li>\n" +
+                                "            <li><a href=\"eportfolio.jsp?token="+token+"&projectId="+projectId+"\">ePortfolio</a></li>\n" +
+                                "            <li><a href=\"researchReportTitle.jsp?token="+token+"&projectId="+projectId+"\">Beitrag</a></li>\n" +
+                                "            <li><p>Bewertung</p></li>\n";
+                    }
+                    if (projectPhase.equals(ProjectPhase.Execution)){
+                        menuString += "      <li><a href=\"Quiz.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" +
+                                "            <li><a href=\"eportfolio.jsp?token="+token+"&projectId="+projectId+"\">ePortfolio</a></li>\n" +
+                                "            <li><a href=\"researchReportTitle.jsp?token="+token+"&projectId="+projectId+"\">Beitrag</a></li>\n" +
+                                "            <li><p>Bewertung</p></li>\n";
+                    }
+                    if (projectPhase.equals(ProjectPhase.Assessment)){
+                        menuString += "      <li><p>Quizfrage</p></li>\n" +
+                                "            <li><p>ePortfolio</p></li>\n" +
+                                "            <li><p>Beitrag</p></li>\n" +
+                                "            <li><a id=\"assessment\" style=\"cursor:pointer\">Bewertung</a></li>\n";
+                    }
+                }
+
+                menuString +="<li>" +
+                        "<a id=\"logout\" style=\"cursor:pointer\">Logout</a></li>\n" +
+                        "</ul>\n" +
+                        "    </div>";
+                out.println(menuString);
+                out.println("<p id=\"userRole\" hidden>isStudent</p>");
+            } else {
+                String menuString ="<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";
+                if (projectPhase!=null) {
+                    if (!projectPhase.equals(ProjectPhase.GroupFormation)) {
+                        menuString += "<li><a href=\"Quiz-docent.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" +
+                                "      <li><p>Gruppen erstellen</p></li>\n" +
+                                "      <li><a href=\"changePhase.jsp?token="+token+"&projectId="+projectId+"\">Projektphase ändern</a></li>\n";
+                    }else {
+                        menuString += "<li><a href=\"Quiz-docent.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" +
+                                "      <li><a href=\"createGroups.jsp?token="+token+"&projectId="+projectId+"\">Gruppen erstellen</a></li>\n" +
+                                "      <li><a href=\"changePhase.jsp?token="+token+"&projectId="+projectId+"\">Projektphase ändern</a></li>\n";
+                    }
+                }
+                menuString +="<li><a id=\"logout\" style=\"cursor:pointer\">Logout</a></li>\n" +
+                        "</ul>\n" +
+                        "    </div>";
+                out.println(menuString);
+                out.println("<p id=\"userRole\" hidden>isDocent</p>");
+            }
+        }else{
+            out.println("<div class='alert alert-warning'>" +
+                    "You probably did not give the token to the url" +
+                    "</div>");
+            //in active System this will be the point to redirect to index.jsp, because token is "wrong"
+        }
+        if (projectId!=null)
+            out.println("<p id=\"projectId\" hidden>"+projectId+"</p>");
+        User user = management.getUserByToken(token);
+        if (user != null)
+            out.println("<p id=\"user\" hidden>"+user.getName()+"</p>");
+
+
+
+    }
+
+
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/footer.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/footer.java
new file mode 100644
index 00000000..29d366cb
--- /dev/null
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/footer.java
@@ -0,0 +1,54 @@
+package unipotsdam.gf.core.management.pageAppearance;
+
+import unipotsdam.gf.core.management.ManagementImpl;
+import unipotsdam.gf.core.states.ProjectPhase;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.jsp.JspWriter;
+import javax.servlet.jsp.PageContext;
+import javax.servlet.jsp.tagext.SimpleTagSupport;
+import java.io.IOException;
+
+public class footer extends SimpleTagSupport {
+    public void doTag() throws IOException {
+        PageContext pageContext = (PageContext) getJspContext();
+        HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
+        String projectId = request.getParameter("projectId");
+        ManagementImpl management = new ManagementImpl();
+        ProjectPhase projectPhase;
+        try {
+            projectPhase = management.getProjectById(projectId).getPhase();
+        } catch (Exception e) {
+            projectPhase = null;
+        }
+        JspWriter out = getJspContext().getOut();
+        String footerString = "<footer>\n" +
+                "        <div class=\"container\">\n";
+        if (projectPhase != null) {
+            footerString += "        <div class=\"progress\">\n" +
+                    "                <div class=\"progress-bar pg-" + projectPhase.toString().trim() + "\" role=\"progressbar\" id=\"progressbar\">\n" +
+                    "                </div>\n" +
+                    "                <div>\n";
+            if (projectPhase.equals(ProjectPhase.GroupFormation))
+                footerString +="  GroupFormation\n";
+            if (projectPhase.equals(ProjectPhase.Execution))
+                footerString +="  Execution\n";
+            if (projectPhase.equals(ProjectPhase.Assessment))
+                footerString +="  Assessment\n";
+            if (projectPhase.equals(ProjectPhase.DossierFeedback))
+                footerString +="  DossierFeedback\n";
+            if (projectPhase.equals(ProjectPhase.Projectfinished))
+                footerString +="  Projectfinished\n";
+            footerString +="        </div>\n" +
+                    "                <div class=\"progress-bar pg-rest\" role=\"progressbar\">\n" +
+                    "                </div>\n" +
+                    "            </div>\n";
+        }
+
+        footerString += "<button id=\"btnUnstructuredUpload\" class=\"btn btn-light\">Unstrukturierte Abgabe</button>\n" +
+                "<button id=\"footerBack\" class=\"btn btn-light\">zurück</button>\n" +
+                "        </div>\n" +
+                "    </footer>";
+        out.println(footerString);
+    }
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/headLine.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/headLine.java
similarity index 95%
rename from gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/headLine.java
rename to gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/headLine.java
index 087a26f8..36f2e74b 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/headLine.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/headLine.java
@@ -1,16 +1,16 @@
-package unipotsdam.gf.core.management.user;
+package unipotsdam.gf.core.management.pageAppearance;
 
 import unipotsdam.gf.core.management.ManagementImpl;
+import unipotsdam.gf.core.management.user.User;
 
 import javax.servlet.http.HttpServletRequest;
-import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.JspWriter;
 import javax.servlet.jsp.PageContext;
 import javax.servlet.jsp.tagext.SimpleTagSupport;
 import java.io.IOException;
 
 public class headLine extends SimpleTagSupport {
-    public void doTag() throws JspException, IOException {
+    public void doTag() throws IOException {
         PageContext pageContext = (PageContext) getJspContext();
         HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
         String projectId = request.getParameter("projectId");
@@ -58,6 +58,4 @@ public class headLine extends SimpleTagSupport {
                 "            </table>\n" +
                 "        </div>");
     }
-
-
-};
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/omniDependencies.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/omniDependencies.java
similarity index 73%
rename from gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/omniDependencies.java
rename to gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/omniDependencies.java
index e4b3272b..ac6ce6fc 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/omniDependencies.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/pageAppearance/omniDependencies.java
@@ -1,17 +1,11 @@
-package unipotsdam.gf.core.management.user;
+package unipotsdam.gf.core.management.pageAppearance;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.jsp.JspException;
 import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.PageContext;
 import javax.servlet.jsp.tagext.SimpleTagSupport;
 import java.io.IOException;
 
 public class omniDependencies extends SimpleTagSupport {
-    public void doTag() throws JspException, IOException {
-        PageContext pageContext = (PageContext) getJspContext();
-        HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
-        String projectId = request.getParameter("projectId");
+    public void doTag() throws IOException {
         JspWriter out = getJspContext().getOut();
         out.println("<meta charset=\"utf-8\">\n" +
                 "    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n" +
@@ -28,8 +22,6 @@ public class omniDependencies extends SimpleTagSupport {
                 "    <script src=\"../assets/js/utility.js\"></script>\n" +
                 "    <script src=\"../assets/js/footer.js\"></script>\n" +
                 "    <link rel=\"stylesheet\" href=\"https://use.fontawesome.com/releases/v5.1.0/css/all.css\"\n" +
-                "          integrity=\"sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt\" crossorigin=\"anonymous\">");
+                "      integrity=\"sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt\" crossorigin=\"anonymous\">");
     }
-
-
-};
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java
index 2fb7b840..b3295333 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/project/Project.java
@@ -19,7 +19,7 @@ public class Project {
     private String adminPassword;
     private String token;
     // using enum ProjectPhase
-    private String phase;
+    private ProjectPhase phase;
 
     public Project() {
     }
@@ -35,7 +35,7 @@ public class Project {
         this.setPhase(ProjectPhase.CourseCreation);
     }
 
-    public String getPhase() {
+    public ProjectPhase getPhase() {
         return phase;
     }
 
@@ -44,7 +44,7 @@ public class Project {
      * @param phase
      */
     public void setPhase(ProjectPhase phase) {
-        this.phase = phase.name();
+        this.phase = phase;
     }
 
     public Project(String id, String password, Boolean active, String author, String adminPassword, String token) {
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
deleted file mode 100644
index 15f21c51..00000000
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package unipotsdam.gf.core.management.user;
-
-import unipotsdam.gf.core.management.ManagementImpl;
-import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.PageContext;
-import javax.servlet.jsp.tagext.SimpleTagSupport;
-import java.io.IOException;
-
-
-// TODO: please move this to a view package at the top of the hierarchy as this is not part of the user package
-public class Menu extends SimpleTagSupport {
-    public void doTag() throws JspException, IOException {
-        PageContext pageContext = (PageContext) getJspContext();
-        HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
-        String token = request.getParameter("token");
-        String projectId = request.getParameter("projectId");
-        ManagementImpl management = new ManagementImpl();
-        JspWriter out = getJspContext().getOut();
-        if (token!=null){
-            User user =  management.getUserByToken(token);
-            Boolean isStudent = user.getStudent();
-            if (isStudent){
-                out.println("<div id=\"sidebar-wrapper\">\n" +
-                        "        <ul class=\"sidebar-nav\">\n" +
-                        "            <li class=\"sidebar-brand\"><a href=\"overview-student.jsp?token="+token+"&projectId="+projectId+"\">overview</a></li>\n" +
-                        "            <li><a href=\"profile.jsp?token="+token+"&projectId="+projectId+"\">Profil</a></li>\n" +
-                        "            <li><a href=\"Quiz.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" +
-                        "            <li><a href=\"eportfolio.jsp?token="+token+"&projectId="+projectId+"\">ePortfolio</a></li>\n" +
-                        "            <li><a href=\"researchReportTitle.jsp?token="+token+"&projectId="+projectId+"\">Beitrag</a></li>\n" +
-                        "            <li><a id=\"assessment\">Bewertung</a></li>\n" +
-                        "            <li><a id=\"logout\">Logout</a></li>\n" +
-                        "        </ul>\n" +
-                        "    </div>");
-                out.println("<p id=\"userRole\" hidden>isStudent</p>");
-            } else {
-                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-docent.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" +
-                        "            <li><a href=\"createGroups.jsp?token="+token+"&projectId="+projectId+"\">Gruppen erstellen</a></li>\n" +
-                        "            <li><a href=\"changePhase.jsp?token="+token+"&projectId="+projectId+"\">Projektphase ändern</a></li>\n" +
-                        "            <li><a id=\"logout\">Logout</a></li>\n" +
-                        "        </ul>\n" +
-                        "    </div>");
-                out.println("<p id=\"userRole\" hidden>isDocent</p>");
-            }
-        }else{
-            out.println("<div class='alert alert-warning'>" +
-                    "You probably did not give the token to the url" +
-                    "</div>");
-            //in active System this will be the point to redirect to index.jsp, because token is "wrong"
-        }
-        if (projectId!=null)
-            out.println("<p id=\"projectId\" hidden>"+projectId+"</p>");
-        User user = management.getUserByToken(token);
-        if (user != null)
-            out.println("<p id=\"user\" hidden>"+user.getName()+"</p>");
-
-
-
-    }
-
-
-}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/footer.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/footer.java
deleted file mode 100644
index fad401c7..00000000
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/footer.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package unipotsdam.gf.core.management.user;
-
-import javax.servlet.jsp.JspException;
-import javax.servlet.jsp.JspWriter;
-import javax.servlet.jsp.tagext.SimpleTagSupport;
-import java.io.IOException;
-
-public class footer extends SimpleTagSupport {
-    public void doTag() throws JspException, IOException {
-        JspWriter out = getJspContext().getOut();
-        out.println("<footer>\n" +
-                "        <div class=\"container\">\n" +
-                "            <div class=\"progress\">\n" +
-                "                <div class=\"progress-bar pg-groups\" role=\"progressbar\" id=\"progressbar\">\n" +
-                "                </div>\n" +
-                "                <div>\n" +
-                "                    Assessment - Präsentationsphase - Dossier - Reflexionsphase - Feedbackphase - Gruppenbildung\n" +
-                "                </div>\n" +
-                "                <div class=\"progress-bar pg-rest\" role=\"progressbar\">\n" +
-                "                </div>\n" +
-                "            </div>\n" +
-                "            <button id=\"nextPhase\" class=\"btn btn-light\">nächste Phase</button>\n" +
-                "            <button id=\"btnUnstructuredUpload\" class=\"btn btn-light\">Unstrukturierte Abgabe</button>\n" +
-                "        </div>\n" +
-                "    </footer>");
-    }
-
-
-};
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesImpl.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesImpl.java
index 7bcf8a20..ed289b31 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesImpl.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesImpl.java
@@ -46,16 +46,16 @@ public class PhasesImpl implements IPhases {
     }
 
     @Override
-    public void endPhase(ProjectPhase currentPhase, Project project) {
-        switch (currentPhase) {
+    public void endPhase(ProjectPhase changeToPhase, Project project) {
+        switch (changeToPhase) {
             case CourseCreation:
                 // saving the state
-                saveState(project,getNextPhase(currentPhase));
+                saveState(project,changeToPhase);
                 break;
             case GroupFormation:
                 // inform users about the formed groups, optionally giving them a hint on what happens next
                 iCommunication.sendMessageToUsers(project, Messages.GroupFormation(project));
-                saveState(project,getNextPhase(currentPhase));
+                saveState(project,changeToPhase);
                 break;
             case DossierFeedback:
                 // check if everybody has uploaded a dossier
@@ -65,7 +65,7 @@ public class PhasesImpl implements IPhases {
                 } else {
                     // send a message to the users informing them about the start of the new phase
                     iCommunication.sendMessageToUsers(project, Messages.NewFeedbackTask(project));
-                    saveState(project,getNextPhase(currentPhase));
+                    saveState(project,changeToPhase);
                 }
                 break;
             case Execution:
@@ -74,7 +74,7 @@ public class PhasesImpl implements IPhases {
                 if (portfoliosReady) {
                     // inform users about the end of the phase
                     iCommunication.sendMessageToUsers(project, Messages.AssessmentPhaseStarted(project));
-                    saveState(project,getNextPhase(currentPhase));
+                    saveState(project,changeToPhase);
                 } else {
                     iJournal.assignMissingPortfolioTasks(project);
                 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java
index 6e4a0b1d..c0d45a75 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/PhasesService.java
@@ -1,6 +1,7 @@
 package unipotsdam.gf.core.states;
 
 import unipotsdam.gf.core.management.Management;
+import unipotsdam.gf.core.management.ManagementImpl;
 import unipotsdam.gf.core.management.project.Project;
 import unipotsdam.gf.interfaces.IPhases;
 
@@ -15,11 +16,9 @@ import javax.ws.rs.core.MediaType;
 @Path("/phases")
 public class PhasesService  {
 
-    @Inject
-    private IPhases phases;
+    private IPhases phases = new PhasesImpl();
 
-    @Inject
-    private Management management;
+    private Management management = new ManagementImpl();
 
     /**
      * end phase
@@ -40,8 +39,8 @@ public class PhasesService  {
      */
     @Path("/projects/{projectId}")
     @GET
-    @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+    @Produces({MediaType.TEXT_PLAIN})
     public String getCurrentPhase(@PathParam("projectId") String projectId) {
-        return management.getProjectById(projectId).getPhase();
+        return management.getProjectById(projectId).getPhase().toString();
     }
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/ProjectPhase.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/ProjectPhase.java
index 328b415f..ba8bffad 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/ProjectPhase.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/states/ProjectPhase.java
@@ -2,5 +2,5 @@ package unipotsdam.gf.core.states;
 
 public enum ProjectPhase {
     CourseCreation, GroupFormation, DossierFeedback, Execution, Assessment,
-    Projectfinished;
+    Projectfinished
 }
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 ece31e17..1a484981 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
@@ -1,10 +1,14 @@
 package unipotsdam.gf.modules.assessment.controller.view;
 
+import unipotsdam.gf.core.management.Management;
+import unipotsdam.gf.core.management.ManagementImpl;
 import unipotsdam.gf.interfaces.IPeerAssessment;
+import unipotsdam.gf.interfaces.IPhases;
 import unipotsdam.gf.modules.assessment.QuizAnswer;
 import unipotsdam.gf.modules.assessment.controller.model.*;
 import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment;
 
+import javax.inject.Inject;
 import javax.ws.rs.*;
 import javax.ws.rs.core.MediaType;
 import java.io.IOException;
@@ -210,5 +214,4 @@ public class QuizView {
         result.add(pf2);
         return result;
     }  /////////dummy////////////returns what i expect it to return!!!!!//////////////////////////////////
-
 }
diff --git a/gemeinsamforschen/src/main/webapp/assets/css/footer.css b/gemeinsamforschen/src/main/webapp/assets/css/footer.css
index 2e2c0e22..beb5cbc6 100644
--- a/gemeinsamforschen/src/main/webapp/assets/css/footer.css
+++ b/gemeinsamforschen/src/main/webapp/assets/css/footer.css
@@ -2,42 +2,37 @@
     background:#DDDDDD;
 }
 
-.pg-enrollment {
+.pg-CourseCreation {
     background: #777777;
     width:5%;
 }
 
-.pg-groups {
+.pg-GroupFormation {
     background: #AAAA77;
     width:15%;
 }
 
-.pg-dossier {
+.pg-test {
+    background: #4F3A3E;
+    width: 50%;
+}
+
+.pg-DossierFeedback {
     background: #AA77AA;
     width:30%;
 }
 
-.pg-feedback {
+.pg-Execution {
     background: #77AAAA;
-    width:45%;
-}
-
-.pg-reflection {
-    background: #55AA55;
-    width:60%;
-}
-
-.pg-presentation {
-    background: #5555AA;
-    width:70%;
+    width:55%;
 }
 
-.pg-assessment {
+.pg-Assessment {
     background: #AA5555;
-    width:85%;
+    width:75%;
 }
 
-.pg-done {
+.pg-Projectfinished {
     background: #34DD44;
     width:100%;
 }
diff --git a/gemeinsamforschen/src/main/webapp/assets/img/noImg.png b/gemeinsamforschen/src/main/webapp/assets/img/noImg.png
new file mode 100644
index 0000000000000000000000000000000000000000..efc3eb6959ce4f5badd7802c54bccfeccbf2ecf3
GIT binary patch
literal 4496
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%0Da^H#-9k)iqJh$-KBLZ#|E#Kuhign9Aa6
zUBg`{AO56~)3^AsdvuP2bu&S{RMbkkw$stCmeXY0(6l%L?PT=zkan4F_y@trJe6W~
z8k0kI^O>Xc?L#x1mURsQ^5~PJues}^B%ImPhTDle9U%FgFlzzcvXV0|lOiKDYU{IS
zsY5m*XQlbj*_c}z#^+!?ml6NMT#!eKQriq_F+%&ZZ;WKZ0^GF?ik*y+ej!jx_)Us{
z9KX{Kexga@Pg(&Cox{gpG80rD5*M%1M{2Uoq6IcNLwPloOK;F<2)Jz=GuFAxiO~$O
z2Gb8DK){lF6I_${^eIJ~bOL0``q*u7KnbKm<>bUeu?ie0`JGoyK}+4DHD(+%6=Vob
zhN;H>DOwyGTNNgv0Fj^IH@`!tntDvfJQXSF*@Ky|toWd;&UGPT6JH0v4c~;#?HHU-
zcxLCibH*nZ5@$Uj>e<~qNpooXB`tq+Icg0j(KjbGy5{`qiz6wM=wKz1l&a)ervdPk
zrGNvI_$NONt7E)nVSFPd$G)2Nl9IPS8<WDsOwp3{E?bQq$wf1+uZQKWMy*LjZwgYS
z)ap{5y}?b~9SkGqQhmp>J<-uH<*HfQyQ$8n_V3Xlp}AJ079@$ZBK9)=)w}8$z$VTP
zMB-9XsE6`~<b>{PQ!fcwbca+c425l0pIQiWD1MhgkpG&1ZFZ=c<pG6C={*#K@#)D1
zNk`UNvVMwEK>DddXPA`#b}Br#k=K|*8<ZRph&TNQQ+qDI8*0i9&G!6kKxz&1KQRt2
zEgH(t*o?H5U`3<uxVz8kuPjlM??)=aa0X6(cVBhEkGnbi$O8q!1i|L<)6?hmYPvfu
z1RHQF|Kz5dRV!twJFsHPA1xc7GqENfOWT6Ea^V*fAw?x7_mA~1mL>1k?%@sls1HaM
zt;h8)*=`tuK||_;vNmX2L$Aq^+c81L(zYzfYuF`GQ@pG|fa43}V%PtY#F!YGVOs48
zz(%SxhH62wsME@hsOWu!e%OmE2epJlEs?$leP4K0!jXQ37+|C%47u6g-@j~o({w^i
z^#tnmjMivDlGO@eGuO<v4off3%A!rp!pV!85j>ACuwS`?R!gcFD<7gv5_Qq{_#4?{
z$jJn8-RZ2k9JLKzxG#1)j$lKd&RO){DS>1_tjhwb$;-<>(aMm3H9bM0P_rcWH(VGC
lb`dS-budw07>xfz*O}z>+!YW|K>J0ZGuF2N)#<v${12Vd-7)|G

literal 0
HcmV?d00001

diff --git a/gemeinsamforschen/src/main/webapp/assets/js/changePhase.js b/gemeinsamforschen/src/main/webapp/assets/js/changePhase.js
index f26618fd..d35d4ceb 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/changePhase.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/changePhase.js
@@ -1,5 +1,4 @@
 $(document).ready(function () {
-    //$("#save").on('click', function () {
     let projectId = $('#projectId').html().trim();
     $.ajax({
         url: '../rest/phases/projects/'+projectId,
@@ -11,15 +10,49 @@ $(document).ready(function () {
         success: function (response) {
             let phaseDiv = $('#'+response);
             if (phaseDiv !== null){
-                phaseDiv.toggleClass('alert','alert-info');
+                phaseDiv.toggleClass('alert-info');
             } else {
-                $('#end').addClass('alert-info');
+                $('#end').toggleClass('alert-info');
             }
+        },
+        error: function (a) {
 
+        }
+    });
+    $('#btnAssessment').on('click', function(){
+        changePhase('Assessment');
+    });
+    $('#btnExecution').on('click', function(){
+        changePhase('Execution');
+    });
+    $('#btnGroupformation').on('click', function(){
+        changePhase('GroupFormation');
+    });
+    $('#btnCourseCreation').on('click', function(){
+        changePhase('CourseCreation');
+    });
+    $('#btnDossierFeedback').on('click', function(){
+        changePhase('DossierFeedback');
+    });
+    $('#btnProjectfinished').on('click', function(){
+        changePhase('Projectfinished');
+    });
+});
+
+function changePhase(toPhase){
+    let projectId = $('#projectId').html().trim();
+    $.ajax({
+        url: '../rest/phases/'+toPhase+'/projects/'+projectId,
+        headers: {
+            "Content-Type": "application/json",
+            "Cache-Control": "no-cache"
+        },
+        type: 'POST',
+        success: function () {
+            location.href="#"
         },
         error: function (a) {
 
         }
     });
-    //});
-});
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
index bbfabe45..0f57c3be 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
@@ -36,7 +36,7 @@ function buildTablesForPeers() {
                     let innerPeerTable = '<table class="table-striped peerStudent" id="' + peers[peer] + '">' +
                         '<tr>' +
                         '<td align="center">' +
-                        '<img src="../assets/img/1.jpg" alt="' + peers[peer] + '" style="width:20%;">' +
+                        '<img src="../assets/img/noImg.png" alt="' + peers[peer] + '" style="width:20%;">' +
                         '</td>' +
                         '</tr>' +
                         '<tr>' +
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/footer.js b/gemeinsamforschen/src/main/webapp/assets/js/footer.js
index 33e3ada6..9407ef60 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/footer.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/footer.js
@@ -1,31 +1,3 @@
 $(document).ready(function(){
-    $('#nextPhase').click(function(){
-        var progressbar =$('#progressbar');
-        switch (progressbar.attr('class')){
-            case 'progress-bar pg-groups':
-                progressbar.removeClass('pg-groups');
-                progressbar.addClass('pg-dossier');
-                break;
-            case 'progress-bar pg-dossier':
-                progressbar.removeClass('pg-dossier');
-                progressbar.addClass('pg-feedback');
-                break;
-            case 'progress-bar pg-feedback':
-                progressbar.removeClass('pg-feedback');
-                progressbar.addClass('pg-reflection');
-                break;
-            case 'progress-bar pg-reflection':
-                progressbar.removeClass('pg-reflection');
-                progressbar.addClass('pg-presentation');
-                break;
-            case 'progress-bar pg-presentation':
-                progressbar.removeClass('pg-presentation');
-                progressbar.addClass('pg-assessment');
-                break;
-            case 'progress-bar pg-assessment':
-                progressbar.removeClass('pg-assessment');
-                progressbar.addClass('pg-done');
-                break;
-        }
-    });
+
 });
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/profile.js b/gemeinsamforschen/src/main/webapp/assets/js/profile.js
new file mode 100644
index 00000000..7caac595
--- /dev/null
+++ b/gemeinsamforschen/src/main/webapp/assets/js/profile.js
@@ -0,0 +1,49 @@
+$(document).ready(function (e) {
+    $("#uploadimage").on('submit',(function(e) {
+        e.preventDefault();
+        $("#message").empty();
+        $('#loading').show();
+        $.ajax({
+            url: "ajax_php_file.php", // Url to which the request is send
+            type: "POST",             // Type of request to be send, called as method
+            data: new FormData(this), // Data sent to server, a set of key/value pairs (i.e. form fields and values)
+            contentType: false,       // The content type used when sending data to the server.
+            cache: false,             // To unable request pages to be cached
+            processData:false,        // To send DOMDocument or non processed data file it is set to false
+            success: function(data)   // A function to be called if request succeeds
+            {
+                $('#loading').hide();
+                $("#message").html(data);
+            }
+        });
+    }));
+
+// Function to preview image after validation
+    $(function() {
+        $("#file").change(function() {
+            $("#message").empty(); // To remove the previous error message
+            let file = this.files[0];
+            let imagefile = file.type;
+            let match= ["image/jpeg","image/png","image/jpg"];
+            if(!((imagefile==match[0]) || (imagefile==match[1]) || (imagefile==match[2])))
+            {
+                $('#previewing').attr('src','noimage.png');
+                $("#message").html("<p id='error'>Please Select A valid Image File</p>"+"<h4>Note</h4>"+"<span id='error_message'>Only jpeg, jpg and png Images type allowed</span>");
+                return false;
+            }
+            else
+            {
+                var reader = new FileReader();
+                reader.onload = imageIsLoaded;
+                reader.readAsDataURL(this.files[0]);
+            }
+        });
+    });
+    function imageIsLoaded(e) {
+        $("#file").css("color","green");
+        $('#image_preview').css("display", "block");
+        $('#previewing').attr('src', e.target.result);
+        $('#previewing').attr('width', '250px');
+        $('#previewing').attr('height', '230px');
+    };
+});
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/utility.js b/gemeinsamforschen/src/main/webapp/assets/js/utility.js
index f065dd0e..3f21a38c 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/utility.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/utility.js
@@ -7,11 +7,15 @@ $(document).ready(function(){
     $('#assessment').click(function(){
        checkAssessementPhase();
     });
-    function goBack() {
-        window.history.back();
-    }
+    $('#footerBack').click(function(){
+       goBack();
+    });
 });
 
+function goBack() {
+    window.history.back();
+}
+
 function checkAssessementPhase(){
     let studentId = $('#user').html().trim();
     let projectId = $('#projectId').html().trim();
diff --git a/gemeinsamforschen/src/main/webapp/core/pages/gemeinsamForschen.tld b/gemeinsamforschen/src/main/webapp/core/pages/gemeinsamForschen.tld
index 44230264..b32f459c 100644
--- a/gemeinsamforschen/src/main/webapp/core/pages/gemeinsamForschen.tld
+++ b/gemeinsamforschen/src/main/webapp/core/pages/gemeinsamForschen.tld
@@ -11,7 +11,7 @@
 
     <tag>
         <name>menu</name>
-        <tag-class>unipotsdam.gf.core.management.user.Menu</tag-class>
+        <tag-class>unipotsdam.gf.core.management.pageAppearance.Menu</tag-class>
         <body-content>empty</body-content>
     </tag>
 
@@ -23,19 +23,19 @@
 
     <tag>
         <name>omniDependencies</name>
-        <tag-class>unipotsdam.gf.core.management.user.omniDependencies</tag-class>
+        <tag-class>unipotsdam.gf.core.management.pageAppearance.omniDependencies</tag-class>
         <body-content>empty</body-content>
     </tag>
 
     <tag>
         <name>headLine</name>
-        <tag-class>unipotsdam.gf.core.management.user.headLine</tag-class>
+        <tag-class>unipotsdam.gf.core.management.pageAppearance.headLine</tag-class>
         <body-content>empty</body-content>
     </tag>
 
     <tag>
         <name>footer</name>
-        <tag-class>unipotsdam.gf.core.management.user.footer</tag-class>
+        <tag-class>unipotsdam.gf.core.management.pageAppearance.footer</tag-class>
         <body-content>empty</body-content>
     </tag>
     
diff --git a/gemeinsamforschen/src/main/webapp/core/pages/gemeinsamForschen.tld.orig b/gemeinsamforschen/src/main/webapp/core/pages/gemeinsamForschen.tld.orig
index 46468908..24e3cda5 100644
--- a/gemeinsamforschen/src/main/webapp/core/pages/gemeinsamForschen.tld.orig
+++ b/gemeinsamforschen/src/main/webapp/core/pages/gemeinsamForschen.tld.orig
@@ -11,14 +11,14 @@
 
     <tag>
         <name>menu</name>
-        <tag-class>unipotsdam.gf.core.management.user.Menu</tag-class>
+        <tag-class>unipotsdam.gf.core.management.pageAppearance.Menu</tag-class>
         <body-content>empty</body-content>
     </tag>
 
     <tag>
 <<<<<<< HEAD
         <name>headLine</name>
-        <tag-class>unipotsdam.gf.core.management.user.headLine</tag-class>
+        <tag-class>unipotsdam.gf.core.management.pageAppearance.headLine</tag-class>
 =======
         <name>session</name>
         <tag-class>unipotsdam.gf.core.session.SessionTag</tag-class>
@@ -29,7 +29,7 @@
     <tag>
 <<<<<<< HEAD
         <name>omniDependencies</name>
-        <tag-class>unipotsdam.gf.core.management.user.omniDependencies</tag-class>
+        <tag-class>unipotsdam.gf.core.management.pageAppearance.omniDependencies</tag-class>
 =======
         <name>context</name>
         <tag-class>unipotsdam.gf.core.session.ContextTag</tag-class>
diff --git a/gemeinsamforschen/src/main/webapp/pages/changePhase.jsp b/gemeinsamforschen/src/main/webapp/pages/changePhase.jsp
index 6e0595f1..c3d7c07a 100644
--- a/gemeinsamforschen/src/main/webapp/pages/changePhase.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/changePhase.jsp
@@ -2,7 +2,7 @@
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
-<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %>
 
 
 <html>
@@ -16,26 +16,26 @@
     <menu:menu/>
     <div class="page-content-wrapper">
         <headLine:headLine/>
-        <div class="alert" id="CourseCreation">
-            Projekterstellungsphase
+        <div class="alert"id="CourseCreation">
+            <button id="btnCourseCreation" class="btn btn-secondary">Projekterstellungsphase</button>
         </div>
         <div class="alert" id="GroupFormation">
-            Entwurfsphase
-        </div>
-        <div class="alert" id="Execution">
-            Durchführungsphase
+            <button id="btnGroupformation" class="btn btn-secondary">Gruppen erstellen</button>
         </div>
         <div class="alert" id="DossierFeedback">
-            Feedbackphase
+            <button id="btnDossierFeedback" class="btn btn-secondary">Feedbackphase</button>
+        </div>
+        <div class="alert" id="Execution">
+            <button id="btnExecution" class="btn btn-secondary">Durchführungsphase</button>
         </div>
         <div class="alert" id="Assessment">
-            Bewertungsphase
+            <button id="btnAssessment" class="btn btn-secondary">Bewertungsphase</button>
         </div>
         <div class="alert" id="end">
-            Ende
+            <button id="btnProjectfinished" class="btn btn-secondary">Ende</button>
         </div>
     </div>
+    <footer:footer/>
 </div>
-<footer:footer/>
 </body>
 </html>
diff --git a/gemeinsamforschen/src/main/webapp/pages/profile.jsp b/gemeinsamforschen/src/main/webapp/pages/profile.jsp
index a14b0b5d..b7a597be 100644
--- a/gemeinsamforschen/src/main/webapp/pages/profile.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/profile.jsp
@@ -11,7 +11,8 @@
 
 <head>
     <omniDependencies:omniDependencies/>
-
+    <link href='http://fonts.googleapis.com/css?family=Roboto+Condensed|Open+Sans+Condensed:300' rel='stylesheet' type='text/css'>
+    <script src="../assets/js/profile.js"></script>
 </head>
 
 
@@ -40,6 +41,15 @@
                             </li>
                             <li class="list-group-item">
                                 <p>Sonstiges:</p>
+                                <form id="uploadimage" action="" method="post" enctype="multipart/form-data">
+                                    <div id="image_preview"><img id="previewing" src="../assets/img/noImg.png" /></div>
+                                    <hr id="line">
+                                    <div id="selectImage">
+                                        <label>Select Your Image</label><br/>
+                                        <input type="file" name="file" id="file" required />
+                                        <input type="submit" value="Upload" class="submit" />
+                                    </div>
+                                </form>
                             </li>
                         </ul>
 
@@ -104,8 +114,8 @@
 
         </div>
     </div>
-</div>
 <footer:footer/>
+</div>
 </body>
 
 </html>
\ No newline at end of file
-- 
GitLab