GitHub/WoltLab/WCF.git
22 months agoReplace `@\unlink()` with a check for file existence
Alexander Ebert [Mon, 14 Nov 2022 11:53:45 +0000 (12:53 +0100)]
Replace `@\unlink()` with a check for file existence

22 months agoUse the `AtomicWriter` to create the phrase cache
Alexander Ebert [Mon, 14 Nov 2022 11:52:30 +0000 (12:52 +0100)]
Use the `AtomicWriter` to create the phrase cache

22 months agoFix the logic of the check for the phrase preload rebuild
Alexander Ebert [Mon, 14 Nov 2022 11:50:01 +0000 (12:50 +0100)]
Fix the logic of the check for the phrase preload rebuild

22 months agoPreload common phrases
Alexander Ebert [Sat, 12 Nov 2022 14:00:25 +0000 (15:00 +0100)]
Preload common phrases

22 months agoMove the registration of preload phrases into a dedicated event listener
Alexander Ebert [Sat, 12 Nov 2022 13:17:25 +0000 (14:17 +0100)]
Move the registration of preload phrases into a dedicated event listener

22 months agoProvide only the plugin name when syncing pips
Alexander Ebert [Sat, 12 Nov 2022 11:53:15 +0000 (12:53 +0100)]
Provide only the plugin name when syncing pips

The full object provides little details because it is created on-the-fly with as little information as required.

22 months agoReset the phrase preload cache when syncing files and languages
Alexander Ebert [Sat, 12 Nov 2022 11:51:20 +0000 (12:51 +0100)]
Reset the phrase preload cache when syncing files and languages

22 months agoPreload the phrase for relative timestamps
Alexander Ebert [Sat, 12 Nov 2022 11:18:01 +0000 (12:18 +0100)]
Preload the phrase for relative timestamps

22 months agoFix the namespace and file name of the collecting event
Alexander Ebert [Sat, 12 Nov 2022 11:11:37 +0000 (12:11 +0100)]
Fix the namespace and file name of the collecting event

22 months agoFix the condition to rebuild the phrase cache
Alexander Ebert [Sat, 12 Nov 2022 11:09:55 +0000 (12:09 +0100)]
Fix the condition to rebuild the phrase cache

22 months agoCreate the directory used for JS phrase preloads
Alexander Ebert [Sat, 12 Nov 2022 11:06:50 +0000 (12:06 +0100)]
Create the directory used for JS phrase preloads

22 months agoSimplify the events by using constructor property promotion
Alexander Ebert [Fri, 11 Nov 2022 17:33:38 +0000 (18:33 +0100)]
Simplify the events by using constructor property promotion

22 months agoInvert the order of the phrase preloader and the web component bundle
Alexander Ebert [Fri, 11 Nov 2022 17:30:42 +0000 (18:30 +0100)]
Invert the order of the phrase preloader and the web component bundle

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

22 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.