GitHub/WoltLab/WCF.git
22 months agoReplace the usage of `\gmdate()`
Alexander Ebert [Fri, 11 Nov 2022 17:30:25 +0000 (18:30 +0100)]
Replace the usage of `\gmdate()`

22 months agoAdd explicit markers to the preload cache files
Alexander Ebert [Thu, 10 Nov 2022 17:10:13 +0000 (18:10 +0100)]
Add explicit markers to the preload cache files

22 months agoRemove the previous service implementation
Alexander Ebert [Thu, 10 Nov 2022 16:57:51 +0000 (17:57 +0100)]
Remove the previous service implementation

For some reason the `git mv` did not properly work.

22 months agoAdd the cache buster to the generated JS artifacts
Alexander Ebert [Thu, 10 Nov 2022 16:57:17 +0000 (17:57 +0100)]
Add the cache buster to the generated JS artifacts

22 months agoMove the URL generation for the phrase preloader into the template
Alexander Ebert [Thu, 10 Nov 2022 16:46:33 +0000 (17:46 +0100)]
Move the URL generation for the phrase preloader into the template

22 months agoMove the URL handling of the phrase preloader into the bootstrap script
Alexander Ebert [Thu, 10 Nov 2022 16:42:26 +0000 (17:42 +0100)]
Move the URL handling of the phrase preloader into the bootstrap script

22 months agoRestrict preload phrases to static exports only
Alexander Ebert [Thu, 10 Nov 2022 16:38:34 +0000 (17:38 +0100)]
Restrict preload phrases to static exports only

Evaluating template scripting on runtime inside JavaScript is still possible, but not server-side replacements will be made.

22 months agoAdd a reference to the phrase preload cache
Alexander Ebert [Thu, 10 Nov 2022 15:38:08 +0000 (16:38 +0100)]
Add a reference to the phrase preload cache

22 months agoAdd `PhrasePreloadCache` to retrieve and implicitly create the preload cache
Alexander Ebert [Thu, 10 Nov 2022 15:36:33 +0000 (16:36 +0100)]
Add `PhrasePreloadCache` to retrieve and implicitly create the preload cache

22 months agoCreate the preload cache for phrases
Alexander Ebert [Thu, 10 Nov 2022 15:32:11 +0000 (16:32 +0100)]
Create the preload cache for phrases

22 months agoRename `RebuildPreloadPhrases` to `CachePreloadPhrases`
Alexander Ebert [Thu, 10 Nov 2022 15:13:32 +0000 (16:13 +0100)]
Rename `RebuildPreloadPhrases` to `CachePreloadPhrases`

22 months agoReset the preload cache when a language has been imported
Alexander Ebert [Thu, 10 Nov 2022 15:09:56 +0000 (16:09 +0100)]
Reset the preload cache when a language has been imported

22 months agoReset the preload cache if a cached phrase was modified
Alexander Ebert [Thu, 10 Nov 2022 15:00:35 +0000 (16:00 +0100)]
Reset the preload cache if a cached phrase was modified

22 months agoRequest the rebuild of the preload cache after changes to the package list
Alexander Ebert [Thu, 10 Nov 2022 13:36:39 +0000 (14:36 +0100)]
Request the rebuild of the preload cache after changes to the package list

22 months agoAdd a PoC for a static phrase preloader
Alexander Ebert [Wed, 9 Nov 2022 15:50:42 +0000 (16:50 +0100)]
Add a PoC for a static phrase preloader

22 months agoAdd the `PackageInstallationSynced` event
Alexander Ebert [Sat, 12 Nov 2022 11:29:39 +0000 (12:29 +0100)]
Add the `PackageInstallationSynced` event

22 months agoAdd the `LanguageImported` event
Alexander Ebert [Thu, 10 Nov 2022 15:09:43 +0000 (16:09 +0100)]
Add the `LanguageImported` event

22 months agoAdd the `PhraseChanged` event
Alexander Ebert [Thu, 10 Nov 2022 13:49:42 +0000 (14:49 +0100)]
Add the `PhraseChanged` event

22 months agoAdd the `PackageListChanged` event
Alexander Ebert [Thu, 10 Nov 2022 13:08:30 +0000 (14:08 +0100)]
Add the `PackageListChanged` event

