From 42c2a7fd146a846163b7a8657e1241a269319fa4 Mon Sep 17 00:00:00 2001
From: Hidayatullah Wildan Ghaly Buchary <16521502@std.stei.itb.ac.id>
Date: Sat, 7 Oct 2023 16:25:41 +0700
Subject: [PATCH] fix: bug when user spamming button

---
 api/achievement/my-achievement.php | 2 ++
 app/views/my-achievement/index.php | 2 +-
 public/css/achievement.css         | 4 ++++
 public/js/achievement.js           | 4 ++--
 public/js/my-achievement.js        | 3 +++
 5 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/api/achievement/my-achievement.php b/api/achievement/my-achievement.php
index a290178..fc919b1 100644
--- a/api/achievement/my-achievement.php
+++ b/api/achievement/my-achievement.php
@@ -106,12 +106,14 @@ if ($page < $pages){
 }
 
 $paginationButtons .= '</ul>';
+$isAdmin = $_SESSION['isAdmin'];
 
 $response = [
     'achievementList' => $achievementList,
     'paginationButtons' => $paginationButtons,
     'query1' => $sql1,
     'query2' => $sql2,
+    'isAdmin' => $isAdmin,
 
 ];
 
diff --git a/app/views/my-achievement/index.php b/app/views/my-achievement/index.php
index 49ca22d..fcefda4 100644
--- a/app/views/my-achievement/index.php
+++ b/app/views/my-achievement/index.php
@@ -20,7 +20,7 @@ if (!isset($_SESSION['username'])) {
     <div class="achievement-container">
         <h1><b>MY-ACHIEVEMENT</b></h1>
         <br>
-        <button class="btn" onclick="window.location.href='../admin-achievement'"><b>ADMIN</b></button>
+        <button id="btn-admin" class="btn-admin" onclick="window.location.href='../admin-achievement'"><b>ADMIN</b></button>
         <button class="btn" onclick="window.location.href='../achievement'"><b>ACHIEVEMENT</b></button>
         <br><br>
         <div class="search-container">
diff --git a/public/css/achievement.css b/public/css/achievement.css
index 1048588..c35e4d8 100644
--- a/public/css/achievement.css
+++ b/public/css/achievement.css
@@ -235,6 +235,10 @@ body {
   background-color: rgb(127, 0, 25);
 }
 
+.btn-admin {
+  display: none;
+}
+
 button {
   align-items: center;
   appearance: none;
diff --git a/public/js/achievement.js b/public/js/achievement.js
index 2458fbd..a1ee1b5 100644
--- a/public/js/achievement.js
+++ b/public/js/achievement.js
@@ -57,8 +57,8 @@ document.addEventListener('DOMContentLoaded', function () {
                 const response = JSON.parse(xhr.responseText);
                 achievementList.innerHTML = response.achievementList;
                 paginationButtons.innerHTML = response.paginationButtons;
-                if (response.isAdmin === "0" || response.isAdmin === 0 || response.isAdmin === false || response.isAdmin === "false" || response.isAdmin === null || response.isAdmin === "null" || response.isAdmin === undefined || response.isAdmin === "undefined") {
-                    document.getElementById("btn-admin").style.display = "none";
+                if (!(response.isAdmin === "0" || response.isAdmin === 0 || response.isAdmin === false || response.isAdmin === "false" || response.isAdmin === null || response.isAdmin === "null" || response.isAdmin === undefined || response.isAdmin === "undefined")) {
+                    document.getElementById("btn-admin").style.display = "inline-flex";
                 }
             }
         };
diff --git a/public/js/my-achievement.js b/public/js/my-achievement.js
index 4b3aa7a..c00631e 100644
--- a/public/js/my-achievement.js
+++ b/public/js/my-achievement.js
@@ -55,6 +55,9 @@ document.addEventListener('DOMContentLoaded', function () {
                 const response = JSON.parse(xhr.responseText);
                 achievementList.innerHTML = response.achievementList;
                 paginationButtons.innerHTML = response.paginationButtons;
+                if (!(response.isAdmin === "0" || response.isAdmin === 0 || response.isAdmin === false || response.isAdmin === "false" || response.isAdmin === null || response.isAdmin === "null" || response.isAdmin === undefined || response.isAdmin === "undefined")) {
+                    document.getElementById("btn-admin").style.display = "inline-flex";
+                }
             }
         };
         xhr.send();
-- 
GitLab