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 @@
+
+
+
QR-Generator
+
Cache: {{ cacheName }}
+
+
+
Station {{ index + 1 }}
+
+
+
+
{{ cacheId }}/{{ station.id }}
+
+
+
+
+
+
+
+
+
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 @@
-
+
+
QR-Scanner
+
Mit diesem Scanner kannst du die nächste Station deines Caches einscannen
+ oder einen neuen Cache beginnen indem du eine der Startstationen einscannst.
+ Du findest die Startstationen über die Karte.
+
+
@@ -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"),