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