seepuls/apps/web/public/manifest.webmanifest
Till JS 0fb5e4c570 feat(submit): Submit-UI σ-submit-2 — /melden-Seite + PWA-Share-Target
Web-seitige Erfassung für den Screenshot-Submit (docs/SCREENSHOT_SUBMIT.md).

- /melden: Formular (Screenshot / Post-Link / Ort / Notiz). POST läuft
  server-seitig über submitTip() → /api/v1/submissions (kein CORS,
  API-URL bleibt intern). Funktioniert ohne JS; kleine Bild-Vorschau als
  Progressive Enhancement. Erfolgs-State zeigt erkannten/kandidaten Ort.
- PWA manifest.webmanifest mit share_target → POST /melden
  (title→venue_hint, text→note, url→post_url, file→image). Derselbe
  Handler nimmt manuelles Formular UND geteilten Screenshot vom Handy.
- Base: <link rel="manifest"> + Footer-Link „Event melden".
- Venue-Detail: CTA „Event gesehen, das fehlt? Melde es" (prefill Ort).
- Klarer Hinweis: Screenshot wird nicht gespeichert, nur Eckdaten
  veröffentlicht (AGGREGATOR_POLICY §3).

Build grün, GET /melden + Manifest live-gesmoket (HTTP 200, Prefill ok).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 13:48:01 +02:00

25 lines
620 B
JSON

{
"name": "Seepuls — Events am Bodensee",
"short_name": "Seepuls",
"description": "Veranstaltungen am Bodensee, beidseits der Grenze.",
"start_url": "/",
"scope": "/",
"display": "standalone",
"lang": "de",
"background_color": "#0D0C12",
"theme_color": "#0D0C12",
"icons": [
{ "src": "/logo.svg", "sizes": "any", "type": "image/svg+xml", "purpose": "any" }
],
"share_target": {
"action": "/melden",
"method": "POST",
"enctype": "multipart/form-data",
"params": {
"title": "venue_hint",
"text": "note",
"url": "post_url",
"files": [{ "name": "image", "accept": ["image/*"] }]
}
}
}