GitHub/WoltLab/WCF.git
5 months agoAdd the documentation for the file processor interface
Alexander Ebert [Sun, 5 May 2024 21:29:11 +0000 (23:29 +0200)]
Add the documentation for the file processor interface

5 months agoAdd a default implementation for file processors
Alexander Ebert [Sun, 5 May 2024 21:14:24 +0000 (23:14 +0200)]
Add a default implementation for file processors

5 months agoAdd basic error messages
Alexander Ebert [Sun, 5 May 2024 21:05:09 +0000 (23:05 +0200)]
Add basic error messages

5 months agoAdd button phrases and simplify the button creation
Alexander Ebert [Sun, 5 May 2024 11:02:17 +0000 (13:02 +0200)]
Add button phrases and simplify the button creation

5 months agoClean up the error and editor id handling
Alexander Ebert [Sun, 5 May 2024 10:50:23 +0000 (12:50 +0200)]
Clean up the error and editor id handling

5 months agoMove the attachment logic into a separate file
Alexander Ebert [Sun, 5 May 2024 10:19:16 +0000 (12:19 +0200)]
Move the attachment logic into a separate file

5 months agoReorganize the action buttons for attachments
Alexander Ebert [Sat, 4 May 2024 11:11:54 +0000 (13:11 +0200)]
Reorganize the action buttons for attachments

5 months agoInitialize the image viewer for dynamic attachments
Alexander Ebert [Sat, 4 May 2024 10:08:05 +0000 (12:08 +0200)]
Initialize the image viewer for dynamic attachments

5 months agoUse `objectTypeID` instead of `typeName`
Alexander Ebert [Sat, 4 May 2024 10:03:29 +0000 (12:03 +0200)]
Use `objectTypeID` instead of `typeName`

5 months agoAdd support for the image viewer for attachments
Alexander Ebert [Sat, 4 May 2024 09:37:15 +0000 (11:37 +0200)]
Add support for the image viewer for attachments

5 months agoImplement a cleanup on file delete
Alexander Ebert [Fri, 3 May 2024 15:23:48 +0000 (17:23 +0200)]
Implement a cleanup on file delete

5 months agoRemove `downloads` and `lastDownloadTime`
Alexander Ebert [Fri, 3 May 2024 13:30:53 +0000 (15:30 +0200)]
Remove `downloads` and `lastDownloadTime`

These have been meaningless metrics for most of the time and also do not play nicely with the efficient distribution of files.

5 months agoImprove the UI of uploaded attachments
Alexander Ebert [Fri, 3 May 2024 13:02:47 +0000 (15:02 +0200)]
Improve the UI of uploaded attachments

5 months agoAdd some basic styling for uploaded attachments
Alexander Ebert [Mon, 29 Apr 2024 14:53:42 +0000 (16:53 +0200)]
Add some basic styling for uploaded attachments

5 months agoAdd support for uploads through drag and drop on the editor
Alexander Ebert [Mon, 29 Apr 2024 12:58:58 +0000 (14:58 +0200)]
Add support for uploads through drag and drop on the editor

5 months agoBlock drag & drop for illegal file extensions
Alexander Ebert [Fri, 26 Apr 2024 15:44:40 +0000 (17:44 +0200)]
Block drag & drop for illegal file extensions

5 months agoAdd the link to the full version to files
Alexander Ebert [Fri, 26 Apr 2024 13:41:48 +0000 (15:41 +0200)]
Add the link to the full version to files

5 months agoInitialize existing attachments
Alexander Ebert [Fri, 26 Apr 2024 13:28:32 +0000 (15:28 +0200)]
Initialize existing attachments

5 months agoBind uploaded attachments to the current user
Alexander Ebert [Fri, 26 Apr 2024 11:23:59 +0000 (13:23 +0200)]
Bind uploaded attachments to the current user

5 months agoAdd an automated resizing for images exceeding the limits
Alexander Ebert [Thu, 25 Apr 2024 15:30:36 +0000 (17:30 +0200)]
Add an automated resizing for images exceeding the limits

5 months agoPrevent the generation of thumbnails for small images
Alexander Ebert [Thu, 25 Apr 2024 14:28:27 +0000 (16:28 +0200)]
Prevent the generation of thumbnails for small images

