Doku: README auf Live-Kamera + Persist-First, korrekter Deploy-Pfad/URL, Struktur
All checks were successful
Deploy baustelle-pwa / deploy (push) Has been skipped
All checks were successful
Deploy baustelle-pwa / deploy (push) Has been skipped
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
5e7b1a9ec7
commit
3608fef216
1 changed files with 18 additions and 13 deletions
31
README.md
31
README.md
|
|
@ -18,10 +18,12 @@ Mobile Progressive Web App für die Baustellen-Doku — Foto-Upload, Sprachnotiz
|
||||||
- ✅ Auftragsdetail mit Kunde, Adresse, Telefon (Click-to-Call)
|
- ✅ Auftragsdetail mit Kunde, Adresse, Telefon (Click-to-Call)
|
||||||
|
|
||||||
**Foto-Upload**
|
**Foto-Upload**
|
||||||
- ✅ Foto-Aufnahme direkt aus der Kamera oder aus Galerie
|
- ✅ Live-Kamera-Modal (getUserMedia): bleibt für Serien-Aufnahmen offen — Auslöser + Filmstreifen mit Upload-Status je Foto (💾 gesichert → ⏳ lädt hoch → ✓ fertig), Front-/Rückkamera-Umschaltung, Fehlschuss löschbar
|
||||||
|
- ✅ Alternativ Aufnahme aus der Galerie
|
||||||
- ✅ Clientseitige Bild-Verkleinerung auf 2000px (JPEG q=0.85)
|
- ✅ Clientseitige Bild-Verkleinerung auf 2000px (JPEG q=0.85)
|
||||||
- ✅ Offline-Queue: bei fehlgeschlagenem Upload landet das Foto in IndexedDB
|
- ✅ **Persist-First / Datenverlust-Schutz**: jedes Foto wird beim Auslösen ZUERST in IndexedDB gesichert, Upload erst danach; Queue-Item wird nur nach bestätigtem Upload (HTTP 2xx mit gültigem `relpath`) gelöscht — überlebt fehlendes/schwaches Netz, hängende Uploads (45s-Timeout) und App-Kill. Erkennt 2xx-HTML (abgelaufene Session/Proxy-Loginseite) als Fehler statt als Erfolg
|
||||||
- ✅ Auto-Sync wenn wieder online (mit Status-Badge)
|
- ✅ Auto-Sync bei "online", periodisch (15s) und bei App-Fokus; Status-Badge (🟢 alles gesichert / 🟡 lädt hoch / 🔴 offline / ⚠️ fehlgeschlagen)
|
||||||
|
- ✅ Recovery: Tipp auf das Status-Badge öffnet die Warteschlange → erneut senden / teilen; Warnung beim Schließen mit noch ungesicherten Fotos
|
||||||
- ✅ Foto-Viewer mit Zoom + Swipe
|
- ✅ Foto-Viewer mit Zoom + Swipe
|
||||||
- ✅ Foto-Skizze: Annotationen mit Pfeilen, Kreisen, Rechtecken, Text
|
- ✅ Foto-Skizze: Annotationen mit Pfeilen, Kreisen, Rechtecken, Text
|
||||||
|
|
||||||
|
|
@ -69,22 +71,25 @@ Mobile Progressive Web App für die Baustellen-Doku — Foto-Upload, Sprachnotiz
|
||||||
|
|
||||||
## Hosting
|
## Hosting
|
||||||
|
|
||||||
Wird bei jedem Push nach `/srv/http/baustelle/` (lokal) bzw. `/mnt/appdata/firma/dolibarr-202509/baustelle/` (prod) deployt. Apache-Alias unter `https://awl.data-it-solution.de/baustelle/`.
|
Deploy per Forgejo-Pipeline (Commit-Tag `[deploy]`) nach `/mnt/appdata/firma/dolibarr-202509/modules/baustelle/`. Erreichbar unter `https://awl.data-it-solution.de/custom/baustelle/`. Cache-Busting automatisch via `filemtime()` in `index.php` (`?v=<mtime>` an JS/CSS) — kein manuelles Versions-Hochzählen nötig, die PWA aktualisiert sich beim nächsten Laden.
|
||||||
|
|
||||||
## Verzeichnis-Struktur
|
## Verzeichnis-Struktur
|
||||||
|
|
||||||
```
|
```
|
||||||
baustelle-pwa/
|
baustelle-pwa/
|
||||||
├── index.html App-Shell
|
├── index.php App-Shell (Cache-Busting via filemtime → ?v=<mtime>)
|
||||||
├── manifest.webmanifest PWA Manifest
|
├── share.html Web-Share-Target-Empfänger
|
||||||
├── sw.js Service Worker
|
├── manifest.webmanifest PWA Manifest
|
||||||
├── app.js Hauptlogik (Routes, Views)
|
├── sw.js Service Worker (Network-First, API pass-through)
|
||||||
├── app.css Mobile-first Styling
|
├── app.js Hauptlogik (Routes, Views)
|
||||||
|
├── app.css Mobile-first Styling
|
||||||
├── lib/
|
├── lib/
|
||||||
│ ├── idb.js IndexedDB-Wrapper
|
│ ├── idb.js IndexedDB-Wrapper (JWT + Foto-Queue)
|
||||||
│ ├── api.js REST-API-Client (JWT)
|
│ ├── api.js REST-API-Client (JWT, JSON-Guard, Timeout)
|
||||||
│ ├── offline.js Offline-Queue + Sync
|
│ ├── offline.js Offline-Queue + Sync (Persist-First)
|
||||||
│ └── router.js Hash-Router
|
│ ├── router.js Hash-Router
|
||||||
|
│ ├── pdf.min.js PDF.js (Lieferschein-Vorschau)
|
||||||
|
│ └── pdf.worker.min.js PDF.js Worker
|
||||||
└── icons/
|
└── icons/
|
||||||
├── icon-192.png
|
├── icon-192.png
|
||||||
└── icon-512.png
|
└── icon-512.png
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue