diff --git a/frontend/src/components/qrscanner.vue b/frontend/src/components/qrscanner.vue index f17a6d0..a2abe74 100644 --- a/frontend/src/components/qrscanner.vue +++ b/frontend/src/components/qrscanner.vue @@ -3,7 +3,7 @@

Hinweis: Um den QR-Code scannen zu können, müssen Sie den Zugriff auf Ihre Kamera erlauben.

@@ -65,11 +65,11 @@ this.validating = true; this.isValid = await this.validate(); - window.setTimeout(() => { - this.validating = false; - this.unPauseCamera(); - }, 2000) - //this.unPauseCamera(); + this.validating = false; + this.unPauseCamera(); + // window.setTimeout(() => { + // }, 2000) + // //this.unPauseCamera(); }, validate() { @@ -77,9 +77,11 @@ let params = this.setParams(); console.log(params); if (!params.cacheID || !params.stationID || !params.durchgefuehrterCacheID || !params.token) { - console.log("Parameter konnten nicht erkannt werden."); + console.log("Mindestens 1 Parameter konnte nicht erkannt werden!"); + resolve(false); + } else if (isNaN(params.cacheID) || isNaN(params.stationID) || isNaN(params.durchgefuehrterCacheID)) { + console.log("Mindestens 1 Parameter ist fehlerhaft!"); resolve(false); - console.log("Parameter konnten nicht erkannt werden."); } else { this.$axios.put('/api/checkStation', null, { params }) .then((response) => { @@ -98,12 +100,20 @@ let message = ""; if (error.response) { console.log(error.response); - header = "Falsche Station!"; - message = "Diese Station wurde schon gescannt, ist noch nicht an der Reihe oder gehört nicht zum Cache. "; - message += "Bitte das Rätsel nochmal lesen und die richtige Station scannen."; + if (this.$route.path === "/qr-scanner") { + console.log(this.$route); + header = "Falsche Station!"; + message = "Bitte setze einen bereits angefangenen Cache " + + "an der richtigen Station fort oder beginne einen neuen Cache indem du eine der " + + "Startstationen einscannst. Du findest die Startstationen über die Karte."; + } else { + header = "Falsche Station!"; + message = "Du hast diese Station schon gescannt oder sie ist nicht die korrekte Folgestation."; + message += "Prüfe ob du das Rätsel korrekt gelöst hast und finde die richtige Station."; + } } else if (error.request) { console.log(error.request); - header = "Anfrage fehlgeschlagen!"; + header = "Server nicht erreichbar!"; message = "Die Verbindung zum Server ist gestört. Versuchen Sie es später noch einmal."; } else { console.log(error); @@ -114,6 +124,8 @@ this.$store.commit('dialog/NEW_MESSAGE_DIALOG', { message: message, title: header, }); resolve(false); }); + window.setTimeout(() => { + }, 2000) } }) }, diff --git a/frontend/src/layouts/MyLayout.vue b/frontend/src/layouts/MyLayout.vue index f879799..23d2b46 100644 --- a/frontend/src/layouts/MyLayout.vue +++ b/frontend/src/layouts/MyLayout.vue @@ -52,7 +52,7 @@ to="/qr-scanner" > - + QR-Code Scanner @@ -81,7 +81,7 @@ to="/mycaches" > - + Meine Caches diff --git a/frontend/src/pages/Cache.vue b/frontend/src/pages/Cache.vue index 183e401..42c9e40 100644 --- a/frontend/src/pages/Cache.vue +++ b/frontend/src/pages/Cache.vue @@ -210,6 +210,7 @@ this.$store.commit('cacheCollector/RESET_NEW_CACHE'); this.$router.push({path: '/overview'}); }).catch((error) => { + //TODO: Fehlermeldungen // Error let msg; let title; diff --git a/frontend/src/pages/CacheEnd.vue b/frontend/src/pages/CacheEnd.vue index 7ba09e1..93e4f8c 100644 --- a/frontend/src/pages/CacheEnd.vue +++ b/frontend/src/pages/CacheEnd.vue @@ -2,23 +2,15 @@

{{ cacheName }}

-

{{ end1 + rankingPoints + end2 }}

+

Herzlichen Glückwunsch!

+

Du hast alle Stationen gefunden und diesen Cache damit erfolgreich abgeschlossen!

+

