feat(12.2-04): add the fileupload field with deferred uploads on the form session key

- sessionKey.ts: one 32-byte base64url key per form mount, sent only in headers
- api/files.ts: FileRoutes over the record and child file routes, XHR upload with progress, 401 refresh and retry
- FileuploadField and FileCaptionModal per UI-SPEC section 3: dropzone, image grid, rows, per-item states, client pre-checks, reorder, protected previews
- FormView provides FORM_SESSION, counts pending changes as dirty and sends X-Session-Key on create and update
- fileupload lang keys in en and pl, admin-spa docs note, deferred smoke test, rebuilt dist
This commit is contained in:
Jakub Zych
2026-10-02 19:22:22 +02:00
parent 1ebfe691a2
commit ea33296799
22 changed files with 2338 additions and 15 deletions

View File

@@ -104,6 +104,42 @@ extension:
widget_failed: This control could not be loaded. Refresh the page; if it happens again, check the plugin's assets.
partial_failed: This section could not be loaded. Refresh the page to try again.
action_failed: The action could not be completed. Please try again.
fileupload:
attachment: Attachment details
help: Add a title and description for this attachment.
title_label: Title
description_label: Description
default_prompt: Drag a file here or click to upload
default_prompt_many: Drag files here or click to upload
upload_file: Upload file
replace_file: Replace file
remove_file: Remove file
upload_error: Upload error
upload_failed: The file could not be uploaded. Try again.
retry: Retry
too_large: ":name is larger than :size. Choose a smaller file."
wrong_type: ":name is not an allowed file type. Allowed: :types."
too_many:
one: "File limit reached (:max). :count file was not added."
other: "File limit reached (:max). :count files were not added."
limits_types: "Allowed: :types"
limits_size: "up to :size"
limits_count: "Files: :current of :max"
uploading: "Uploading… :percent%"
queued: Waiting…
unsaved: Unsaved
move: "Move: :name"
moved: "Moved :name to position :position of :total."
reorder_failed: The new order could not be saved. The previous order is back.
edit_details: "Edit details: :name"
download: "Download: :name"
open_preview: "Open: :name"
preview_unavailable: No preview
load_failed: The files could not be loaded. Refresh the page to try again.
cancel_upload: "Cancel upload: :name"
details_saved: Attachment details saved
details_submit: Save details
empty: No files
messages:
list:
record_count: