GitHub/WoltLab/WCF.git
22 months agoImprove content-type check in JsonBody middleware
Tim Düsterhus [Fri, 4 Nov 2022 09:00:12 +0000 (10:00 +0100)]
Improve content-type check in JsonBody middleware

22 months agoTransparently decode JSON requests
Alexander Ebert [Thu, 3 Nov 2022 16:56:50 +0000 (17:56 +0100)]
Transparently decode JSON requests

22 months agoAdd __valueIntervalFormFieldDependency.tpl to syncTemplates.json
Tim Düsterhus [Mon, 14 Nov 2022 13:41:22 +0000 (14:41 +0100)]
Add __valueIntervalFormFieldDependency.tpl to syncTemplates.json

22 months agoAdd npm script to refresh the web component bundle
Alexander Ebert [Mon, 14 Nov 2022 12:04:45 +0000 (13:04 +0100)]
Add npm script to refresh the web component bundle

22 months agoMerge pull request #5117 from WoltLab/js-preload
Alexander Ebert [Mon, 14 Nov 2022 12:01:49 +0000 (13:01 +0100)]
Merge pull request #5117 from WoltLab/js-preload

Preload phrases for use in TypeScript

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 agoRebuild compiled JavaScript
Tim Düsterhus [Mon, 14 Nov 2022 10:14:22 +0000 (11:14 +0100)]
Rebuild compiled JavaScript

22 months agoFix bad merge in EnforceAcpAuthentication middleware
Tim Düsterhus [Mon, 14 Nov 2022 09:41:39 +0000 (10:41 +0100)]
Fix bad merge in EnforceAcpAuthentication middleware

The exception should no longer be there.

see a693ef9dc6ab80b8c3c4671923071e4b9f9b23f3
see 2115b6456f75068740d54db29d4b5970a4bb7f36

22 months agoMerge branch '5.5'
Tim Düsterhus [Mon, 14 Nov 2022 09:41:16 +0000 (10:41 +0100)]
Merge branch '5.5'

22 months agoMerge commit '89b58a82cfb6e8c098b9a5b19118caedca5b386d'
Tim Düsterhus [Mon, 14 Nov 2022 09:37:02 +0000 (10:37 +0100)]
Merge commit '89b58a82cfb6e8c098b9a5b19118caedca5b386d'

22 months agoUpdate composer dependencies
Tim Düsterhus [Mon, 14 Nov 2022 09:22:05 +0000 (10:22 +0100)]
Update composer dependencies

22 months agoMerge pull request #5120 from WoltLab/package-fix-update
Tim Düsterhus [Mon, 14 Nov 2022 08:08:12 +0000 (09:08 +0100)]
Merge pull request #5120 from WoltLab/package-fix-update

Clean up package archive handling

22 months ago`getSearchFormElement()` expects a string for the value parameter
Alexander Ebert [Sun, 13 Nov 2022 16:15:04 +0000 (17:15 +0100)]
`getSearchFormElement()` expects a string for the value parameter

22 months agoValidate that the searched option implements the required interface
Alexander Ebert [Sun, 13 Nov 2022 16:14:24 +0000 (17:14 +0100)]
Validate that the searched option implements the required interface

22 months agoRemove selection markers after discarding the link dialog
Alexander Ebert [Sun, 13 Nov 2022 15:43:36 +0000 (16:43 +0100)]
Remove selection markers after discarding the link dialog

See https://www.woltlab.com/community/thread/297178-links-bearbeiten-und-kopieren/

22 months agoBind the event listeners for the RSS feed dialog everytime
Alexander Ebert [Sun, 13 Nov 2022 15:09:23 +0000 (16:09 +0100)]
Bind the event listeners for the RSS feed dialog everytime

The dialog is replaced with the provided HTML on every invocation. Since this is a named dialog, the instance is set up once, but rebuild with every invocation.

See https://www.woltlab.com/community/thread/297896-kopieren-schaltfl%C3%A4che-nach-erneutem-%C3%B6ffnen-des-dialogs-nicht-mehr-funktionsf%C3%A4hig/

