"+t+"<\/tbody><\/table>"};n.renderer.code=function(n,t){var i=!!(t&&hljs.getLanguage(t)),r=i?hljs.highlight(t,n).value:n;return''+r+"<\/code><\/pre>"};n.editor=new EasyMDE({element:document.getElementById("policyEditor"),showIcons:["bold","italic","strikethrough","heading","heading-smaller","heading-bigger","heading-1","heading-2","heading-3","code","quote","unordered-list","ordered-list","clean-block","link","table","horizontal-rule","guide","table"],hideIcons:["preview","side-by-side","fullscreen"],renderingConfig:{markedOptions:{renderer:n.renderer}}});n.editor.codemirror.on("changes",function(){n.policyData.html(n.editor.options.previewRender(n.editor.value()))});n.uiPages={overview:"overview",group:"groups",home:function(){return this.overview}};n.apiEndpoints={deleteGroups:"/api/groups/delete",getGroups:"/api/groups",editGroup:"/api/groups/edit",getUnassignedCards:"/api/cards/unassigned",clearUnassignedCards:"/api/cards/unassigned",getPolicy:"/api/app/policy",savePolicy:"/api/app/policy"};n.clearGroupForm=function(){n.helpers.goToMenuOption(n.uiPages.group);n.groupEditItem(null)};n.hideGroupForm=function(){n.groupEditItem(null)};n.newGroupForm=function(){n.groupEditItem({Id:-1,Name:""});n.helpers.goToMenuOption(n.uiPages.group)};n.groupFormHidden=ko.computed(function(){return n.groupEditItem()==null},n);n.editGroupClick=function(t){n.helpers.goToMenuOption(n.uiPages.group);n.groupEditItem(t)};n.getGroups=function(){var t=n.helpers.createRequestUrl(n.apiEndpoints.getGroups,null,!1);$.getJSON(t,function(t){n.groupsList(t)}).fail(function(t,i,r){console.log("error - getGroups");var u=n.helpers.processRequestFailure(t,i,r)})};n.deleteGroup=function(t){var i=n.helpers.createRequestUrl(n.apiEndpoints.deleteGroups,[{key:"groupId",value:t}],!1,!1);$.ajax({url:i,type:"DELETE",success:function(){console.log("deleted "+t);n.hideGroupForm();n.helpers.goToMenuOption(n.uiPages.home())}});console.log("delete: "+t)};n.submitGroupEdit=function(t){var i=n.helpers.createRequestUrl(n.apiEndpoints.editGroup,null,!1);$.post(i,t,function(){},"json").done(function(){n.groupEditItem(null);n.helpers.goToMenuOption(n.uiPages.home())}).fail(function(t,i,r){n.helpers.goToMenuOption(n.uiPages.home());var u=n.helpers.processRequestFailure(t,i,r)})};n.getUnassignedCardData=function(){var t=n.helpers.createRequestUrl(n.apiEndpoints.getUnassignedCards,null,!1);$.getJSON(t,function(t){n.unassignedCardList(t)}).fail(function(t,i,r){console.log("error - getUnassignedCards");var u=n.helpers.processRequestFailure(t,i,r)})};n.clearUnassignedCards=function(){var t=n.helpers.createRequestUrl(n.apiEndpoints.clearUnassignedCards,null,!1);$.ajax({type:"DELETE",url:t,data:"",success:function(){n.getUnassignedCardData()},error:function(t,i,r){console.log("error - clearUnassignedCards");var u=n.helpers.processRequestFailure(resp,i,r)}})};n.padNumber=function(n){return(n<10?"0":"")+n};n.policySave=function(){var t=n.helpers.createRequestUrl(n.apiEndpoints.savePolicy,null,!1);n.policyData.Markdown(n.editor.value());$.post(t,n.policyData(),function(){},"json").done(function(){n.policyReload()}).fail(function(t,i,r){var u=n.helpers.processRequestFailure(t,i,r);console.log(u)})};n.policyReload=function(){var t=n.helpers.createRequestUrl(n.apiEndpoints.getPolicy,[],!1,!1);$.getJSON(t,function(t){n.editor.value(t.Markdown);t.Version=(parseInt(t.Version)+1).toString();n.policyData.update(t);$("#saveDialog").modal("hide")}).fail(function(t,i,r){console.log("error - policyReload");var u=n.helpers.processRequestFailure(t,i,r);n.assignErrorObject(u.errorCode,u.errorMessage,"policyReload")})};n.convertToDisplayDateTime=function(t){var i=new Date(t);return i.getDate()+" "+i.toLocaleString("en-us",{month:"long"})+" "+(i.getYear()-100)+" "+n.padNumber(i.getHours())+":"+n.padNumber(i.getMinutes())+":"+n.padNumber(i.getSeconds())};Sammy(function(){this.disable_push_state=!0;this.get("#overview",function(){n.getGroups();n.getUnassignedCardData();n.policyReload()});this.post("#editgroup",function(){return n.submitGroupEdit(n.groupEditItem()),!1});this.get("",function(){this.app.runRoute("get","#"+n.uiPages.home())})}).run()}ko.applyBindings(new AdminVM)
\ No newline at end of file
diff --git a/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/www/js/PolicyObject.js b/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/www/js/PolicyObject.js
new file mode 100644
index 0000000..d891362
--- /dev/null
+++ b/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/www/js/PolicyObject.js
@@ -0,0 +1,30 @@
+function policy(data) {
+ var self = this;
+ if (typeof data === "undefined") {
+ data = createDefaultPolicy();
+ }
+ self.changeDate = ko.observable(data.changeDate);
+ self.description = ko.observable(data.description);
+ self.changeAuthor = ko.observable(data.changeAuthor);
+ self.version = ko.observable(data.version);
+ self.markdown = ko.observable(data.markdown);
+ self.html = ko.observable(data.html);
+ function createDefaultPolicy() {
+ return {
+ changeDate: moment().format(),
+ description: "",
+ changeAuthor: "",
+ version: -1,
+ markdown: "",
+ html: ""
+ };
+ }
+ self.update = function(data) {
+ self.changeDate(data.changeDate);
+ self.description(data.description);
+ self.changeAuthor(data.changeAuthor);
+ self.version(data.version);
+ self.markdown(data.markdown);
+ self.html(data.html);
+ }
+}
\ No newline at end of file