Add Error message generation to the UI.

#10
This commit is contained in:
chris.watts90@outlook.com 2017-02-09 21:27:20 +00:00
parent 666975b2ec
commit 150a9a8d70

View File

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