Backup: Stand vor Design-Optimierung (2026-02-16)
Dieser Commit ist enthalten in:
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* Animation module for IntelSight website
|
||||
* Animation module for AegisSight website
|
||||
* Contains all animation logic and visual effects
|
||||
*/
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* UI Components module for IntelSight website
|
||||
* UI Components module for AegisSight website
|
||||
* Contains all interactive UI component logic
|
||||
*/
|
||||
|
||||
@@ -228,7 +228,7 @@ const LoginModal = {
|
||||
</div>
|
||||
<button type="submit" class="primary-button">${t('grantAccess')}</button>
|
||||
</form>
|
||||
<p class="auth-note">${t('noAccess')} <a href="mailto:info@intelsight.de">${t('contactUs')}</a></p>
|
||||
<p class="auth-note">${t('noAccess')} <a href="mailto:info@aegis-sight.de">${t('contactUs')}</a></p>
|
||||
</div>
|
||||
`;
|
||||
},
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* Central configuration file for IntelSight website
|
||||
* Central configuration file for AegisSight website
|
||||
* Contains all constants, settings and selectors
|
||||
*/
|
||||
|
||||
@@ -34,7 +34,7 @@ const CONFIG = {
|
||||
I18N: {
|
||||
DEFAULT_LANGUAGE: 'de',
|
||||
SUPPORTED_LANGUAGES: ['de', 'en'],
|
||||
STORAGE_KEY: 'intelsight_language'
|
||||
STORAGE_KEY: 'aegissight_language'
|
||||
},
|
||||
|
||||
// Intersection Observer Settings
|
||||
|
||||
@@ -3,8 +3,20 @@
|
||||
* Only includes necessary functionality for language switching
|
||||
*/
|
||||
|
||||
// Set current year in footer
|
||||
function setCurrentYear() {
|
||||
const currentYear = new Date().getFullYear();
|
||||
const yearElements = document.querySelectorAll('.current-year');
|
||||
yearElements.forEach(element => {
|
||||
element.textContent = currentYear;
|
||||
});
|
||||
}
|
||||
|
||||
// Simple language toggle for legal pages
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// Set current year immediately
|
||||
setCurrentYear();
|
||||
|
||||
// Get the language toggle button
|
||||
const langToggle = document.querySelector('.lang-toggle');
|
||||
|
||||
@@ -18,7 +30,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
|
||||
// Store language preference
|
||||
if (typeof(Storage) !== 'undefined') {
|
||||
localStorage.setItem('intelsight-language', newLang);
|
||||
localStorage.setItem('aegissight_language', newLang);
|
||||
}
|
||||
|
||||
// Get current page name
|
||||
|
||||
36
js/main.js
36
js/main.js
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* Main application entry point for IntelSight website
|
||||
* Main application entry point for AegisSight website
|
||||
* Initializes all modules and coordinates application startup
|
||||
*/
|
||||
|
||||
@@ -63,11 +63,11 @@ const App = {
|
||||
* Start the application after DOM is ready
|
||||
*/
|
||||
start() {
|
||||
console.log('IntelSight Website Initializing...');
|
||||
console.log('AegisSight Website Initializing...');
|
||||
|
||||
// Initialize modules in correct order
|
||||
try {
|
||||
// 1. Initialize translations first (needed by components)
|
||||
// 1. Initialize translations first (includes year replacement)
|
||||
initTranslations();
|
||||
console.log('✓ Translations initialized');
|
||||
|
||||
@@ -85,7 +85,7 @@ const App = {
|
||||
// 5. Setup performance monitoring
|
||||
this.setupPerformanceMonitoring();
|
||||
|
||||
console.log('IntelSight Website Ready!');
|
||||
console.log('AegisSight Website Ready!');
|
||||
|
||||
} catch (error) {
|
||||
console.error('Failed to initialize application:', error);
|
||||
@@ -131,6 +131,34 @@ const App = {
|
||||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* Set current year in footer and update translations dynamically
|
||||
*/
|
||||
setCurrentYear() {
|
||||
const currentYear = new Date().getFullYear();
|
||||
|
||||
// Set current year in main footer span element
|
||||
const yearElement = document.getElementById('currentYear');
|
||||
if (yearElement) {
|
||||
yearElement.textContent = currentYear;
|
||||
}
|
||||
|
||||
// Set current year in legal pages footer spans
|
||||
const legalYearElements = document.querySelectorAll('.current-year');
|
||||
legalYearElements.forEach(element => {
|
||||
element.textContent = currentYear;
|
||||
});
|
||||
|
||||
// Update copyright translation with current year
|
||||
if (window.translations) {
|
||||
Object.keys(window.translations).forEach(lang => {
|
||||
if (window.translations[lang].copyright) {
|
||||
window.translations[lang].copyright = window.translations[lang].copyright.replace('{year}', currentYear);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Get first paint time if available
|
||||
* @returns {number|null} First paint time in milliseconds
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
|
||||
(function() {
|
||||
'use strict';
|
||||
|
||||
// TEMPORARILY DISABLED FOR DEVELOPMENT - 2026-01-08
|
||||
console.log('⚠️ Protection disabled for development');
|
||||
return;
|
||||
|
||||
// Check if user is on a mobile device
|
||||
const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/**
|
||||
* Translation system for IntelSight website
|
||||
* Translation system for AegisSight website
|
||||
* Supports German (de) and English (en)
|
||||
*/
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
const translations = {
|
||||
de: {
|
||||
// Page meta
|
||||
pageTitle: 'IntelSight - Sicherheit Made in Germany',
|
||||
pageTitle: 'AegisSight - Sicherheit Made in Germany',
|
||||
|
||||
// Navigation
|
||||
skipNav: 'Zum Hauptinhalt springen',
|
||||
navHome: 'Startseite',
|
||||
navAbout: 'Über uns',
|
||||
navProducts: 'Produkte & Lösungen',
|
||||
navProducts: 'Lösungen',
|
||||
navContact: 'Kontakt',
|
||||
langSwitch: 'DE | EN',
|
||||
|
||||
@@ -40,7 +40,7 @@ const translations = {
|
||||
whoWeAreTitle: 'Unternehmen',
|
||||
companyCardTitle1: 'Spezialist für Behördensoftware',
|
||||
companyCardTitle2: 'Unser Ansatz',
|
||||
whoWeArePara1: 'IntelSight UG ist Ihr <strong>Spezialist für hochsichere, maßgeschneiderte IT-Lösungen</strong> aus Nordrhein-Westfalen. Wir entwickeln innovative Software speziell für staatliche Sicherheits- und Ermittlungsbehörden.',
|
||||
whoWeArePara1: 'AegisSight UG ist Ihr <strong>Spezialist für hochsichere, maßgeschneiderte IT-Lösungen</strong> aus Nordrhein-Westfalen. Wir entwickeln innovative Software speziell für staatliche Sicherheits- und Ermittlungsbehörden.',
|
||||
whoWeArePara2: 'Unser Ansatz vereint modernste Technologie mit einem tiefen Verständnis für die besonderen Anforderungen von Behörden. Dabei steht die Balance zwischen Sicherheit, Effizienz und rechtskonformer Umsetzung im Mittelpunkt unserer Arbeit.',
|
||||
locationBadge: 'Nordrhein-Westfalen, Deutschland',
|
||||
nrwLabel: 'Nordrhein-Westfalen',
|
||||
@@ -67,7 +67,7 @@ const translations = {
|
||||
comp3Desc: 'Kontinuierliche Sicherheitsupdates und zuverlässige Wartung über den gesamten Lebenszyklus',
|
||||
|
||||
// Why Us
|
||||
whyUsTitle: 'Warum IntelSight UG?',
|
||||
whyUsTitle: 'Warum AegisSight UG?',
|
||||
why1Title: 'Enge Zusammenarbeit',
|
||||
why1Desc: 'Wir arbeiten Hand in Hand mit unseren Kunden für maßgeschneiderte Lösungen',
|
||||
why2Title: 'Made in Germany',
|
||||
@@ -78,7 +78,7 @@ const translations = {
|
||||
why4Desc: 'Fokus auf Sicherheit, Professionalität & zukunftssichere Lösungen',
|
||||
|
||||
// Products Section
|
||||
productsTitle: 'PRODUKTE & LÖSUNGEN',
|
||||
productsTitle: 'LÖSUNGEN',
|
||||
productsSubtitle: 'Professionelle Werkzeuge für moderne Ermittlungsarbeit',
|
||||
|
||||
// Professional Toolbox
|
||||
@@ -120,23 +120,21 @@ const translations = {
|
||||
loginForAccess: 'Anmelden für Zugriff',
|
||||
|
||||
// Footer
|
||||
footerCompanyTitle: 'IntelSight UG (haftungsbeschränkt)',
|
||||
footerCompanyTitle: 'AegisSight UG (haftungsbeschränkt)',
|
||||
footerCompanyAddress1: 'Gladbacher Strasse 3-5',
|
||||
footerCompanyAddress2: '40764 Langenfeld',
|
||||
footerNavTitle: 'Navigation',
|
||||
footerNavHome: 'Startseite',
|
||||
footerNavAbout: 'Über uns',
|
||||
footerNavProducts: 'Produkte',
|
||||
footerNavContact: 'Kontakt',
|
||||
footerNavProducts: 'Lösungen',
|
||||
|
||||
footerLegalTitle: 'Rechtliches',
|
||||
footerImprint: 'Impressum',
|
||||
footerPrivacy: 'Datenschutz',
|
||||
footerCookies: 'Cookie-Einstellungen',
|
||||
footerTerms: 'AGB',
|
||||
|
||||
footerContactTitle: 'Kontakt',
|
||||
copyright: '© 2025 IntelSight UG (haftungsbeschränkt). Alle Rechte vorbehalten.',
|
||||
copyright: '© {year} AegisSight UG (haftungsbeschränkt). Alle Rechte vorbehalten.',
|
||||
|
||||
// Modal texts
|
||||
authRequired: 'Authentifizierung erforderlich',
|
||||
@@ -154,13 +152,13 @@ const translations = {
|
||||
|
||||
en: {
|
||||
// Page meta
|
||||
pageTitle: 'IntelSight - Sicherheit Made in Germany',
|
||||
pageTitle: 'AegisSight - Sicherheit Made in Germany',
|
||||
|
||||
// Navigation
|
||||
skipNav: 'Skip to main content',
|
||||
navHome: 'Home',
|
||||
navAbout: 'About Us',
|
||||
navProducts: 'Products & Solutions',
|
||||
navProducts: 'Solutions',
|
||||
navContact: 'Contact',
|
||||
langSwitch: 'EN | DE',
|
||||
|
||||
@@ -187,7 +185,7 @@ const translations = {
|
||||
whoWeAreTitle: 'Company',
|
||||
companyCardTitle1: 'Government Software Specialist',
|
||||
companyCardTitle2: 'Our Approach',
|
||||
whoWeArePara1: 'IntelSight UG is your <strong>specialist for highly secure, customized IT solutions</strong> from North Rhine-Westphalia. We develop innovative software specifically for government security and law enforcement agencies.',
|
||||
whoWeArePara1: 'AegisSight UG is your <strong>specialist for highly secure, customized IT solutions</strong> from North Rhine-Westphalia. We develop innovative software specifically for government security and law enforcement agencies.',
|
||||
whoWeArePara2: 'Our approach combines cutting-edge technology with a deep understanding of the special requirements of government agencies. The balance between security, efficiency and legally compliant implementation is at the center of our work.',
|
||||
locationBadge: 'North Rhine-Westphalia, Germany',
|
||||
nrwLabel: 'North Rhine-Westphalia',
|
||||
@@ -214,7 +212,7 @@ const translations = {
|
||||
comp3Desc: 'Continuous security updates and reliable maintenance throughout the entire lifecycle',
|
||||
|
||||
// Why Us
|
||||
whyUsTitle: 'Why IntelSight UG?',
|
||||
whyUsTitle: 'Why AegisSight UG?',
|
||||
why1Title: 'Close Collaboration',
|
||||
why1Desc: 'We work hand in hand with our customers for customized solutions',
|
||||
why2Title: 'Made in Germany',
|
||||
@@ -225,7 +223,7 @@ const translations = {
|
||||
why4Desc: 'Focus on security, professionalism & future-proof solutions',
|
||||
|
||||
// Products Section
|
||||
productsTitle: 'Products & Solutions',
|
||||
productsTitle: 'Solutions',
|
||||
productsSubtitle: 'Professional Tools for Modern Investigation Work',
|
||||
|
||||
// Professional Toolbox
|
||||
@@ -267,23 +265,21 @@ const translations = {
|
||||
loginForAccess: 'Login for Access',
|
||||
|
||||
// Footer
|
||||
footerCompanyTitle: 'IntelSight UG (haftungsbeschränkt)',
|
||||
footerCompanyTitle: 'AegisSight UG (haftungsbeschränkt)',
|
||||
footerCompanyAddress1: 'Gladbacher Strasse 3-5',
|
||||
footerCompanyAddress2: '40764 Langenfeld',
|
||||
footerNavTitle: 'Navigation',
|
||||
footerNavHome: 'Home',
|
||||
footerNavAbout: 'About Us',
|
||||
footerNavProducts: 'Products',
|
||||
footerNavContact: 'Contact',
|
||||
footerNavProducts: 'Solutions',
|
||||
|
||||
footerLegalTitle: 'Legal',
|
||||
footerImprint: 'Imprint',
|
||||
footerPrivacy: 'Privacy Policy',
|
||||
footerCookies: 'Cookie Settings',
|
||||
footerTerms: 'Terms & Conditions',
|
||||
|
||||
footerContactTitle: 'Contact',
|
||||
copyright: '© 2025 IntelSight UG (haftungsbeschränkt). All rights reserved.',
|
||||
copyright: '© {year} AegisSight UG (haftungsbeschränkt). All rights reserved.',
|
||||
|
||||
// Modal texts
|
||||
authRequired: 'Authentication Required',
|
||||
@@ -330,6 +326,11 @@ function switchLanguage(language) {
|
||||
currentLanguage = language;
|
||||
localStorage.setItem(CONFIG.I18N.STORAGE_KEY, language);
|
||||
applyTranslations(language);
|
||||
|
||||
// Update cookie consent language
|
||||
if (typeof CookieConsent !== 'undefined' && CookieConsent.setLanguage) {
|
||||
CookieConsent.setLanguage(language);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -355,11 +356,19 @@ function applyTranslations(language) {
|
||||
const key = element.getAttribute(DATA_ATTRS.TRANSLATE);
|
||||
|
||||
if (t[key]) {
|
||||
let content = t[key];
|
||||
|
||||
// Replace {year} placeholder with current year
|
||||
if (content.includes('{year}')) {
|
||||
const currentYear = new Date().getFullYear();
|
||||
content = content.replace('{year}', currentYear);
|
||||
}
|
||||
|
||||
// Check if content contains HTML tags
|
||||
if (t[key].includes('<strong>') || t[key].includes('<em>')) {
|
||||
element.innerHTML = t[key];
|
||||
if (content.includes('<strong>') || content.includes('<em>')) {
|
||||
element.innerHTML = content;
|
||||
} else {
|
||||
element.textContent = t[key];
|
||||
element.textContent = content;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren