GitHub/WoltLab/WCF.git
2 years agoImproved the detection of pasted redundant styles
Alexander Ebert [Wed, 23 Feb 2022 18:41:21 +0000 (19:41 +0100)]
Improved the detection of pasted redundant styles

2 years agoMissing autofocus in login form
Marcel Werk [Mon, 21 Feb 2022 15:10:04 +0000 (16:10 +0100)]
Missing autofocus in login form

2 years agoMerge remote-tracking branch 'origin/master'
Tim Düsterhus [Mon, 21 Feb 2022 14:18:28 +0000 (15:18 +0100)]
Merge remote-tracking branch 'origin/master'

2 years agoMerge branch '5.4'
Tim Düsterhus [Mon, 21 Feb 2022 14:17:11 +0000 (15:17 +0100)]
Merge branch '5.4'

2 years agoMerge branch 'mysql-search-query-parser' into 5.4
Tim Düsterhus [Mon, 21 Feb 2022 14:14:17 +0000 (15:14 +0100)]
Merge branch 'mysql-search-query-parser' into 5.4

2 years agoFix handling of queries ending in a lone quote in MysqlSearchEngine::splitIntoTerms()
Tim Düsterhus [Mon, 21 Feb 2022 14:12:38 +0000 (15:12 +0100)]
Fix handling of queries ending in a lone quote in MysqlSearchEngine::splitIntoTerms()

2 years agoFix handling of quoted parentheses in MysqlSearchEngine::splitIntoTerms()
Tim Düsterhus [Mon, 21 Feb 2022 14:08:02 +0000 (15:08 +0100)]
Fix handling of quoted parentheses in MysqlSearchEngine::splitIntoTerms()

2 years agoFix typo in comment in MysqlSearchEngine::splitIntoTerms()
Tim Düsterhus [Mon, 21 Feb 2022 13:51:55 +0000 (14:51 +0100)]
Fix typo in comment in MysqlSearchEngine::splitIntoTerms()

2 years agoMarking all items as read did not reset the count
Alexander Ebert [Mon, 21 Feb 2022 13:12:05 +0000 (14:12 +0100)]
Marking all items as read did not reset the count

2 years agoOutdated unread counter was not reset properly
Alexander Ebert [Mon, 21 Feb 2022 12:45:14 +0000 (13:45 +0100)]
Outdated unread counter was not reset properly

2 years agoAdd `Vb5Argon2` password algorithm
Tim Düsterhus [Mon, 21 Feb 2022 09:05:12 +0000 (10:05 +0100)]
Add `Vb5Argon2` password algorithm

see 05e1bc5e7c72ed3347fd1018d9105dcb3c398efd

2 years agoSimplified the access in `User::__get()`
Alexander Ebert [Fri, 18 Feb 2022 17:21:46 +0000 (18:21 +0100)]
Simplified the access in `User::__get()`

Called 500-1k times per request, this change reduces the time spent inside this method by about 40% on average.

2 years agoSimplify the access to DBO::$data
Alexander Ebert [Fri, 18 Feb 2022 17:10:41 +0000 (18:10 +0100)]
Simplify the access to DBO::$data

The new code is a bit more precise and is 2-3x times faster. It is not much, but this method is called thousands of times on average requests.

2 years agoReverted the implicit expansion of blocked content
Alexander Ebert [Fri, 18 Feb 2022 15:17:28 +0000 (16:17 +0100)]
Reverted the implicit expansion of blocked content

This reverts 936edda0bd3537095d1bd01e96682c40796b1b2f which implicitly expanded a message when it is being accessed through an URL anchor.

However, these URLs are also generated when accessing the last post of a thread which is merely a jump to the end.

2 years agoFixed the code style of the SCSS file
Alexander Ebert [Fri, 18 Feb 2022 13:49:18 +0000 (14:49 +0100)]
Fixed the code style of the SCSS file

2 years agoImproved the jump to the selected option
Alexander Ebert [Fri, 18 Feb 2022 13:44:59 +0000 (14:44 +0100)]
Improved the jump to the selected option

2 years agoMerge branch '5.4'
Tim Düsterhus [Fri, 18 Feb 2022 13:36:36 +0000 (14:36 +0100)]
Merge branch '5.4'

