From b6a9cdcb07af7dabb23f4aa7fec9946326706fec Mon Sep 17 00:00:00 2001 From: Timo Volkmann Date: Wed, 8 May 2019 00:39:59 +0200 Subject: [PATCH 1/2] added qr-generator and fixed some bugs --- frontend/src/components/qrscanner.vue | 2 +- frontend/src/layouts/MyLayout.vue | 2 +- frontend/src/pages/Cache.vue | 1 + frontend/src/pages/CacheStart.vue | 165 +++----------------------- frontend/src/pages/MyCaches.vue | 2 - frontend/src/pages/Overview.vue | 17 ++- frontend/src/pages/StationView.vue | 10 -- frontend/src/pages/qr-generator.vue | 59 +++++++++ frontend/src/router/routes.js | 10 ++ 9 files changed, 95 insertions(+), 173 deletions(-) create mode 100644 frontend/src/pages/qr-generator.vue diff --git a/frontend/src/components/qrscanner.vue b/frontend/src/components/qrscanner.vue index f17a6d0..995cfa2 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.

diff --git a/frontend/src/layouts/MyLayout.vue b/frontend/src/layouts/MyLayout.vue index f879799..be9facf 100644 --- a/frontend/src/layouts/MyLayout.vue +++ b/frontend/src/layouts/MyLayout.vue @@ -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/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 @@ > - + icon="delete" label="Löschen" size="sm"/> + + @@ -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/StationView.vue b/frontend/src/pages/StationView.vue index 37b59ac..990e5b1 100644 --- a/frontend/src/pages/StationView.vue +++ b/frontend/src/pages/StationView.vue @@ -9,14 +9,7 @@

{{ cache.name }}

Station {{ showCacheProgress }}

-

{{ station.description }}

- - - - - -
@@ -104,9 +97,6 @@ console.log("updateCamera()"); this.cameraActive = event; }, - - setParams() { - }, } } 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/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"), From b5ba5230ab6c0f9a27d87e9e07ec97a1777c59de Mon Sep 17 00:00:00 2001 From: Timo Volkmann Date: Wed, 8 May 2019 12:17:47 +0200 Subject: [PATCH 2/2] improvements: profile, qr-scanner, layout --- frontend/src/components/qrscanner.vue | 34 +++++++++++++++------- frontend/src/layouts/MyLayout.vue | 2 +- frontend/src/pages/CacheEnd.vue | 28 +++++------------- frontend/src/pages/Overview.vue | 8 +++--- frontend/src/pages/Profile.vue | 41 +++++++++++---------------- frontend/src/pages/qr-scanner.vue | 13 +++++++-- 6 files changed, 63 insertions(+), 63 deletions(-) diff --git a/frontend/src/components/qrscanner.vue b/frontend/src/components/qrscanner.vue index 995cfa2..a2abe74 100644 --- a/frontend/src/components/qrscanner.vue +++ b/frontend/src/components/qrscanner.vue @@ -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 be9facf..23d2b46 100644 --- a/frontend/src/layouts/MyLayout.vue +++ b/frontend/src/layouts/MyLayout.vue @@ -52,7 +52,7 @@ to="/qr-scanner" > - + QR-Code Scanner 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/Overview.vue b/frontend/src/pages/Overview.vue index a08f598..3d127fd 100644 --- a/frontend/src/pages/Overview.vue +++ b/frontend/src/pages/Overview.vue @@ -44,13 +44,13 @@ + label="Starten" size="xs"/> + icon="delete" label="Löschen" size="xs"/> + icon="edit" label="Bearbeiten" size="xs"/> + icon="image" label="QR-Codes" size="xs"/>
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 @@