GitHub/WoltLab/WCF.git
23 months agofix phpdoc of `SessionEditor::create()`
mutec [Fri, 2 Dec 2022 10:04:36 +0000 (11:04 +0100)]
fix phpdoc of `SessionEditor::create()`

23 months agofix phpdoc of `Redis::info()`
mutec [Fri, 2 Dec 2022 10:00:21 +0000 (11:00 +0100)]
fix phpdoc of `Redis::info()`

23 months agofix phpdoc of `ViewableArticle::$unreadArticlesByCategory`
mutec [Fri, 2 Dec 2022 09:54:39 +0000 (10:54 +0100)]
fix phpdoc of `ViewableArticle::$unreadArticlesByCategory`

23 months agoMerge pull request #5155 from WoltLab/css-variables
Alexander Ebert [Thu, 1 Dec 2022 14:43:44 +0000 (15:43 +0100)]
Merge pull request #5155 from WoltLab/css-variables

Migrate to native CSS variables

23 months agoReplace inline CSS variables with global values
Alexander Ebert [Wed, 30 Nov 2022 18:39:06 +0000 (19:39 +0100)]
Replace inline CSS variables with global values

23 months agoFix the calculation of the ACP page content offset
Alexander Ebert [Wed, 30 Nov 2022 18:32:15 +0000 (19:32 +0100)]
Fix the calculation of the ACP page content offset

23 months agoReplace inline SCSS variables with native CSS variables
Alexander Ebert [Wed, 30 Nov 2022 18:30:39 +0000 (19:30 +0100)]
Replace inline SCSS variables with native CSS variables

23 months agoReplace usage of `opacify()` and `transparentize()` with `rgba()`
Alexander Ebert [Wed, 30 Nov 2022 18:27:51 +0000 (19:27 +0100)]
Replace usage of `opacify()` and `transparentize()` with `rgba()`

23 months agoReplace SCSS variables with CSS variables
Alexander Ebert [Wed, 30 Nov 2022 18:16:33 +0000 (19:16 +0100)]
Replace SCSS variables with CSS variables

23 months agoExport style colors as plain RGB values
Alexander Ebert [Wed, 30 Nov 2022 18:15:27 +0000 (19:15 +0100)]
Export style colors as plain RGB values

23 months agoUpdate the compiled JS artifacts
Alexander Ebert [Wed, 30 Nov 2022 17:50:02 +0000 (18:50 +0100)]
Update the compiled JS artifacts

23 months agoRemove the API version on upgrade
Alexander Ebert [Wed, 30 Nov 2022 17:49:32 +0000 (18:49 +0100)]
Remove the API version on upgrade

23 months agoRemove the support for style API versions
Alexander Ebert [Wed, 30 Nov 2022 17:13:54 +0000 (18:13 +0100)]
Remove the support for style API versions

Closes #5036

23 months agoMerge pull request #5154 from WoltLab/desktop-notification-img-alt-text
Alexander Ebert [Wed, 30 Nov 2022 16:37:59 +0000 (17:37 +0100)]
Merge pull request #5154 from WoltLab/desktop-notification-img-alt-text

Show alt tags of images in desktop notifications

23 months agoShow alt tags of images in desktop notifications
Marcel Werk [Wed, 30 Nov 2022 16:26:23 +0000 (17:26 +0100)]
Show alt tags of images in desktop notifications

23 months agoMerge pull request #5153 from WoltLab/details-tag-in-exception-log
Marcel Werk [Wed, 30 Nov 2022 16:21:40 +0000 (17:21 +0100)]
Merge pull request #5153 from WoltLab/details-tag-in-exception-log

Use <details> HTML tag for toggleable content in exception log

23 months agoMerge pull request #4963 from WoltLab/reaction-summary
Alexander Ebert [Wed, 30 Nov 2022 15:48:36 +0000 (16:48 +0100)]
Merge pull request #4963 from WoltLab/reaction-summary

Reaction summary web component

23 months agoLazily initialize the reaction summary
Alexander Ebert [Wed, 30 Nov 2022 15:43:24 +0000 (16:43 +0100)]
Lazily initialize the reaction summary

23 months agoMigrate to the new dialog API
Alexander Ebert [Wed, 30 Nov 2022 15:31:04 +0000 (16:31 +0100)]
Migrate to the new dialog API