2 years agoThrow UserInputException for invalid className in AJAXInvokeAction/AJAXProxyAction
Tim Düsterhus [Fri, 18 Feb 2022 13:32:34 +0000 (14:32 +0100)]
Throw UserInputException for invalid className in AJAXInvokeAction/AJAXProxyAction

As the `className` is a user-provided value, we must throw a UserInputException
for proper error handling.

2 years ago`word-break: break-word` now has good support
Alexander Ebert [Fri, 18 Feb 2022 10:36:41 +0000 (11:36 +0100)]
`word-break: break-word` now has good support

We had to use `word-break: break-all` previously because of inconsistent browser support, but that causes inline code to always break inside, even if it would be possibly to break or wrap nicely.

2 years agoUse `http_build_query()` to construct the link parameters in DevtoolsProjectPipEntryL...
Tim Düsterhus [Fri, 18 Feb 2022 09:50:48 +0000 (10:50 +0100)]
Use `http_build_query()` to construct the link parameters in DevtoolsProjectPipEntryListPage

2 years agoIncorrect behavior of the ACP search, support scrolling
Alexander Ebert [Wed, 16 Feb 2022 19:17:33 +0000 (20:17 +0100)]
Incorrect behavior of the ACP search, support scrolling

2 years agoAdd trailing comma to maxItems in __userFormField
Tim Düsterhus [Wed, 16 Feb 2022 15:25:06 +0000 (16:25 +0100)]
Add trailing comma to maxItems in __userFormField

2 years agoSuperfluous whitespace
Alexander Ebert [Tue, 15 Feb 2022 20:16:40 +0000 (21:16 +0100)]
Superfluous whitespace

2 years agoImproper comparison of user groups containing non-ASCII characters
Alexander Ebert [Tue, 15 Feb 2022 20:15:53 +0000 (21:15 +0100)]
Improper comparison of user groups containing non-ASCII characters

2 years agoMerge branch '5.4'
Tim Düsterhus [Tue, 15 Feb 2022 15:21:53 +0000 (16:21 +0100)]
Merge branch '5.4'

2 years agoMerge branch '5.3' into 5.4
Alexander Ebert [Tue, 15 Feb 2022 13:58:30 +0000 (14:58 +0100)]
Merge branch '5.3' into 5.4

2 years agoRelease 5.3.20 5.3.20
Alexander Ebert [Tue, 15 Feb 2022 13:54:23 +0000 (14:54 +0100)]
Release 5.3.20

2 years agoRelease 5.4.14 5.4.14
Alexander Ebert [Tue, 15 Feb 2022 13:28:07 +0000 (14:28 +0100)]
Release 5.4.14

2 years agoMerge branch '5.4'
Tim Düsterhus [Tue, 15 Feb 2022 12:07:32 +0000 (13:07 +0100)]
Merge branch '5.4'

2 years agoAdd `trophyPoints` to User's `@property-read`
Tim Düsterhus [Tue, 15 Feb 2022 12:05:10 +0000 (13:05 +0100)]
Add `trophyPoints` to User's `@property-read`

Resolves #4669

2 years agoRelease 5.4.14 dev 2 5.4.14_dev_2
Alexander Ebert [Mon, 14 Feb 2022 16:29:12 +0000 (17:29 +0100)]
Release 5.4.14 dev 2

2 years agoUpdating minified JavaScript files
WoltLab [Mon, 14 Feb 2022 16:28:21 +0000 (16:28 +0000)]
Updating minified JavaScript files

2 years agoWork-around for the inconsistent selection handling in iOS 15
Alexander Ebert [Mon, 14 Feb 2022 16:14:00 +0000 (17:14 +0100)]
Work-around for the inconsistent selection handling in iOS 15

See https://www.woltlab.com/community/thread/294136-ios-text-markieren-link-einf%C3%BCgen-geht-nicht/

2 years agoClamp the date value if it exceeds the `maxDate`
Alexander Ebert [Mon, 14 Feb 2022 14:50:30 +0000 (15:50 +0100)]
Clamp the date value if it exceeds the `maxDate`

See https://www.woltlab.com/community/thread/294169-min-max-datepicker-falscher-monat/

2 years agoMerge branch '5.4'
Tim Düsterhus [Mon, 14 Feb 2022 14:40:58 +0000 (15:40 +0100)]
Merge branch '5.4'

