From 347da7709e72e4c39263532e643c69ed08485440 Mon Sep 17 00:00:00 2001
From: Connor <brockcc1@cardiff.ac.uk>
Date: Mon, 4 Dec 2023 23:15:18 +0000
Subject: [PATCH] Added fields into dragonstale database as a test to further
 integrate QR code checking against URL path. Also added some basic
 window.open functionality in the JS file.

---
 .../Team5/SmartTowns/Landmarks/Landmarks.java   |   2 +-
 .../SmartTowns/trails/TrailsController.java     |  16 ++++++++++++----
 src/main/resources/data.sql                     |   5 ++++-
 .../resources/static/images/QRAllTrails.png     | Bin 0 -> 47376 bytes
 src/main/resources/static/qr-scanner.html       |   4 ++++
 src/main/resources/static/scripts/qr-script.js  |   1 +
 6 files changed, 22 insertions(+), 6 deletions(-)
 create mode 100644 src/main/resources/static/images/QRAllTrails.png

diff --git a/src/main/java/Team5/SmartTowns/Landmarks/Landmarks.java b/src/main/java/Team5/SmartTowns/Landmarks/Landmarks.java
index 381ccf04..27eb07a2 100644
--- a/src/main/java/Team5/SmartTowns/Landmarks/Landmarks.java
+++ b/src/main/java/Team5/SmartTowns/Landmarks/Landmarks.java
@@ -40,6 +40,6 @@ public class Landmarks {
         this.landmarkName = landmarkName;
         this.landmarkDescription = landmarkDescription;
         this.landmarkLocation = landmarkLocation;    }
-
+        // ? URl check
 
 }
diff --git a/src/main/java/Team5/SmartTowns/trails/TrailsController.java b/src/main/java/Team5/SmartTowns/trails/TrailsController.java
index 0b9b8f6c..37548995 100644
--- a/src/main/java/Team5/SmartTowns/trails/TrailsController.java
+++ b/src/main/java/Team5/SmartTowns/trails/TrailsController.java
@@ -4,14 +4,12 @@ package Team5.SmartTowns.trails;
 import Team5.SmartTowns.Landmarks.Landmarks;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Optional;
 
 import static Team5.SmartTowns.Landmarks.Landmarks.landmarksDragonstrail;
 
@@ -46,5 +44,15 @@ public class TrailsController {
         return modelAndView;
     }
 
+
+//    //
+//    @GetMapping("dragonstale/{qrCode}/{id}")
+//    public String qrCodeCheck(@PathVariable Optional<String> qrCode, @PathVariable Optional<Integer> id){
+//        if (qrCode.isPresent() && id.isPresent()){
+//            //Check if ID is present, if do this, if not dfo that.
+//
+//        }
+//    }
+
 }
 
diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql
index e40208ba..d3bcf192 100644
--- a/src/main/resources/data.sql
+++ b/src/main/resources/data.sql
@@ -54,4 +54,7 @@ insert into badgeprogress (userID, badgeID, progress) value ('2', '2', '70');
 delete from stickerprogress;
 insert into stickerprogress (userID, stickerID, hasSticker) value ('1', '1', true);
 insert into stickerprogress (userID, stickerID, hasSticker) value ('1', '3', true);
-insert into stickerprogress (userID, stickerID, hasSticker) value ('2', '2', true);
\ No newline at end of file
+insert into stickerprogress (userID, stickerID, hasSticker) value ('2', '2', true);
+
+insert into dragonstale (landmarkID, landmarkName, landmarkDescription) value (1, 'A scent of...Dragon', 'The Dragon has been spotted near by, find the QR code to continue');
+insert into dragonstale (landmarkID, landmarkName, landmarkDescription) value (2, 'They''ve been found!', 'Don''t let them escape, find the next QR code to continue!');
\ No newline at end of file
diff --git a/src/main/resources/static/images/QRAllTrails.png b/src/main/resources/static/images/QRAllTrails.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed1d4465b3c286eba618b9a459b5a35295bacc8d
GIT binary patch
literal 47376
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

literal 0
HcmV?d00001

diff --git a/src/main/resources/static/qr-scanner.html b/src/main/resources/static/qr-scanner.html
index 70717775..2e93c18b 100644
--- a/src/main/resources/static/qr-scanner.html
+++ b/src/main/resources/static/qr-scanner.html
@@ -14,6 +14,8 @@
 </head>
 
 <body>
+    <header th:insert="towns/Templating.html :: header"></header>
+
     <div class="container">
         <h1>Scan location QR code</h1>
         <div class="section">
@@ -21,5 +23,7 @@
             </div>
         </div>
     </div>
+
+    <div th:insert="towns/Templating.html :: footer"></div>
 </body>
 </html>
diff --git a/src/main/resources/static/scripts/qr-script.js b/src/main/resources/static/scripts/qr-script.js
index 8a80c70e..ff2bbf82 100644
--- a/src/main/resources/static/scripts/qr-script.js
+++ b/src/main/resources/static/scripts/qr-script.js
@@ -15,6 +15,7 @@ domReady(function (message){
     function onScanSuccess(decodeText, decodeResult){
         alert("You have collected: " + decodeText, decodeResult);
         // Open the result, what methods are available through the HTML5 Qr scanner node package?
+        window.open(decodeText);
         // Record the result, see above.
         // Get user and tie to user account, intergrate with database, retrieving and storing under user info.
     }
-- 
GitLab