backup and fixes
This commit is contained in:
217
Profice WebSite backup/scripts/login.js
Normal file
217
Profice WebSite backup/scripts/login.js
Normal file
@@ -0,0 +1,217 @@
|
||||
// login.js
|
||||
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
const loginForm = document.getElementById('loginForm');
|
||||
const loginBtn = document.getElementById('loginSubmit');
|
||||
const successMessage = document.getElementById('successMessage');
|
||||
const errorMessage = document.getElementById('errorMessage');
|
||||
const errorText = document.getElementById('errorText');
|
||||
const registerBtn = document.getElementById('registerBtn');
|
||||
|
||||
// Register button functionality
|
||||
if (registerBtn) {
|
||||
registerBtn.addEventListener('click', function(e) {
|
||||
e.preventDefault();
|
||||
window.location.href = 'register.html';
|
||||
});
|
||||
}
|
||||
|
||||
// Check if user is already logged in
|
||||
checkExistingSession();
|
||||
|
||||
// Login form submission
|
||||
if (loginForm) {
|
||||
loginForm.addEventListener('submit', async function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
const email = document.getElementById('email').value;
|
||||
const password = document.getElementById('password').value;
|
||||
const remember = document.getElementById('remember').checked;
|
||||
|
||||
// Simple validation
|
||||
if (!email || !password) {
|
||||
showError('Bitte füllen Sie alle Felder aus.');
|
||||
return;
|
||||
}
|
||||
|
||||
// Email validation
|
||||
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
||||
if (!emailRegex.test(email)) {
|
||||
showError('Bitte geben Sie eine gültige E-Mail-Adresse ein.');
|
||||
return;
|
||||
}
|
||||
|
||||
// Show loading state
|
||||
setLoadingState(true);
|
||||
hideMessages();
|
||||
|
||||
// Send login data to PHP API
|
||||
const loginData = {
|
||||
type: 'login',
|
||||
email: email,
|
||||
password: password,
|
||||
remember: remember
|
||||
};
|
||||
|
||||
try {
|
||||
const response = await fetch('../scripts/add/send.php', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify(loginData)
|
||||
});
|
||||
|
||||
const result = await response.json();
|
||||
|
||||
if (result.success) {
|
||||
// Store session (for demo purposes - in real app, this would come from server)
|
||||
const sessionData = {
|
||||
user: { email: email },
|
||||
loginTime: new Date().toISOString(),
|
||||
remember: remember
|
||||
};
|
||||
|
||||
if (remember) {
|
||||
localStorage.setItem('userSession', JSON.stringify(sessionData));
|
||||
} else {
|
||||
sessionStorage.setItem('userSession', JSON.stringify(sessionData));
|
||||
}
|
||||
|
||||
// Show success message
|
||||
showSuccess('Anmeldung erfolgreich! Sie werden weitergeleitet...');
|
||||
|
||||
// Redirect after delay
|
||||
setTimeout(() => {
|
||||
window.location.href = '../index.html';
|
||||
}, 2000);
|
||||
} else {
|
||||
showError('Anmeldung fehlgeschlagen: ' + result.message);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Login error:', error);
|
||||
showError('Netzwerkfehler bei der Anmeldung. Bitte versuchen Sie es später erneut.');
|
||||
}
|
||||
|
||||
setLoadingState(false);
|
||||
});
|
||||
}
|
||||
|
||||
// Loading state management
|
||||
function setLoadingState(loading) {
|
||||
if (loginBtn) {
|
||||
const btnText = loginBtn.querySelector('.btn-text');
|
||||
const btnLoading = loginBtn.querySelector('.btn-loading');
|
||||
|
||||
if (loading) {
|
||||
loginBtn.disabled = true;
|
||||
if (btnText) btnText.style.display = 'none';
|
||||
if (btnLoading) btnLoading.style.display = 'inline-block';
|
||||
} else {
|
||||
loginBtn.disabled = false;
|
||||
if (btnText) btnText.style.display = 'inline-block';
|
||||
if (btnLoading) btnLoading.style.display = 'none';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Message display functions
|
||||
function showSuccess(message) {
|
||||
if (successMessage) {
|
||||
const messageElement = successMessage.querySelector('p');
|
||||
if (messageElement) {
|
||||
messageElement.textContent = message;
|
||||
}
|
||||
successMessage.classList.add('show');
|
||||
}
|
||||
}
|
||||
|
||||
function showError(message) {
|
||||
if (errorMessage && errorText) {
|
||||
errorText.textContent = message;
|
||||
errorMessage.classList.add('show');
|
||||
|
||||
// Hide after 5 seconds
|
||||
setTimeout(() => {
|
||||
errorMessage.classList.remove('show');
|
||||
}, 5000);
|
||||
}
|
||||
}
|
||||
|
||||
function hideMessages() {
|
||||
if (successMessage) successMessage.classList.remove('show');
|
||||
if (errorMessage) errorMessage.classList.remove('show');
|
||||
}
|
||||
});
|
||||
|
||||
// Check existing session - DISABLED auto-redirect
|
||||
function checkExistingSession() {
|
||||
const sessionData = localStorage.getItem('userSession') || sessionStorage.getItem('userSession');
|
||||
|
||||
if (sessionData) {
|
||||
try {
|
||||
const session = JSON.parse(sessionData);
|
||||
const loginTime = new Date(session.loginTime);
|
||||
const now = new Date();
|
||||
const sessionAge = (now - loginTime) / (1000 * 60 * 60); // hours
|
||||
|
||||
// Auto-logout after 24 hours
|
||||
if (sessionAge < 24) {
|
||||
// User is still logged in - just log it, don't redirect
|
||||
console.log('User already logged in');
|
||||
// DISABLED: window.location.href = '../index.html';
|
||||
} else {
|
||||
// Session expired, remove it
|
||||
console.log('Session expired, removing...');
|
||||
localStorage.removeItem('userSession');
|
||||
sessionStorage.removeItem('userSession');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Session parsing error:', error);
|
||||
localStorage.removeItem('userSession');
|
||||
sessionStorage.removeItem('userSession');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Logout function (can be called from other pages)
|
||||
function logout() {
|
||||
localStorage.removeItem('userSession');
|
||||
sessionStorage.removeItem('userSession');
|
||||
window.location.href = 'sites/login.html';
|
||||
}
|
||||
|
||||
// Get current user (can be called from other pages)
|
||||
function getCurrentUser() {
|
||||
const sessionData = localStorage.getItem('userSession') || sessionStorage.getItem('userSession');
|
||||
|
||||
if (sessionData) {
|
||||
try {
|
||||
const session = JSON.parse(sessionData);
|
||||
const loginTime = new Date(session.loginTime);
|
||||
const now = new Date();
|
||||
const sessionAge = (now - loginTime) / (1000 * 60 * 60); // hours
|
||||
|
||||
if (sessionAge < 24) {
|
||||
return session.user;
|
||||
} else {
|
||||
// Session expired
|
||||
localStorage.removeItem('userSession');
|
||||
sessionStorage.removeItem('userSession');
|
||||
return null;
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Session parsing error:', error);
|
||||
localStorage.removeItem('userSession');
|
||||
sessionStorage.removeItem('userSession');
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
// Check if user is logged in (can be called from other pages)
|
||||
function isLoggedIn() {
|
||||
return getCurrentUser() !== null;
|
||||
}
|
||||
Reference in New Issue
Block a user