2 years agoFix PHP 8.0/8.1 compatibility of phpline.phar
Tim Düsterhus [Mon, 14 Feb 2022 13:39:57 +0000 (14:39 +0100)]
Fix PHP 8.0/8.1 compatibility of phpline.phar

2 years agoFix anchor link in i18n article add template
mutec [Mon, 14 Feb 2022 13:07:51 +0000 (14:07 +0100)]
Fix anchor link in i18n article add template

This was broken in c8abd7df4a2c0e434964c66ef86d236613e11fe4.

Closes #4670

[Tim: Adjusted commit message to reference the original commit]

2 years agoFixed exception in the combined installation of an application in dev mode
Marcel Werk [Sun, 13 Feb 2022 17:04:09 +0000 (18:04 +0100)]
Fixed exception in the combined installation of an application in dev mode

2 years agoImplicitly expand messages from blocked users when following a permalink
Alexander Ebert [Sun, 13 Feb 2022 15:57:31 +0000 (16:57 +0100)]
Implicitly expand messages from blocked users when following a permalink

See https://www.woltlab.com/community/thread/294218-verlinkung-zu-beitr%C3%A4gen-von-blockierten-nutzern/

2 years agoIndividual settings for boxes were unintentionally overwritten during update
Marcel Werk [Sun, 13 Feb 2022 15:39:12 +0000 (16:39 +0100)]
Individual settings for boxes were unintentionally overwritten during update

2 years agoMerge pull request #4668 from WoltLab/session-update-once-per-minute
Tim Düsterhus [Fri, 11 Feb 2022 15:20:47 +0000 (16:20 +0100)]
Merge pull request #4668 from WoltLab/session-update-once-per-minute

Update `wcf1_user_session` only once per minute

2 years agoUpdate `wcf1_user_session` only once per minute
Tim Düsterhus [Fri, 11 Feb 2022 14:18:01 +0000 (15:18 +0100)]
Update `wcf1_user_session` only once per minute

2 years agoMerge branch '5.4'
Tim Düsterhus [Fri, 11 Feb 2022 13:47:28 +0000 (14:47 +0100)]
Merge branch '5.4'

2 years agoRelease 5.4.14 dev 1 5.4.14_dev_1
Alexander Ebert [Thu, 10 Feb 2022 17:00:41 +0000 (18:00 +0100)]
Release 5.4.14 dev 1

2 years agoUpdating minified JavaScript files
WoltLab [Thu, 10 Feb 2022 16:58:27 +0000 (16:58 +0000)]
Updating minified JavaScript files

2 years agoFully automate the "rebuild all" function
Marcel Werk [Wed, 9 Feb 2022 17:58:49 +0000 (18:58 +0100)]
Fully automate the "rebuild all" function

Closes #4667

2 years agoMerge pull request #4666 from WoltLab/avatar-importer
Tim Düsterhus [Wed, 9 Feb 2022 12:49:35 +0000 (13:49 +0100)]
Merge pull request #4666 from WoltLab/avatar-importer

Improve UserAvatarImporter

2 years agoDo not trust the source file hash in UserAvatarImporter
Tim Düsterhus [Wed, 9 Feb 2022 11:33:18 +0000 (12:33 +0100)]
Do not trust the source file hash in UserAvatarImporter

see 5969fa3dfada7df170ff10b8c4d8bf349c38cef9

2 years agoMake UserAvatarImporter determine the extension based on the mime type
Tim Düsterhus [Wed, 9 Feb 2022 11:32:09 +0000 (12:32 +0100)]
Make UserAvatarImporter determine the extension based on the mime type

Resolves #4665

2 years agoCheck `is_readable()` in UserAvatarImporter
Tim Düsterhus [Wed, 9 Feb 2022 11:31:29 +0000 (12:31 +0100)]
Check `is_readable()` in UserAvatarImporter

2 years agoMerge branch '5.4'
Tim Düsterhus [Tue, 8 Feb 2022 15:57:45 +0000 (16:57 +0100)]
Merge branch '5.4'

2 years agoMerge pull request #4664 from WoltLab/formbuilder-checkbox-ajax
Tim Düsterhus [Tue, 8 Feb 2022 15:45:26 +0000 (16:45 +0100)]
Merge pull request #4664 from WoltLab/formbuilder-checkbox-ajax

Add `CheckedVoid` form builder data handler for CheckboxFormField

