feat(carousel): archiefafbeelding downloaden naar een plek naar keuze #2212

Merged
brenno merged 3 commits from feature/carousel-download into main 2026-09-28 09:50:19 +00:00
Owner

Summary

De afbeeldingscarousel kon een afbeelding al het klembord op (Kopiëren), maar niet naar een plek naar keuze — handig als je een archiefbeeld elders wilt hergebruiken of doorsturen. De preview krijgt een Downloaden…-knop naast Kopiëren:

  • Desktop: het systeem-bewaarvenster (getSaveLocation, zelfde route als bij een document-export) vraagt de bestemming; File.copy schrijft de kopie. De bron blijft ongemoeid in het archief staan.
  • Web: de bytes gaan als browserdownload uit via deliverAsDownload — dezelfde afleverroute als bij elke export (#1902). De carousel scant zelf geen bestandssysteem op web, maar de route is daarmee correct én testbaar.

De bestemmings- en kopieroute zit in de top-level downloadCarouselImage (de klassegrootte-ratchet rekte anders uit), met testseams debugImageDownloadDestination en de bestaande debugDownloadSink/debugDeliversByDownload. De vier preview-actieknoppen zijn naar een top-level _previewActions getild — hetzelfde patroon als _metaField. Twee nieuwe zichtbare strings in 31 talen via tool/carousel_download_l10n_spec.json.

Test plan

  • make check volledig groen (format, analyze, conventies, volledige suite, coverage, goldens)
  • make check-secrets — 0 lekken
  • make sast — 0 findings
  • make l10n-check — parity, passthrough en dekking groen
  • 6 nieuwe tests in test/image_carousel_download_test.dart: knop aanwezig, kopie op gekozen bestemming (bron blijft staan), annuleren, schrijffout gemeld, browserdownload aangeboden, geweigerde download gemeld
  • Geen beeldkeuring gedaan: geen computer-use/MCP beschikbaar; de knop hergebruikt de bestaande preview-knopstijl en golden/widgets-tests zijn groen.

Generated with Devin

## Summary De afbeeldingscarousel kon een afbeelding al het klembord op (**Kopiëren**), maar niet naar een plek naar keuze — handig als je een archiefbeeld elders wilt hergebruiken of doorsturen. De preview krijgt een **Downloaden…**-knop naast Kopiëren: - **Desktop:** het systeem-bewaarvenster (`getSaveLocation`, zelfde route als bij een document-export) vraagt de bestemming; `File.copy` schrijft de kopie. De bron blijft ongemoeid in het archief staan. - **Web:** de bytes gaan als browserdownload uit via `deliverAsDownload` — dezelfde afleverroute als bij elke export (#1902). De carousel scant zelf geen bestandssysteem op web, maar de route is daarmee correct én testbaar. De bestemmings- en kopieroute zit in de top-level `downloadCarouselImage` (de klassegrootte-ratchet rekte anders uit), met testseams `debugImageDownloadDestination` en de bestaande `debugDownloadSink`/`debugDeliversByDownload`. De vier preview-actieknoppen zijn naar een top-level `_previewActions` getild — hetzelfde patroon als `_metaField`. Twee nieuwe zichtbare strings in 31 talen via `tool/carousel_download_l10n_spec.json`. ## Test plan - [x] `make check` volledig groen (format, analyze, conventies, volledige suite, coverage, goldens) - [x] `make check-secrets` — 0 lekken - [x] `make sast` — 0 findings - [x] `make l10n-check` — parity, passthrough en dekking groen - [x] 6 nieuwe tests in `test/image_carousel_download_test.dart`: knop aanwezig, kopie op gekozen bestemming (bron blijft staan), annuleren, schrijffout gemeld, browserdownload aangeboden, geweigerde download gemeld - [ ] Geen beeldkeuring gedaan: geen computer-use/MCP beschikbaar; de knop hergebruikt de bestaande preview-knopstijl en golden/widgets-tests zijn groen. Generated with [Devin](https://devin.ai)
brenno force-pushed feature/carousel-download from 0cb1a73013 to de6559bc02 2026-09-28 09:50:08 +00:00 Compare
brenno merged commit 69638ec20b into main 2026-09-28 09:50:19 +00:00
Sign in to join this conversation.
No description provided.