5 months agoUnify the styling of attachments below a message
Alexander Ebert [Mon, 15 Apr 2024 16:34:14 +0000 (18:34 +0200)]
Unify the styling of attachments below a message

5 months agoFix the loading of the files of attachments
Alexander Ebert [Mon, 15 Apr 2024 16:19:53 +0000 (18:19 +0200)]
Fix the loading of the files of attachments

The list of files (plus their thumbnails) is already fetched in the base implementation `AttachmentList`.

5 months agoAdd a secret to upload files
Alexander Ebert [Mon, 15 Apr 2024 10:50:00 +0000 (12:50 +0200)]
Add a secret to upload files

The placement of files depends on the file extension, allowing files to be efficiently served by the web server instead of blocking a PHP worker.

5 months agoUse file extensions other than `.bin` for safe types
Alexander Ebert [Mon, 15 Apr 2024 10:46:33 +0000 (12:46 +0200)]
Use file extensions other than `.bin` for safe types

5 months agoSkip thumbnails for non-image files
Alexander Ebert [Mon, 15 Apr 2024 10:18:16 +0000 (12:18 +0200)]
Skip thumbnails for non-image files

5 months agoUse `File::getSourceName()` to avoid accidental leaks
Alexander Ebert [Sun, 14 Apr 2024 11:11:09 +0000 (13:11 +0200)]
Use `File::getSourceName()` to avoid accidental leaks

5 months agoAdd `getPathname()` to simplify the file access
Alexander Ebert [Sun, 14 Apr 2024 11:10:05 +0000 (13:10 +0200)]
Add `getPathname()` to simplify the file access

5 months agoCache the width and height of images
Alexander Ebert [Sat, 13 Apr 2024 22:37:11 +0000 (00:37 +0200)]
Cache the width and height of images

5 months agoClean up some TODOs
Alexander Ebert [Sat, 13 Apr 2024 22:11:49 +0000 (00:11 +0200)]
Clean up some TODOs

5 months agoAlways create thumbnails using WebP
Alexander Ebert [Sat, 13 Apr 2024 16:59:26 +0000 (18:59 +0200)]
Always create thumbnails using WebP

5 months agoFix the error handling of failed context validations
Alexander Ebert [Sat, 13 Apr 2024 16:45:51 +0000 (18:45 +0200)]
Fix the error handling of failed context validations

5 months agoUnify the handling of the attachment context
Alexander Ebert [Sun, 7 Apr 2024 23:09:05 +0000 (01:09 +0200)]
Unify the handling of the attachment context

5 months agoPrototype to render files as HTML elements
Alexander Ebert [Thu, 28 Mar 2024 11:34:56 +0000 (12:34 +0100)]
Prototype to render files as HTML elements

5 months agoAlways load the file and thumbnails for attachments
Alexander Ebert [Thu, 28 Mar 2024 11:31:58 +0000 (12:31 +0100)]
Always load the file and thumbnails for attachments

5 months agoAdd support for attachment thumbnail
Alexander Ebert [Wed, 27 Mar 2024 22:28:14 +0000 (23:28 +0100)]
Add support for attachment thumbnail

5 months agoFix the handling of validation errors
Alexander Ebert [Mon, 25 Mar 2024 10:42:11 +0000 (11:42 +0100)]
Fix the handling of validation errors

5 months agoAdd an API endpoint to delete files
Alexander Ebert [Sun, 24 Mar 2024 15:47:45 +0000 (16:47 +0100)]
Add an API endpoint to delete files

5 months agoMigrate the generation of thumbnails to the new API
Alexander Ebert [Fri, 22 Mar 2024 17:11:37 +0000 (18:11 +0100)]
Migrate the generation of thumbnails to the new API

5 months agoMigrate the chunk upload to the new API
Alexander Ebert [Fri, 22 Mar 2024 16:57:23 +0000 (17:57 +0100)]
Migrate the chunk upload to the new API

5 months agoRemove the old controller for the preflight request
Alexander Ebert [Thu, 21 Mar 2024 17:36:14 +0000 (18:36 +0100)]
Remove the old controller for the preflight request

