Progressive Web App zur Konfiguration von Fenstern und Balkontüren mit automatischer Material-Anzeige basierend auf den eingegebenen Falzmaßen. Materialien werden dann in eine (bestehende) Excel-Datei exportiert.
| Kategorie | Typ |
|---|---|
| Fenster | Drehfenster |
| Fenster | Kippfenster |
| Fenster | Drehkippfenster |
| Fenster | Stulpfenster |
| Balkontür | Drehkipptür |
| Balkontür | Stulptür |
localStorage gespeichert, damit Kopfzeilen-Formatierungen (Rahmen, Fettdruck, verbundene Zellen) erhalten bleiben. Dateiname wird für späteren Export gesichert.localStorage ablegen. Vorgangsnummer und Name bleiben stehen; Position, Menge und Maße werden geleert.sheet1.xml der Original-Datei eingetragen und heruntergeladen. Kopfzeilen bleiben unverändert; neue Datenzeilen werden ohne Formatierung angehängt.Spaltenreihenfolge im Export:
| Vorgangsnummer | Kunde | Pos | Menge | Typ | Flügelbreite | Flügelhöhe | Beschlag Rechts | Beschlag Links | Beschlag Oben | Beschlag Unten | |—|—|—|—|—|—|—|—|—|—|—|
materials.json (108 Einträge) – wird beim ersten App-Start in IndexedDB importiert.fenster-dreh, fenster-kipp, fenster-drehkipp, fenster-stulp, tuer-drehkipp, tuer-stulp| Bereich | Detail |
|---|---|
| Frontend | Vanilla JavaScript (ES6+) |
| Datenpersistenz | IndexedDB, DB_VERSION = 13 |
| DB-Versionswechsel | Automatische Löschung & Neu-Import |
| Excel-Export | JSZip (vendor/jszip.min.js) – nur sheet1.xml wird modifiziert |
| Excel-Lesen | SheetJS lokal (vendor/xlsx.full.min.js) |
| Service Worker | Filtert Nicht-HTTP(S)-Requests (z. B. chrome-extension://) |
| localStorage | exportRows – zwischengespeicherte ZeilenloadedFileName – Dateiname der geladenen DateiloadedFileBase64 – Original-Datei als Base64 |
window_door/
├── index.html # App-Shell
├── styles.css # Styling inkl. .btn--secondary, Portrait-Anpassung
├── app.js # Hauptlogik, IndexedDB, Export/Import
├── sw.js # Service Worker
├── manifest.json # PWA-Manifest
├── materials.json # 108 Materialeinträge
├── vendor/
│ ├── jszip.min.js # ZIP-Manipulation für format-erhaltenden Export
│ └── xlsx.full.min.js
└── images/
├── LOGO_HR.png
├── dreh.png
├── kipp.png
├── dreh_kipp.png
├── stulp.svg
├── tuer_drehkipp.png
├── tuer_stulp.png
├── icon-192.png
├── icon-512.png
└── apple-touch-icon.png
cd window_door
python3 -m http.server 5173
Öffne anschließend http://localhost:5173.
DB_VERSION in app.js erhöhen → IndexedDB wird beim nächsten Start neu befüllt.materials.json ergänzen und DB_VERSION erhöhen.