23 months agoUse actual private properties and methods
Alexander Ebert [Wed, 30 Nov 2022 15:27:54 +0000 (16:27 +0100)]
Use actual private properties and methods

23 months agoMinor code clean-up
Alexander Ebert [Wed, 30 Nov 2022 15:25:59 +0000 (16:25 +0100)]
Minor code clean-up

23 months agoFix Database::getInsertID() return type PHPDoc
Marcel Werk [Wed, 30 Nov 2022 15:18:34 +0000 (16:18 +0100)]
Fix Database::getInsertID() return type PHPDoc

see #4915

23 months agoAdd compiled js
Marcel Werk [Wed, 30 Nov 2022 15:05:55 +0000 (16:05 +0100)]
Add compiled js

23 months agoAdd missing definitions
Marcel Werk [Wed, 30 Nov 2022 15:05:41 +0000 (16:05 +0100)]
Add missing definitions

23 months agoAdd preload for language variable
Marcel Werk [Wed, 30 Nov 2022 15:05:18 +0000 (16:05 +0100)]
Add preload for language variable

23 months agoUse light dom instead of the shadow dom
Marcel Werk [Wed, 30 Nov 2022 15:05:00 +0000 (16:05 +0100)]
Use light dom instead of the shadow dom

23 months agoRename web component to new naming scheme
Marcel Werk [Wed, 30 Nov 2022 14:29:51 +0000 (15:29 +0100)]
Rename web component to new naming scheme

23 months agoAdd highlighting for selected reaction
Marcel Werk [Sun, 21 Aug 2022 14:26:12 +0000 (16:26 +0200)]
Add highlighting for selected reaction

23 months agoAdd web component for reaction summary
Marcel Werk [Sun, 21 Aug 2022 14:09:52 +0000 (16:09 +0200)]
Add web component for reaction summary

23 months agoAdd default styling for <summary> HTML tag
Marcel Werk [Tue, 29 Nov 2022 12:30:58 +0000 (13:30 +0100)]
Add default styling for <summary> HTML tag

See #4612

23 months agoUse <details> HTML tag for toggleable content in exception log
Marcel Werk [Tue, 29 Nov 2022 11:43:50 +0000 (12:43 +0100)]
Use <details> HTML tag for toggleable content in exception log

see #4612

23 months agoMerge pull request #5147 from WoltLab/search-index-inner-filter
Alexander Ebert [Mon, 28 Nov 2022 13:22:24 +0000 (14:22 +0100)]
Merge pull request #5147 from WoltLab/search-index-inner-filter

Add experimental context filter for search backends

23 months agoMark the context aware API as experimental
Alexander Ebert [Mon, 28 Nov 2022 12:56:15 +0000 (13:56 +0100)]
Mark the context aware API as experimental

23 months agoMerge pull request #5149 from WoltLab/output-buffer-clear
Tim Düsterhus [Mon, 28 Nov 2022 12:17:48 +0000 (13:17 +0100)]
Merge pull request #5149 from WoltLab/output-buffer-clear

Clean out any default output buffers

23 months agoClean out any default output buffers
Tim Düsterhus [Mon, 28 Nov 2022 10:16:19 +0000 (11:16 +0100)]
Clean out any default output buffers

Resolves #5145

23 months agoUse array-shape as the return type for ISearchEngine::getInnerJoin()
Tim Düsterhus [Mon, 28 Nov 2022 09:53:19 +0000 (10:53 +0100)]
Use array-shape as the return type for ISearchEngine::getInnerJoin()

23 months agoUpdate to cuyz/valinor 1.0.x
Tim Düsterhus [Mon, 28 Nov 2022 08:54:03 +0000 (09:54 +0100)]
Update to cuyz/valinor 1.0.x

23 months agoMerge pull request #5144 from WoltLab/package-update-instructions
Tim Düsterhus [Mon, 28 Nov 2022 08:49:07 +0000 (09:49 +0100)]
Merge pull request #5144 from WoltLab/package-update-instructions

Fix the selection of update instructions

23 months agoAdd `SearchEngine::isContextAware()`
Alexander Ebert [Sat, 26 Nov 2022 17:57:04 +0000 (18:57 +0100)]
Add `SearchEngine::isContextAware()`