5 months agoMigrate the file upload preflight to the new API
Alexander Ebert [Thu, 21 Mar 2024 13:08:57 +0000 (14:08 +0100)]
Migrate the file upload preflight to the new API

5 months agoAdd the link to the uploaded file
Alexander Ebert [Sun, 3 Mar 2024 17:13:09 +0000 (18:13 +0100)]
Add the link to the uploaded file

5 months agoAdd the button to insert an image’s thumbnail
Alexander Ebert [Sun, 3 Mar 2024 17:05:10 +0000 (18:05 +0100)]
Add the button to insert an image’s thumbnail

5 months agoForward the extra data from the file processor
Alexander Ebert [Sun, 3 Mar 2024 17:04:48 +0000 (18:04 +0100)]
Forward the extra data from the file processor

5 months agoImplement a button to insert the `[attach]` BBCode into the editor
Alexander Ebert [Sat, 2 Mar 2024 17:22:48 +0000 (18:22 +0100)]
Implement a button to insert the `[attach]` BBCode into the editor

5 months agoPersistently track the mime type of uploaded files
Alexander Ebert [Sat, 2 Mar 2024 16:54:31 +0000 (17:54 +0100)]
Persistently track the mime type of uploaded files

5 months agoAdd basic support for thumbnails for the file element
Alexander Ebert [Sat, 2 Mar 2024 16:26:26 +0000 (17:26 +0100)]
Add basic support for thumbnails for the file element

5 months agoAdd a lifecycle behavior for uploaded files
Alexander Ebert [Fri, 1 Mar 2024 15:59:29 +0000 (16:59 +0100)]
Add a lifecycle behavior for uploaded files

5 months agoAdd the `woltlab-core-file` element to represent uploads
Alexander Ebert [Thu, 29 Feb 2024 17:23:54 +0000 (18:23 +0100)]
Add the `woltlab-core-file` element to represent uploads

5 months agoAdd support for image thumbnails
Alexander Ebert [Fri, 16 Feb 2024 17:35:34 +0000 (18:35 +0100)]
Add support for image thumbnails

5 months agoAdd basic support for thumbnails
Alexander Ebert [Thu, 15 Feb 2024 18:26:05 +0000 (19:26 +0100)]
Add basic support for thumbnails

5 months agoAdd the ability to attach custom response data
Alexander Ebert [Thu, 15 Feb 2024 17:43:54 +0000 (18:43 +0100)]
Add the ability to attach custom response data

5 months agoDelegate attachments to the file upload system
Alexander Ebert [Thu, 15 Feb 2024 16:24:45 +0000 (17:24 +0100)]
Delegate attachments to the file upload system

5 months agoPrototype for the delegation of attachments to the file API
Alexander Ebert [Wed, 31 Jan 2024 16:24:09 +0000 (17:24 +0100)]
Prototype for the delegation of attachments to the file API

5 months agoAdd support for an extension based filter
Alexander Ebert [Sun, 28 Jan 2024 19:09:15 +0000 (20:09 +0100)]
Add support for an extension based filter

5 months agoImprove the error handling of the preflight request
Alexander Ebert [Sun, 28 Jan 2024 16:11:11 +0000 (17:11 +0100)]
Improve the error handling of the preflight request

5 months agoSimplify the handling of context data
Alexander Ebert [Sat, 27 Jan 2024 16:02:26 +0000 (17:02 +0100)]
Simplify the handling of context data

5 months agoAdd basic support for file processors
Alexander Ebert [Fri, 26 Jan 2024 17:00:25 +0000 (18:00 +0100)]
Add basic support for file processors

5 months agoWrite the chunks into the file directly
Alexander Ebert [Tue, 16 Jan 2024 16:24:40 +0000 (17:24 +0100)]
Write the chunks into the file directly

This avoids having to buffer the data into separate files which causes a lot of I/O when stitching the file together.

5 months agoTrack the number of uploaded chunks
Alexander Ebert [Tue, 16 Jan 2024 11:34:43 +0000 (12:34 +0100)]
Track the number of uploaded chunks

