170 lines
6.4 KiB
JavaScript
170 lines
6.4 KiB
JavaScript
// script.js
|
|
|
|
console.log('Script.js loaded successfully');
|
|
|
|
// Separate function for login button click (defined outside DOMContentLoaded)
|
|
function handleLoginClick(e) {
|
|
e.preventDefault();
|
|
console.log('Login button clicked!');
|
|
console.log('Current path:', window.location.pathname);
|
|
console.log('Current href:', window.location.href);
|
|
|
|
// Force navigation to login page
|
|
console.log('Force navigating to login page');
|
|
window.location.href = 'sites/login.html';
|
|
}
|
|
|
|
document.addEventListener("DOMContentLoaded", function() {
|
|
console.log('DOM fully loaded');
|
|
|
|
// ==========================================
|
|
// 1. MENU TOGGLE LOGIC
|
|
// ==========================================
|
|
const menuToggle = document.getElementById('menuToggle');
|
|
const slideMenu = document.getElementById('slideMenu');
|
|
const overlay = document.getElementById('overlay');
|
|
const loginBtn = document.getElementById('loginBtn');
|
|
|
|
console.log('Elements found:', {
|
|
menuToggle: !!menuToggle,
|
|
slideMenu: !!slideMenu,
|
|
overlay: !!overlay,
|
|
loginBtn: !!loginBtn
|
|
});
|
|
|
|
if (menuToggle && slideMenu && overlay) {
|
|
function toggleMenu() {
|
|
menuToggle.classList.toggle('active');
|
|
slideMenu.classList.toggle('active');
|
|
overlay.classList.toggle('active');
|
|
}
|
|
|
|
menuToggle.addEventListener('click', toggleMenu);
|
|
overlay.addEventListener('click', toggleMenu);
|
|
console.log('Menu toggle functionality initialized');
|
|
}
|
|
|
|
// Login button functionality
|
|
if (loginBtn) {
|
|
console.log('Login button found:', loginBtn);
|
|
|
|
// Determine correct path based on current location
|
|
const currentPath = window.location.pathname;
|
|
|
|
let loginPath;
|
|
if (currentPath.includes('/sites/')) {
|
|
// Already in sites folder
|
|
if (currentPath.includes('login.html')) {
|
|
loginPath = 'register.html';
|
|
} else if (currentPath.includes('register.html')) {
|
|
loginPath = 'login.html';
|
|
} else {
|
|
loginPath = 'login.html';
|
|
}
|
|
} else {
|
|
// In root folder
|
|
loginPath = 'sites/login.html';
|
|
}
|
|
|
|
console.log('Login path will be:', loginPath);
|
|
|
|
// Direct onclick
|
|
loginBtn.onclick = function(e) {
|
|
e.preventDefault();
|
|
console.log('Login button clicked!');
|
|
console.log('Navigating to:', loginPath);
|
|
window.location.href = loginPath;
|
|
};
|
|
|
|
console.log('Login button event listener attached');
|
|
} else {
|
|
console.error('Login button not found in DOM');
|
|
}
|
|
|
|
// ==========================================
|
|
// 2. FORM SUBMISSION LOGIC
|
|
// ==========================================
|
|
const contactForm = document.getElementById('contactForm');
|
|
const successMessage = document.getElementById('successMessage');
|
|
|
|
if (contactForm) {
|
|
contactForm.addEventListener('submit', async function(e) {
|
|
e.preventDefault();
|
|
|
|
const nameInput = document.getElementById('name');
|
|
const orgInput = document.getElementById('organisation');
|
|
const contactInput = document.getElementById('contact');
|
|
const serviceSelect = document.getElementById('service');
|
|
const budgetInput = document.getElementById('budget');
|
|
const descInput = document.getElementById('description');
|
|
|
|
const selectedServiceText = serviceSelect ? serviceSelect.options[serviceSelect.selectedIndex].text : 'Dienstleistung';
|
|
|
|
const formData = {
|
|
name: nameInput ? nameInput.value : '',
|
|
organisation: orgInput ? orgInput.value : '',
|
|
contact: contactInput ? contactInput.value : '',
|
|
service: serviceSelect ? serviceSelect.value : '',
|
|
budget: budgetInput ? budgetInput.value : '',
|
|
description: descInput ? descInput.value : '',
|
|
timestamp: new Date().toISOString()
|
|
};
|
|
|
|
// --- LOCALSTORAGE ---
|
|
try {
|
|
const localLead = {
|
|
id: Date.now(),
|
|
datum: new Date().toLocaleDateString('de-DE'),
|
|
dienstleistung: selectedServiceText,
|
|
status: 'open',
|
|
statusText: 'Offen',
|
|
description: formData.description
|
|
};
|
|
|
|
let existingLeads = JSON.parse(localStorage.getItem('myLeads')) || [];
|
|
existingLeads.unshift(localLead);
|
|
localStorage.setItem('myLeads', JSON.stringify(existingLeads));
|
|
} catch (err) {
|
|
console.error('Ошибка сохранения в LocalStorage:', err);
|
|
}
|
|
// false if test, true if production
|
|
const USE_PRODUCTION = true;
|
|
const WEBHOOK_TEST = 'https://n8n.profice.de/webhook-test/d94ef798-3f43-46dd-8207-1e335e64518f';
|
|
const WEBHOOK_PROD = 'https://n8n.profice.de/webhook/d94ef798-3f43-46dd-8207-1e335e64518f';
|
|
const N8N_WEBHOOK_URL = USE_PRODUCTION ? WEBHOOK_PROD : WEBHOOK_TEST;
|
|
|
|
let iframe = document.getElementById('hidden-iframe');
|
|
if (!iframe) {
|
|
iframe = document.createElement('iframe');
|
|
iframe.id = 'hidden-iframe';
|
|
iframe.name = 'hidden-iframe';
|
|
iframe.style.display = 'none';
|
|
document.body.appendChild(iframe);
|
|
}
|
|
|
|
const tempForm = document.createElement('form');
|
|
tempForm.method = 'POST';
|
|
tempForm.action = N8N_WEBHOOK_URL;
|
|
tempForm.target = 'hidden-iframe';
|
|
|
|
for (const [key, value] of Object.entries(formData)) {
|
|
const input = document.createElement('input');
|
|
input.type = 'hidden';
|
|
input.name = key;
|
|
input.value = value;
|
|
tempForm.appendChild(input);
|
|
}
|
|
|
|
document.body.appendChild(tempForm);
|
|
tempForm.submit();
|
|
document.body.removeChild(tempForm);
|
|
|
|
contactForm.style.display = 'none';
|
|
if (successMessage) {
|
|
successMessage.classList.add('show');
|
|
}
|
|
|
|
console.log('Form submitted successfully');
|
|
});
|
|
}
|
|
}); |