Three new inspection types based on analyzed reference diagrams:
- Engelsman (half/heel): 5-section layout with DWL/BAL scoring
- Kruising (incl. ingesloten): 4-section layout with DWL/BAL scoring
- Overwegbevloering: rebuilt as spatial diagram with 14 photo
positions (sticker, spoorbord, 6x lage km, 6x hoge km)
Wissel subtype detection from SOORT field in SAP XML. Shared
DWL/BAL logic via usesDwlBal() helper. Section maps per type.
Overview photo export now includes all types.
Route inspection forms by objectsoort/EQART from CSV or SAP XML.
Each type gets its own header fields, assessment table layout,
overview photo grid, and XML export format. CSS toggles type-specific
sections via body class. SW cache bumped to v3.
IndexedDB data can be evicted under storage pressure, especially on iOS
Safari. navigator.storage.persist() asks the browser to keep our data. On
Chromium+Firefox it succeeds silently when conditions allow (installed PWA,
engagement heuristics); on Safari it typically grants only for installed
PWAs.
- persistentStorage.js: isPersisted() and requestPersistence() with graceful
fallback when the Storage API is unavailable.
- persistence.js: request persistence once, after the first successful save —
a heuristic that works across Firefox (user gesture context) and
Chromium/Safari (data-stored context).
- sw.js: bump cache version, precache new file.
- index.html: load new script.