diff --git a/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/www/spa.js b/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/www/spa.js index 3683272..8f1cd3d 100644 --- a/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/www/spa.js +++ b/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/www/spa.js @@ -35,6 +35,29 @@ }; self.errorData(errDat); } + self.processRequestFailure = function (xmlHttpRequest, textStatus, errorThrown) { + if (xmlHttpRequest.readyState === 4) { + return { + errorCode: xmlHttpRequest.status, + errorMessage: error.statusText, + errorSource: "" + }; + } + else if (xmlHttpRequest.readyState === 0) { + return { + errorCode: xmlHttpRequest.status, + errorMessage: "Network Error - Is the server available?", + errorSource: "" + }; + } + else { + return { + errorCode: xmlHttpRequest.status, + errorMessage: "Unknown Error", + errorSource: "" + }; + } + }; /** * Create a request URL - references apiEndpoints object to construct url with args, and optional callback url. * @param {string} routePath @@ -130,15 +153,14 @@ } } self.getUserList = function () { - //console.log("beginGetUserData"); var url = self.createRequestUrl(self.apiEndpoints.getUserList, null, false); console.log(url); $.getJSON(url, function (res) { - //console.log("getting user data"); - //console.log(res); self.userList(res); - }).fail(function () { + }).fail(function (response, status, error) { console.log("error - getusers"); + var errObj = self.processRequestFailure(resp, status, error); + self.assignErrorObject(errObj.errorCode, errObj.errorMessage, "getUserList"); }); }; self.searchUsers = function(query) { @@ -147,74 +169,67 @@ $.getJSON(url, function(res) { self.userList(res); - }).fail(function(res) { + }).fail(function(resp, status, error) { self.goToMenuOption(self.uiPages.home()); + var errObj = self.processRequestFailure(resp, status, error); + self.assignErrorObject(errObj.errorCode, errObj.errorMessage, "searchUsers"); } ); }; self.getUserDetails = function (userId) { - //console.log("beginGetUserDetailsData"); var url = self.createRequestUrl(self.apiEndpoints.getUserDetails + "/" + userId, null, false); $.getJSON(url, function (res) { - //console.log("got user data"); self.chosenUserDetails(res); - }).fail(function () { + }).fail(function (resp, status, error) { console.log("error - getuserdetails"); + var errObj = self.processRequestFailure(resp, status, error); + self.assignErrorObject(errObj.errorCode, errObj.errorMessage, "getUserDetails"); self.goToMenuOption(self.uiPages.home()); }); }; self.submitChangedUser = function (user) { - console.log("Post Edited User: " + user.UserId); var url = self.apiEndpoints.editUser; - console.log("posting to.." + url); $.post(url, user, function () { }, "json") .done(function () { self.chosenUserDetails(null); self.goToMenuOption(self.uiPages.home()); }) - .fail(function (response) { - if (response.status !== 201) { - console.log("error - post edited user"); - } + .fail(function (resp, status, error) { + var errObj = self.processRequestFailure(resp, status, error); + self.assignErrorObject(errObj.errorCode, errObj.errorMessage, "submitChangedUser"); self.chosenUserDetails(null); self.goToMenuOption(self.uiPages.home()); }); }; self.getTimeLogData = function (userId, calendarWeek) { - //console.log("begin get TimeLog Data"); var url = self.createRequestUrl(self.apiEndpoints.getTimeLogs, [{ key: "userId", value: userId }, { key: "calendarWeek", value: calendarWeek }], false); $.getJSON(url, function (res) { - //console.log("got user timelog data"); self.userTimeLogData(res); self.initDatePicker(); self.assignHandler(); - }).fail(function (resp) { - if (resp.status === 200) { - self.userTimeLogData(resp.content); - //console.log(resp.content); - } else { - console.log("error - getuserdetails"); - self.goToMenuOption(self.uiPages.home()); //go home. - } + }).fail(function (resp, status, error) { + console.log("error - getuserdetails"); + var errObj = self.processRequestFailure(resp, status, error); + self.assignErrorObject(errObj.errorCode, errObj.errorMessage, "getTimeLogData"); + self.goToMenuOption(self.uiPages.home()); //go home. }); }; self.getUnassignedCardData = function () { - //console.log("begin get unassigned cards"); var url = self.createRequestUrl(self.apiEndpoints.getUnassignedCards, null, false); $.getJSON(url, function (res) { - //console.log(res); self.unassignedCardData(res); - }).fail(function () { + }).fail(function (resp, status, error) { console.log("error - getuserdetails"); + var errObj = self.processRequestFailure(resp, status, error); + self.assignErrorObject(errObj.errorCode, errObj.errorMessage, "getUnassignedCardData"); }); }; Sammy(function () { this.get("#users", function () { var query = this.params.query; - //console.log(this.params.query); self.chosenMenuItemId("Users"); self.chosenUserDetails(null); self.userList(null); @@ -227,7 +242,6 @@ //$.get("http://localhost:3000", { menu: this.params.menu }, self.chosenMenuData); }); this.get("#userData/:userId", function () { - //console.log("getting details for user: " + this.params.userId); self.chosenMenuItemId("Data"); self.userList(null); self.getUserDetails(this.params.userId); @@ -236,14 +250,12 @@ //$.get("http://localhost:3000", { menu: this.params.menu }, self.chosenMenuData); }); this.get("#timelogs/:userId", function () { - //console.log("get user time logs, userID: " + this.params.userId); self.chosenMenuItemId("Other"); self.userList(null); self.chosenUserDetails(null); self.getTimeLogData(this.params.userId, self.selectedCalendarWeek()); }); this.get("#newUser", function () { - //console.log("creating new user"); self.chosenMenuItemId("newUser"); self.userList(null); self.userTimeLogData(null);