The helper method is used for runtime optimizations to avoid index rebuilds for backends that are not context aware.

23 months agoFix the use of the context filter
Alexander Ebert [Fri, 25 Nov 2022 15:17:31 +0000 (16:17 +0100)]
Fix the use of the context filter

23 months agoAdd support for context filters when querying the search backend
Alexander Ebert [Fri, 25 Nov 2022 12:39:22 +0000 (13:39 +0100)]
Add support for context filters when querying the search backend

23 months agoAdd prototype for a search index that is aware of a message’s context
Alexander Ebert [Fri, 25 Nov 2022 11:41:55 +0000 (12:41 +0100)]
Add prototype for a search index that is aware of a message’s context

23 months agoPass the update instructions as a parameter to buildPluginNodes()
Tim Düsterhus [Fri, 25 Nov 2022 11:38:15 +0000 (12:38 +0100)]
Pass the update instructions as a parameter to buildPluginNodes()

Now the method has a single responsibility: Building the actual nodes.
Previously it both queried the instructions and built the nodes.

This also allows us to easily record the “fromversion” in the audit log which
is the main improvement of this change.

23 months agoUpdate the pending packages after the plugin nodes were built
Tim Düsterhus [Fri, 25 Nov 2022 11:31:35 +0000 (12:31 +0100)]
Update the pending packages after the plugin nodes were built

Previously the `buildPluginNodes()` step in PackageInstallationNodeBuilder
would attempt to find update instructions for the *target* version, instead of
the source version. We must move the update of the pending packages below this
step to fix this. It also makes sense, because only once the plugin nodes have
been built (and thus executed) the package logically is on the new version.

see 5df3e65185d4d3f1be7464b1999b949946a5c765

23 months agoSlightly reorder assignments in PackageInstallationNodeBuilder::buildPluginNodes()
Tim Düsterhus [Fri, 25 Nov 2022 11:36:50 +0000 (12:36 +0100)]
Slightly reorder assignments in PackageInstallationNodeBuilder::buildPluginNodes()

23 months agoMove the retrieval of the instructions to the top of buildPluginNodes()
Tim Düsterhus [Fri, 25 Nov 2022 11:34:58 +0000 (12:34 +0100)]
Move the retrieval of the instructions to the top of buildPluginNodes()

This part of the logic dues not depend on the nodes and sequence numbers, by
moving it to the top data flow becomes clearer.

23 months agoMake updates/installations explicit in package audit log
Tim Düsterhus [Fri, 25 Nov 2022 10:46:15 +0000 (11:46 +0100)]
Make updates/installations explicit in package audit log

23 months agoUse PackageInstallationDispatcher::getPackage() in PackageUninstallationNodeBuilder
Tim Düsterhus [Fri, 25 Nov 2022 11:45:06 +0000 (12:45 +0100)]
Use PackageInstallationDispatcher::getPackage() in PackageUninstallationNodeBuilder

23 months agoUnify the querying of the “action” in PackageInstallationNodeBuilder
Tim Düsterhus [Fri, 25 Nov 2022 11:40:26 +0000 (12:40 +0100)]
Unify the querying of the “action” in PackageInstallationNodeBuilder

23 months agoMake PackageInstallationDispatcher::$archive protected
Tim Düsterhus [Fri, 25 Nov 2022 10:58:23 +0000 (11:58 +0100)]
Make PackageInstallationDispatcher::$archive protected

23 months agoMake PackageInstallationDispatcher::$package protected
Tim Düsterhus [Fri, 25 Nov 2022 10:56:32 +0000 (11:56 +0100)]
Make PackageInstallationDispatcher::$package protected

23 months agoMake `PackageInstallationNodeBuilder::$pendingPackages` private
Tim Düsterhus [Fri, 25 Nov 2022 10:25:23 +0000 (11:25 +0100)]
Make `PackageInstallationNodeBuilder::$pendingPackages` private

23 months agoImprove formatting in PackageInstallationNodeBuilder
Tim Düsterhus [Fri, 25 Nov 2022 11:25:43 +0000 (12:25 +0100)]
Improve formatting in PackageInstallationNodeBuilder