22 months agoMerge pull request #5118 from WoltLab/remove-legacy-cookie-banner
Marcel Werk [Fri, 11 Nov 2022 13:53:19 +0000 (14:53 +0100)]
Merge pull request #5118 from WoltLab/remove-legacy-cookie-banner

Remove legacy cookie banner

22 months agoMerge pull request #5107 from WoltLab/js-lang-early
Alexander Ebert [Thu, 10 Nov 2022 16:50:44 +0000 (17:50 +0100)]
Merge pull request #5107 from WoltLab/js-lang-early

Make JavaScript Language module available early

22 months agoFix code style in \wcf\system\WCF
Tim Düsterhus [Thu, 10 Nov 2022 15:40:48 +0000 (16:40 +0100)]
Fix code style in \wcf\system\WCF

22 months agoRemove legacy cookie banner
Marcel Werk [Thu, 10 Nov 2022 12:11:14 +0000 (13:11 +0100)]
Remove legacy cookie banner

From a legal point of view, this type of cookie banner is useless.

22 months agoUpdate composer dependencies
Tim Düsterhus [Thu, 10 Nov 2022 11:49:57 +0000 (12:49 +0100)]
Update composer dependencies

22 months agoAdd `getPhrase()` and `registerPhrase()` to the `Language` module
Alexander Ebert [Wed, 9 Nov 2022 15:03:37 +0000 (16:03 +0100)]
Add `getPhrase()` and `registerPhrase()` to the `Language` module

This makes it much easier to auto-import the helper functions in modules. The old names were too unspecific and made it pretty much impossible to properly import them.

The `addObject()` has always been a lazy function with a severe performance penalty. The soon-to-be-introduced `{jsphrase}` helper makes it much easier to work with it.

22 months agoRename the phrase functions to `getPhrase()` and `registerPhrase`
Alexander Ebert [Wed, 9 Nov 2022 14:56:08 +0000 (15:56 +0100)]
Rename the phrase functions to `getPhrase()` and `registerPhrase`

