From 75028848120f356ec1838b3c42ab33f545bee886 Mon Sep 17 00:00:00 2001
From: Julian Dehne <julian.dehne@uni-potsdam.de>
Date: Wed, 28 Mar 2018 16:21:19 +0200
Subject: [PATCH] closes #18

---
 studentview/assets/js/getProjects.js  | 31 +++++++++++++++++++++++++++
 studentview/assets/js/myGroupsInit.js | 31 ++++++++++++++++-----------
 studentview/assets/js/overview.js     | 28 +-----------------------
 studentview/pages/mygroups.php        |  4 +++-
 studentview/pages/projects.php        |  1 +
 5 files changed, 55 insertions(+), 40 deletions(-)
 create mode 100644 studentview/assets/js/getProjects.js

diff --git a/studentview/assets/js/getProjects.js b/studentview/assets/js/getProjects.js
new file mode 100644
index 00000000..6c2c5078
--- /dev/null
+++ b/studentview/assets/js/getProjects.js
@@ -0,0 +1,31 @@
+/**
+ * Created by dehne on 28.03.2018.
+ */
+
+function getProjectsOfAuthor(author, printedProjects, handleProjects) {
+    var url = "../database/getProjectsOfAuthor.php?author=" + author;
+    $.ajax({
+        url: url,
+        Accept: "text/plain; charset=utf-8",
+        contentType: "text/plain",
+        success: function (response) {
+            var authoredProjects = JSON.parse(response);
+            if (authoredProjects != null) {
+                if (printedProjects != null) {
+                    for (var i = 0; i < printedProjects.length; i++) {
+                        authoredProjects = authoredProjects.filter(function (el) {
+                            return el !== printedProjects[i];
+                        });
+                    }
+                    handleProjects(authoredProjects, printedProjects.length);
+                } else {
+                    handleProjects(authoredProjects, 0);
+                }
+
+            }
+        },
+        error: function (a, b, c) {
+            console.log(a);
+        }
+    });
+}
\ No newline at end of file
diff --git a/studentview/assets/js/myGroupsInit.js b/studentview/assets/js/myGroupsInit.js
index 38a86cf0..217ee7ab 100644
--- a/studentview/assets/js/myGroupsInit.js
+++ b/studentview/assets/js/myGroupsInit.js
@@ -7,6 +7,20 @@ $(document).ready(function () {
     //getMembers($('#projectDropdown').innerHTML,$('#user').innerHTML);
 });
 
