From 08f00ee6d6889bb9c3375232286c7c31023b532c Mon Sep 17 00:00:00 2001 From: Evelyn Sucitro Date: Mon, 15 Dec 2025 22:01:03 +0700 Subject: [PATCH] Update --- Leaderboard.js | 17 +++++++++++++---- Logout.js | 51 ++++++++++++++++++++++++++++++++++---------------- 2 files changed, 48 insertions(+), 20 deletions(-) diff --git a/Leaderboard.js b/Leaderboard.js index 8932575..e8eee5c 100644 --- a/Leaderboard.js +++ b/Leaderboard.js @@ -3,23 +3,32 @@ document.addEventListener("DOMContentLoaded", () => { }); function loadLeaderboard() { - fetch('Leaderboard.php') + // Tambahkan '?t=' + waktu sekarang agar URL selalu unik & tidak di-cache + fetch('Leaderboard.php?t=' + new Date().getTime()) .then(response => response.json()) .then(data => { if (data.status === "success") { - // Render Top 10 + // 1. Render Top 10 renderLeaderboard(data.leaderboard); - // Render Ranking Saya (User Rank) + // 2. LOGIKA BARU UNTUK USER RANK + const rankContainer = document.getElementById('userRankContainer'); + if (data.user_rank) { + // Kalo user LOGIN (ada datanya): + // Render isinya & Pastikan MUNCUL (display: block) renderUserRank(data.user_rank); + if (rankContainer) rankContainer.style.display = 'block'; + } else { + // Kalo user LOGOUT (datanya null): + // SEMBUNYIKAN elemennya! + if (rankContainer) rankContainer.style.display = 'none'; } } }) .catch(error => console.error("Error loading leaderboard:", error)); } -// ... fungsi renderLeaderboard tetap sama ... // TAMBAHKAN FUNGSI INI DI BAWAH function renderUserRank(user) { diff --git a/Logout.js b/Logout.js index b253950..d5611cc 100644 --- a/Logout.js +++ b/Logout.js @@ -1,7 +1,7 @@ (function() { 'use strict'; - // ==================== CHECK LOGIN STATUS ==================== + // CHECK LOGIN STATUS function checkLoginStatus() { const loggedInUser = sessionStorage.getItem("loggedInUser"); const loginBtn = document.querySelector('.btn-login'); @@ -102,22 +102,41 @@ document.removeEventListener('keydown', handleEscapeKey); } - // ==================== CONFIRM LOGOUT ==================== + // CONFIRM LOGOUT + // GANTI fungsi confirmLogout() yang lama dengan ini: + function confirmLogout() { - // ✅ Clear semua session data - sessionStorage.removeItem("loggedInUser"); - sessionStorage.removeItem("authToken"); - - // Close logout modal - closeLogoutModal(); - - // Show success modal - showSuccessModal(); - - // Redirect after 1.5 seconds - setTimeout(() => { - window.location.href = 'Homepage.html'; - }, 1500); + console.log("Mencoba logout ke server..."); // Debugging + + // 1. Panggil PHP untuk hancurkan sesi server + fetch('Logout.php') + .then(response => { + console.log("Respon server:", response); + return response.json(); // Ubah ke JSON biar bisa dicek + }) + .then(data => { + console.log("Status Logout:", data); + + // 2. Hapus data di browser (Session Storage) + sessionStorage.removeItem("loggedInUser"); + sessionStorage.removeItem("authToken"); // Kalau ada + sessionStorage.clear(); // Bersihkan semuanya biar aman + + // 3. Tutup Modal & Redirect + closeLogoutModal(); + showSuccessModal(); + + setTimeout(() => { + // Redirect ke Homepage + window.location.replace('Homepage.html'); + }, 1500); + }) + .catch(error => { + console.error('Logout error:', error); + // Fallback: Kalau server error, tetap paksa keluar di tampilan + sessionStorage.clear(); + window.location.replace('Homepage.html'); + }); } // ==================== SHOW SUCCESS MODAL ====================