chatbot / static /script.js
Moderator404's picture
Upload 38 files
a5778f2 verified
Raw
History Blame Contribute Delete
3 kB
// Too Many Cables - Main Website JavaScript
class TMCWebsite {
constructor() {
this.currentUser = null;
this.init();
}
init() {
this.setupNavigation();
this.setupUserAuthentication();
this.checkUserStatus();
}
setupNavigation() {
const navToggle = document.getElementById('nav-toggle');
const navMenu = document.getElementById('nav-menu');
if (navToggle && navMenu) {
navToggle.addEventListener('click', () => {
navMenu.classList.toggle('active');
navToggle.classList.toggle('active');
});
}
}
setupUserAuthentication() {
// Login/logout functionality is now handled in base.html
// This method is kept for future authentication-related features
}
showModal(type) {
const modalId = type === 'login' ? 'login-modal' : 'register-modal';
const modal = document.getElementById(modalId);
if (modal) {
modal.style.display = 'flex';
}
}
hideModal(modalId) {
const modal = document.getElementById(modalId);
if (modal) {
modal.style.display = 'none';
const form = modal.querySelector('form');
if (form) form.reset();
}
}
async logout() {
// Logout functionality is now handled in base.html
// This method is kept for compatibility
}
async checkUserStatus() {
try {
const response = await fetch('/api/user');
const data = await response.json();
if (data.success) {
this.currentUser = data.user;
this.updateUserUI();
}
} catch (error) {
console.log('User not authenticated');
}
}
updateUserUI() {
const authBtn = document.getElementById('auth-btn');
const userGreeting = document.getElementById('user-greeting');
const userName = document.getElementById('user-name');
const ticketsLink = document.getElementById('tickets-link');
if (this.currentUser) {
if (authBtn) {
authBtn.textContent = 'Logout';
authBtn.title = 'Click to logout';
}
if (userGreeting) userGreeting.style.display = 'inline';
if (userName) userName.textContent = this.currentUser.name;
if (ticketsLink) ticketsLink.style.display = 'inline-block';
} else {
if (authBtn) {
authBtn.textContent = 'Login';
authBtn.title = 'Click to login';
}
if (userGreeting) userGreeting.style.display = 'none';
if (ticketsLink) ticketsLink.style.display = 'none';
}
}
}
// Initialize website functionality when DOM is loaded
document.addEventListener('DOMContentLoaded', function() {
new TMCWebsite();
});