Allow for up to 255 chunks and track the state of each uploaded chunks. The `chunks` property is effectively a bitmap whose length represents the number of chunks

5 months agoConvert a temporary file into a persistent file
Alexander Ebert [Thu, 28 Dec 2023 17:00:52 +0000 (18:00 +0100)]
Convert a temporary file into a persistent file

5 months agoCreate the basic data structure for a persistent file
Alexander Ebert [Thu, 28 Dec 2023 16:21:56 +0000 (17:21 +0100)]
Create the basic data structure for a persistent file

5 months agoUse a single source of truth for temporary filenames
Alexander Ebert [Thu, 28 Dec 2023 16:01:54 +0000 (17:01 +0100)]
Use a single source of truth for temporary filenames

5 months agoAdd a proper DBO for the handling of temporary files
Alexander Ebert [Thu, 28 Dec 2023 15:37:34 +0000 (16:37 +0100)]
Add a proper DBO for the handling of temporary files

5 months agoDynamically calculate the chunk size
Alexander Ebert [Thu, 28 Dec 2023 12:24:59 +0000 (13:24 +0100)]
Dynamically calculate the chunk size

5 months agoRemove the unnecessary table `wcf1_file_chunk`
Alexander Ebert [Wed, 27 Dec 2023 17:06:10 +0000 (18:06 +0100)]
Remove the unnecessary table `wcf1_file_chunk`

There is no need to track each chunk because we can simply use the file system as the single source of truth.

5 months agoAdd SHA-256 checksums to the uploaded data
Alexander Ebert [Wed, 27 Dec 2023 16:54:10 +0000 (17:54 +0100)]
Add SHA-256 checksums to the uploaded data

5 months agoUse buffers to write uploaded files
Alexander Ebert [Tue, 26 Dec 2023 18:20:15 +0000 (19:20 +0100)]
Use buffers to write uploaded files

5 months agoImplement a naive chunked upload
Alexander Ebert [Tue, 26 Dec 2023 14:23:15 +0000 (15:23 +0100)]
Implement a naive chunked upload

5 months agoAdd PoC implementation for chunked uploads
Alexander Ebert [Mon, 25 Dec 2023 18:51:53 +0000 (19:51 +0100)]
Add PoC implementation for chunked uploads

5 months agoAdd support for blob requests
Alexander Ebert [Mon, 25 Dec 2023 18:51:18 +0000 (19:51 +0100)]
Add support for blob requests

5 months agoAdd the basic directory structure for the data storage
Alexander Ebert [Sun, 26 Nov 2023 14:36:59 +0000 (15:36 +0100)]
Add the basic directory structure for the data storage

5 months agoAdd the data structure for file chunks
Alexander Ebert [Mon, 25 Dec 2023 12:18:13 +0000 (13:18 +0100)]
Add the data structure for file chunks

5 months agoFix the handling of validation errors
Marcel Werk [Sat, 8 Jun 2024 09:30:47 +0000 (11:30 +0200)]
Fix the handling of validation errors

5 months agoFix missing logging of exceptions
Marcel Werk [Sat, 8 Jun 2024 09:30:09 +0000 (11:30 +0200)]
Fix missing logging of exceptions

5 months agoAllow quotes in comments
Marcel Werk [Tue, 4 Jun 2024 15:04:54 +0000 (17:04 +0200)]
Allow quotes in comments

5 months agoUnify phrases
Marcel Werk [Tue, 4 Jun 2024 14:59:19 +0000 (16:59 +0200)]
Unify phrases

5 months agoRemove obsolete language variable
Marcel Werk [Tue, 4 Jun 2024 14:58:33 +0000 (16:58 +0200)]
Remove obsolete language variable

5 months agoMerge pull request #5929 from WoltLab/spam-checking-event
Marcel Werk [Sat, 1 Jun 2024 11:11:40 +0000 (13:11 +0200)]
Merge pull request #5929 from WoltLab/spam-checking-event

Use an event for the spam check during registration

5 months agoMake messages from the contact form available to the spam checking
Marcel Werk [Sat, 1 Jun 2024 11:11:06 +0000 (13:11 +0200)]
Make messages from the contact form available to the spam checking