+function printProjectDropdown(projects, numberOfProjectsPrinted) {
+    var menu = document.getElementById("dropdownOptions");          //the unordered list of buttons called by the dropdown button
+    var limit = projects.length;
+    for (var i = 0; i < limit; i++) {                               //show every project a student takes
+        // part in
+        var option = document.createElement("SPAN");            //and create a span, containing a button with it
+        option.innerHTML = "<button class='dropdown-item' " +   //which carries the event onClick, the name of the group and a design
+            "onClick=" +
+            '"showProject(' + "'" + projects[i] + "',document.getElementById('user').innerHTML);" + '"' + ">"
+            + projects[i] +
+            "</button>";
+        menu.appendChild(option);
+    }
+}
 function getProjects(user) {
     var url = "https://esb.uni-potsdam.de:8243/services/competenceBase/api2/user/" + user + "/projects";
     $.ajax({
@@ -16,19 +30,13 @@ function getProjects(user) {
         contentType: "application/json",
         dataType: "json",
         success: function (data) {
-            var menu = document.getElementById("dropdownOptions");          //the unordered list of buttons called by the dropdown button
             if (data.length !== 0) {
-                var i = 0;
-                var limit = data.data.length;
-                for (i = 0; i < limit; i++) {                               //show every project a student takes part in
-                    var option = document.createElement("SPAN");            //and create a span, containing a button with it
-                    option.innerHTML = "<button class='dropdown-item' " +   //which carries the event onClick, the name of the group and a design
-                        "onClick=" +
-                        '"showProject(' + "'" + data.data[i] + "',document.getElementById('user').innerHTML);" + '"' + ">"
-                        + data.data[i] +
-                        "</button>";
-                    menu.appendChild(option);
+                var projects = [];
+                if (data.data != null) {
+                   projects = data.data;
+                   printProjectDropdown(projects, 0);
                 }
+                getProjectsOfAuthor(user,projects, printProjectDropdown)
             } else {
                 document.getElementById("projectDropdown").innerHTML = "keine Projekte verfügbar";      //no projects of the students where found
             }
@@ -36,7 +44,6 @@ function getProjects(user) {
     });
 }
 
-
 function getMembers(project, user) {        //gets all Members in the chosen Project user is a part of with email adresses
     var url = "https://esb.uni-potsdam.de:8243/services/competenceBase/api2/groups/" + project;     //this API is used, since fleckenroller has security issues with CORS and stuff
     $.ajax({
diff --git a/studentview/assets/js/overview.js b/studentview/assets/js/overview.js
index 452eaae7..ae1e4611 100644
--- a/studentview/assets/js/overview.js
+++ b/studentview/assets/js/overview.js
@@ -52,7 +52,7 @@ function getProjectOverview(user) {
         success: function (data) {
             var projects = data.data;
             printProjects(projects, 0);
-            getProjectsOfAuthor(user, projects);
+            getProjectsOfAuthor(user, projects, printProjects);
         },
         error: function (a, b, c) {
             console.log(a);
@@ -87,33 +87,7 @@ function getTags(projectName, number) {
 }
 
 
-function getProjectsOfAuthor(author, printedProjects) {
-    var url = "../database/getProjectsOfAuthor.php?author=" + author;
-    $.ajax({
-        url: url,
-        Accept: "text/plain; charset=utf-8",
-        contentType: "text/plain",
-        success: function (response) {
-            var authoredProjects = JSON.parse(response);
-            if (authoredProjects != null) {
-                if (printedProjects != null) {
-                    for (var i = 0; i < printedProjects.length; i++) {
-                        authoredProjects = authoredProjects.filter(function (el) {
-                            return el !== printedProjects[i];
-                        });
-                    }
-                    printProjects(authoredProjects, printedProjects.length);
-                } else {
-                    printProjects(authoredProjects, 0);
-                }
 
-            }
-        },
-        error: function (a, b, c) {
-            console.log(a);
-        }
-    });
-}
 
 function getGroups(projectName) {
     var pathName = document.getElementsByName("pathProject");
diff --git a/studentview/pages/mygroups.php b/studentview/pages/mygroups.php
index 6b429734..c610e7cf 100644
--- a/studentview/pages/mygroups.php
+++ b/studentview/pages/mygroups.php
@@ -15,8 +15,10 @@ include_once '../database/tokenSetter.php';
     <link rel="stylesheet" href="../assets/css/Navigation-with-Button1.css">
     <link rel="stylesheet" href="../assets/css/Sidebar-Menu.css">
     <link rel="stylesheet" href="../assets/css/Sidebar-Menu1.css">
-   <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
+
+    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
     <script src="../assets/js/myGroupsInit.js"></script>
+    <script src="../assets/js/getProjects.js"></script>
     <script src="../assets/bootstrap/js/bootstrap.min.js"></script>
     <script src="../assets/js/Sidebar-Menu.js"></script>
 
diff --git a/studentview/pages/projects.php b/studentview/pages/projects.php
index 69c2945a..fb074208 100644
--- a/studentview/pages/projects.php
+++ b/studentview/pages/projects.php
@@ -28,6 +28,7 @@ include_once '../database/tokenSetter.php';
     <script src="../assets/bootstrap/js/bootstrap.min.js"></script>
     <script src="../assets/js/Customizable-Carousel-swipe-enabled.js"></script>
     <script src="../assets/js/Sidebar-Menu.js"></script>
+    <script src="../assets/js/getProjects.js"></script>
     <script src="../assets/js/overview.js"></script>
     <script src="../assets/js/showProjects.js"></script>
 </head>
-- 
GitLab