From 6c0aa8fc4fa89259eb081b6f388489539f0ca4b2 Mon Sep 17 00:00:00 2001
From: rayhanp1402 <rayhan.hanif14maulana@gmail.com>
Date: Sat, 4 Nov 2023 18:49:43 +0700
Subject: [PATCH] Initial work on Trainer viewing

---
 src/admin/gym/index.php                   |  2 +
 src/admin/gym/trainer/index.php           | 44 ++++++++++++++
 src/public/javascript/gym/trainer.js      | 73 ++++++++++++++++++++++-
 src/public/javascript/gym/trainer_card.js |  2 +-
 4 files changed, 118 insertions(+), 3 deletions(-)

diff --git a/src/admin/gym/index.php b/src/admin/gym/index.php
index 92c4ba1..cc79f2b 100644
--- a/src/admin/gym/index.php
+++ b/src/admin/gym/index.php
@@ -116,7 +116,9 @@ AuthMiddleware::getInstance()->secureRoute(true);
     <script src="/public/javascript/gym/format_card.js"></script>
     <script src="/public/javascript/gym/trainer_card.js"></script>
     <script src="/public/javascript/gym/application.js"></script>
+    <script src="/public/javascript/gym/trainer.js"></script>
     <script>
+        getGymTrainers();
         getGymApplication(<?php echo $gym_id ?>);
     </script>
 </body>
diff --git a/src/admin/gym/trainer/index.php b/src/admin/gym/trainer/index.php
index e69de29..754b726 100644
--- a/src/admin/gym/trainer/index.php
+++ b/src/admin/gym/trainer/index.php
@@ -0,0 +1,44 @@
+<?php
+
+require_once __DIR__ . '/../../../components/NavbarAdmin.php';
+require_once __DIR__ . '/../../../middleware/AuthMiddleware.php';
+
+AuthMiddleware::getInstance()->secureRoute(true);
+
+?>
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="UTF-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <link rel="stylesheet" href="/public/css/style.css">
+    <link rel="stylesheet" href="/public/css/application.css"> 
+    <title>Gym Finder App</title>
+</head>
+
+<body>
+    <div class="app">
+        <script>
+            const apikey = <?php echo json_encode($_ENV['API_KEY']) ?>;
+            const urlParams = new URLSearchParams(window.location.search);
+            const gymId = urlParams.get("gym_id");
+            const username = urlParams.get("trainer_username");
+        </script>
+        <?php
+        echo NavbarAdmin();
+        ?>
+        <div class="space"></div>
+        <div class="application-container" id="application-trainer">
+        </div>
+        <div class="space"></div>
+    </div>
+    <script src="/public/javascript/gym/format_card.js"></script>
+    <script src="/public/javascript/gym/trainer_card.js"></script>
+    <script src="/public/javascript/gym/trainer.js"></script>
+    <script>
+        showTrainerData(trainerData[0]);   // Temporary example
+    </script>
+</body>
+
+</html>
diff --git a/src/public/javascript/gym/trainer.js b/src/public/javascript/gym/trainer.js
index 5985852..ffd8d2d 100644
--- a/src/public/javascript/gym/trainer.js
+++ b/src/public/javascript/gym/trainer.js
@@ -1,3 +1,72 @@
-function getTrainer(){
-    
+// dummy data
+let trainer_1 = {
+    username: "arnold123",
+    gym_id: 43,
+    trainer_name: "Arnold Schwarzenegger",
+    trainer_description: "Seven times champion of Mr. Olympia",
+    skill_name: "Arnold Press",
+    skill_description: "Shoulder press with slight modification"
+  }
+
+  let trainer_2 = {
+    username: "mike123",
+    gym_id: 43,
+    trainer_name: "Mike O'Hearn",
+    trainer_description: "Baby don't Hearn me",
+    skill_name: "Being natty",
+    skill_description: "Being a real natural (no cap)"
+  }
+
+  let trainerData = [trainer_1, trainer_2];
+
+// Functions
+function getGymTrainers() {
+    showGymTrainers(trainerData);
+}
+
+function showGymTrainers(data) {
+    const gymTrainerList = document.getElementById("gym-trainer-list");
+    gymTrainerList.innerHTML = "";
+    if (data.length == 0) {
+      gymTrainerList.innerHTML = `
+      <div class="space"></div>
+      <div class="gym-card-text"> No Aplication found </div>
+      `;
+    }
+    data.forEach((trainer) => {
+      gymTrainerList.innerHTML += TrainerCard(trainer);
+    });
+}
+
+function showTrainerData(trainer){
+    const gymTrainerList = document.getElementById("application-trainer");
+    gymTrainerList.innerHTML = `
+    <h2>Trainer Application</h2>
+    <table>
+        <tr>
+            <td><strong>Username</strong></td>
+            <td>${trainer.username}</td>
+        </tr>
+        <tr>
+            <td><strong>Gym ID</strong></td>
+            <td>${trainer.gym_id}</td>
+        </tr>
+        <tr>
+            <td><strong>Trainer Name</strong></td>
+            <td>${trainer.trainer_name}</td>
+        </tr>
+        <tr>
+            <td><strong>Trainer Description</strong></td>
+            <td>${trainer.trainer_description}</td>
+        </tr>
+        <tr>
+            <td><strong>Skill</strong></td>
+            <td>${trainer.skill_name}</td>
+        </tr>
+        <tr>
+            <td><strong>Skill Description</strong></td>
+            <td>${trainer.skill_description}</td>
+        </tr>
+    </table>
+    `
 }
\ No newline at end of file
diff --git a/src/public/javascript/gym/trainer_card.js b/src/public/javascript/gym/trainer_card.js
index 992d020..993bd3e 100644
--- a/src/public/javascript/gym/trainer_card.js
+++ b/src/public/javascript/gym/trainer_card.js
@@ -39,7 +39,7 @@ function TrainerCard(trainer){
     let tname = "trainer name : " + truncated_name;
     let tusername = "username : " + trainer.username;
     let trainer_card = `
-    <a class="gym-card" id="gym-card-${trainer.username}" href="./application/?gym_id=${trainer.gym_id}&trainer_username=${trainer.username}">
+    <a class="gym-card" id="gym-card-${trainer.username}" href="./trainer/?gym_id=${trainer.gym_id}&trainer_username=${trainer.username}">
     <div class="trainer-card-text bold">
         <div class="gym-card-text-bottom"> ${tname} </div>
         <div class="space3"></div>
-- 
GitLab