# HG changeset patch # User Markus Kottlaender # Date 1549548880 -3600 # Node ID 585373d33f8f8966bad30260d82efa0d2a2f0ed7 # Parent 82867a69e10e0ccd146acbb963c6d32ed639bab9 prepared pdf template administration prepared UI, connected to vuex store, backend still missing diff -r 82867a69e10e -r 585373d33f8f client/src/assets/application.scss --- a/client/src/assets/application.scss Thu Feb 07 11:27:07 2019 +0100 +++ b/client/src/assets/application.scss Thu Feb 07 15:14:40 2019 +0100 @@ -99,16 +99,13 @@ } .popup { - position: absolute; - top: 40%; - left: 50%; - margin-left: -150px; width: 300px; max-width: 300px; + @extend %fully-centered; } .popup.show { - margin: 0.5rem 0 0 -150px; + margin: 0.5rem 0 0 0; max-height: 999px; } @@ -132,3 +129,11 @@ .headline { font-weight: bold; } + +.list-fade-enter-active, .list-fade-leave-active { + transition: transform .3s; +} +.list-fade-enter, .list-fade-leave-to { + opacity: 0; + transform: translateY(20px); +} diff -r 82867a69e10e -r 585373d33f8f client/src/components/systemconfiguration/PDFTemplates.vue --- a/client/src/components/systemconfiguration/PDFTemplates.vue Thu Feb 07 11:27:07 2019 +0100 +++ b/client/src/components/systemconfiguration/PDFTemplates.vue Thu Feb 07 15:14:40 2019 +0100 @@ -3,16 +3,18 @@
PDF-Templates
@@ -26,7 +28,7 @@ - + {{ template.name }} {{ template.description }} @@ -36,14 +38,58 @@ - - +
+ +
+
+
+ + Delete PDF Template + +
+
+ + Do you really want to delete the following template: + +
{{ templateToDelete.name }}
+
+
+ + +
+
+
@@ -65,8 +111,32 @@ export default { name: "pdftemplates", + data() { + return { + uploading: false, + templateToDelete: "", + showDeleteTemplatePrompt: false + }; + }, computed: { ...mapState("application", ["pdfTemplates"]) + }, + methods: { + upload() { + this.uploading = true; + this.$store + .dispatch( + "application/uploadPDFTemplates", + this.$refs.uploadPDFTemplates.files + ) + .then(() => { + this.uploading = false; + }); + }, + remove(template) { + this.showDeleteTemplatePrompt = false; + this.$store.dispatch("application/removePDFTemplate", template); + } } }; diff -r 82867a69e10e -r 585373d33f8f client/src/store/application.js --- a/client/src/store/application.js Thu Feb 07 11:27:07 2019 +0100 +++ b/client/src/store/application.js Thu Feb 07 15:14:40 2019 +0100 @@ -212,6 +212,30 @@ resolve(); }, 500); }); + }, + uploadPDFTemplates({ state, commit }, files) { + return new Promise((resolve, reject) => { + setTimeout(() => { + const reader = new FileReader(); + reader.onload = event => { + let templates = state.pdfTemplates; + templates.push(JSON.parse(event.target.result)); + commit("pdfTemplates", templates); + // TODO: send template to server + }; + reader.onerror = error => reject(error); + reader.readAsText(files[0]); + resolve(); + }, 1000); + }); + }, + removePDFTemplate({ state, commit }, template) { + let templates = state.pdfTemplates; + let removeIndex = templates.findIndex(t => t.name === template.name); + if (removeIndex !== -1) { + templates.splice(removeIndex, 1); + commit("pdfTemplates", templates); + } } } };