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