23 months agoAdd support for `<void/>` instructions to PackageManifest
Tim Düsterhus [Fri, 25 Nov 2022 11:20:25 +0000 (12:20 +0100)]
Add support for `<void/>` instructions to PackageManifest

23 months agoMerge branch '5.5'
Tim Düsterhus [Fri, 25 Nov 2022 11:02:02 +0000 (12:02 +0100)]
Merge branch '5.5'

23 months agoMerge pull request #5142 from WoltLab/php-ddl-index-validate
Tim Düsterhus [Fri, 25 Nov 2022 11:01:05 +0000 (12:01 +0100)]
Merge pull request #5142 from WoltLab/php-ddl-index-validate

Fix validation of changed indices in PHP DDL

23 months agoFix validation of changed indices in PHP DDL
Tim Düsterhus [Thu, 24 Nov 2022 10:17:33 +0000 (11:17 +0100)]
Fix validation of changed indices in PHP DDL

The validation of the to-be-performed DDL operation currently identifies
indices by their data (i.e. column list and type), whereas the actual DDL
operation uses the `->diffIndices()` operation which also takes into account
the name of the index.

This mismatch allows a package to drop a foreign index, consider the following
situation:

Package A:

    DatabaseTable::create('wcf1_test')
        ->columns([
            NotNullInt10DatabaseTableColumn::create('a'),
            NotNullInt10DatabaseTableColumn::create('b'),
        ])
        ->indices([
            DatabaseTableIndex::create('testing')
                ->columns(['a']),
        ])

The package creates a table with two columns and a named index (“testing”) that
includes one of the columns.

Now Package B:

    DatabaseTable::create('wcf1_test')
        ->indices([
            DatabaseTableIndex::create('testing')
                ->columns(['a', 'b'])
                ->drop(),
        ])

This definition drops the named index (“testing”), but with a different column
definition. Thus the validation believes the indices to be different, allowing
the operation to proceed. The actual operation however identifies the index by
its name and thus drops the “testing” index that belongs to a different
package.

23 months agoMerge branch '5.5'
Tim Düsterhus [Fri, 25 Nov 2022 08:57:50 +0000 (09:57 +0100)]
Merge branch '5.5'

23 months agoRelease 5.5.7 5.5.7
Alexander Ebert [Thu, 24 Nov 2022 17:08:53 +0000 (18:08 +0100)]
Release 5.5.7

23 months agoMerge branch '5.5'
Tim Düsterhus [Thu, 24 Nov 2022 14:52:37 +0000 (15:52 +0100)]
Merge branch '5.5'

23 months agoUpdate list of deleted phrases
Tim Düsterhus [Thu, 24 Nov 2022 14:52:24 +0000 (15:52 +0100)]
Update list of deleted phrases

see WoltLab/com.woltlab.wcf.conversation#180

23 months agoThe `$value` for `getSearchFormElement()` is nullable
Alexander Ebert [Thu, 24 Nov 2022 14:39:19 +0000 (15:39 +0100)]
The `$value` for `getSearchFormElement()` is nullable

See https://www.woltlab.com/community/thread/297958-fehler-bei-suche-mit-php-8-1/

23 months agoRevert "`getSearchFormElement()` expects a string for the value parameter"
Alexander Ebert [Thu, 24 Nov 2022 14:34:08 +0000 (15:34 +0100)]
Revert "`getSearchFormElement()` expects a string for the value parameter"

This reverts commit d2beab69c1aee0a33cfe8bdb7d967da2300b1691.

23 months agoMerge pull request #5143 from WoltLab/require-absolute-path
Tim Düsterhus [Thu, 24 Nov 2022 14:09:41 +0000 (15:09 +0100)]
Merge pull request #5143 from WoltLab/require-absolute-path

Use absolute paths in require() calls during script init

23 months agoUse absolute paths in require() calls during script init
Tim Düsterhus [Thu, 24 Nov 2022 13:58:52 +0000 (14:58 +0100)]
Use absolute paths in require() calls during script init

Relative paths in `require()` are relative to the accessed “entrypoint” (i.e.
not the script that calls `require()`). By using absolute paths the requiring
is more resilient and more specifically the `acp/global.php` no longer depends
on an application correctly configuring `RELATIVE_WCF_DIR`, removing one of the
remaining users of the `RELATIVE_*` constants.