22 months agoFix the scroll offset when the first message is being targeted
Alexander Ebert [Sun, 13 Nov 2022 14:53:58 +0000 (15:53 +0100)]
Fix the scroll offset when the first message is being targeted

See https://www.woltlab.com/community/thread/297814-mobil-zus%C3%A4tzlicher-container-sichtbar-bei-direktlink-auf-den-ersten-beitrag-eine/

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 #5119 from WoltLab/acp-not-authorized-ux
Alexander Ebert [Fri, 11 Nov 2022 15:49:33 +0000 (16:49 +0100)]
Merge pull request #5119 from WoltLab/acp-not-authorized-ux

Improve user experience when accessing the ACP with an unauthorized user

22 months agoTypo
Marcel Werk [Fri, 11 Nov 2022 15:24:31 +0000 (16:24 +0100)]
Typo

22 months agoPrevent wrapping of text on narrow resolutions
Alexander Ebert [Fri, 11 Nov 2022 14:41:45 +0000 (15:41 +0100)]
Prevent wrapping of text on narrow resolutions

There is plenty of whitespace around each column to allow for some small overlaps.

https://www.woltlab.com/community/thread/297666-blog-unsch%C3%B6ne-darstellung-der-reaktionen/

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 agoRemove PackageArchive::setPackage()
Tim Düsterhus [Fri, 11 Nov 2022 09:28:08 +0000 (10:28 +0100)]
Remove PackageArchive::setPackage()

This method was unused outside of PackageArchive. Removing this setter, removes
one avenue where state can be modified.

22 months agoReplace some `empty()` checks in PackageValidationArchive
Tim Düsterhus [Fri, 11 Nov 2022 09:20:31 +0000 (10:20 +0100)]
Replace some `empty()` checks in PackageValidationArchive

22 months agoUse `->prepare()` in PackageValidationArchive
Tim Düsterhus [Fri, 11 Nov 2022 09:18:44 +0000 (10:18 +0100)]
Use `->prepare()` in PackageValidationArchive

22 months agoUse `->prepare()` in PackageArchive
Tim Düsterhus [Fri, 11 Nov 2022 09:06:35 +0000 (10:06 +0100)]
Use `->prepare()` in PackageArchive

22 months agoAdd some return types to PackageArchive
Tim Düsterhus [Fri, 11 Nov 2022 09:05:00 +0000 (10:05 +0100)]
Add some return types to PackageArchive

22 months agoRemove PackageArchive::getInstructions()
Tim Düsterhus [Fri, 11 Nov 2022 09:01:18 +0000 (10:01 +0100)]
Remove PackageArchive::getInstructions()

This is redundant with `getUpdateInstructions()` and `getInstallInstructions()`
and unused. Remove it to keep the API simple.

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 agoImprove user experience when accessing the ACP with an unauthorized user
Tim Düsterhus [Thu, 10 Nov 2022 14:00:18 +0000 (15:00 +0100)]
Improve user experience when accessing the ACP with an unauthorized user

Specifically the logout link is available now.

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 agoFix missing consideration of the ad position when calculating the show order
Marcel Werk [Tue, 8 Nov 2022 14:25:30 +0000 (15:25 +0100)]
Fix missing consideration of the ad position when calculating the show order

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 agoFix typo in de.xml
Tim Düsterhus [Mon, 7 Nov 2022 10:00:16 +0000 (11:00 +0100)]
Fix typo in de.xml

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 agoMerge pull request #5099 from WoltLab/articlelist-comments-column
Tim Düsterhus [Wed, 2 Nov 2022 08:51:43 +0000 (09:51 +0100)]
Merge pull request #5099 from WoltLab/articlelist-comments-column

Remove comments column from ACP's ArticleListPage

22 months agoMerge pull request #5100 from WoltLab/notification-email-unconfirmed
Tim Düsterhus [Wed, 2 Nov 2022 08:51:30 +0000 (09:51 +0100)]
Merge pull request #5100 from WoltLab/notification-email-unconfirmed

Discard notification emails if the recipient’s email address is unconfirmed

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.