From ac4ef8fb6ded5c5d5678a651420e356b3ef45399 Mon Sep 17 00:00:00 2001 From: Philipp Dormann Date: Wed, 9 Apr 2025 10:38:45 +0200 Subject: [PATCH] feat: working CardAssignment --- public/beep.mp3 | Bin 0 -> 49549 bytes src/components/dashboard/Dashboard.svelte | 22 +++++- src/components/general/CardAssignment.svelte | 75 ++++++++++++++++--- src/components/general/QrCodeScanner.svelte | 8 +- 4 files changed, 90 insertions(+), 15 deletions(-) create mode 100644 public/beep.mp3 diff --git a/public/beep.mp3 b/public/beep.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..3f4abbda029a91d353a394d42cfc3aaa2da6047a GIT binary patch literal 49549 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 Xzr_8|;`d)Z`+t%9FF(NlzUBWPFOn2M literal 0 HcmV?d00001 diff --git a/src/components/dashboard/Dashboard.svelte b/src/components/dashboard/Dashboard.svelte index 5b1cb6d7..58d40840 100644 --- a/src/components/dashboard/Dashboard.svelte +++ b/src/components/dashboard/Dashboard.svelte @@ -41,7 +41,27 @@ {$_("dashboard-title")} - {#if store.state.jwtinfo.userdetails.permissions.includes("RUNNER:GET")} + {#if store.state.jwtinfo.userdetails.permissions.includes("RUNNER:GET") && store.state.jwtinfo.userdetails.permissions.includes("CARD:GET")} + + + + + + Card Assignment + + import { RunnerCardService, RunnerService } from "@odit/lfk-client-js"; import QrCodeScanner from "./QrCodeScanner.svelte"; let state = "scan_runner"; - let runnerID = undefined; - let cardInfo = ""; + let runnerinfo = { id: 0, firstname: "", lastname: "" }; + let cardCode = ""; + $: scannerActive = state.includes("scan");

Card Assignment for Mobile

- {#if state === "done"} -

Assigned Card {cardInfo} ✅

-

(not really, needs to be implemented)

- {:else} + + {#if state.includes("scan_")} {#if state === "scan_runner"}

Scan Runner (Selfservice QR)

{/if} {#if state === "scan_card"}

Runner Scanned

-

{runnerID}

+

{runnerinfo.firstname} {runnerinfo.lastname} [#{runnerinfo.id}]

Scan Card (Code 128 Barcode)

{/if} { console.log({ type: "DETECT", code: e.detail.decodedText }); if (state === "scan_runner") { @@ -29,13 +33,18 @@ "https://portal.lauf-fuer-kaya.de/profile/" ) ) { - runnerID = JSON.parse( + const runnerID = JSON.parse( atob( e.detail.decodedText .replace("https://portal.lauf-fuer-kaya.de/profile/", "") .split(".")[1] ) ).id; + new Audio("/beep.mp3").play(); + RunnerService.runnerControllerGetOne(runnerID).then((runner) => { + console.log(runner); + runnerinfo = runner; + }); state = "scan_card"; } } @@ -45,8 +54,25 @@ "https://portal.lauf-fuer-kaya.de/profile/" ) ) { - cardInfo = e.detail.decodedText; - state = "done"; + cardCode = e.detail.decodedText; + new Audio("/beep.mp3").play(); + state = "assigning"; + RunnerCardService.runnerCardControllerGetAll().then((cards) => { + console.log(cards); + const card = cards.find((c) => c.code === cardCode); + if (card) { + console.log("card found", card); + RunnerCardService.runnerCardControllerPut(card.id, { + enabled: true, + id: card.id, + runner: runnerinfo.id, + }).then(() => { + state = "done"; + }); + } else { + state = "error_card_404"; + } + }); } } }} @@ -58,8 +84,8 @@ {/if} + {:else} + + {#if state === "assigning"} +

Assigning Card {cardCode} ⌛

+

Please wait a moment while we assign the card...

+ {/if} + {#if state === "done"} +

+ Assigned Card {cardCode} to {runnerinfo.firstname} + {runnerinfo.lastname} [#{runnerinfo.id}] ✅ +

+ + {/if} + {/if}
diff --git a/src/components/general/QrCodeScanner.svelte b/src/components/general/QrCodeScanner.svelte index a0ca28e9..0bdc726b 100644 --- a/src/components/general/QrCodeScanner.svelte +++ b/src/components/general/QrCodeScanner.svelte @@ -14,12 +14,16 @@ const dispatch = createEventDispatcher(); function onScanSuccess(decodedText, decodedResult) { - dispatch("detect", { decodedText }); + if (!paused) { + dispatch("detect", { decodedText }); + } } // usually better to ignore and keep scanning function onScanFailure(message) { - dispatch("error", { message }); + if (!paused) { + dispatch("error", { message }); + } } let scanner;