[x] Handling of orphaned file uploads that are no longer associated to an objectTypeID.
[x] Resizing of GIFs in the browser (see #4031).
[x] Enable downloads again for non-image attachments.
[x] Add the missing phrases for the attachment action buttons.
[x] Implement a proper error handling for server-side errors, we’re currently just dumping the message property. This might also require some updated CSS to work nicely with the grid layout.
[x] Localized error messages for the pre-upload check.
[x] Abstract implementation for IFileProcessor that allows us to easily expand the interface later.
[x] It is currently only possible to adopt a file but not specific thumbnails. Do we need some kind of callback to register thumbnails in case they’re being referenced directly?
[x] Attachment/List.ts handles too much logic and should offload some into Attachment/Entry.ts which is unused right now.
[x] There is currently no upload progress because both Firefox and Safari do not support ReadableStream in the request body of fetch(). This means that we cannot track how much data has been sent to the server already. We can still track the chunks but that might be a bit light and potentially misleading due to how different the size of chunks can be for smaller uploads. (UPDATE: The decision was made to ignore this for now. Due to the extreme differences in the values for post_max_size this can differ widely.)
[x] <woltlab-core-file-upload> does not support limiting the number of concurrently uploaded files yet.
[x] HTTPS is now a hard requirement and must be added to the system requirements. (see #5919)
[x] Add support for a general upper limit for uploaded files that can be configured on the server side / environment.
[x] Thumbnails are currently generated as WebP only, do we want to support garbage browsers without WebP support? (UPDATE: The decision was made to not make an exception for ancient browsers.)
[ ] Write the API documentation for the dev docs. (see WoltLab/docs.woltlab.com#438)
[x] Block uploads that exceed the file size limit before posting data to the server.
[x] Add a worker to rebuild files / thumbnails.
[x] Store the configuration used to generate a thumbnail to skip it if its unchanged and the file hash matches.
[x] Migrate the existing attachments to the new system.
[x] Remove the rebuild worker for attachments.
[x] Add a static WebP variant of the original images for both PNG and JPEG images.
[x] Remove the files (PHP+JS), methods and templates for the old attachment system.
Missing parts:
objectTypeID
.message
property. This might also require some updated CSS to work nicely with the grid layout.IFileProcessor
that allows us to easily expand the interface later.Attachment/List.ts
handles too much logic and should offload some intoAttachment/Entry.ts
which is unused right now.ReadableStream
in the request body offetch()
. This means that we cannot track how much data has been sent to the server already. We can still track the chunks but that might be a bit light and potentially misleading due to how different the size of chunks can be for smaller uploads. (UPDATE: The decision was made to ignore this for now. Due to the extreme differences in the values forpost_max_size
this can differ widely.)<woltlab-core-file-upload>
does not support limiting the number of concurrently uploaded files yet.Closes #5668