diff --git a/js/main.js b/js/main.js index 8b7bdc8..ba2c09b 100644 --- a/js/main.js +++ b/js/main.js @@ -7,37 +7,19 @@ document.addEventListener('DOMContentLoaded', () => { }); function getCookie(name) { - console.log('DEBUG getCookie: all cookies =', document.cookie); - - // Strategy 1: localStorage (for HttpOnly cookies) - const local = localStorage.getItem('sessionid'); - if (local) { - console.log('DEBUG getCookie:', name, '=', local, '(from localStorage)'); - return local; + // Check localStorage first (for cookies set by n8n) + const localVal = localStorage.getItem(name); + if (localVal) { + return localVal; } - // Strategy 2: document.cookie (non-HttpOnly cookies) - const raw = document.cookie; - - // Strategy 2a: semicolon prefix (cookies after first) - const parts1 = raw.split(`; ${name}=`); - if (parts1.length === 2) { - const val = parts1.pop().split(';').shift(); - const cleaned = val.replace(/^"|"$/g, ''); - console.log('DEBUG getCookie:', name, '=', cleaned, '(from cookie)'); - return cleaned; + // Check document.cookie (for non-HttpOnly cookies) + const value = `; ${document.cookie}`; + const parts = value.split(`; ${name}=`); + if (parts.length === 2) { + const val = parts.pop().split(';').shift(); + return val.replace(/^"|"$/g, ''); } - - // Strategy 2b: no semicolon prefix (FIRST cookie in document.cookie) - const parts2 = raw.split(`${name}=`); - if (parts2.length === 2) { - const val = parts2.pop().split(';').shift(); - const cleaned = val.replace(/^"|"$/g, ''); - console.log('DEBUG getCookie:', name, '=', cleaned, '(from first cookie)'); - return cleaned; - } - - console.log('DEBUG getCookie:', name, 'NOT FOUND'); return ''; } @@ -57,12 +39,6 @@ const WIKI_URL = 'https://n8n.odoo4projects.com/webhook/paraguay/wiki'; function checkSession() { const sessionid = getCookie('sessionid'); - console.log('DEBUG checkSession: sessionid found =', sessionid); - console.log('DEBUG checkSession: sessionid length =', sessionid ? sessionid.length : 'null'); - console.log('DEBUG checkSession: intro =', document.getElementById('intro-section') ? 'found' : 'NOT FOUND'); - console.log('DEBUG checkSession: login-panel =', document.getElementById('login-panel') ? 'found' : 'NOT FOUND'); - console.log('DEBUG checkSession: newsletter-panel =', document.getElementById('newsletter-panel') ? 'found' : 'NOT FOUND'); - console.log('DEBUG checkSession: notebook-panel =', document.getElementById('notebook-panel') ? 'found' : 'NOT FOUND'); const intro = document.getElementById('intro-section'); const news = document.getElementById('news-col'); const login = document.getElementById('login-panel'); @@ -124,10 +100,8 @@ async function sendTelegramUser() { headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ username: user }) }); - console.log('sendTelegramUser response:', response.status, await response.clone().json()); if (response.ok) { const data = await response.json(); - console.log('sendTelegramUser data:', data); if (data.Error && data.Error.includes('user not found')) { const msg = document.body.dataset.lang === 'de' ? 'Dieser Benutzername ist noch nicht in unserer Datenbank. Bitte melden Sie sich über den Telegram Bot an, um sich zu registrieren.' @@ -149,7 +123,6 @@ async function sendTelegramUser() { alert('Fehler bei der Verifizierung. Bitte versuchen Sie es erneut.'); } } catch (error) { - console.error('sendTelegramUser error:', error); alert('Fehler bei der Verbindung. Bitte versuchen Sie es erneut.'); btn.disabled = false; btn.textContent = document.body.dataset.lang === 'de' ? 'Anmelden' : 'Login'; } @@ -170,10 +143,8 @@ async function verifyCode() { sessionid: getCookie('sessionid') }) }); - console.log('verifyCode response:', response.status, await response.clone().json()); if (response.ok) { const data = await response.json(); - console.log('verifyCode data:', data); if (data.sessionid) { setCookie('sessionid', data.sessionid, 1); document.getElementById('intro-section').classList.add('hidden'); @@ -186,7 +157,6 @@ async function verifyCode() { btns.forEach(b => b.disabled = false); } } catch (error) { - console.error('verifyCode error:', error); alert('Fehler bei der Verbindung. Bitte versuchen Sie es erneut.'); btns.forEach(b => b.disabled = false); } @@ -208,10 +178,8 @@ async function submitLoginData() { llc: llc }) }); - console.log('submitLoginData response:', response.status, await response.clone().json()); if (response.ok) { const data = await response.json(); - console.log('submitLoginData data:', data); if (data.sessionid) { setCookie('sessionid', data.sessionid, 1); } @@ -229,7 +197,6 @@ async function submitLoginData() { btns.forEach(b => b.disabled = false); } } catch (error) { - console.error('submitLoginData error:', error); alert('Fehler bei der Verbindung.'); btns.forEach(b => b.disabled = false); } @@ -246,7 +213,6 @@ async function subscribeNewsletter() { headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ email: email }) }); - console.log('subscribeNewsletter response:', response.status, await response.clone().json()); if (response.ok) { document.getElementById('newsletter-form').classList.add('hidden'); document.getElementById('newsletter-success').classList.remove('hidden'); @@ -256,7 +222,6 @@ async function subscribeNewsletter() { btn.textContent = document.body.dataset.lang === 'de' ? 'Abonnieren' : 'Subscribe'; } } catch (error) { - console.error('subscribeNewsletter error:', error); alert('Fehler bei der Verbindung. Bitte versuchen Sie es erneut.'); btn.disabled = false; btn.textContent = document.body.dataset.lang === 'de' ? 'Abonnieren' : 'Subscribe'; @@ -266,16 +231,12 @@ async function subscribeNewsletter() { async function loadUsers() { const usersContainer = document.getElementById('users-list'); if (!usersContainer) return; - console.log('loadUsers: starting fetch from', USER_URL); try { const response = await fetch(USER_URL); - console.log('loadUsers: response status =', response.status); if (!response.ok) throw new Error('Failed to fetch users'); const data = await response.json(); - console.log('loadUsers: response data =', data); if (data.data && Array.isArray(data.data)) { usersContainer.innerHTML = ''; - console.log('loadUsers: rendering', data.data.length, 'users'); data.data.forEach(user => { const card = document.createElement('div'); card.className = 'user-card'; @@ -296,13 +257,10 @@ async function loadUsers() { card.addEventListener('click', () => openUserDetailModal(user)); usersContainer.appendChild(card); }); - console.log('loadUsers: done, users rendered'); } else { - console.log('loadUsers: no data.data array found'); usersContainer.innerHTML = '
No users found.
'; } } catch (error) { - console.error('loadUsers error:', error); usersContainer.innerHTML = 'Error loading users: ' + error.message + '
'; } } @@ -328,10 +286,8 @@ async function openProfileModal() { if (!sessionid) { alert('Bitte melden Sie sich an.'); return; } try { const response = await fetch(PROFILE_URL + '?sessionid=' + encodeURIComponent(sessionid)); - console.log('openProfileModal response:', response.status, await response.clone().json()); if (response.ok) { const user = await response.json(); - console.log('openProfileModal user:', user); document.getElementById('profile-username-display').textContent = user.username || ''; document.getElementById('profile-company').value = user.company || ''; document.getElementById('profile-email').value = user.email || ''; @@ -343,7 +299,6 @@ async function openProfileModal() { document.getElementById('profile-edit-fields').classList.remove('hidden'); } } catch (error) { - console.error('openProfileModal error:', error); alert('Fehler beim Laden des Profils.'); } document.getElementById('profile-modal').classList.remove('hidden'); @@ -384,19 +339,15 @@ function closeUserDetailModal() { async function loadWiki() { const wikiContainer = document.getElementById('wiki-content'); if (!wikiContainer) return; - console.log('loadWiki: starting fetch from', WIKI_URL); try { const response = await fetch(WIKI_URL); - console.log('loadWiki: response status =', response.status); if (!response.ok) throw new Error('Failed to fetch wiki'); const result = await response.json(); - console.log('loadWiki: response data =', result); if (result.data && Array.isArray(result.data)) { wikiContainer.innerHTML = ''; const isEN = document.body.dataset.lang === 'en'; - console.log('loadWiki: isEN =', isEN); const topics = {}; result.data.forEach(item => { @@ -477,7 +428,6 @@ async function loadWiki() { wikiContainer.innerHTML = 'No wiki data found.
'; } } catch (error) { - console.error('loadWiki error:', error); wikiContainer.innerHTML = 'Error loading wiki: ' + error.message + '
'; } } @@ -508,7 +458,6 @@ async function saveProfile() { publish: document.getElementById('profile-publish').checked }) }); - console.log('saveProfile response:', response.status, await response.clone().json()); if (response.ok) { alert('Profil erfolgreich gespeichert!'); closeProfileModal(); @@ -517,7 +466,6 @@ async function saveProfile() { alert('Fehler beim Speichern.'); } } catch (error) { - console.error('saveProfile error:', error); alert('Fehler bei der Verbindung.'); } } \ No newline at end of file