From 550b15a2f96995014c1ef8c2478297801797c20f Mon Sep 17 00:00:00 2001 From: "chris.watts90@outlook.com" Date: Fri, 17 Mar 2017 23:56:12 +0000 Subject: [PATCH] implement group filtering. when going to the overview page, the groups will be retrieved, populating the dropdown list of group filters. #64 --- .../WindowsDataCenter/www/spa.js | 37 ++++++++++++++++--- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/www/spa.js b/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/www/spa.js index 9d6f794..754e578 100644 --- a/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/www/spa.js +++ b/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/www/spa.js @@ -5,6 +5,7 @@ self.chosenMenuItemId = ko.observable(); self.appDetails = ko.observable(null); self.userList = ko.observable(null); + self.groupsList = ko.observable(null); self.chosenUserDetails = ko.observable(null); self.userTimeLogData = ko.observable(null); self.unassignedCardData = ko.observable(null); @@ -182,6 +183,18 @@ self.setPagination(self.userList().PageSize, data); } }; + self.groupFilter = function(data) { + console.log("filter by group: " + data); + var args = [ + { + key: "groupId", + value: data + } + ]; + var url = self.createRequestUrl("users", args, false, false); + location.hash = url; + console.log(url); + }; self.setPagination = function(pageSize, pageNumber) { var args = [ { @@ -225,7 +238,7 @@ }); } } - self.getUserList = function (pageSize, pageNumber) { + self.getUserList = function (pageSize, pageNumber, groupId) { var args = null; if (pageSize && pageNumber) { args = [ @@ -238,6 +251,12 @@ value: pageNumber } ]; + } else if(groupId) { + args = [ + { + key: "groupId", + value: groupId + }]; } var url = self.createRequestUrl(self.apiEndpoints.getUserList, args, false); $.getJSON(url, function (res) { @@ -327,11 +346,12 @@ self.assignErrorObject(errObj.errorCode, errObj.errorMessage, "getUnassignedCardData"); }); }; - self.getGroups = function () { + self.getGroups = function (successFunc) { var url = self.createRequestUrl(self.apiEndpoints.getGroups, null, false); return $.getJSON(url, function (res) { - self.chosenUserDetails().Groups = res; - self.chosenUserDetails.valueHasMutated(); + successFunc(res); + //self.chosenUserDetails().Groups = res; + //self.chosenUserDetails.valueHasMutated(); }).fail(function (resp, status, error) { console.log("error - getGroups"); var errObj = self.processRequestFailure(resp, status, error); @@ -343,6 +363,7 @@ var query = this.params.query; var pageSize = this.params.pageSize; var pageNumber = this.params.pageNumber; + var groupId = this.params.groupId; self.chosenMenuItemId("Home"); self.chosenUserDetails(null); self.userList(null); @@ -350,8 +371,11 @@ if (self.appDetails() === null) { self.getAppDetails(); } + self.getGroups(function (data) { self.groupsList(data); }); if (query) self.searchUsers(query); + else if (groupId !== -1) + self.getUserList(null, null, groupId); else self.getUserList(pageSize, pageNumber); }); @@ -383,7 +407,10 @@ "Groups": [], "IsContractor": false }); - self.getGroups(); + self.getGroups(function(data) { + self.chosenUserDetails().Groups = data; + self.chosenUserDetails.valueHasMutated(); + }); self.getUnassignedCardData(); }); this.get("#stats", function () {