Vorschau: Online-Schaltung vorbereitet (SEO, Cookie-Consent, Conversion-Tracking, LAUNCH-CHECKLIST)
Vorbereitungen fuer den Tag-X-Switch zur neuen Hauptseite. Schaltung selbst lauft ueber LAUNCH-CHECKLIST.md.
vorschau/index.html:
- Meta-Description, Canonical, Open Graph, Twitter Card, Schema.org Organization
- Cookie-Consent CSS+JS eingebunden (reused von alter Hauptseite, mit Umami-Anbindung)
- Footer um Cookie-Einstellungen-Link und dynamisches Jahr ergaenzt
- noindex/nofollow bleibt bis Tag X drin (Vorschau weiter passwortgeschuetzt)
vorschau/js/app.js:
- Conversion-Tracking: umami.track("contact_modal_open") und umami.track("contact_form_success")
assets/images/og-image.png (NEU):
- 1200x630 Open Graph Vorschaubild, Logo + Tagline auf Navy
datenschutz.html:
- Section 5 NEU: Kontaktformular und Anfragen (Daten, Speicherdauer, Rechtsgrundlage)
- Section 7 NEU: AegisSight Analytics (Umami) - cookielos, IP-anonymisiert, selbstgehostet
- Sections umnummeriert: Newsletter -> 6, Plugins -> 7, KI-Agenten -> 8
lagen/{iran-konflikt,cyberangriffe,deepfakes}/index.html:
- Cookie-Consent CSS+JS eingebunden
- Footer-Navigation auf neue Hauptseite-Anker umgestellt: /#features, /#demos, /#trust, /#contact
- Cookie-Einstellungen-Link im Footer
- Farbgebung der Lagen unveraendert (User-Wunsch)
NEUE inaktive Dateien fuer Tag X (per LAUNCH-CHECKLIST aktiviert):
- sitemap-launch.xml: Hauptseite + 3 Lagen + Impressum + Datenschutz
- robots-launch.txt: Crawler erlaubt, AI-Crawler/Spam-Bots/Archiv-Bots blockiert
- LAUNCH-CHECKLIST.md: vollstaendige Anleitung fuer den Schaltungs-Tag (Backup, Schritte, Smoke-Tests, Rollback)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
365
LAUNCH-CHECKLIST.md
Normale Datei
365
LAUNCH-CHECKLIST.md
Normale Datei
@@ -0,0 +1,365 @@
|
||||
# LAUNCH-CHECKLIST — Online-Schaltung der neuen AegisSight-Hauptseite
|
||||
|
||||
**Zielgruppe dieser Datei:** Claude (oder ein Mensch) auf einem anderen Rechner, der diese Datei vollständig liest und Schritt für Schritt ausführt. Alle Anweisungen sind so geschrieben, dass keine Eigenentscheidungen nötig sind.
|
||||
|
||||
**Auslöser:** Der User sagt sinngemäß "Jo stell online" oder "Schalte die Vorschau live".
|
||||
|
||||
**Was passiert:** Die Vorschauseite (`/vorschau/`) wird zur neuen Hauptseite (`/`). Die alte Hauptseite ("Sicherheit Made in Germany") wird in `_archiv/` verschoben. SEO wird aktiviert (robots.txt + sitemap.xml + Entfernung der noindex-Meta-Tags). Cookie-Consent + Umami sind bereits eingebaut.
|
||||
|
||||
---
|
||||
|
||||
## 0. Voraussetzungen — vor dem Start prüfen
|
||||
|
||||
- [ ] **Iran-Lage-Anpassung ist fertig.** Der zuständige Kollege hat die zu langen Iran-Lagen-Texte gekürzt/strukturiert. Sichtcheck: `https://aegis-sight.de/vorschau/` (Passwort: siehe Pass-Manager) → Demos-Karussell → Iran-Karte sollte ähnlich hoch sein wie Cyberangriffe und Deepfakes.
|
||||
- [ ] **SSH-Zugriff** auf `claude-dev@46.225.225.49` funktioniert.
|
||||
- [ ] **Git-Push-Rechte** für `https://gitea-undso.aegis-sight.de/AegisSight/Website.git` vorhanden (Token im Remote-URL eingebettet).
|
||||
- [ ] **User hat ausdrücklich Go gegeben** ("Stell online", "Schalte live", o.ä.).
|
||||
|
||||
Wenn ein Punkt nicht erfüllt: NICHT FORTSETZEN, dem User Bescheid geben.
|
||||
|
||||
---
|
||||
|
||||
## 1. Pre-Flight-Backup (Pflicht!)
|
||||
|
||||
Werden auf dem Server (`46.225.225.49`) ausgeführt:
|
||||
|
||||
```bash
|
||||
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && git tag pre-launch-$(date +%Y%m%d-%H%M%S) && git push origin --tags'
|
||||
ssh claude-dev@46.225.225.49 'tar -czf /home/claude-dev/website-snapshot-$(date +%Y%m%d-%H%M%S).tar.gz -C /opt/v2-Docker/aegis-website html'
|
||||
ssh claude-dev@46.225.225.49 'ls -lh /home/claude-dev/website-snapshot-*.tar.gz | tail -1'
|
||||
```
|
||||
|
||||
Erwartet: Tar-Archiv ~40–60 MB. Git-Tag `pre-launch-YYYYMMDD-HHMMSS` ist gepusht.
|
||||
|
||||
**Notiere dir den Git-Tag-Namen** — du brauchst ihn fürs Rollback.
|
||||
|
||||
---
|
||||
|
||||
## 2. Schaltungs-Schritte (in genau dieser Reihenfolge)
|
||||
|
||||
Alle Pfade relativ zu `/opt/v2-Docker/aegis-website/html/`. Alle Commands per `ssh claude-dev@46.225.225.49 '...'` ausführen.
|
||||
|
||||
### 2.1 Archiv-Verzeichnis vorbereiten
|
||||
|
||||
```bash
|
||||
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && mkdir -p _archiv'
|
||||
```
|
||||
|
||||
### 2.2 Alte Hauptseite-Files in `_archiv/` verschieben
|
||||
|
||||
```bash
|
||||
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
|
||||
mv index.html _archiv/old-index.html && \
|
||||
cp -r css _archiv/old-css && \
|
||||
cp -r js _archiv/old-js && \
|
||||
mv robots.txt _archiv/old-robots.txt && \
|
||||
mv assets/videos/AFv6.mp4 _archiv/ 2>/dev/null; \
|
||||
mv assets/videos/hero-code-abstract.mp4 _archiv/ 2>/dev/null; \
|
||||
mv assets/videos/hero-data-flow.mp4 _archiv/ 2>/dev/null; \
|
||||
mv assets/videos/hero-network-viz.mp4 _archiv/ 2>/dev/null; \
|
||||
ls -la _archiv/'
|
||||
```
|
||||
|
||||
**Wichtig:** `css` und `js` werden mit `cp -r` (kopiert, NICHT verschoben), weil die Lagen-Seiten weiterhin `/js/config.js`, `/js/translations.js`, `/js/mobile-nav.js` aus dem alten /js/-Ordner brauchen. Die alten /css/-Stylesheets brauchen die Lagen ebenfalls (`/css/main.css`, `/css/fonts.css`, `/css/mobile.css`).
|
||||
|
||||
### 2.3 Neue Vorschau-Files an Hauptseite-Position kopieren
|
||||
|
||||
```bash
|
||||
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
|
||||
cp vorschau/index.html index.html && \
|
||||
cp vorschau/css/style.css css/vorschau-style.css && \
|
||||
cp vorschau/js/app.js js/vorschau-app.js && \
|
||||
mkdir -p assets/videos/vorschau-hero && \
|
||||
cp vorschau/videos/* assets/videos/vorschau-hero/ && \
|
||||
ls -la index.html css/vorschau-style.css js/vorschau-app.js assets/videos/vorschau-hero/'
|
||||
```
|
||||
|
||||
**Begründung:** Die Vorschau-CSS heißt `style.css` und liegt unter `vorschau/css/`. Wenn wir sie nach `/css/style.css` packen, würden wir die alte Hauptseite-CSS überschreiben (die für Lagen-Seiten gebraucht wird, falls dort references existieren). Daher: eindeutige Namen `vorschau-style.css` und `vorschau-app.js`.
|
||||
|
||||
### 2.4 Pfade in der neuen `index.html` anpassen
|
||||
|
||||
Die Vorschau-`index.html` referenziert relativ:
|
||||
- `<link rel="stylesheet" href="css/style.css">` → muss zu `css/vorschau-style.css`
|
||||
- `<script src="js/app.js"></script>` → muss zu `js/vorschau-app.js`
|
||||
- `videos/hero-slide-X-monitoring.mp4` → muss zu `assets/videos/vorschau-hero/hero-slide-X-monitoring.mp4`
|
||||
|
||||
```bash
|
||||
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
|
||||
sed -i "s|href=\"css/style.css\"|href=\"/css/vorschau-style.css\"|g" index.html && \
|
||||
sed -i "s|src=\"js/app.js\"|src=\"/js/vorschau-app.js\"|g" index.html && \
|
||||
sed -i "s|src=\"videos/hero-slide-|src=\"/assets/videos/vorschau-hero/hero-slide-|g" index.html && \
|
||||
grep -E "(vorschau-style|vorschau-app|vorschau-hero)" index.html | head -10'
|
||||
```
|
||||
|
||||
Erwartet: 7 Treffer (1× CSS, 1× JS, 5× Videos).
|
||||
|
||||
### 2.5 Passwort-Gate aus `index.html` entfernen
|
||||
|
||||
Folgenden Block ersatzlos löschen — es sind drei zusammenhängende Bereiche:
|
||||
1. `<!-- Password Gate -->` Kommentar + dahinterliegender `<style>`-Block
|
||||
2. `<div id="login-gate">...</div>`
|
||||
3. `<script>` mit `var PW_HASH=...` etc.
|
||||
|
||||
Sed-Lösung (einzeilig):
|
||||
|
||||
```bash
|
||||
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
|
||||
python3 -c "
|
||||
import re
|
||||
with open(\"index.html\") as f: c = f.read()
|
||||
# Entferne den kompletten Block von '<!-- Password Gate -->' bis nach dem login-gate-Script
|
||||
c = re.sub(r'<!-- Password Gate -->.*?if\(getCookie.*?</script>', '', c, count=1, flags=re.DOTALL)
|
||||
with open(\"index.html\", \"w\") as f: f.write(c)
|
||||
print(\"Passwort-Gate entfernt\")
|
||||
"'
|
||||
```
|
||||
|
||||
Verifikation:
|
||||
|
||||
```bash
|
||||
ssh claude-dev@46.225.225.49 'grep -c "PW_HASH\|login-gate" /opt/v2-Docker/aegis-website/html/index.html'
|
||||
```
|
||||
|
||||
Erwartet: `0`
|
||||
|
||||
### 2.6 noindex/nofollow-Meta-Tags entfernen
|
||||
|
||||
In `index.html` und in den drei Lagen-Seiten:
|
||||
|
||||
```bash
|
||||
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
|
||||
for f in index.html lagen/iran-konflikt/index.html lagen/cyberangriffe/index.html lagen/deepfakes/index.html; do \
|
||||
sed -i "/<meta name=\"robots\" content=\"noindex/d" "$f"; \
|
||||
done && \
|
||||
echo "--- Verbliebene noindex-Tags (sollte 0 sein):"; \
|
||||
grep -c noindex index.html lagen/*/index.html'
|
||||
```
|
||||
|
||||
Erwartet: Alle Dateien zeigen `0`.
|
||||
|
||||
### 2.7 robots.txt aktivieren (Crawler erlaubt)
|
||||
|
||||
```bash
|
||||
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
|
||||
mv robots-launch.txt robots.txt && \
|
||||
head -10 robots.txt'
|
||||
```
|
||||
|
||||
Erwartet: erste Zeilen zeigen `Allow: /` und `Sitemap:` Verweis.
|
||||
|
||||
### 2.8 sitemap.xml aktivieren
|
||||
|
||||
```bash
|
||||
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
|
||||
mv sitemap-launch.xml sitemap.xml && \
|
||||
head -5 sitemap.xml'
|
||||
```
|
||||
|
||||
### 2.9 Vorschau-Verzeichnis löschen
|
||||
|
||||
```bash
|
||||
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
|
||||
rm -rf vorschau && \
|
||||
ls -d vorschau 2>&1 | tail -1'
|
||||
```
|
||||
|
||||
Erwartet: `ls: cannot access 'vorschau': No such file or directory`
|
||||
|
||||
### 2.10 `.bak.*`-Dateien aufräumen (optional)
|
||||
|
||||
```bash
|
||||
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
|
||||
find . -name "*.bak.*" -type f -delete && \
|
||||
find . -name "*.bak.*" -type f | wc -l'
|
||||
```
|
||||
|
||||
Erwartet: `0`
|
||||
|
||||
### 2.11 Git-Commit + Push
|
||||
|
||||
```bash
|
||||
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
|
||||
git add -A && \
|
||||
git status --short | head -30'
|
||||
```
|
||||
|
||||
Status prüfen — sollte zeigen:
|
||||
- `D index.html` (alte gelöscht), `?? index.html` (neue erscheint via add) → wird als "renamed" oder M erkannt
|
||||
- Diverse Dateien in `_archiv/` neu
|
||||
- `vorschau/` komplett gelöscht
|
||||
- `robots.txt`, `sitemap.xml` erscheinen oder werden modifiziert
|
||||
|
||||
```bash
|
||||
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
|
||||
git commit -m "Online-Schaltung: Vorschau ist die neue Hauptseite
|
||||
|
||||
- Vorschau-Inhalt aus /vorschau/ nach /index.html, /css/vorschau-style.css, /js/vorschau-app.js, /assets/videos/vorschau-hero/ verschoben
|
||||
- Alte Hauptseite (Sicherheit Made in Germany) in /_archiv/ archiviert
|
||||
- Passwort-Gate entfernt
|
||||
- robots.txt: Crawler erlaubt (außer AI-Crawler), Sitemap-Verweis aktiviert
|
||||
- sitemap.xml aktiviert (Hauptseite, 3 Lagen, Impressum, Datenschutz)
|
||||
- noindex/nofollow Meta-Tags aus Hauptseite und Lagen entfernt
|
||||
|
||||
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>" && \
|
||||
git push origin main 2>&1 | tail -5'
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Smoke-Tests (sofort nach Push)
|
||||
|
||||
Jeden Test einzeln ausführen, erwartete Antwort daneben prüfen:
|
||||
|
||||
```bash
|
||||
# Hauptseite läuft:
|
||||
curl -sI https://aegis-sight.de/ | head -1
|
||||
# Erwartet: HTTP/1.1 200 OK
|
||||
|
||||
# Title ist da:
|
||||
curl -s https://aegis-sight.de/ | grep -c '<title>AegisSight Monitor'
|
||||
# Erwartet: 1
|
||||
|
||||
# noindex ist WEG:
|
||||
curl -s https://aegis-sight.de/ | grep -c 'noindex'
|
||||
# Erwartet: 0
|
||||
|
||||
# Passwort-Gate ist WEG:
|
||||
curl -s https://aegis-sight.de/ | grep -c 'PW_HASH\|login-gate'
|
||||
# Erwartet: 0
|
||||
|
||||
# robots.txt erlaubt Crawling:
|
||||
curl -s https://aegis-sight.de/robots.txt | grep -c '^Allow:'
|
||||
# Erwartet: ≥1
|
||||
|
||||
# sitemap.xml ist da:
|
||||
curl -sI https://aegis-sight.de/sitemap.xml | head -1
|
||||
# Erwartet: HTTP/1.1 200 OK
|
||||
|
||||
# Vorschau ist 404:
|
||||
curl -sI https://aegis-sight.de/vorschau/ | head -1
|
||||
# Erwartet: HTTP/1.1 404 Not Found
|
||||
|
||||
# Lagen erreichbar:
|
||||
curl -sI https://aegis-sight.de/lagen/iran-konflikt/ | head -1
|
||||
# Erwartet: HTTP/1.1 200 OK
|
||||
curl -sI https://aegis-sight.de/lagen/cyberangriffe/ | head -1
|
||||
# Erwartet: HTTP/1.1 200 OK
|
||||
curl -sI https://aegis-sight.de/lagen/deepfakes/ | head -1
|
||||
# Erwartet: HTTP/1.1 200 OK
|
||||
|
||||
# Cookie-Consent Asset erreichbar:
|
||||
curl -sI https://aegis-sight.de/cookie-consent.js | head -1
|
||||
# Erwartet: HTTP/1.1 200 OK
|
||||
|
||||
# Impressum + Datenschutz:
|
||||
curl -sI https://aegis-sight.de/impressum.html | head -1
|
||||
curl -sI https://aegis-sight.de/datenschutz.html | head -1
|
||||
# Erwartet: beide HTTP/1.1 200 OK
|
||||
|
||||
# OG-Image:
|
||||
curl -sI https://aegis-sight.de/assets/images/og-image.png | head -1
|
||||
# Erwartet: HTTP/1.1 200 OK
|
||||
```
|
||||
|
||||
Wenn ALLE Smoke-Tests grün: **Sage dem User Bescheid, dass die Live-Schaltung erfolgreich war**, und bitte um manuelle Verifikation im Browser (Hard-Reload Strg+F5):
|
||||
- Layout korrekt
|
||||
- Cookie-Banner erscheint
|
||||
- Kontaktformular funktioniert
|
||||
- Hero-Videos laufen
|
||||
- Lagen-Karussell zeigt aktuelle Daten
|
||||
- Footer hat Cookie-Einstellungen-Link
|
||||
|
||||
---
|
||||
|
||||
## 4. Notfall-Rollback (falls Smoke-Tests fehlschlagen)
|
||||
|
||||
**Variante A — Git-Rollback (bevorzugt):**
|
||||
|
||||
```bash
|
||||
# Den Tag-Namen aus Schritt 1 verwenden (z.B. pre-launch-20260427-093015)
|
||||
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
|
||||
git reset --hard pre-launch-YYYYMMDD-HHMMSS && \
|
||||
git push --force-with-lease origin main && \
|
||||
git status'
|
||||
```
|
||||
|
||||
⚠ **WICHTIG**: `--force-with-lease` ist sicherer als `--force`. Im seltenen Fall, dass jemand parallel committed hat, schlägt es fehl statt Daten zu überschreiben.
|
||||
|
||||
**Variante B — Server-Snapshot zurückspielen:**
|
||||
|
||||
```bash
|
||||
ssh claude-dev@46.225.225.49 'tar -xzf /home/claude-dev/website-snapshot-YYYYMMDD-HHMMSS.tar.gz -C /opt/v2-Docker/aegis-website/'
|
||||
```
|
||||
|
||||
**Nach Rollback**: Smoke-Tests erneut laufen lassen — Vorschau sollte wieder unter `/vorschau/` erreichbar sein, Hauptseite zeigt wieder die alte Version.
|
||||
|
||||
---
|
||||
|
||||
## 5. Manuelle Aufgaben (User/Kollege außerhalb des Skripts)
|
||||
|
||||
- **Browser-Test** auf `https://aegis-sight.de/` (Hard-Reload Strg+F5):
|
||||
- Layout, Hero-Videos, Karussell, Kontaktformular
|
||||
- Cookie-Banner erscheint, Akzeptieren funktioniert
|
||||
- Mobile-View testen
|
||||
- Lagen-Footer-Links funktionieren (z.B. `/#features`, `/#contact`)
|
||||
- **OG-Image-Preview** testen: URL in WhatsApp/Telegram/LinkedIn einfügen → Vorschaubild sollte erscheinen
|
||||
- **Eintrag in Search Console / Bing Webmaster:** ENTFÄLLT laut User-Wunsch (eigener Tracking-Pixel via Umami)
|
||||
|
||||
---
|
||||
|
||||
## 6. Notfall-Wiederherstellung der alten Hauptseite (separater, eigenständiger Block)
|
||||
|
||||
Falls jemand die alte Hauptseite ("Sicherheit Made in Germany") jemals wieder sehen/wiederherstellen möchte:
|
||||
|
||||
**Option A — aus `_archiv/` zurückkopieren:**
|
||||
|
||||
```bash
|
||||
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
|
||||
ls _archiv/'
|
||||
# Zeigt: old-index.html, old-css/, old-js/, old-robots.txt, old-videos
|
||||
```
|
||||
|
||||
Ein einzelner File z.B.:
|
||||
|
||||
```bash
|
||||
ssh claude-dev@46.225.225.49 'cp /opt/v2-Docker/aegis-website/html/_archiv/old-index.html /tmp/old-index.html && head -30 /tmp/old-index.html'
|
||||
```
|
||||
|
||||
**Option B — aus Git-History wiederherstellen (auch wenn `_archiv/` mal gelöscht würde):**
|
||||
|
||||
```bash
|
||||
# Letzten Commit finden, der die alte index.html noch enthielt:
|
||||
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
|
||||
git log --all --diff-filter=D --pretty=format:"%H %s" -- index.html | head -5'
|
||||
|
||||
# Dann die alte Datei aus diesem Commit zurückholen:
|
||||
ssh claude-dev@46.225.225.49 'cd /opt/v2-Docker/aegis-website/html && \
|
||||
git show <commit-hash>^:index.html > /tmp/old-index.html'
|
||||
```
|
||||
|
||||
Analog für `css/`, `js/` etc.
|
||||
|
||||
---
|
||||
|
||||
## 7. Anhang — Was wird wo geändert (Übersicht)
|
||||
|
||||
| Pfad | Vor Schaltung | Nach Schaltung |
|
||||
|---|---|---|
|
||||
| `/index.html` | "Sicherheit Made in Germany" (alte Hauptseite) | AegisSight Monitor (war Vorschau) |
|
||||
| `/vorschau/` | passwortgeschützte Vorschau | gelöscht (404) |
|
||||
| `/css/style.css` (alt) | aktiv (alte Hauptseite) | unter `/_archiv/old-css/style.css` |
|
||||
| `/css/vorschau-style.css` | nicht existent | aktiv (für neue Hauptseite) |
|
||||
| `/js/main.js` (alt) | aktiv | unter `/_archiv/old-js/main.js` |
|
||||
| `/js/vorschau-app.js` | nicht existent | aktiv |
|
||||
| `/css/main.css`, `/css/fonts.css`, `/css/mobile.css` | aktiv (für Hauptseite + Lagen) | aktiv (weiterhin für Lagen) |
|
||||
| `/js/config.js`, `/js/translations.js`, `/js/mobile-nav.js` | aktiv | aktiv (für Lagen) |
|
||||
| `/robots.txt` | blockiert alle Crawler | erlaubt Crawler (außer AI/Spam) |
|
||||
| `/sitemap.xml` | nicht existent | aktiv |
|
||||
| `/lagen/*/index.html` | hat noindex/nofollow | wird indexierbar |
|
||||
| `/cookie-consent.js`, `/cookie-consent.css` | aktiv (auf alter Hauptseite) | aktiv (auf neuer Hauptseite + Lagen) |
|
||||
| `/assets/images/og-image.png` | bereits vorhanden | weiterhin vorhanden |
|
||||
| `/datenschutz.html` | bereits erweitert (Kontakt + Umami) | unverändert |
|
||||
|
||||
---
|
||||
|
||||
**Bei Fragen oder unerwarteten Outputs:** NICHT improvisieren. Dem User die genaue Fehlermeldung melden und Anweisung abwarten.
|
||||
BIN
assets/images/og-image.png
Normale Datei
BIN
assets/images/og-image.png
Normale Datei
Binäre Datei nicht angezeigt.
|
Nachher Breite: | Höhe: | Größe: 35 KiB |
@@ -253,7 +253,23 @@
|
||||
</div>
|
||||
|
||||
<div class="datenschutz-section">
|
||||
<h2>5. Newsletter</h2>
|
||||
<h2>5. Kontaktformular und Anfragen</h2>
|
||||
|
||||
<h3>Datenerhebung über das Kontaktformular</h3>
|
||||
<p>Wenn Sie uns über das auf unserer Website bereitgestellte Kontaktformular eine Anfrage zukommen lassen, werden Ihre Angaben aus dem Formular inklusive der von Ihnen dort angegebenen Kontaktdaten zwecks Bearbeitung der Anfrage und für den Fall von Anschlussfragen bei uns gespeichert. Erhoben werden: Name, Organisation (optional), E-Mail-Adresse und Ihre Nachricht. Eine Weitergabe an Dritte erfolgt nicht.</p>
|
||||
|
||||
<h3>Rechtsgrundlage</h3>
|
||||
<p>Die Verarbeitung dieser Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. b DSGVO, sofern Ihre Anfrage mit der Erfüllung eines Vertrags zusammenhängt oder zur Durchführung vorvertraglicher Maßnahmen erforderlich ist. In allen übrigen Fällen beruht die Verarbeitung auf unserem berechtigten Interesse an der effektiven Bearbeitung der an uns gerichteten Anfragen (Art. 6 Abs. 1 lit. f DSGVO) und/oder auf Ihrer Einwilligung (Art. 6 Abs. 1 lit. a DSGVO), sofern diese abgefragt wurde; die Einwilligung ist jederzeit widerrufbar.</p>
|
||||
|
||||
<h3>Speicherdauer</h3>
|
||||
<p>Die von Ihnen im Kontaktformular eingegebenen Daten verbleiben bei uns, bis Sie uns zur Löschung auffordern, Ihre Einwilligung zur Speicherung widerrufen oder der Zweck für die Datenspeicherung entfällt (z. B. nach abgeschlossener Bearbeitung Ihrer Anfrage). Zwingende gesetzliche Bestimmungen – insbesondere Aufbewahrungsfristen – bleiben unberührt.</p>
|
||||
|
||||
<h3>Übertragung</h3>
|
||||
<p>Ihre Anfrage wird verschlüsselt (TLS) an unseren Server übertragen und dort als E-Mail an info@aegis-sight.de weitergeleitet. Die E-Mail-Übertragung erfolgt verschlüsselt über Mailserver in Deutschland (IONOS).</p>
|
||||
</div>
|
||||
|
||||
<div class="datenschutz-section">
|
||||
<h2>6. Newsletter</h2>
|
||||
|
||||
<h3>Newsletterdaten</h3>
|
||||
<p>Wenn Sie den auf der Website angebotenen Newsletter beziehen möchten, benötigen wir von Ihnen eine E-Mail-Adresse sowie Informationen, welche uns die Überprüfung gestatten, dass Sie der Inhaber der angegebenen E-Mail-Adresse sind und mit dem Empfang des Newsletters einverstanden sind. Weitere Daten werden nicht bzw. nur auf freiwilliger Basis erhoben. Diese Daten verwenden wir ausschließlich für den Versand der angeforderten Informationen und geben diese nicht an Dritte weiter.</p>
|
||||
@@ -264,7 +280,13 @@
|
||||
</div>
|
||||
|
||||
<div class="datenschutz-section">
|
||||
<h2>6. Plugins und Tools</h2>
|
||||
<h2>7. Plugins und Tools</h2>
|
||||
|
||||
<h3>AegisSight Analytics (Umami)</h3>
|
||||
<p>Wir nutzen auf dieser Website AegisSight Analytics, eine selbstgehostete Instanz der Open-Source-Analyse-Software Umami. Mit Umami erfassen wir anonymisierte Informationen zur Nutzung unserer Website (z. B. besuchte Seiten, Browser, ungefähre geografische Region auf Länderebene) zur Verbesserung unserer Inhalte.</p>
|
||||
<p><strong>Selbstgehostet in Deutschland:</strong> Sämtliche Daten verbleiben auf unserem Server in Nürnberg, Deutschland (Hosting: Hetzner). Eine Übertragung an Dritte findet nicht statt.</p>
|
||||
<p><strong>Cookielos und IP-anonymisiert:</strong> Umami setzt keine Cookies und speichert keine personenbezogenen Daten. IP-Adressen werden vor der Speicherung anonymisiert (Hashing). Es findet kein Cross-Site-Tracking statt.</p>
|
||||
<p><strong>Rechtsgrundlage und Einwilligung:</strong> Die Reichweitenmessung wird ausschließlich nach Ihrer Einwilligung über unser Cookie-Consent-Banner aktiviert (Art. 6 Abs. 1 lit. a DSGVO i. V. m. § 25 Abs. 1 TDDDG). Sie können Ihre Einwilligung jederzeit über den Footer-Link „Cookie-Einstellungen" widerrufen. Wir respektieren das „Global Privacy Control" (GPC)-Signal Ihres Browsers und deaktivieren in diesem Fall die Reichweitenmessung automatisch.</p>
|
||||
|
||||
<h3>Google Fonts (lokales Hosting)</h3>
|
||||
<p>Diese Seite nutzt zur einheitlichen Darstellung von Schriftarten so genannte Google Fonts, die von Google bereitgestellt werden. Die Google Fonts sind lokal installiert. Eine Verbindung zu Servern von Google findet dabei nicht statt.</p>
|
||||
@@ -272,7 +294,7 @@
|
||||
</div>
|
||||
|
||||
<div class="datenschutz-section">
|
||||
<h2>7. Automatisierte Zugriffe und KI-Agenten</h2>
|
||||
<h2>8. Automatisierte Zugriffe und KI-Agenten</h2>
|
||||
|
||||
<h3>Verbot automatisierter Zugriffe</h3>
|
||||
<p>Die automatisierte Abfrage, das Scraping oder Crawling dieser Website durch Bots, Spider, Scraper, KI-Agenten (einschließlich LLM-basierter Systeme), „Buy-for-me"-Agenten oder ähnliche automatisierte Tools ist ohne unsere ausdrückliche schriftliche Genehmigung untersagt.</p>
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.Default.css">
|
||||
<link rel="stylesheet" href="/cookie-consent.css">
|
||||
</head>
|
||||
<body class="lagebild-page">
|
||||
<div class="scroll-progress" id="scroll-progress"></div>
|
||||
@@ -122,8 +123,8 @@
|
||||
<div class="container">
|
||||
<div class="footer-content">
|
||||
<div class="footer-section"><h4 data-translate="footerCompanyTitle">AegisSight UG (haftungsbeschränkt)</h4><p data-translate="footerCompanyAddress1">Gladbacher Strasse 3-5</p><p data-translate="footerCompanyAddress2">40764 Langenfeld</p></div>
|
||||
<div class="footer-section"><h4 data-translate="footerNavTitle">Navigation</h4><ul><li><a href="/" data-translate="footerNavHome">Startseite</a></li><li><a href="/#about" data-translate="footerNavAbout">Über uns</a></li><li><a href="/#products" data-translate="footerNavProducts">Lösungen</a></li></ul></div>
|
||||
<div class="footer-section"><h4 data-translate="footerLegalTitle">Rechtliches</h4><ul><li><a href="/impressum.html" data-translate="footerImprint">Impressum</a></li><li><a href="/datenschutz.html" data-translate="footerPrivacy">Datenschutz</a></li></ul></div>
|
||||
<div class="footer-section"><h4 data-translate="footerNavTitle">Navigation</h4><ul><li><a href="/" data-translate="footerNavHome">Startseite</a></li><li><a href="/#features">Funktionen</a></li><li><a href="/#demos">Live-Lagebilder</a></li><li><a href="/#trust" data-translate="footerNavAbout">Über uns</a></li><li><a href="/#contact">Kontakt</a></li></ul></div>
|
||||
<div class="footer-section"><h4 data-translate="footerLegalTitle">Rechtliches</h4><ul><li><a href="/impressum.html" data-translate="footerImprint">Impressum</a></li><li><a href="/datenschutz.html" data-translate="footerPrivacy">Datenschutz</a></li><li><a href="#" id="cookie-settings-link">Cookie-Einstellungen</a></li></ul></div>
|
||||
<div class="footer-section"><h4 data-translate="footerContactTitle">Kontakt</h4><p>info@aegis-sight.de</p></div>
|
||||
</div>
|
||||
<p class="copyright">© 2026 AegisSight UG (haftungsbeschränkt). Alle Rechte vorbehalten.</p>
|
||||
@@ -135,5 +136,6 @@
|
||||
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
|
||||
<script src="https://unpkg.com/leaflet.markercluster@1.5.3/dist/leaflet.markercluster.js"></script>
|
||||
<script src="/lagen/iran-konflikt/lagebild.js"></script>
|
||||
<script src="/cookie-consent.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -13,6 +13,7 @@
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.Default.css">
|
||||
<link rel="stylesheet" href="/cookie-consent.css">
|
||||
</head>
|
||||
<body class="lagebild-page">
|
||||
<!-- Scroll Progress Bar -->
|
||||
@@ -176,8 +177,10 @@
|
||||
<h4 data-translate="footerNavTitle">Navigation</h4>
|
||||
<ul>
|
||||
<li><a href="/" data-translate="footerNavHome">Startseite</a></li>
|
||||
<li><a href="/#about" data-translate="footerNavAbout">Über uns</a></li>
|
||||
<li><a href="/#products" data-translate="footerNavProducts">Lösungen</a></li>
|
||||
<li><a href="/#features" data-translate="footerNavFeatures">Funktionen</a></li>
|
||||
<li><a href="/#demos" data-translate="footerNavDemos">Live-Lagebilder</a></li>
|
||||
<li><a href="/#trust" data-translate="footerNavAbout">Über uns</a></li>
|
||||
<li><a href="/#contact" data-translate="footerNavContact">Kontakt</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-section">
|
||||
@@ -185,6 +188,7 @@
|
||||
<ul>
|
||||
<li><a href="/impressum.html" data-translate="footerImprint">Impressum</a></li>
|
||||
<li><a href="/datenschutz.html" data-translate="footerPrivacy">Datenschutz</a></li>
|
||||
<li><a href="#" id="cookie-settings-link">Cookie-Einstellungen</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-section">
|
||||
@@ -203,5 +207,6 @@
|
||||
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
|
||||
<script src="https://unpkg.com/leaflet.markercluster@1.5.3/dist/leaflet.markercluster.js"></script>
|
||||
<script src="/lagen/iran-konflikt/lagebild.js"></script>
|
||||
<script src="/cookie-consent.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.Default.css">
|
||||
<link rel="stylesheet" href="/cookie-consent.css">
|
||||
</head>
|
||||
<body class="lagebild-page">
|
||||
<!-- Scroll Progress Bar -->
|
||||
@@ -182,8 +183,10 @@
|
||||
<h4 data-translate="footerNavTitle">Navigation</h4>
|
||||
<ul>
|
||||
<li><a href="/" data-translate="footerNavHome">Startseite</a></li>
|
||||
<li><a href="/#about" data-translate="footerNavAbout">Über uns</a></li>
|
||||
<li><a href="/#products" data-translate="footerNavProducts">Lösungen</a></li>
|
||||
<li><a href="/#features" data-translate="footerNavFeatures">Funktionen</a></li>
|
||||
<li><a href="/#demos" data-translate="footerNavDemos">Live-Lagebilder</a></li>
|
||||
<li><a href="/#trust" data-translate="footerNavAbout">Über uns</a></li>
|
||||
<li><a href="/#contact" data-translate="footerNavContact">Kontakt</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-section">
|
||||
@@ -191,6 +194,7 @@
|
||||
<ul>
|
||||
<li><a href="/impressum.html" data-translate="footerImprint">Impressum</a></li>
|
||||
<li><a href="/datenschutz.html" data-translate="footerPrivacy">Datenschutz</a></li>
|
||||
<li><a href="#" id="cookie-settings-link">Cookie-Einstellungen</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footer-section">
|
||||
@@ -209,5 +213,6 @@
|
||||
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
|
||||
<script src="https://unpkg.com/leaflet.markercluster@1.5.3/dist/leaflet.markercluster.js"></script>
|
||||
<script src="lagebild.js"></script>
|
||||
<script src="/cookie-consent.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
99
robots-launch.txt
Normale Datei
99
robots-launch.txt
Normale Datei
@@ -0,0 +1,99 @@
|
||||
# robots.txt for AegisSight UG — wird am Tag X als robots.txt aktiv geschaltet
|
||||
# Allgemein: Crawling erlaubt, außer API-Endpunkte und interne Pfade
|
||||
|
||||
User-agent: *
|
||||
Allow: /
|
||||
Disallow: /api/
|
||||
Disallow: /_archiv/
|
||||
Disallow: /vorschau/
|
||||
|
||||
# Sitemap
|
||||
Sitemap: https://aegis-sight.de/sitemap.xml
|
||||
|
||||
# AI-Crawler explizit blocken — keine Trainingsdaten-Verwendung
|
||||
User-agent: GPTBot
|
||||
Disallow: /
|
||||
|
||||
User-agent: ChatGPT-User
|
||||
Disallow: /
|
||||
|
||||
User-agent: CCBot
|
||||
Disallow: /
|
||||
|
||||
User-agent: anthropic-ai
|
||||
Disallow: /
|
||||
|
||||
User-agent: Claude-Web
|
||||
Disallow: /
|
||||
|
||||
User-agent: ClaudeBot
|
||||
Disallow: /
|
||||
|
||||
User-agent: Bytespider
|
||||
Disallow: /
|
||||
|
||||
User-agent: PerplexityBot
|
||||
Disallow: /
|
||||
|
||||
User-agent: Google-Extended
|
||||
Disallow: /
|
||||
|
||||
User-agent: Applebot-Extended
|
||||
Disallow: /
|
||||
|
||||
User-agent: Meta-ExternalAgent
|
||||
Disallow: /
|
||||
|
||||
User-agent: cohere-ai
|
||||
Disallow: /
|
||||
|
||||
User-agent: OAI-SearchBot
|
||||
Disallow: /
|
||||
|
||||
# Archiv-Bots blocken
|
||||
User-agent: ia_archiver
|
||||
Disallow: /
|
||||
|
||||
User-agent: Wayback Machine
|
||||
Disallow: /
|
||||
|
||||
User-agent: archive.org_bot
|
||||
Disallow: /
|
||||
|
||||
# SEO-/Spam-Crawler blocken
|
||||
User-agent: AhrefsBot
|
||||
Disallow: /
|
||||
|
||||
User-agent: SemrushBot
|
||||
Disallow: /
|
||||
|
||||
User-agent: MJ12bot
|
||||
Disallow: /
|
||||
|
||||
User-agent: DotBot
|
||||
Disallow: /
|
||||
|
||||
User-agent: SEOkicks-Robot
|
||||
Disallow: /
|
||||
|
||||
User-agent: MauiBot
|
||||
Disallow: /
|
||||
|
||||
User-agent: Majestic-12
|
||||
Disallow: /
|
||||
|
||||
User-agent: BLEXBot
|
||||
Disallow: /
|
||||
|
||||
User-agent: SerendeputyBot
|
||||
Disallow: /
|
||||
|
||||
# Download-Manager blocken
|
||||
User-agent: HTTrack
|
||||
Disallow: /
|
||||
|
||||
User-agent: SiteSnagger
|
||||
Disallow: /
|
||||
|
||||
User-agent: WebCopier
|
||||
Disallow: /
|
||||
33
sitemap-launch.xml
Normale Datei
33
sitemap-launch.xml
Normale Datei
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://aegis-sight.de/</loc>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://aegis-sight.de/lagen/iran-konflikt/</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://aegis-sight.de/lagen/cyberangriffe/</loc>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://aegis-sight.de/lagen/deepfakes/</loc>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.7</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://aegis-sight.de/impressum.html</loc>
|
||||
<changefreq>yearly</changefreq>
|
||||
<priority>0.3</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://aegis-sight.de/datenschutz.html</loc>
|
||||
<changefreq>yearly</changefreq>
|
||||
<priority>0.3</priority>
|
||||
</url>
|
||||
</urlset>
|
||||
@@ -3,14 +3,56 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>AegisSight Monitor - Echtzeit-Lagebilder aus offenen Quellen</title>
|
||||
<title>AegisSight Monitor – Echtzeit-Lagebilder aus offenen Quellen</title>
|
||||
<meta name="description" content="OSINT-Monitoring Software aus Deutschland: KI-gestützte Echtzeit-Lagebilder aus offenen Quellen. Für Behörden, Redaktionen und Sicherheitsdienste.">
|
||||
<meta name="robots" content="noindex, nofollow, noarchive">
|
||||
<link rel="canonical" href="https://aegis-sight.de/">
|
||||
|
||||
<!-- Open Graph / Social Sharing -->
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:site_name" content="AegisSight">
|
||||
<meta property="og:title" content="AegisSight Monitor – Echtzeit-Lagebilder aus offenen Quellen">
|
||||
<meta property="og:description" content="KI-gestützte Echtzeit-Lagebilder aus offenen Quellen. Für Behörden, Redaktionen und Sicherheitsdienste – Made in Germany.">
|
||||
<meta property="og:url" content="https://aegis-sight.de/">
|
||||
<meta property="og:image" content="https://aegis-sight.de/assets/images/og-image.png">
|
||||
<meta property="og:image:width" content="1200">
|
||||
<meta property="og:image:height" content="630">
|
||||
<meta property="og:locale" content="de_DE">
|
||||
|
||||
<!-- Twitter Card -->
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="AegisSight Monitor – Echtzeit-Lagebilder aus offenen Quellen">
|
||||
<meta name="twitter:description" content="KI-gestützte Echtzeit-Lagebilder aus offenen Quellen. Für Behörden, Redaktionen und Sicherheitsdienste – Made in Germany.">
|
||||
<meta name="twitter:image" content="https://aegis-sight.de/assets/images/og-image.png">
|
||||
|
||||
<!-- Schema.org Organization -->
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Organization",
|
||||
"name": "AegisSight UG (haftungsbeschränkt)",
|
||||
"alternateName": "AegisSight",
|
||||
"url": "https://aegis-sight.de",
|
||||
"logo": "https://aegis-sight.de/assets/images/logos/AegisSightLogo_NavyGold.svg",
|
||||
"email": "info@aegis-sight.de",
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"streetAddress": "Gladbacher Straße 3-5",
|
||||
"postalCode": "40764",
|
||||
"addressLocality": "Langenfeld",
|
||||
"addressRegion": "Nordrhein-Westfalen",
|
||||
"addressCountry": "DE"
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
|
||||
<link rel="apple-touch-icon" href="/assets/images/logos/AegisSightLogo_NavyGold.svg">
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.css">
|
||||
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.5.3/dist/MarkerCluster.Default.css">
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
<link rel="stylesheet" href="/cookie-consent.css">
|
||||
</head>
|
||||
<body>
|
||||
<!-- Password Gate -->
|
||||
@@ -430,11 +472,13 @@
|
||||
<div class="footer-links">
|
||||
<a href="/impressum.html">Impressum</a>
|
||||
<a href="/datenschutz.html">Datenschutz</a>
|
||||
<a href="#" id="cookie-settings-link">Cookie-Einstellungen</a>
|
||||
</div>
|
||||
</div>
|
||||
<p class="footer-copyright">© 2026 AegisSight UG (haftungsbeschränkt). Alle Rechte vorbehalten.</p>
|
||||
<p class="footer-copyright">© <span id="footer-year">2026</span> AegisSight UG (haftungsbeschränkt). Alle Rechte vorbehalten.</p>
|
||||
</div>
|
||||
</footer>
|
||||
<script>document.getElementById('footer-year').textContent=new Date().getFullYear();</script>
|
||||
|
||||
|
||||
<!-- Contact Modal -->
|
||||
@@ -473,5 +517,6 @@
|
||||
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
|
||||
<script src="https://unpkg.com/leaflet.markercluster@1.5.3/dist/leaflet.markercluster.js"></script>
|
||||
<script src="js/app.js"></script>
|
||||
<script src="/cookie-consent.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -603,6 +603,7 @@ function mdToHtml(md) {
|
||||
window.openContactModal = function () {
|
||||
document.getElementById('contact-modal').style.display = 'flex';
|
||||
document.body.style.overflow = 'hidden';
|
||||
if (window.umami) umami.track('contact_modal_open');
|
||||
};
|
||||
|
||||
window.closeContactModal = function () {
|
||||
@@ -646,6 +647,7 @@ function mdToHtml(md) {
|
||||
if (res.ok) {
|
||||
document.getElementById('contact-form').style.display = 'none';
|
||||
document.getElementById('form-success').style.display = 'block';
|
||||
if (window.umami) umami.track('contact_form_success');
|
||||
} else {
|
||||
alert(res.data.error || 'Fehler beim Senden');
|
||||
if (btn) { btn.disabled = false; btn.textContent = 'Nachricht senden'; }
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren