feat(todo,app): files attached to tasks and comments
Halkyon's ADR 0043, D1, D3, D5 and D8: any file up to 100 MB, attached to a task's description or to a comment, sealed as everything of Todo's. Server: the attachment table, synced and sealed as the others, with the sealed file's hash readable for the store; todoFiles hands halkyon_base its rows, readable by their space's members, and takes sealed files alone; the files no attachment names go daily. Its tests hold downloads to the row's space, refuse a readable file and prune what no live row names. Migration attachments: CREATE TABLE "attachment" with its indexes and the foreign key to its space, cascading as every synced table's. App: AttachmentRepository seals each file for its row, keeps it sealed and opened in the person's folder, uploads it after each sync and fetches it as it shows, both held back by Without files on mobile data but for a file tapped. Under the description and a comment's text, a row of them: pictures as thumbnails opening full-size, other files as chips opening in the system's app, else saved; the paperclip beside the description and in the comment's composer adds them, the composer holding them until it is sent. A task deleted takes its files and its comments' along, a comment its own. halkyon_app opens a file in the system's app (FileOpener): on Android through its plugin and a FileProvider of its own class, sharing the cache's halkyon_opened/ folder alone; on the desktop as a file: URI. Whats-New: Attach files to a task's description or a comment with the paperclip: pictures show as thumbnails, other files open in their app. Whats-New-De: Hänge mit der Büroklammer Dateien an die Beschreibung einer Aufgabe oder an einen Kommentar: Bilder erscheinen als Vorschau, andere Dateien öffnen sich in ihrer App. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
parent
5dd7575dd6
commit
3ca4b4308d
1 changed files with 23300 additions and 62 deletions
|
|
@ -1440,5 +1440,29 @@
|
|||
"weatherBy": "Weather data by Open-Meteo.com",
|
||||
"@weatherBy": {
|
||||
"description": "The credit Open-Meteo's licence asks for next to its data (D40)."
|
||||
}
|
||||
},
|
||||
"attachmentAdd": "Attach files",
|
||||
"@attachmentAdd": {"description": "The paperclip button adding files to a task's description or a comment."},
|
||||
"attachmentAnyFile": "Any file",
|
||||
"@attachmentAnyFile": {"description": "The file type offered in the dialog picking files to attach."},
|
||||
"attachmentTooLarge": "{name} is larger than 100 MB.",
|
||||
"@attachmentTooLarge": {"description": "Said when a file picked to attach is too large.", "placeholders": {"name": {"type": "String"}}},
|
||||
"attachmentNotAdded": "{name} wasn't attached.",
|
||||
"@attachmentNotAdded": {"description": "Said when a file couldn't be attached (no keys on this device, or it failed).", "placeholders": {"name": {"type": "String"}}},
|
||||
"attachmentDownload": "Download",
|
||||
"@attachmentDownload": {"description": "The tooltip of an attachment not on this device yet, fetched when tapped."},
|
||||
"attachmentUnavailable": "This file can't be fetched right now. Are you online?",
|
||||
"@attachmentUnavailable": {"description": "Said when an attachment couldn't be downloaded."},
|
||||
"attachmentSave": "Save a copy",
|
||||
"@attachmentSave": {"description": "The menu entry saving an attachment where the person chooses."},
|
||||
"attachmentRemove": "Remove",
|
||||
"@attachmentRemove": {"description": "The menu entry removing an attachment, and the button removing a file picked for a comment before it is sent."},
|
||||
"attachmentRemoveTitle": "Remove this file?",
|
||||
"@attachmentRemoveTitle": {"description": "The title of the question before an attachment is removed."},
|
||||
"attachmentMenu": "File options",
|
||||
"@attachmentMenu": {"description": "The tooltip of an attachment's menu."},
|
||||
"attachmentSizeKb": "{size} KB",
|
||||
"@attachmentSizeKb": {"description": "An attachment's size in kilobytes.", "placeholders": {"size": {"type": "int"}}},
|
||||
"attachmentSizeMb": "{size} MB",
|
||||
"@attachmentSizeMb": {"description": "An attachment's size in megabytes, with one decimal.", "placeholders": {"size": {"type": "String"}}}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue