From 11bdc522cdfa2ee8c09354fc54ecd0603694ef61 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Mon, 1 Apr 2024 17:53:30 +0300 Subject: [PATCH] add spreadsheet download --- .../template_builder/import_list.vue | 111 +++++++++++------- 1 file changed, 70 insertions(+), 41 deletions(-) diff --git a/app/javascript/template_builder/import_list.vue b/app/javascript/template_builder/import_list.vue index 39284929..5c3d249c 100644 --- a/app/javascript/template_builder/import_list.vue +++ b/app/javascript/template_builder/import_list.vue @@ -160,52 +160,62 @@
-
@@ -274,6 +284,25 @@ export default { return submissions }, + csvBase64 () { + const rows = [] + + this.submitters.forEach((submitter) => { + this.selectFieldsForSubmitter(submitter).forEach((field) => { + rows.push(this.submitters.length > 1 ? `${submitter.name} - ${field.name}` : field.name) + }) + }) + + const csv = rows.map(item => { + if (/[",\n]/.test(item)) { + return `"${item.replace(/"/g, '""')}"` + } else { + return item + } + }).join(',') + + return window.btoa(csv + '\n' + rows.map(() => '').join(',') + '\n') + }, submitters () { return this.template.submitters },