2 years agoMerge pull request #5140 from WoltLab/error-reporting-all
Tim Düsterhus [Wed, 23 Nov 2022 11:05:47 +0000 (12:05 +0100)]
Merge pull request #5140 from WoltLab/error-reporting-all

Force enable E_ALL error_reporting

2 years agoForce enable E_ALL error_reporting
Tim Düsterhus [Wed, 23 Nov 2022 10:55:58 +0000 (11:55 +0100)]
Force enable E_ALL error_reporting

Previously the error_reporting value in php.ini was implicitly used which
might've suppressed some errors, specifically `E_NOTICE` was not reporting by
default in PHP 7.x and earlier. While this is fixed now, since the minimum
version is PHP 8.1, nothing prevents an administrator or webhoster from
reconfiguring the error_reporting themselves.

By configuring E_ALL in WCF.class.php we can ensure a consistent behavior of
the application.

Resolves #5136

2 years agoFix the icon name
Alexander Ebert [Tue, 22 Nov 2022 15:40:15 +0000 (16:40 +0100)]
Fix the icon name

2 years agoAdd proper types to `ACPSearchResultList`
Alexander Ebert [Tue, 22 Nov 2022 15:38:57 +0000 (16:38 +0100)]
Add proper types to `ACPSearchResultList`

2 years agoLocalize the hour values using `Intl`
Alexander Ebert [Tue, 22 Nov 2022 15:14:59 +0000 (16:14 +0100)]
Localize the hour values using `Intl`

2 years agoMerge branch 'master' of https://github.com/WoltLab/WCF
Alexander Ebert [Tue, 22 Nov 2022 14:56:40 +0000 (15:56 +0100)]
Merge branch 'master' of https://github.com/WoltLab/WCF

2 years agoSet the weekdays using the values from Intl
Alexander Ebert [Tue, 22 Nov 2022 14:56:34 +0000 (15:56 +0100)]
Set the weekdays using the values from Intl

2 years agoUpdate composer dependencies
Tim Düsterhus [Tue, 22 Nov 2022 14:53:05 +0000 (15:53 +0100)]
Update composer dependencies

2 years agoAdd the helper phrase for the first day of the week
Alexander Ebert [Tue, 22 Nov 2022 14:32:54 +0000 (15:32 +0100)]
Add the helper phrase for the first day of the week

Firefox does not support `Intl.Locale.prototype.weekInfo` yet.

2 years agoRely on `Intl.DateTimeFormat` for regular date and time formats
Alexander Ebert [Tue, 22 Nov 2022 14:25:36 +0000 (15:25 +0100)]
Rely on `Intl.DateTimeFormat` for regular date and time formats

2 years agoSupport dynamic phrases for rebuild worker name / description
Tim Düsterhus [Tue, 22 Nov 2022 13:59:56 +0000 (14:59 +0100)]
Support dynamic phrases for rebuild worker name / description

2 years agoMerge pull request #5130 from WoltLab/rebuild-worker
Tim Düsterhus [Tue, 22 Nov 2022 12:55:00 +0000 (13:55 +0100)]
Merge pull request #5130 from WoltLab/rebuild-worker

Improve registration of rebuild workers

2 years agoReduce logic duplication in RegisteredWorker
Tim Düsterhus [Mon, 21 Nov 2022 12:36:51 +0000 (13:36 +0100)]
Reduce logic duplication in RegisteredWorker

2 years agoImprove code clarity in RebuildWorkerCollecting event
Tim Düsterhus [Mon, 21 Nov 2022 12:34:46 +0000 (13:34 +0100)]
Improve code clarity in RebuildWorkerCollecting event

Co-authored-by: Alexander Ebert <ebert@woltlab.com>
2 years agoImprove order of rebuild workers
Tim Düsterhus [Fri, 18 Nov 2022 16:04:54 +0000 (17:04 +0100)]
Improve order of rebuild workers

2 years agoDrop phrases for deleted rebuild worker
Tim Düsterhus [Fri, 18 Nov 2022 16:04:02 +0000 (17:04 +0100)]
Drop phrases for deleted rebuild worker

2 years agoMigrate the existing rebuild worker registration into the bootstrap script
Tim Düsterhus [Fri, 18 Nov 2022 16:03:07 +0000 (17:03 +0100)]
Migrate the existing rebuild worker registration into the bootstrap script

