const container = document.querySelector(".container"); firebase.auth().onAuthStateChanged((user) => { if (user) { setUserOnlineStatus(user.uid, true); // Set status to online Dashboard(user); // Set status to offline when the window is closed or refreshed window.addEventListener('beforeunload', () => { setUserOnlineStatus(user.uid, false); }); } else { Landing(); } }); function setUserOnlineStatus(uid, isOnline) { const userRef = firebase.database().ref('pertuni/perpustakaan/pengguna/' + uid + '/status'); const lastOnline = new Date().toLocaleString(); userRef.set({ online: isOnline, lastOnline: isOnline ? "Online" : lastOnline }); } const Landing = () => { const element = document.createElement("div"); element.classList.add("Landing"); // Show register and login buttons initially element.innerHTML = `
`; container.innerHTML = ""; container.appendChild(element); const registerBtn = element.querySelector(`[data-button="register"]`); const loginBtn = element.querySelector(`[data-button="login"]`); // Function to display register form const showRegisterForm = () => { element.querySelector(".inputan").innerHTML = ` `; // Hide login button when register form is displayed loginBtn.style.display = 'none'; const submitRegisterBtn = element.querySelector(`[data-button="submit-register"]`); submitRegisterBtn.addEventListener('click', () => { const nama = element.querySelector("#nama").value; const alamat = element.querySelector("#alamat").value; const nomorTelepon = element.querySelector("#nomor_telepon").value; const email = element.querySelector("#email").value; const password = element.querySelector("#password").value; if (nama && alamat && nomorTelepon && email && password) { // Validate non-empty input firebase.auth().createUserWithEmailAndPassword(email, password) .then((cred) => { const userData = { nama, alamat, nomor_telepon: nomorTelepon, email, uid: cred.user.uid }; const userRef = firebase.database().ref('pertuni/perpustakaan/pengguna/' + cred.user.uid); return userRef.set(userData); }) .then(() => { alert(`Terimakasih, Anda Berhasil Membuat Akun`); }) .catch((error) => { alert("Error: " + error.message); }); } else { alert("Maaf, Semua Form harus diisi."); } }); }; // Function to display login form const showLoginForm = () => { element.querySelector(".inputan").innerHTML = ` `; // Hide register button when login form is displayed registerBtn.style.display = 'none'; const submitLoginBtn = element.querySelector(`[data-button="submit-login"]`); const forgotPasswordBtn = element.querySelector(`[data-button="forgot-password"]`); submitLoginBtn.addEventListener('click', () => { const email = element.querySelector("#email").value; const password = element.querySelector("#password").value; if (email && password) { firebase.auth().signInWithEmailAndPassword(email, password) .then(() => { alert(`Selamat Datang Akun: ${firebase.auth().currentUser.uid}`); }) .catch((error) => { alert("Error login: " + error.message); }); } else { alert("Email dan Password harus diisi."); } }); forgotPasswordBtn.addEventListener('click', () => { const email = element.querySelector("#email").value; if (email) { firebase.auth().sendPasswordResetEmail(email) .then(() => { alert(`Password reset email sent to ${email}`); }) .catch((error) => { alert("Error sending reset email: " + error.message); }); } else { alert("Masukkan email untuk mereset password."); } }); }; // Event listener for register and login buttons registerBtn.addEventListener('click', () => { showRegisterForm(); loginBtn.style.display = 'none'; // Hide login button }); loginBtn.addEventListener('click', () => { showLoginForm(); registerBtn.style.display = 'none'; // Hide register button }); }; const Dashboard = (user) => { const userRef = firebase.database().ref('pertuni/perpustakaan/pengguna/' + user.uid); userRef.once('value').then((snapshot) => { const userData = snapshot.val(); const element = document.createElement("div"); element.classList.add("Dashboard"); element.innerHTML = ` Logo Pertuni

Persatuan Tunanetra Indonesia


Selamat Datang Di Web Sahabat Pertuni Jambi
Nama: ${userData.nama}
Email: ${userData.email}
UID: ${userData.uid}
`; container.innerHTML = ""; container.appendChild(element); const logout = element.querySelector(`[data-button="logout"]`); logout.addEventListener('click', () => { setUserOnlineStatus(user.uid, false); firebase.auth().signOut().then(() => { alert("Terimakasih, Anda Berhasil Logout"); Landing(); }).catch((err) => alert(err)); }); // Menu interactions const menuItems = document.querySelectorAll('nav > ul > li'); menuItems.forEach(item => { item.addEventListener('click', () => { // Hide all submenus menuItems.forEach(subItem => { subItem.classList.remove('active'); }); // Toggle submenu of clicked menu item.classList.toggle('active'); }); }); }).catch((error) => { console.error("Error retrieving user data:", error); alert("Gagal mengambil data pengguna: " + error.message); }); };