Dir wurden {{ rankingPoints }} Punkte gutgeschrieben.

+

Deine Belohnung:

+

- - - - - -
Deine Belohnung:
-
- - -
{{ cache.reward.rewardDescription }}
-
-
-
- + +
@@ -28,21 +20,15 @@ export default { data() { return { - reward: false, cacheID: "", cacheName: "", cache: { reward: "", }, rankingPoints: "", - end1: "Gut gemacht, Du hast alle Stationen dieses Cache gefunden. Dir wurden ", - end2: " Punkte gutgeschrieben." //TODO Punkte wirklich gutschreiben, ggf. Cache auf erledigt setzen } }, computed: { - isLoggedIn() { - return localStorage.getItem('userToken'); //TODO Methode umschreiben --> funktioniert das? - } }, created() { this.fetchData(); diff --git a/frontend/src/pages/CacheStart.vue b/frontend/src/pages/CacheStart.vue index 9c525c3..635b544 100644 --- a/frontend/src/pages/CacheStart.vue +++ b/frontend/src/pages/CacheStart.vue @@ -4,59 +4,30 @@ class="q-mb-md " :ratio="16/9" src="https://www.buga2019.de/we-bilder/3.Gartenausstellung/Gelaendeplan/190320_Gelaendeplan-quadratisch.jpg" + v-if="!cameraActive" > -
+

{{ cacheName }}

{{ instruction }}

-
-
-

Um den QR-Code scannen zu können, müssen Sie den Zugriff auf Ihre Kamera erlauben.

- - -
-
- - -
-
-
- -
-
-
-
- -
+
diff --git a/frontend/src/pages/MyCaches.vue b/frontend/src/pages/MyCaches.vue index e817543..ff7022f 100644 --- a/frontend/src/pages/MyCaches.vue +++ b/frontend/src/pages/MyCaches.vue @@ -29,7 +29,6 @@ > - + label="Starten" size="xs"/> + icon="delete" label="Löschen" size="xs"/> + + @@ -174,16 +176,13 @@ }, startCache(cacheID) { console.log("startCache()"); - // const userToken = JSON.parse(localStorage.getItem('userToken')).token; - // let params = {cacheID: cacheID}; - // if (userToken != null) { - // params.token = userToken; - // } - // console.log(params); this.$store.state.currentCache.cache = this.caches.find(cache => cache.id === Number(cacheID)); console.log(this.$store.state.currentCache.cache); this.$store.state.currentCache.currentCacheID = Number(cacheID); this.$router.push({path: `/CacheStart/${cacheID}`}) + }, + generateQrCodes(cacheID) { + this.$router.push({path: `/generator/${cacheID}`}) } } } diff --git a/frontend/src/pages/Profile.vue b/frontend/src/pages/Profile.vue index 75f3199..3b3cb3f 100644 --- a/frontend/src/pages/Profile.vue +++ b/frontend/src/pages/Profile.vue @@ -100,17 +100,17 @@ diff --git a/frontend/src/pages/qr-generator.vue b/frontend/src/pages/qr-generator.vue new file mode 100644 index 0000000..5138ed4 --- /dev/null +++ b/frontend/src/pages/qr-generator.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/frontend/src/pages/qr-scanner.vue b/frontend/src/pages/qr-scanner.vue index ef5efa2..e5859f3 100644 --- a/frontend/src/pages/qr-scanner.vue +++ b/frontend/src/pages/qr-scanner.vue @@ -1,6 +1,12 @@ @@ -11,11 +17,14 @@ components: {qrscanner}, data() { return { + cameraActive: false, } }, methods: { - + cameraState(event) { + this.cameraActive = event; + } }, } diff --git a/frontend/src/router/routes.js b/frontend/src/router/routes.js index 5036bab..8586b23 100644 --- a/frontend/src/router/routes.js +++ b/frontend/src/router/routes.js @@ -140,6 +140,16 @@ const routes = [ onlyAdmin: false, } }, + { + path: "/generator/:cache/", + component: () => import("layouts/MyLayout.vue"), + children: [{ path: "", component: () => import("pages/qr-generator.vue") }], + meta: { + public: false, // Allow access to even if not logged in + onlyWhenLoggedOut: false, + onlyAdmin: true, + } + }, { path: "/profile/", component: () => import("layouts/MyLayout.vue"),