2 years agoAdd `CheckedVoid` form builder data handler for CheckboxFormField
Tim Düsterhus [Tue, 8 Feb 2022 14:54:22 +0000 (15:54 +0100)]
Add `CheckedVoid` form builder data handler for CheckboxFormField

The `Checked` data handler is not usable for the CheckboxFormField, because its
behavior differs from the non-AJAX behavior by always sending a value whereas
checkboxes that are not checked will not send anything within a regular form.

It was considered to simply reuse the `readValue()` implementation in
BooleanFormField, because it appears to do the right thing at a glance. However
this would effectively revert 7d36c55726af2b5b9d9ab1706a05ccf5e52e84b8 which is
a fix to allow unchecking checkboxes that are checked by default.

Also matching the behavior of AJAX and non-AJAX forms 100% is considered a good
thing, so a new JavaScript module to handle this, is the best solution.

2 years agoReject YEAR(2) in PHP DDL
Tim Düsterhus [Tue, 8 Feb 2022 09:15:21 +0000 (10:15 +0100)]
Reject YEAR(2) in PHP DDL

Length 2 for YEAR columns is not supported by MySQL 8 and not really useful for
older versions either:

https://dev.mysql.com/doc/refman/8.0/en/year.html

> MySQL 8.0 does not support the 2-digit YEAR(2) data type permitted in older
> versions of MySQL. For instructions on converting to 4-digit YEAR, see
> 2-Digit YEAR(2) Limitations and Migrating to 4-Digit YEAR, in MySQL 5.7
> Reference Manual.

2 years agoMerge branch '5.4'
Tim Düsterhus [Tue, 8 Feb 2022 09:12:46 +0000 (10:12 +0100)]
Merge branch '5.4'

2 years agoMerge branch '5.3' into 5.4
Tim Düsterhus [Tue, 8 Feb 2022 09:12:31 +0000 (10:12 +0100)]
Merge branch '5.3' into 5.4

2 years agoIgnore `length` when diffing YearDatabaseTableColumn
Tim Düsterhus [Tue, 8 Feb 2022 09:07:00 +0000 (10:07 +0100)]
Ignore `length` when diffing YearDatabaseTableColumn

Similarly to INT columns MySQL 8 ignores the length of YEAR columns:

https://dev.mysql.com/doc/refman/8.0/en/year.html

> As of MySQL 8.0.19, the YEAR(4) data type with an explicit display width is
> deprecated and you should expect support for it to be removed in a future
> version of MySQL. Instead, use YEAR without a display width, which has the
> same meaning.

2 years agoShow direct link to media file in admin panel
Marcel Werk [Mon, 7 Feb 2022 16:50:52 +0000 (17:50 +0100)]
Show direct link to media file in admin panel

Closes #4663

2 years agoMerge branch '5.4'
Tim Düsterhus [Mon, 7 Feb 2022 13:04:38 +0000 (14:04 +0100)]
Merge branch '5.4'

