This commit is contained in:
Evelyn Sucitro 2025-12-15 22:01:03 +07:00
parent 7e99339f21
commit 08f00ee6d6
2 changed files with 48 additions and 20 deletions

View File

@ -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) {

View File

@ -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");
console.log("Mencoba logout ke server..."); // Debugging
// Close logout modal
closeLogoutModal();
// 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);
// Show success modal
showSuccessModal();
// 2. Hapus data di browser (Session Storage)
sessionStorage.removeItem("loggedInUser");
sessionStorage.removeItem("authToken"); // Kalau ada
sessionStorage.clear(); // Bersihkan semuanya biar aman
// Redirect after 1.5 seconds
setTimeout(() => {
window.location.href = 'Homepage.html';
}, 1500);
// 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 ====================