From cb2b812b07db7269c160e52a4a57d404a7c421dc Mon Sep 17 00:00:00 2001 From: Dominik Seeger <dominik.seeger@gmx.net> Date: Sun, 6 Jan 2019 20:38:17 +0100 Subject: [PATCH] re-added parseCSVMapMixin --- frontend/src/components/mixins/mixins.ts | 34 +++++++++++++----------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/frontend/src/components/mixins/mixins.ts b/frontend/src/components/mixins/mixins.ts index bee6fc96..4b93f298 100644 --- a/frontend/src/components/mixins/mixins.ts +++ b/frontend/src/components/mixins/mixins.ts @@ -1,4 +1,4 @@ -import { Vue, Component } from 'vue-property-decorator' +import { Vue, Component, Mixins } from 'vue-property-decorator' import { fetchStudentExportData, StudentExportItem, InstanceExportData, fetchInstanceExportData } from '@/api' import { getters } from '@/store/getters' import { mutations as mut } from '@/store/mutations' @@ -9,21 +9,9 @@ export enum ExportType { } @Component -export class exportMixin extends Vue { - exportDialog = true - mapFile: File | null = null - setPasswords = false - exportType = ExportType.CSV - - get mapFileLoaded () { - return Object.keys(getters.state.studentMap).length > 0 - } - - get availableExportTypes (): ExportType[] { - return Object.values(ExportType) - } - +export class parseCSVMapMixin extends Vue { parseCSVMap (csvMap: string) { + console.log('parsing') let lines = csvMap.split('\n') lines.shift() // drop the first line since it contains only headings // TODO remove any type @@ -35,6 +23,22 @@ export class exportMixin extends Vue { return acc }, {}) } +} + +@Component +export class exportMixin extends Mixins(Vue, parseCSVMapMixin) { + exportDialog = true + mapFile: File | null = null + setPasswords = false + exportType = ExportType.CSV + + get mapFileLoaded () { + return Object.keys(getters.state.studentMap).length > 0 + } + + get availableExportTypes (): ExportType[] { + return Object.values(ExportType) + } async getExportFile (type: string) { let studentData -- GitLab