FlexitimeTracker/DataCenter_Windows/WindowsDataCenter/WindowsDataCenter/www/admin.min.js
chris.watts90@outlook.com f9e1e44dd6 Add Save Dialog with Change Author, Version, Date and description boxes.
Just need to fix the return code from API to ensure that when it saves, and returns OK, it will refresh the page..
2019-10-18 11:55:32 +01:00

1 line
5.0 KiB
JavaScript

function AdminVM(){var n=this;n.groupsList=ko.observable(null);n.groupEditItem=ko.observable(null);n.unassignedCardList=ko.observable(null);n.helpers=new Helpers;n.policyMarkdown="";n.policyData=ko.observable({ChangeAuthor:"",ChangeDate:moment(),Version:1,ChangeDescription:"",Markdown:"",Html:""});n.renderer=new marked.Renderer;n.renderer.blockquote=function(n){return'<blockquote class="blockquote">'+n+"<\/blockquote>"};n.renderer.heading=function(n,t){var r=new Tautologistics.NodeHtmlParser.DefaultHandler(function(t){if(t)throw new Error('Cannot parse "'+n+'" in markdown file.');}),u=new Tautologistics.NodeHtmlParser.Parser(r),i;return u.parseComplete(n),i="unknown",r.dom.length>0&&(i=r.dom[0].raw.toLowerCase().trim().replace(/ /g,"-")),"<h"+t+' id="'+i+'"> <a class="heading-anchor" style="display:none;" href="#'+i+'"> <i class="oi oi-link-intact"><\/i> <\/a>'+n+"<\/h"+t+">"};n.renderer.table=function(n,t){return'<table class="table"><thead class="thead-default">'+n+"<\/thead><tbody>"+t+"<\/tbody><\/table>"};n.renderer.code=function(n,t){var i=!!(t&&hljs.getLanguage(t)),r=i?hljs.highlight(t,n).value:n;return'<pre><code class="hljs lang-'+t+'">'+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();console.log(n.policyData());$.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){console.log(t);n.editor.value(t.Markdown);n.policyData(t)}).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)