From c97e9c36b4e7de559c53a599dbb174da5f440618 Mon Sep 17 00:00:00 2001 From: cweitat Date: Thu, 7 Sep 2023 17:04:48 +0800 Subject: [PATCH] fixed scanning and data processing (#105) * renamed files and fixed first name not showing * codacy readme + create clear store * fix daily check in unaccessible * fix camera * create new utils * checkin works completed * complete registration * fixed codacy * fixed formatting * readme codacy --- Readme.md | 31 +-- package-lock.json | 209 +++++++++--------- package.json | 2 +- public/test-badge.pdf | Bin 0 -> 16054 bytes .../CheckInCamera.vue} | 9 +- .../CheckInStats.vue} | 4 +- src/components/Common/QRCamera.vue | 15 +- src/components/LoginForm.vue | 7 +- src/components/NavBar.vue | 26 +-- .../NotificationBaseTemplate.vue | 2 +- .../{ScannerCamera.vue => KioskOverview.vue} | 0 .../{Manual => Station}/RegistrationStats.vue | 0 .../{Manual => Station}/SearchAttendee.vue | 6 +- .../StationOverview.vue} | 2 +- src/components/StationSelector.vue | 191 ++++++++-------- src/components/Utilities/QRCamera.vue | 69 +++++- src/router/index.js | 48 ++-- src/stores/api.js | 8 +- src/stores/attendees.js | 43 ++-- src/stores/auth.js | 3 + src/stores/camera.js | 56 +++-- src/stores/events.js | 11 +- src/stores/navbar.js | 61 +++-- src/stores/printModal.js | 22 +- src/stores/processCheckIn.js | 28 ++- src/stores/processRegistration.js | 20 +- src/stores/sessions.js | 18 +- src/stores/stationSelector.js | 45 ++-- src/stores/stations.js | 71 ++++-- src/stores/user.js | 29 ++- src/utils/clearStores.js | 37 ++++ src/utils/extractAttendeeId.js | 6 + src/utils/extractVcardID.js | 14 ++ src/utils/serverDateTimeToLocal.js | 2 +- .../{ScannerTemplate.vue => CheckInView.vue} | 0 ...rationStation.vue => RegistrationView.vue} | 0 ...{StationSelector.vue => SelectStation.vue} | 0 37 files changed, 676 insertions(+), 419 deletions(-) create mode 100644 public/test-badge.pdf rename src/components/{QRScanner/ScannerCamera.vue => CheckIn/CheckInCamera.vue} (79%) rename src/components/{QRScanner/ScannedStats.vue => CheckIn/CheckInStats.vue} (95%) rename src/components/Registration/Kiosk/{ScannerCamera.vue => KioskOverview.vue} (100%) rename src/components/Registration/{Manual => Station}/RegistrationStats.vue (100%) rename src/components/Registration/{Manual => Station}/SearchAttendee.vue (98%) rename src/components/Registration/{Manual/ScanSearch.vue => Station/StationOverview.vue} (89%) create mode 100644 src/utils/clearStores.js create mode 100644 src/utils/extractAttendeeId.js create mode 100644 src/utils/extractVcardID.js rename src/views/{ScannerTemplate.vue => CheckInView.vue} (100%) rename src/views/{RegistrationStation.vue => RegistrationView.vue} (100%) rename src/views/{StationSelector.vue => SelectStation.vue} (100%) diff --git a/Readme.md b/Readme.md index 28af994..b621126 100644 --- a/Readme.md +++ b/Readme.md @@ -75,30 +75,32 @@ Deployed in a production environment at [checkin.eventyay.com](https://checkin.e Only deployed locally with `npm run dev` or Netlify when you make a pull request it consumes the API exposed by development branch of open event server, hosted at [test-api.eventyay.com](https://test-api.eventyay.com). ## Further Reading / Useful Links +[Vue.js](https://vuejs.org/) -- [Vue.js](https://vuejs.org/) +[Vue Router](https://router.vuejs.org/) -- [Vue Router](https://router.vuejs.org/) +[Pinia](https://pinia.vuejs.org/) -- [Pinia](https://pinia.vuejs.org/) - -- [Tailwind CSS](https://tailwindcss.com/) +[Tailwind CSS](https://tailwindcss.com/) -- [Headless UI](https://headlessui.com/) +[Headless UI](https://headlessui.com/) -- [heroicons](https://heroicons.com/) +[heroicons](https://heroicons.com/) -- [Vue Devtools for browsers](https://devtools.vuejs.org/guide/installation.html) +[Vue Devtools for browsers](https://devtools.vuejs.org/guide/installation.html) ## Contributions Best Practices ### Commits -- Write clear meaningful git commit messages (Do read [chris.beams.io/posts/git-commit/](https://chris.beams.io/posts/git-commit/)) -- Make sure your PR's description contains GitHub's special keyword references that automatically close the related issue when the PR is merged. (More info at [github.com/blog/1506-closing-issues-via-pull-requests](https://github.com/blog/1506-closing-issues-via-pull-requests) ) -- When you make very minor changes to a PR of yours (like for example fixing a failing Travis build or some small style corrections or minor changes requested by reviewers) make sure you squash your commits afterward so that you don't have an absurd number of commits for a very small fix. (Learn how to squash at [davidwalsh.name/squash-commits-git](https://davidwalsh.name/squash-commits-git) ) -- When you're submitting a PR for a UI-related issue, it would be really awesome if you add a screenshot of your change or a link to a deployment where it can be tested out along with your PR. It makes it very easy for the reviewers and you'll also get reviews quicker. +Write clear meaningful git commit messages (Do read [https://chris.beams.io/posts/git-commit/](https://chris.beams.io/posts/git-commit/)) + +Make sure your PR's description contains GitHub's special keyword references that automatically close the related issue when the PR is merged. (More info at [https://github.com/blog/1506-closing-issues-via-pull-requests](https://github.com/blog/1506-closing-issues-via-pull-requests) ) + +When you make very minor changes to a PR of yours (like for example fixing a failing Travis build or some small style corrections or minor changes requested by reviewers) make sure you squash your commits afterward so that you don't have an absurd number of commits for a very small fix. (Learn how to squash at [https://davidwalsh.name/squash-commits-git](https://davidwalsh.name/squash-commits-git) ) + +When you're submitting a PR for a UI-related issue, it would be really awesome if you add a screenshot of your change or a link to a deployment where it can be tested out along with your PR. It makes it very easy for the reviewers and you'll also get reviews quicker. ### Feature Requests and Bug Reports @@ -106,8 +108,9 @@ When you file a feature request or when you are submitting a bug report to the [ ### Join the development -- Before you join development, please set up the project on your local machine, run it and go through the application completely. -- If you would like to work on an issue, drop in a comment with the estimated completion date at the issue. If it is already assigned to someone, but there is no sign of any work being done, please feel free to drop in a comment. +Before you join development, please set up the project on your local machine, run it and go through the application completely. + +If you would like to work on an issue, drop in a comment with the estimated completion date at the issue. If it is already assigned to someone, but there is no sign of any work being done, please feel free to drop in a comment. ## License diff --git a/package-lock.json b/package-lock.json index 3332041..fb1c401 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,7 @@ "mande": "^2.0.6", "pinia": "^2.1.3", "vue": "^3.3.4", - "vue-qrcode-reader": "3.1.0-vue3-compatibility.2", + "vue-qrcode-reader": "^5.3.4", "vue-router": "^4.2.2" }, "devDependencies": { @@ -713,6 +713,24 @@ "integrity": "sha512-V+MvGwaHH03hYhY+k6Ef/xKd6RYlc4q8WBx+2ANmipHJcKuktNcI/NgEsJgdSUF6Lw32njT6OnrRsKYCdgHjYw==", "dev": true }, + "node_modules/@sec-ant/barcode-detector": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@sec-ant/barcode-detector/-/barcode-detector-1.3.1.tgz", + "integrity": "sha512-JeQ9OnDNN1hYM7pxLpD0jhI7isnSkBTC+oxqqBfCtCzCDyr+807ouvjLbIUrHdZPp+7AaJhnYBdp09R++Z/POA==", + "dependencies": { + "@sec-ant/zxing-wasm": "^2.1.3", + "@types/dom-webcodecs": "^0.1.8" + } + }, + "node_modules/@sec-ant/zxing-wasm": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@sec-ant/zxing-wasm/-/zxing-wasm-2.1.4.tgz", + "integrity": "sha512-7KmKMvN5nT4AL5hrXzTouO6MBSK4mZladSaiYT7gDqEMRiHcEKBfrgV3f0KwWeUSexzouQMJrczYvobXtXl3Ig==", + "dependencies": { + "@types/emscripten": "^1.39.7", + "zustand": "^4.4.1" + } + }, "node_modules/@sideway/address": { "version": "4.1.4", "resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz", @@ -770,6 +788,16 @@ "@types/chai": "*" } }, + "node_modules/@types/dom-webcodecs": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@types/dom-webcodecs/-/dom-webcodecs-0.1.8.tgz", + "integrity": "sha512-KThTPaGQJLITk8Q0XkEkz+GqFdoWDyQfbyeJmfEUagB15TZQdNx5AqP2b7GP6vkVM6X/6T1Z8EHxA8RgHfY9BA==" + }, + "node_modules/@types/emscripten": { + "version": "1.39.7", + "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.39.7.tgz", + "integrity": "sha512-tLqYV94vuqDrXh515F/FOGtBcRMTPGvVV1LzLbtYDcQmmhtpf/gLYf+hikBbQk8MzOHNz37wpFfJbYAuSn8HqA==" + }, "node_modules/@types/estree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz", @@ -914,19 +942,6 @@ "url": "https://opencollective.com/vitest" } }, - "node_modules/@vue/compat": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compat/-/compat-3.3.4.tgz", - "integrity": "sha512-VwAsPqUqRJVxeLQPUC03Sa5d+T8UG2Qv4VItq74KmNvtQlRXICpa/sqq12BcyBB4Tz1U5paOEZxWCUoXkrZ9QQ==", - "dependencies": { - "@babel/parser": "^7.21.3", - "estree-walker": "^2.0.2", - "source-map-js": "^1.0.2" - }, - "peerDependencies": { - "vue": "3.3.4" - } - }, "node_modules/@vue/compiler-core": { "version": "3.3.4", "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", @@ -1066,26 +1081,6 @@ "vue": "^3.0.1" } }, - "node_modules/@zxing/library": { - "version": "0.18.6", - "resolved": "https://registry.npmjs.org/@zxing/library/-/library-0.18.6.tgz", - "integrity": "sha512-bulZ9JHoLFd9W36pi+7e7DnEYNJhljYjZ1UTsKPOoLMU3qtC+REHITeCRNx40zTRJZx18W5TBRXt5pq2Uopjsw==", - "dependencies": { - "ts-custom-error": "^3.0.0" - }, - "engines": { - "node": ">= 10.4.0" - }, - "optionalDependencies": { - "@zxing/text-encoding": "~0.9.0" - } - }, - "node_modules/@zxing/text-encoding": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", - "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", - "optional": true - }, "node_modules/abab": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", @@ -1435,15 +1430,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/barcode-detector": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/barcode-detector/-/barcode-detector-1.0.3.tgz", - "integrity": "sha512-pQY+sPhY2aZ9hdLJnniY5zcsaDXSpymTWtVbZHbmJPVCRt7HnYYfXLLHQ4rEYOvahEML3oJ71VjwBc80hS0RvQ==", - "dependencies": { - "@zxing/library": "^0.18.4", - "jsqr": "^1.3.1" - } - }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -1624,11 +1610,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callforth": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/callforth/-/callforth-0.3.1.tgz", - "integrity": "sha512-Q2zPfqnwoKsb1DTVCr4lmhe49wKNBsMmNlbudjleu3/co+Nw1pOqFHYJHrW3VZ253ou9AAr+xauQR0C55NPdzA==" - }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -1962,16 +1943,6 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "dev": true }, - "node_modules/core-js": { - "version": "3.31.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.31.0.tgz", - "integrity": "sha512-NIp2TQSGfR6ba5aalZD+ZQ1fSxGhDo/s1w0nx3RYzf2pnJxt7YynxFlFScP6eV7+GZsKO95NSjGxyJsU3DZgeQ==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", @@ -3524,6 +3495,12 @@ "node": ">= 0.8" } }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "peer": true + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -3679,11 +3656,6 @@ "verror": "1.10.0" } }, - "node_modules/jsqr": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsqr/-/jsqr-1.4.0.tgz", - "integrity": "sha512-dxLob7q65Xg2DvstYkRpkYtmKm2sPJ9oFhrhmudT1dZvNFFTlroai3AWSpLey/w5vMcLBXRgOJsbXpdN9HzU/A==" - }, "node_modules/lazy-ass": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/lazy-ass/-/lazy-ass-1.6.0.tgz", @@ -3865,6 +3837,18 @@ "node": ">=8" } }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "peer": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, "node_modules/loupe": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", @@ -4869,6 +4853,18 @@ } ] }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "peer": true, + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/react-is": { "version": "17.0.2", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", @@ -5023,18 +5019,6 @@ "integrity": "sha512-APM0Gt1KoXBz0iIkkdB/kfvGOwC4UuJFeG/c+yV7wSc7q96cG/kJ0HiYCnzivD9SB53cLV1MlHFNfOuPaadYSw==", "dev": true }, - "node_modules/rtcpeerconnection-shim": { - "version": "1.2.15", - "resolved": "https://registry.npmjs.org/rtcpeerconnection-shim/-/rtcpeerconnection-shim-1.2.15.tgz", - "integrity": "sha512-C6DxhXt7bssQ1nHb154lqeL0SXz5Dx4RczXZu2Aa/L1NJFnEVDxFwCBo3fqtuljhHIGceg5JKBV4XJ0gW5JKyw==", - "dependencies": { - "sdp": "^2.6.0" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=3.10.0" - } - }, "node_modules/run-parallel": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", @@ -5106,9 +5090,9 @@ } }, "node_modules/sdp": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/sdp/-/sdp-2.12.0.tgz", - "integrity": "sha512-jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw==" + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/sdp/-/sdp-3.2.0.tgz", + "integrity": "sha512-d7wDPgDV3DDiqulJjKiV2865wKsJ34YI+NDREbm+FySq6WuKOikwyNQcm+doLAZ1O6ltdO0SeKle2xMpN3Brgw==" }, "node_modules/semver": { "version": "7.5.2", @@ -5681,14 +5665,6 @@ "node": ">=14" } }, - "node_modules/ts-custom-error": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/ts-custom-error/-/ts-custom-error-3.3.1.tgz", - "integrity": "sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==", - "engines": { - "node": ">=14.0.0" - } - }, "node_modules/ts-interface-checker": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", @@ -5839,6 +5815,14 @@ "requires-port": "^1.0.0" } }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -6054,16 +6038,15 @@ } }, "node_modules/vue-qrcode-reader": { - "version": "3.1.0-vue3-compatibility.2", - "resolved": "https://registry.npmjs.org/vue-qrcode-reader/-/vue-qrcode-reader-3.1.0-vue3-compatibility.2.tgz", - "integrity": "sha512-tGu2zmPGSi9SJR08Yl2favix0vs5SgXudGXdwW2KxcvlU9jfsX9FAYkuaifyiq3CgxKijwRxA/YJpS0Yl9PMfw==", + "version": "5.3.4", + "resolved": "https://registry.npmjs.org/vue-qrcode-reader/-/vue-qrcode-reader-5.3.4.tgz", + "integrity": "sha512-pWF4Vhj/J2tVYP8VIQKue6Pl9K1ccA9iadG+u6LGnIYjwxVDZRDoXQYpKRX8IfYKFgSkRMQhLlj0xwCLiw7YdQ==", "dependencies": { - "@vue/compat": "^3.1.0", - "barcode-detector": "^1.0.0", - "callforth": "^0.3.1", - "core-js": "^3.6.5", - "vue": "^3.1.0", - "webrtc-adapter": "7.7.0" + "@sec-ant/barcode-detector": "^1.2.2", + "webrtc-adapter": "^8.2.3" + }, + "engines": { + "node": ">=18.0.0" } }, "node_modules/vue-router": { @@ -6121,12 +6104,11 @@ } }, "node_modules/webrtc-adapter": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/webrtc-adapter/-/webrtc-adapter-7.7.0.tgz", - "integrity": "sha512-7Bp9OBnx642oJRkom1tNAbeJjUadAq2rh5xLL9YXPw5hVyt2h4hHr5bcoPYDs1stp/mZHSPSQA34YISdnr0DBQ==", + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/webrtc-adapter/-/webrtc-adapter-8.2.3.tgz", + "integrity": "sha512-gnmRz++suzmvxtp3ehQts6s2JtAGPuDPjA1F3a9ckNpG1kYdYuHWYpazoAnL9FS5/B21tKlhkorbdCXat0+4xQ==", "dependencies": { - "rtcpeerconnection-shim": "^1.2.15", - "sdp": "^2.12.0" + "sdp": "^3.2.0" }, "engines": { "node": ">=6.0.0", @@ -6302,6 +6284,33 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/zustand": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-4.4.1.tgz", + "integrity": "sha512-QCPfstAS4EBiTQzlaGP1gmorkh/UL1Leaj2tdj+zZCZ/9bm0WS7sI2wnfD5lpOszFqWJ1DcPnGoY8RDL61uokw==", + "dependencies": { + "use-sync-external-store": "1.2.0" + }, + "engines": { + "node": ">=12.7.0" + }, + "peerDependencies": { + "@types/react": ">=16.8", + "immer": ">=9.0", + "react": ">=16.8" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + } + } } } } diff --git a/package.json b/package.json index aea0173..063ab33 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "mande": "^2.0.6", "pinia": "^2.1.3", "vue": "^3.3.4", - "vue-qrcode-reader": "3.1.0-vue3-compatibility.2", + "vue-qrcode-reader": "^5.3.4", "vue-router": "^4.2.2" }, "devDependencies": { diff --git a/public/test-badge.pdf b/public/test-badge.pdf new file mode 100644 index 0000000000000000000000000000000000000000..51967bd1209aa7e8b77dafc5610ac51f05d973d8 GIT binary patch literal 16054 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 { - await sessionsStore.getCurrentSession(microlocationId) + if (scannerType !== 'daily') { + await sessionsStore.getCurrentSession(microlocationId) + } + processCheckInStore.$reset() loadingStore.contentLoaded() }) @@ -27,10 +30,10 @@ onBeforeMount(async () => {

- {{ processCheckInStore.response.message }}

diff --git a/src/components/QRScanner/ScannedStats.vue b/src/components/CheckIn/CheckInStats.vue similarity index 95% rename from src/components/QRScanner/ScannedStats.vue rename to src/components/CheckIn/CheckInStats.vue index d0c05b6..b1a075c 100644 --- a/src/components/QRScanner/ScannedStats.vue +++ b/src/components/CheckIn/CheckInStats.vue @@ -11,6 +11,7 @@ const statsStore = useStatsStore() const sessionsStore = useSessionsStore() const route = useRoute() const eventId = route.params.eventId +const scannerType = route.params.scannerType const microlocationId = route.params.stationId const sessionStats = ref([ @@ -52,7 +53,7 @@ onBeforeMount(async () => {

Stats

-
+

Current Session: {{ sessionsStore.currentSessionName }} @@ -86,5 +87,6 @@ onBeforeMount(async () => {

+
Work in progress
diff --git a/src/components/Common/QRCamera.vue b/src/components/Common/QRCamera.vue index 5820ddf..ddc1ea6 100644 --- a/src/components/Common/QRCamera.vue +++ b/src/components/Common/QRCamera.vue @@ -1,6 +1,7 @@