2 years agoStore the EventHandler in a local variable in the bootstrap script
Tim Düsterhus [Fri, 18 Nov 2022 15:42:13 +0000 (16:42 +0100)]
Store the EventHandler in a local variable in the bootstrap script

2 years agoAllow programmatically collecting rebuild workers
Tim Düsterhus [Fri, 18 Nov 2022 15:41:08 +0000 (16:41 +0100)]
Allow programmatically collecting rebuild workers

2 years agoMerge branch '5.5'
Tim Düsterhus [Tue, 22 Nov 2022 12:48:07 +0000 (13:48 +0100)]
Merge branch '5.5'

2 years agoMerge pull request #5137 from WoltLab/store-code-refresh
Tim Düsterhus [Tue, 22 Nov 2022 12:47:43 +0000 (13:47 +0100)]
Merge pull request #5137 from WoltLab/store-code-refresh

Refresh the package database in Package/QuickInstallation.ts

2 years agoMerge pull request #5133 from WoltLab/i18n-form-field-one-language
Tim Düsterhus [Tue, 22 Nov 2022 12:45:58 +0000 (13:45 +0100)]
Merge pull request #5133 from WoltLab/i18n-form-field-one-language

Fix TI18nFormField if only one language is active

2 years agoMerge branch '5.5'
Tim Düsterhus [Tue, 22 Nov 2022 11:44:31 +0000 (12:44 +0100)]
Merge branch '5.5'

2 years agoUpdate to TypeScript 4.9
Tim Düsterhus [Tue, 22 Nov 2022 11:43:04 +0000 (12:43 +0100)]
Update to TypeScript 4.9

2 years agoUpdate eslint npm dependency
Tim Düsterhus [Tue, 22 Nov 2022 11:18:56 +0000 (12:18 +0100)]
Update eslint npm dependency

2 years agoRefresh the package database in Package/QuickInstallation.ts
Tim Düsterhus [Tue, 22 Nov 2022 09:21:21 +0000 (10:21 +0100)]
Refresh the package database in Package/QuickInstallation.ts

Fixes #5135

2 years agoFix TI18nFormField if only one language is active
Tim Düsterhus [Mon, 21 Nov 2022 11:26:55 +0000 (12:26 +0100)]
Fix TI18nFormField if only one language is active

Fixes #5131

2 years agoFix DevtoolsInstallPackageAction
Tim Düsterhus [Mon, 21 Nov 2022 11:07:45 +0000 (12:07 +0100)]
Fix DevtoolsInstallPackageAction

see 1eb69772d780a9926d6d9dbdb08a2064cfa83783

2 years agoUpdate esbuild npm dependency
Tim Düsterhus [Mon, 21 Nov 2022 10:29:22 +0000 (11:29 +0100)]
Update esbuild npm dependency

2 years agoMerge branch '5.5'
Tim Düsterhus [Mon, 21 Nov 2022 10:28:32 +0000 (11:28 +0100)]
Merge branch '5.5'

2 years agoUpdate eslint npm dependency
Tim Düsterhus [Mon, 21 Nov 2022 10:27:39 +0000 (11:27 +0100)]
Update eslint npm dependency

2 years agoMerge branch '5.5'
Tim Düsterhus [Mon, 21 Nov 2022 10:26:18 +0000 (11:26 +0100)]
Merge branch '5.5'

2 years agoFix erroneous encoding of ampersands in HtmlInputProcessor::convertToHtml()
Tim Düsterhus [Mon, 21 Nov 2022 09:01:13 +0000 (10:01 +0100)]
Fix erroneous encoding of ampersands in HtmlInputProcessor::convertToHtml()

see f8deb9077dc485487bf53f9930ff956fbca1127b
see https://www.woltlab.com/community/thread/298042-werden-beim-import-falsch-ersetzt/

2 years agoRemove the dialog from the DOM after it has been closed
Alexander Ebert [Fri, 18 Nov 2022 17:45:45 +0000 (18:45 +0100)]
Remove the dialog from the DOM after it has been closed

2 years agoAdd support for async callbacks in `validate`
Alexander Ebert [Fri, 18 Nov 2022 13:52:37 +0000 (14:52 +0100)]
Add support for async callbacks in `validate`