22 months agoAdd 4k support for avatar images (#5114)
Marcel Werk [Wed, 9 Nov 2022 11:57:53 +0000 (12:57 +0100)]
Add 4k support for avatar images (#5114)

Add 4k support for avatar images

22 months agoMerge pull request #5116 from WoltLab/automatic-template-diff
Marcel Werk [Tue, 8 Nov 2022 15:14:49 +0000 (16:14 +0100)]
Merge pull request #5116 from WoltLab/automatic-template-diff

Add automatic template diff

22 months agoAdd automatic template diff
Marcel Werk [Tue, 8 Nov 2022 14:56:44 +0000 (15:56 +0100)]
Add automatic template diff

Automatically compare with default template if it is the only option.

22 months agoUpdate cuyz/valinor composer dependency
Tim Düsterhus [Tue, 8 Nov 2022 13:41:08 +0000 (14:41 +0100)]
Update cuyz/valinor composer dependency

22 months agoUpdate pelago/emogrifier composer dependency
Tim Düsterhus [Tue, 8 Nov 2022 13:36:45 +0000 (14:36 +0100)]
Update pelago/emogrifier composer dependency

22 months agoConvert the typing for `WoltLabTemplate` into a plain interface
Alexander Ebert [Mon, 7 Nov 2022 17:01:03 +0000 (18:01 +0100)]
Convert the typing for `WoltLabTemplate` into a plain interface

22 months agoRemove workaround for WoltLabSuite/Core/Template
Tim Düsterhus [Mon, 7 Nov 2022 16:55:57 +0000 (17:55 +0100)]
Remove workaround for WoltLabSuite/Core/Template

22 months agoRemove broken `_token_stack:` label from Jison output
Tim Düsterhus [Mon, 7 Nov 2022 16:23:53 +0000 (17:23 +0100)]
Remove broken `_token_stack:` label from Jison output

see zaach/jison#285

22 months agoRemove deprecated avatar / thumbnail sizes
Marcel Werk [Mon, 7 Nov 2022 16:25:07 +0000 (17:25 +0100)]
Remove deprecated avatar / thumbnail sizes

22 months agoFix misuse of the exception parameter
Alexander Ebert [Mon, 7 Nov 2022 15:59:44 +0000 (16:59 +0100)]
Fix misuse of the exception parameter

22 months agoMake Language available to WebComponents
Tim Düsterhus [Mon, 7 Nov 2022 14:51:30 +0000 (15:51 +0100)]
Make Language available to WebComponents

22 months agoMake Template available to WebComponents
Tim Düsterhus [Mon, 7 Nov 2022 14:38:33 +0000 (15:38 +0100)]
Make Template available to WebComponents

22 months agoMake Language/Store available to WebComponents
Tim Düsterhus [Mon, 7 Nov 2022 14:12:03 +0000 (15:12 +0100)]
Make Language/Store available to WebComponents

22 months agoUse esbuild to build and bundle the web components
Tim Düsterhus [Mon, 7 Nov 2022 13:52:34 +0000 (14:52 +0100)]
Use esbuild to build and bundle the web components

22 months agoAdd esbuild npm dependency
Tim Düsterhus [Mon, 7 Nov 2022 13:49:00 +0000 (14:49 +0100)]
Add esbuild npm dependency

22 months agoMerge pull request #5112 from SoftCreatR/patch-4
Alexander Ebert [Mon, 7 Nov 2022 13:27:27 +0000 (14:27 +0100)]
Merge pull request #5112 from SoftCreatR/patch-4

Add new template event

22 months agoAdded new template event
Sascha Greuel [Mon, 7 Nov 2022 07:13:35 +0000 (08:13 +0100)]
Added new template event

In 6.0, the way how share-button providers are initialized has been changed. Unfortunately, with this change, it became somewhat impossible to add new providers to the sharing dialog, because there's no longer a way to extend the list.

With this PR, a new template event is introduced, that allows adding individual providers easily.

22 months agoMerge pull request #5108 from WoltLab/exception-enum
Tim Düsterhus [Fri, 4 Nov 2022 11:27:04 +0000 (12:27 +0100)]
Merge pull request #5108 from WoltLab/exception-enum

Resolve enum cases in Exception renderer

22 months agoResolve enum cases in Exception renderer
Tim Düsterhus [Fri, 4 Nov 2022 09:12:11 +0000 (10:12 +0100)]
Resolve enum cases in Exception renderer

22 months agoInline StringUtil functions in WoltLabSuite/Core/Template
Tim Düsterhus [Thu, 3 Nov 2022 16:03:04 +0000 (17:03 +0100)]
Inline StringUtil functions in WoltLabSuite/Core/Template

The implementation of these functions is pretty much trivial. Inline them to
remove the dependency on `StringUtil` which is fairly large for little benefit.

22 months agoMerge pull request #5103 from WoltLab/exception-overhaul
Alexander Ebert [Wed, 2 Nov 2022 14:16:49 +0000 (15:16 +0100)]
Merge pull request #5103 from WoltLab/exception-overhaul

Overhaul of the exception visualization

22 months agoUpdate the behavior to review a previously failed sync attempt
Alexander Ebert [Wed, 2 Nov 2022 14:11:43 +0000 (15:11 +0100)]
Update the behavior to review a previously failed sync attempt

22 months agoSync the error handling of `Ajax/Request` with `Ajax/Error.ts`
Alexander Ebert [Wed, 2 Nov 2022 14:05:00 +0000 (15:05 +0100)]
Sync the error handling of `Ajax/Request` with `Ajax/Error.ts`

22 months agoCarefully check for the start and end of the middleware
Alexander Ebert [Wed, 2 Nov 2022 13:13:11 +0000 (14:13 +0100)]
Carefully check for the start and end of the middleware

22 months agoHighlight the file name and line number of the exception origin
Alexander Ebert [Wed, 2 Nov 2022 13:11:40 +0000 (14:11 +0100)]
Highlight the file name and line number of the exception origin

22 months agoFix the handling of exceptions inside the middleware stack
Alexander Ebert [Wed, 2 Nov 2022 13:02:09 +0000 (14:02 +0100)]
Fix the handling of exceptions inside the middleware stack

22 months agoPreserve the full file path for the exception origin
Alexander Ebert [Wed, 2 Nov 2022 12:57:48 +0000 (13:57 +0100)]
Preserve the full file path for the exception origin

22 months agoMove the error code after the exception name
Alexander Ebert [Wed, 2 Nov 2022 12:57:29 +0000 (13:57 +0100)]
Move the error code after the exception name

22 months agoDisplay a HTML error response using an `<iframe>`
Alexander Ebert [Tue, 1 Nov 2022 17:04:07 +0000 (18:04 +0100)]
Display a HTML error response using an `<iframe>`

22 months agoMerge the error type, code and file into one field
Alexander Ebert [Tue, 1 Nov 2022 15:57:17 +0000 (16:57 +0100)]
Merge the error type, code and file into one field

22 months agoOverhaul the visuals and structure of exceptions
Alexander Ebert [Tue, 1 Nov 2022 14:59:57 +0000 (15:59 +0100)]
Overhaul the visuals and structure of exceptions

The following changes have been made:
* Update the typography to match our most recent UI conventions.
* Move the stack trace into a dedicated section.
* Changes the order of the stack trace values to highlight the class instead of the file.
* Highlight the class names in the stack trace to make them easier to identify.
* Highlight redacted values represented by `SensitiveParameterValue`
* Strip the full path from the output to remove visual clutter.
* Hide the middleware behind a `<details>` element.

22 months agoUpdate the typography to match the default style
Alexander Ebert [Tue, 1 Nov 2022 12:45:24 +0000 (13:45 +0100)]
Update the typography to match the default style

22 months agoReformat the `core.functions.php`
Alexander Ebert [Tue, 1 Nov 2022 12:43:23 +0000 (13:43 +0100)]
Reformat the `core.functions.php`

22 months agoFix the z-index stacking of drop-down menus
Alexander Ebert [Tue, 1 Nov 2022 12:06:50 +0000 (13:06 +0100)]
Fix the z-index stacking of drop-down menus

22 months agoMark the scrollbar event listeners as blocking
Alexander Ebert [Tue, 1 Nov 2022 12:04:19 +0000 (13:04 +0100)]
Mark the scrollbar event listeners as blocking

This is an old version of the library that raises a few warning due to their implicit blocking nature.

22 months agoFix the outdated expectations of the DOM layout
Alexander Ebert [Mon, 31 Oct 2022 17:48:55 +0000 (18:48 +0100)]
Fix the outdated expectations of the DOM layout

Fixes #5092

22 months agoConsistently position icons relative to adjacent text
Alexander Ebert [Mon, 31 Oct 2022 17:45:49 +0000 (18:45 +0100)]
Consistently position icons relative to adjacent text

Fixes #5090

22 months agoFix the calculation of tooltips in the new overlay container
Alexander Ebert [Mon, 31 Oct 2022 17:08:03 +0000 (18:08 +0100)]
Fix the calculation of tooltips in the new overlay container

Fixes #5074

22 months agoDisable scrolling the page while dialogs are open
Alexander Ebert [Mon, 31 Oct 2022 16:56:34 +0000 (17:56 +0100)]
Disable scrolling the page while dialogs are open

22 months agoMove the styling of the page overlay container into the general location
Alexander Ebert [Mon, 31 Oct 2022 16:42:01 +0000 (17:42 +0100)]
Move the styling of the page overlay container into the general location

Fixes #5097

22 months agoKeep the `reflect-metadata` in sync
Alexander Ebert [Mon, 31 Oct 2022 16:30:06 +0000 (17:30 +0100)]
Keep the `reflect-metadata` in sync

22 months agoMerge pull request #5101 from WoltLab/ts-view
Alexander Ebert [Mon, 31 Oct 2022 15:55:47 +0000 (16:55 +0100)]
Merge pull request #5101 from WoltLab/ts-view

Helper class to implicitly bind to DOM elements

22 months agoPerform strict runtime type checks for matching elements
Alexander Ebert [Sat, 29 Oct 2022 14:13:34 +0000 (16:13 +0200)]
Perform strict runtime type checks for matching elements

The reflection API is limited and can only resolve basic types. Type-Unions will yield only an empty `Object` and arrays of elements are represented by an empty array.

22 months agoAdd `reflect-metadata`
Alexander Ebert [Sat, 29 Oct 2022 14:12:07 +0000 (16:12 +0200)]
Add `reflect-metadata`

22 months agoAdd decorators to implicitly bind to DOM elements
Alexander Ebert [Sat, 29 Oct 2022 12:17:15 +0000 (14:17 +0200)]
Add decorators to implicitly bind to DOM elements

23 months agoAdd return type to AbstractFormFieldDecorator::getAttribute()
mutec [Thu, 6 Oct 2022 20:56:44 +0000 (22:56 +0200)]
Add return type to AbstractFormFieldDecorator::getAttribute()

see a95b68e5bc004c04909f79c64922bbf486535bb2
Closes #5032

23 months agoMerge branch '5.5'
Tim Düsterhus [Mon, 31 Oct 2022 11:30:38 +0000 (12:30 +0100)]
Merge branch '5.5'

23 months agoUpdate outdated links within phrases (#5096)
Sascha Greuel [Mon, 31 Oct 2022 11:04:20 +0000 (12:04 +0100)]
Update outdated links within phrases (#5096)

see #5095
see https://www.woltlab.com/community/thread/297811-neuer-twitter-link-registrierung/

23 months agoMerge remote-tracking branch 'origin/master'
Tim Düsterhus [Mon, 31 Oct 2022 09:50:17 +0000 (10:50 +0100)]
Merge remote-tracking branch 'origin/master'

23 months agoMerge branch '5.5'
Tim Düsterhus [Mon, 31 Oct 2022 09:49:46 +0000 (10:49 +0100)]
Merge branch '5.5'

23 months agoUpdate Twitter Developer link (#5095)
Sascha Greuel [Mon, 31 Oct 2022 09:38:44 +0000 (10:38 +0100)]
Update Twitter Developer link (#5095)

See https://www.woltlab.com/community/thread/297811-neuer-twitter-link-registrierung/

23 months agoFix typo in PHPDoc in `ValueFormFieldDependency` (#5089)
Niklas [Mon, 31 Oct 2022 08:09:02 +0000 (09:09 +0100)]
Fix typo in PHPDoc in `ValueFormFieldDependency` (#5089)

23 months agoAdd explicit `void` return type to UserLoginCancelLostPasswordListener::__invoke()
Tim Düsterhus [Fri, 28 Oct 2022 14:41:04 +0000 (16:41 +0200)]
Add explicit `void` return type to UserLoginCancelLostPasswordListener::__invoke()

23 months agoAdd return type to bootstrap closure
Tim Düsterhus [Fri, 28 Oct 2022 14:33:46 +0000 (16:33 +0200)]
Add return type to bootstrap closure

23 months agoMerge pull request #5084 from WoltLab/require-minversion
Tim Düsterhus [Fri, 28 Oct 2022 11:32:57 +0000 (13:32 +0200)]
Merge pull request #5084 from WoltLab/require-minversion

Require the `minversion` of a `<requiredpackage>` to be set

23 months agoMerge pull request #5086 from WoltLab/logging-aware-exception
Tim Düsterhus [Fri, 28 Oct 2022 11:31:17 +0000 (13:31 +0200)]
Merge pull request #5086 from WoltLab/logging-aware-exception

Remove ILoggingAwareException

23 months agoMerge pull request #5085 from WoltLab/escapeString
Tim Düsterhus [Fri, 28 Oct 2022 11:30:57 +0000 (13:30 +0200)]
Merge pull request #5085 from WoltLab/escapeString

Remove the global `escapeString()` function

23 months agoRemove ILoggingAwareException
Tim Düsterhus [Fri, 28 Oct 2022 10:54:57 +0000 (12:54 +0200)]
Remove ILoggingAwareException

See the deprecation commit 55343e879a9546d30539d7c746b2de22733469be for
reasoning.

23 months agoRemove the global `escapeString()` function
Tim Düsterhus [Fri, 28 Oct 2022 10:46:40 +0000 (12:46 +0200)]
Remove the global `escapeString()` function

This function is trivially replaced if still used and the removal cleans up
core.functions.php a little further.

23 months agoRemove redundant PHPDoc type in DatabasePackageInstallationPlugin
Tim Düsterhus [Fri, 28 Oct 2022 10:43:22 +0000 (12:43 +0200)]
Remove redundant PHPDoc type in DatabasePackageInstallationPlugin

23 months agoRequire the `minversion` of a `<requiredpackage>` to be set
Tim Düsterhus [Fri, 28 Oct 2022 10:38:49 +0000 (12:38 +0200)]
Require the `minversion` of a `<requiredpackage>` to be set

If “any version” is actually what is desired, a minversion of `0.0.0` or
similar can be specified, but more often than not a missing minversion is an
accident.

23 months agoAdd proper types to BackgroundQueueHandler
Tim Düsterhus [Fri, 28 Oct 2022 10:01:13 +0000 (12:01 +0200)]
Add proper types to BackgroundQueueHandler

23 months agoUse `->prepare()` instead of `->prepareStatement()` in BackgroundQueueHandler
Tim Düsterhus [Fri, 28 Oct 2022 09:58:23 +0000 (11:58 +0200)]
Use `->prepare()` instead of `->prepareStatement()` in BackgroundQueueHandler

23 months agoMark BackgroundQueueHandler as final
Tim Düsterhus [Fri, 28 Oct 2022 09:57:30 +0000 (11:57 +0200)]
Mark BackgroundQueueHandler as final

23 months agoAdd wcf1_language.locale to update_com.woltlab.wcf_6.0.php
Tim Düsterhus [Thu, 27 Oct 2022 11:43:48 +0000 (13:43 +0200)]
Add wcf1_language.locale to update_com.woltlab.wcf_6.0.php

see c453132c800e1ad123439875332934c74674bc42

23 months agoMerge branch '5.5'
Tim Düsterhus [Fri, 28 Oct 2022 08:04:15 +0000 (10:04 +0200)]
Merge branch '5.5'

23 months agoMerge pull request #5083 from WoltLab/cryptoutil-performance
Tim Düsterhus [Fri, 28 Oct 2022 07:08:26 +0000 (09:08 +0200)]
Merge pull request #5083 from WoltLab/cryptoutil-performance

Improve performance of CryptoUtil::getValueFromSignedString()

23 months agoFix CryptoUtil API misuse in SessionHandler
Tim Düsterhus [Thu, 27 Oct 2022 15:29:42 +0000 (17:29 +0200)]
Fix CryptoUtil API misuse in SessionHandler

The previous version was not incorrect (we never sign a falsy string in
SessionHandler). However the return value should always be explicitly compared
to `null` to make verification of correctness easier.

23 months agoStop using `CryptoUtil::validateSignedString()` in `SessionHandler`
Tim Düsterhus [Thu, 27 Oct 2022 15:25:33 +0000 (17:25 +0200)]
Stop using `CryptoUtil::validateSignedString()` in `SessionHandler`

23 months agoDeprecate CryptoUtil::validateSignedString()
Tim Düsterhus [Thu, 27 Oct 2022 15:23:09 +0000 (17:23 +0200)]
Deprecate CryptoUtil::validateSignedString()

23 months agoImprove performance of CryptoUtil::getValueFromSignedString()
Tim Düsterhus [Thu, 27 Oct 2022 15:13:27 +0000 (17:13 +0200)]
Improve performance of CryptoUtil::getValueFromSignedString()

Previously the method required to b64 decode the value twice, once for the
validation in `validateSignedString()` and once more to actually decode it.
This was fairly slow, due to the constant time encoder being used for decoding,
causing the b64 decoder to account for more almost 1% of time spent for simple
requests, now it's down to ~0.6% of the reduced total.

The change is safe, because there is no way for valid return value to be
confused with an invalid return value, due to entirely distinct types being
used (string vs null). Thus `validateSignedString()` can simply delegate to
`getValueFromSignedString()`.

23 months agoMerge pull request #5081 from WoltLab/avatar-maxSize
Tim Düsterhus [Thu, 27 Oct 2022 12:48:06 +0000 (14:48 +0200)]
Merge pull request #5081 from WoltLab/avatar-maxSize

Remove the `user.profile.avatar.maxSize` userGroupOption

23 months agoMerge pull request #5082 from WoltLab/abstract-oauth-action
Tim Düsterhus [Thu, 27 Oct 2022 11:33:56 +0000 (13:33 +0200)]
Merge pull request #5082 from WoltLab/abstract-oauth-action

Require PSR-7 responses in AbstractOauth2Action

23 months agoMerge pull request #5080 from WoltLab/wcf-n
Tim Düsterhus [Thu, 27 Oct 2022 11:33:41 +0000 (13:33 +0200)]
Merge pull request #5080 from WoltLab/wcf-n

Unify ApplicationHandler::insertRealDatabaseTableNames() and Database::prepare()