From 9ca961d7065f020bc15c5d4b8346beb614ebb274 Mon Sep 17 00:00:00 2001 From: Julius de Jeu Date: Thu, 23 Jun 2022 17:09:28 +0200 Subject: [PATCH] Add bulk import Also make pressing return submit the manual number --- templates/party.html | 43 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/templates/party.html b/templates/party.html index d68213c..bb70a55 100644 --- a/templates/party.html +++ b/templates/party.html @@ -25,14 +25,19 @@

Handmatig Toevoegen

-

- - +
+

+ + +

Extra opties

Bekijk een tabel in je browser

Exporteer als CSV

+

+

@@ -120,11 +125,19 @@ return data; }).then(set_state); } + function return_handler(e) { + e.preventDefault(); + let code = document.getElementById("student_number").value; + console.log(code); + scan_ticket(code); + } + function button_click_handler() { let code = document.getElementById("student_number").value; scan_ticket(code); } document.getElementById("add_student").addEventListener("click", button_click_handler); + document.getElementById("student_number_wrapper").addEventListener("submit", return_handler); document.getElementById("start_scan_btn").addEventListener('click', start_scanning); const videoElement = document.querySelector("video"); @@ -216,5 +229,29 @@ }) } + function upload_csv() { + let file = document.getElementById("file-selector").files[0]; + if (file) { + const reader = new FileReader(); + let num = 0; + reader.onload = (evt) => { + let result = evt.target.result; + for (let line of result.split("\n")) { + for (let llnr of line.split(",")) { + if (llnr.length === 6 && !isNaN(llnr)) { + scan_ticket(llnr); + num += 1; + } + } + } + document.getElementById("import-result").innerHTML = `${num} leerlingen geïmporteerd!` + } + reader.readAsText(file); + } + + } + + document.getElementById("file-selector-button").addEventListener("click", upload_csv); + {% endblock %} \ No newline at end of file