move goToMenuOption to Helpers.js

fix refresh groups list issue when groups are deleted/edited etc.
added ajax delete to delete the group from the db when delete is clicked on ui.
group form is hidden on new page.
#30
This commit is contained in:
chris.watts90@outlook.com 2017-03-17 22:35:03 +00:00
parent 62e2aa1136
commit ce6ac53e8f

View File

@ -5,30 +5,34 @@
self.helpers = new Helpers(); self.helpers = new Helpers();
self.uiPages = { self.uiPages = {
overview: "overview", overview: "overview",
group: "groups",
home: function () { return this.overview; } home: function () { return this.overview; }
}; };
self.apiEndpoints = { self.apiEndpoints = {
deleteGroups:"/api/groups/delete",
getGroups: "/api/groups", getGroups: "/api/groups",
editGroup: "/api/groups/edit" editGroup: "/api/groups/edit"
}; };
self.goToMenuOption = function (menu) { location.hash = menu; console.log("goToMenuOption: " + menu); };
self.clearGroupForm = function (data, event) { self.clearGroupForm = function (data, event) {
self.goToMenuOption(self.uiPages.group);
self.groupEditItem({ Id: -1, Name: "" }); self.groupEditItem({ Id: -1, Name: "" });
}; };
self.hideGroupForm = function (data, event) { self.hideGroupForm = function (data, event) {
self.helpers.goToMenuOption(self.uiPages.group);
self.groupEditItem(null); self.groupEditItem(null);
}; };
self.groupFormHidden = ko.computed(function () { self.groupFormHidden = ko.computed(function () {
return self.groupEditItem() == null; return self.groupEditItem() == null;
}, self); }, self);
self.editGroupClick = function (data, event) { self.editGroupClick = function (data, event) {
self.helpers.goToMenuOption(self.uiPages.group);
self.groupEditItem(data); self.groupEditItem(data);
}; };
self.getGroups = function () { self.getGroups = function () {
var url = self.helpers.createRequestUrl(self.apiEndpoints.getGroups, null, false); var url = self.helpers.createRequestUrl(self.apiEndpoints.getGroups, null, false);
$.getJSON(url, function (res) { $.getJSON(url, function (res) {
self.groupsList(res); self.groupsList(res);
console.log(res); //console.log(res);
}).fail(function (resp, status, error) { }).fail(function (resp, status, error) {
console.log("error - getGroups"); console.log("error - getGroups");
//var errObj = self.processRequestFailure(resp, status, error); //var errObj = self.processRequestFailure(resp, status, error);
@ -36,20 +40,38 @@
//self.goToMenuOption(self.uiPages.home()); //self.goToMenuOption(self.uiPages.home());
}); });
}; };
self.deleteGroup = function (groupId) {
var url = self.helpers.createRequestUrl(self.apiEndpoints.deleteGroups,
[{ key: "groupId", value: groupId }],
false,
false);
$.ajax({
url: url,
type: 'DELETE',
success: function (result) {
console.log("deleted " + groupId);
self.helpers.goToMenuOption(self.uiPages.home());
self.clearGroupForm();
// Do something with the result
}
});
console.log("delete: " + groupId);
};
self.submitGroupEdit = function(group) { self.submitGroupEdit = function(group) {
var url = self.helpers.createRequestUrl(self.apiEndpoints.editGroup, null, false); var url = self.helpers.createRequestUrl(self.apiEndpoints.editGroup, null, false);
$.post(url, group, function () { $.post(url, group, function () {
}, "json") }, "json")
.done(function () { .done(function () {
self.groupEditItem(null); self.groupEditItem(null);
self.goToMenuOption(self.uiPages.home()); self.helpers.goToMenuOption(self.uiPages.home());
}) })
.fail(function (resp, status, error) { .fail(function (resp, status, error) {
self.goToMenuOption(self.uiPages.home()); self.helpers.goToMenuOption(self.uiPages.home());
}); });
}; };
Sammy(function () { Sammy(function () {
this.get("#overview", function () { this.get("#overview", function () {
self.clearGroupForm();
self.getGroups(); self.getGroups();
}); });
this.post("#editgroup", function () { this.post("#editgroup", function () {