2 years agoFix template syntax error in wcf.user.notification.articleComment.response(Owner...
Tim Düsterhus [Mon, 7 Feb 2022 13:00:48 +0000 (14:00 +0100)]
Fix template syntax error in wcf.user.notification.articleComment.response(Owner)?.mail.html

see cc5632977059ae88aa5cfe1c27407f0e00fa68c1

2 years agoUse more specific return type in PHP DDL column factories
Tim Düsterhus [Mon, 7 Feb 2022 11:23:41 +0000 (12:23 +0100)]
Use more specific return type in PHP DDL column factories

see b0d267facda16a3fcefdef5c2c2740c4cd790b63

2 years agoWhitelist `array_key_exists` in enterprise mode
Tim Düsterhus [Mon, 7 Feb 2022 08:16:08 +0000 (09:16 +0100)]
Whitelist `array_key_exists` in enterprise mode

2 years agoMerge pull request #4661 from WoltLab/55-package-update-shortest-thread
Alexander Ebert [Sat, 5 Feb 2022 15:26:49 +0000 (16:26 +0100)]
Merge pull request #4661 from WoltLab/55-package-update-shortest-thread

Graceful handling of incoherent update paths

2 years agoIncorrect error type for rejected credentials
Alexander Ebert [Sat, 5 Feb 2022 15:01:31 +0000 (16:01 +0100)]
Incorrect error type for rejected credentials

2 years agoSilently discard incoherent update paths if a valid path remains to be checked
Alexander Ebert [Sat, 5 Feb 2022 14:59:51 +0000 (15:59 +0100)]
Silently discard incoherent update paths if a valid path remains to be checked

2 years agoMoved the exceptions inside the shortest update path calculation into separate classes
Alexander Ebert [Sat, 5 Feb 2022 14:55:54 +0000 (15:55 +0100)]
Moved the exceptions inside the shortest update path calculation into separate classes

2 years agoConsistent box-shadow for elevated elements
Alexander Ebert [Sat, 5 Feb 2022 13:03:43 +0000 (14:03 +0100)]
Consistent box-shadow for elevated elements

2 years agoPermission 'canOnlyAccessOwnMedia' did not work as expected
Marcel Werk [Sat, 5 Feb 2022 12:59:32 +0000 (13:59 +0100)]
Permission 'canOnlyAccessOwnMedia' did not work as expected

It was still possible to find files from other users through the search function.

2 years agoFile size was displayed twice when uploading media
Marcel Werk [Sat, 5 Feb 2022 12:56:59 +0000 (13:56 +0100)]
File size was displayed twice when uploading media

2 years agoMissing z-index for the scrollbar in user menu items
Alexander Ebert [Sat, 5 Feb 2022 12:21:09 +0000 (13:21 +0100)]
Missing z-index for the scrollbar in user menu items

Fixes #4660

2 years agoUser menu items now support the display of usernames
Alexander Ebert [Sat, 5 Feb 2022 12:18:23 +0000 (13:18 +0100)]
User menu items now support the display of usernames

See WoltLab/com.woltlab.wcf.conversation#169

2 years agoAdjusted the code style
Alexander Ebert [Fri, 4 Feb 2022 16:59:21 +0000 (17:59 +0100)]
Adjusted the code style

2 years agoImproved the styling of the user menus
Alexander Ebert [Fri, 4 Feb 2022 16:54:20 +0000 (17:54 +0100)]
Improved the styling of the user menus

2 years agoReverted removed suppression of encoding and template scripting support
Marcel Werk [Fri, 4 Feb 2022 15:58:56 +0000 (16:58 +0100)]
Reverted removed suppression of encoding and template scripting support

Previous change caused some broken page titles (e.g. within the dev tools).

2 years agoFix update instructions from 5.4
Tim Düsterhus [Fri, 4 Feb 2022 15:14:05 +0000 (16:14 +0100)]
Fix update instructions from 5.4

2 years agoFix call to `\str_ends_with()` in PackageUpdateServerAddForm
Tim Düsterhus [Thu, 3 Feb 2022 11:17:32 +0000 (12:17 +0100)]
Fix call to `\str_ends_with()` in PackageUpdateServerAddForm

2 years agoSkip close requests originating from the search drop-down itself
Alexander Ebert [Fri, 4 Feb 2022 13:10:58 +0000 (14:10 +0100)]
Skip close requests originating from the search drop-down itself

2 years agoThe mobile search behavior conflicted with the desktop view
Alexander Ebert [Fri, 4 Feb 2022 12:52:58 +0000 (13:52 +0100)]
The mobile search behavior conflicted with the desktop view

2 years agoMerge pull request #4658 from WoltLab/dynamic-phrases-templates
Marcel Werk [Thu, 3 Feb 2022 16:03:09 +0000 (17:03 +0100)]
Merge pull request #4658 from WoltLab/dynamic-phrases-templates

Overhauled handling of dynamic phrases in templates

2 years agoIncorrect behavior of user menus with overflowing content
Alexander Ebert [Thu, 3 Feb 2022 15:40:25 +0000 (16:40 +0100)]
Incorrect behavior of user menus with overflowing content

2 years agoRemoved suppression of encoding in places where it was not necessary
Marcel Werk [Thu, 3 Feb 2022 15:20:47 +0000 (16:20 +0100)]
Removed suppression of encoding in places where it was not necessary

2 years agoMerge branch '5.4'
Marcel Werk [Thu, 3 Feb 2022 13:45:05 +0000 (14:45 +0100)]
Merge branch '5.4'

2 years agoEmail column in notification settings was too small
Marcel Werk [Thu, 3 Feb 2022 13:44:19 +0000 (14:44 +0100)]
Email column in notification settings was too small

2 years agoOverhauled handling of dynamic phrases in templates
Marcel Werk [Thu, 3 Feb 2022 13:35:10 +0000 (14:35 +0100)]
Overhauled handling of dynamic phrases in templates

Closes #4657

2 years ago`saveInstant()` yields an incorrect selection after formatting
Alexander Ebert [Wed, 2 Feb 2022 18:29:42 +0000 (19:29 +0100)]
`saveInstant()` yields an incorrect selection after formatting

Consider the example `Hello World` where the word `World` is selected. Marking the selection as bold did not mark the button as active.

This was caused by the way the selection is created, causing it to be `Hello |<strong>World|</strong>` when using `saveInstant()` (the pipe denotes the selection boundary).

2 years agoInclude the `$envelopeTo` address within the target filename in DebugFolderEmailTransport
Tim Düsterhus [Wed, 2 Feb 2022 15:45:37 +0000 (16:45 +0100)]
Include the `$envelopeTo` address within the target filename in DebugFolderEmailTransport

It was verified that the resulting Maildir still is a valid Maildir by opening
it with mutt.

2 years agoUpdating minified JavaScript files
WoltLab [Wed, 2 Feb 2022 12:30:48 +0000 (12:30 +0000)]
Updating minified JavaScript files

2 years agoMerge branch '5.4'
Tim Düsterhus [Wed, 2 Feb 2022 11:05:30 +0000 (12:05 +0100)]
Merge branch '5.4'

2 years agoMerge pull request #4656 from WoltLab/dialog-alert
Tim Düsterhus [Wed, 2 Feb 2022 11:05:19 +0000 (12:05 +0100)]
Merge pull request #4656 from WoltLab/dialog-alert

Fix rendering of alert boxes at the top of a dialog

2 years agoRemove obsolete inline CSS in removeUserContentDialog.tpl
Tim Düsterhus [Wed, 2 Feb 2022 11:01:43 +0000 (12:01 +0100)]
Remove obsolete inline CSS in removeUserContentDialog.tpl

see 0d0aecf7b629619de450304945989074522dbca2

2 years agoFix rendering of alert boxes at the top of a dialog
Tim Düsterhus [Wed, 2 Feb 2022 10:50:13 +0000 (11:50 +0100)]
Fix rendering of alert boxes at the top of a dialog

2 years agoMerge pull request #4655 from WoltLab/report-flood
Marcel Werk [Wed, 2 Feb 2022 10:40:57 +0000 (11:40 +0100)]
Merge pull request #4655 from WoltLab/report-flood

Add flood protection to creating new reports

2 years agoAdd flood protection to creating new reports
Tim Düsterhus [Wed, 2 Feb 2022 10:12:21 +0000 (11:12 +0100)]
Add flood protection to creating new reports

2 years agoFix adding of classes updateCounter() in user menu
Tim Düsterhus [Wed, 2 Feb 2022 10:11:38 +0000 (11:11 +0100)]
Fix adding of classes updateCounter() in user menu

2 years agoMerge pull request #4654 from WoltLab/5.5-poll
Joshua Rüsweg [Wed, 2 Feb 2022 08:01:02 +0000 (09:01 +0100)]
Merge pull request #4654 from WoltLab/5.5-poll

Standardize Poll Creation

2 years agoDeprecate `WCF.Poll.Management` JS module
joshuaruesweg [Tue, 1 Feb 2022 10:44:02 +0000 (11:44 +0100)]
Deprecate `WCF.Poll.Management` JS module

2 years agoUse TypeScript implementation for message polls
joshuaruesweg [Tue, 1 Feb 2022 10:41:31 +0000 (11:41 +0100)]
Use TypeScript implementation for message polls

2 years agoStandardize poll input names
joshuaruesweg [Tue, 1 Feb 2022 10:41:00 +0000 (11:41 +0100)]
Standardize poll input names

The old implementation uses names like `pollQuestion` instead of `Poll_question`. Unifying these, make it easier to maintain the code and use the TypeScript implementation for old and new code.

2 years agoMerge branch '5.4'
Tim Düsterhus [Tue, 1 Feb 2022 11:26:00 +0000 (12:26 +0100)]
Merge branch '5.4'

2 years agoUpdate composer dependencies
Tim Düsterhus [Tue, 1 Feb 2022 11:24:38 +0000 (12:24 +0100)]
Update composer dependencies