5 months agoUse spam check event for comments
Marcel Werk [Fri, 31 May 2024 15:49:26 +0000 (17:49 +0200)]
Use spam check event for comments

5 months agoReintroduce option to save blacklist matches for a user
Marcel Werk [Fri, 31 May 2024 15:41:26 +0000 (17:41 +0200)]
Reintroduce option to save blacklist matches for a user

5 months agoUse an event for the spam check in message forms
Marcel Werk [Thu, 30 May 2024 16:29:04 +0000 (18:29 +0200)]
Use an event for the spam check in message forms

5 months agoUse an event for the spam check in the contact form
Marcel Werk [Thu, 30 May 2024 16:05:09 +0000 (18:05 +0200)]
Use an event for the spam check in the contact form

5 months agoConvert `BLACKLIST_SFS_ACTION` into a general option
Marcel Werk [Thu, 30 May 2024 15:30:28 +0000 (17:30 +0200)]
Convert `BLACKLIST_SFS_ACTION` into a general option

5 months agoMove the settings for SFS to the anti-spam category
Marcel Werk [Thu, 30 May 2024 15:15:39 +0000 (17:15 +0200)]
Move the settings for SFS to the anti-spam category

5 months agoUse an event for the spam check during registration
Marcel Werk [Wed, 29 May 2024 16:30:05 +0000 (18:30 +0200)]
Use an event for the spam check during registration

6 months agoUpdate disclaimer text
Marcel Werk [Tue, 21 May 2024 11:34:36 +0000 (13:34 +0200)]
Update disclaimer text

Reference to TMG ("Telemediengesetz") removed as it is no longer in force.

6 months agoAn error occurred when saving the ACL permission if no ACL option was available in...
Cyperghost [Tue, 21 May 2024 08:45:48 +0000 (10:45 +0200)]
An error occurred when saving the ACL permission if no ACL option was available in `$options`

6 months agoBugfix when sending ACL values via the FormBuilder. The values are sent as a JSON...
Cyperghost [Tue, 21 May 2024 08:43:33 +0000 (10:43 +0200)]
Bugfix when sending ACL values via the FormBuilder. The values are sent as a JSON string and must also be saved as a JSON string in `__readValues` to be able to save them correctly later using the `replaceValues()` method.

6 months agoFix phpdoc issues
Marcel Werk [Mon, 20 May 2024 19:29:35 +0000 (21:29 +0200)]
Fix phpdoc issues

6 months agoFix missing form field template
Marcel Werk [Mon, 20 May 2024 18:47:15 +0000 (20:47 +0200)]
Fix missing form field template

Template got accidentally by this commit https://github.com/WoltLab/WCF/commit/53e4271668f0ed9d0b9e58df30a12a3fbd672974

6 months agoAdjust default permissions for non-activated users
Marcel Werk [Fri, 17 May 2024 15:28:59 +0000 (17:28 +0200)]
Adjust default permissions for non-activated users

6 months agoFix missing access to event classes in install.php
Marcel Werk [Tue, 14 May 2024 11:23:30 +0000 (13:23 +0200)]
Fix missing access to event classes in install.php

6 months agoApply auto-formatter
Marcel Werk [Tue, 14 May 2024 11:19:22 +0000 (13:19 +0200)]
Apply auto-formatter

6 months agoRemove obsolete import
Marcel Werk [Tue, 14 May 2024 10:48:16 +0000 (12:48 +0200)]
Remove obsolete import

6 months agoAdd missing class documentation
Marcel Werk [Tue, 14 May 2024 10:48:08 +0000 (12:48 +0200)]
Add missing class documentation

6 months agoMerge pull request #5912 from WoltLab/event-namespace
Marcel Werk [Sun, 12 May 2024 10:11:39 +0000 (12:11 +0200)]
Merge pull request #5912 from WoltLab/event-namespace

Overhaul organization of event

6 months agoOverhaul organization of event
Marcel Werk [Sat, 11 May 2024 12:26:57 +0000 (14:26 +0200)]
Overhaul organization of event

The current practice of placing events where they are used is somewhat inconsistent and worst of all highly intransparent for discovery purposes. This PR proposes a unified directory structure grouped by the app namespace.

See #5858