Tim Düsterhus [Wed, 7 Dec 2022 09:54:19 +0000 (10:54 +0100)]
Update composer dependencies
Tim Düsterhus [Wed, 7 Dec 2022 09:18:19 +0000 (10:18 +0100)]
Fix rendering of `wcf.acp.devtools.project.requiredPackage.requiredPackage`
see
19b96010188f4859023ea4d26116c9da81b43c36
Tim Düsterhus [Wed, 7 Dec 2022 09:16:18 +0000 (10:16 +0100)]
Fix rendering of `wcf.acp.devtools.project.instruction.instruction`
This phrase is evaluated in JavaScript and thus the `{icon}` helper is not
(currently) available.
Tim Düsterhus [Wed, 7 Dec 2022 09:08:34 +0000 (10:08 +0100)]
Remove non-COMPILER_TARGET_DEFAULT variants of WCF.Dropdown.Interactive
These were missed in
b433eb3580d56dc41dabc029324a3cc03c6ef3f1.
Tim Düsterhus [Wed, 7 Dec 2022 08:33:54 +0000 (09:33 +0100)]
Add proper types to various UserEditor methods
Tim Düsterhus [Tue, 6 Dec 2022 16:23:16 +0000 (17:23 +0100)]
Merge pull request #5162 from WoltLab/template-add-no-default-group
Add empty default selection for templateGroupID in templateAdd.tpl
Tim Düsterhus [Tue, 6 Dec 2022 16:04:53 +0000 (17:04 +0100)]
Add empty default selection for templateGroupID in templateAdd.tpl
see https://www.woltlab.com/community/thread/296343-template-kopieren-leere-vorauswahl-bei-der-templategruppe/
Tim Düsterhus [Tue, 6 Dec 2022 11:25:15 +0000 (12:25 +0100)]
Merge branch '5.5'
Tim Düsterhus [Tue, 6 Dec 2022 11:22:59 +0000 (12:22 +0100)]
Stop using undefined properties in SearchHandler::saveSearch()
These are not intended to be stored on the class and not used elsewhere, the
`this->` is likely a copy and paste mistake in the initial implementation.
see
11b63e8aa4e1a71425e1bffd7eb28f9db4a4bf13
Marcel Werk [Mon, 5 Dec 2022 16:45:04 +0000 (17:45 +0100)]
Add `--watch` parameter for web component bundling
Marcel Werk [Mon, 5 Dec 2022 16:44:45 +0000 (17:44 +0100)]
Add typings for `<fa-icon>` to webcomponents
Alexander Ebert [Mon, 5 Dec 2022 16:40:27 +0000 (17:40 +0100)]
Remove the superfluous replacement of special characters
This is a left-over from the previous implementation that worked with the raw HTML returned from the server. The new code offloads the handling to the browser’s DOM API.
Tim Düsterhus [Mon, 5 Dec 2022 11:59:33 +0000 (12:59 +0100)]
Update composer dependencies
Tim Düsterhus [Mon, 5 Dec 2022 08:58:46 +0000 (09:58 +0100)]
Merge branch '5.5'
Tim Düsterhus [Mon, 5 Dec 2022 08:54:20 +0000 (09:54 +0100)]
Remove useless reference parameter in ArticleCategoryCache::countArticles()
This is never written to and thus does not need to be and thus should not be a
reference.
Tim Düsterhus [Mon, 5 Dec 2022 08:53:37 +0000 (09:53 +0100)]
Remove unused `@var` tag from ArticleCategoryCache
mutec [Fri, 2 Dec 2022 10:09:04 +0000 (11:09 +0100)]
fix phpdoc of `ArticleCategoryCache::countArticles()`
mutec [Fri, 2 Dec 2022 10:04:36 +0000 (11:04 +0100)]
fix phpdoc of `SessionEditor::create()`
mutec [Fri, 2 Dec 2022 10:00:21 +0000 (11:00 +0100)]
fix phpdoc of `Redis::info()`
mutec [Fri, 2 Dec 2022 09:54:39 +0000 (10:54 +0100)]
fix phpdoc of `ViewableArticle::$unreadArticlesByCategory`
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
Alexander Ebert [Wed, 30 Nov 2022 18:39:06 +0000 (19:39 +0100)]
Replace inline CSS variables with global values
Alexander Ebert [Wed, 30 Nov 2022 18:32:15 +0000 (19:32 +0100)]
Fix the calculation of the ACP page content offset
Alexander Ebert [Wed, 30 Nov 2022 18:30:39 +0000 (19:30 +0100)]
Replace inline SCSS variables with native CSS variables
Alexander Ebert [Wed, 30 Nov 2022 18:27:51 +0000 (19:27 +0100)]
Replace usage of `opacify()` and `transparentize()` with `rgba()`
Alexander Ebert [Wed, 30 Nov 2022 18:16:33 +0000 (19:16 +0100)]
Replace SCSS variables with CSS variables
Alexander Ebert [Wed, 30 Nov 2022 18:15:27 +0000 (19:15 +0100)]
Export style colors as plain RGB values
Alexander Ebert [Wed, 30 Nov 2022 17:50:02 +0000 (18:50 +0100)]
Update the compiled JS artifacts
Alexander Ebert [Wed, 30 Nov 2022 17:49:32 +0000 (18:49 +0100)]
Remove the API version on upgrade
Alexander Ebert [Wed, 30 Nov 2022 17:13:54 +0000 (18:13 +0100)]
Remove the support for style API versions
Closes #5036
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
Marcel Werk [Wed, 30 Nov 2022 16:26:23 +0000 (17:26 +0100)]
Show alt tags of images in desktop notifications
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
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
Alexander Ebert [Wed, 30 Nov 2022 15:43:24 +0000 (16:43 +0100)]
Lazily initialize the reaction summary
Alexander Ebert [Wed, 30 Nov 2022 15:31:04 +0000 (16:31 +0100)]
Migrate to the new dialog API
Alexander Ebert [Wed, 30 Nov 2022 15:27:54 +0000 (16:27 +0100)]
Use actual private properties and methods
Alexander Ebert [Wed, 30 Nov 2022 15:25:59 +0000 (16:25 +0100)]
Minor code clean-up
Marcel Werk [Wed, 30 Nov 2022 15:18:34 +0000 (16:18 +0100)]
Fix Database::getInsertID() return type PHPDoc
see #4915
Marcel Werk [Wed, 30 Nov 2022 15:12:55 +0000 (16:12 +0100)]
Merge pull request #5151 from SoftCreatR/bugfix/tpl
Make unfurlUrl template available in ACP
Marcel Werk [Wed, 30 Nov 2022 15:05:55 +0000 (16:05 +0100)]
Add compiled js
Marcel Werk [Wed, 30 Nov 2022 15:05:41 +0000 (16:05 +0100)]
Add missing definitions
Marcel Werk [Wed, 30 Nov 2022 15:05:18 +0000 (16:05 +0100)]
Add preload for language variable
Marcel Werk [Wed, 30 Nov 2022 15:05:00 +0000 (16:05 +0100)]
Use light dom instead of the shadow dom
Marcel Werk [Wed, 30 Nov 2022 14:29:51 +0000 (15:29 +0100)]
Rename web component to new naming scheme
Marcel Werk [Sun, 21 Aug 2022 14:26:12 +0000 (16:26 +0200)]
Add highlighting for selected reaction
Marcel Werk [Sun, 21 Aug 2022 14:09:52 +0000 (16:09 +0200)]
Add web component for reaction summary
Marcel Werk [Tue, 29 Nov 2022 12:30:58 +0000 (13:30 +0100)]
Add default styling for <summary> HTML tag
See #4612
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
Sascha Greuel [Tue, 29 Nov 2022 09:38:01 +0000 (10:38 +0100)]
Made unfurlUrl template available in ACP
See https://www.woltlab.com/community/thread/298168-artikel-erstellen-im-acp-bringt-fehler-bei-vorschau/
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
Alexander Ebert [Mon, 28 Nov 2022 12:56:15 +0000 (13:56 +0100)]
Mark the context aware API as experimental
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
Tim Düsterhus [Mon, 28 Nov 2022 10:16:19 +0000 (11:16 +0100)]
Clean out any default output buffers
Resolves #5145
Tim Düsterhus [Mon, 28 Nov 2022 09:53:19 +0000 (10:53 +0100)]
Use array-shape as the return type for ISearchEngine::getInnerJoin()
Tim Düsterhus [Mon, 28 Nov 2022 08:54:03 +0000 (09:54 +0100)]
Update to cuyz/valinor 1.0.x
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
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.
Alexander Ebert [Fri, 25 Nov 2022 15:17:31 +0000 (16:17 +0100)]
Fix the use of the context filter
Alexander Ebert [Fri, 25 Nov 2022 12:39:22 +0000 (13:39 +0100)]
Add support for context filters when querying the search backend
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
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.
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
Tim Düsterhus [Fri, 25 Nov 2022 11:36:50 +0000 (12:36 +0100)]
Slightly reorder assignments in PackageInstallationNodeBuilder::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.
Tim Düsterhus [Fri, 25 Nov 2022 10:46:15 +0000 (11:46 +0100)]
Make updates/installations explicit in package audit log
Tim Düsterhus [Fri, 25 Nov 2022 11:45:06 +0000 (12:45 +0100)]
Use PackageInstallationDispatcher::getPackage() in PackageUninstallationNodeBuilder
Tim Düsterhus [Fri, 25 Nov 2022 11:40:26 +0000 (12:40 +0100)]
Unify the querying of the “action” in PackageInstallationNodeBuilder
Tim Düsterhus [Fri, 25 Nov 2022 10:58:23 +0000 (11:58 +0100)]
Make PackageInstallationDispatcher::$archive protected
Tim Düsterhus [Fri, 25 Nov 2022 10:56:32 +0000 (11:56 +0100)]
Make PackageInstallationDispatcher::$package protected
Tim Düsterhus [Fri, 25 Nov 2022 10:25:23 +0000 (11:25 +0100)]
Make `PackageInstallationNodeBuilder::$pendingPackages` private
Tim Düsterhus [Fri, 25 Nov 2022 11:25:43 +0000 (12:25 +0100)]
Improve formatting in PackageInstallationNodeBuilder
Tim Düsterhus [Fri, 25 Nov 2022 11:20:25 +0000 (12:20 +0100)]
Add support for `<void/>` instructions to PackageManifest
Tim Düsterhus [Fri, 25 Nov 2022 11:02:02 +0000 (12:02 +0100)]
Merge branch '5.5'
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
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.
Tim Düsterhus [Fri, 25 Nov 2022 08:57:50 +0000 (09:57 +0100)]
Merge branch '5.5'
Alexander Ebert [Thu, 24 Nov 2022 17:08:53 +0000 (18:08 +0100)]
Release 5.5.7
Tim Düsterhus [Thu, 24 Nov 2022 14:52:37 +0000 (15:52 +0100)]
Merge branch '5.5'
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
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/
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.
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
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.
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
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
Alexander Ebert [Tue, 22 Nov 2022 15:40:15 +0000 (16:40 +0100)]
Fix the icon name
Alexander Ebert [Tue, 22 Nov 2022 15:38:57 +0000 (16:38 +0100)]
Add proper types to `ACPSearchResultList`
Alexander Ebert [Tue, 22 Nov 2022 15:14:59 +0000 (16:14 +0100)]
Localize the hour values using `Intl`
Alexander Ebert [Tue, 22 Nov 2022 14:56:40 +0000 (15:56 +0100)]
Merge branch 'master' of https://github.com/WoltLab/WCF
Alexander Ebert [Tue, 22 Nov 2022 14:56:34 +0000 (15:56 +0100)]
Set the weekdays using the values from Intl
Tim Düsterhus [Tue, 22 Nov 2022 14:53:05 +0000 (15:53 +0100)]
Update composer dependencies
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.
Alexander Ebert [Tue, 22 Nov 2022 14:25:36 +0000 (15:25 +0100)]
Rely on `Intl.DateTimeFormat` for regular date and time formats
Tim Düsterhus [Tue, 22 Nov 2022 13:59:56 +0000 (14:59 +0100)]
Support dynamic phrases for rebuild worker name / description
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
Tim Düsterhus [Mon, 21 Nov 2022 12:36:51 +0000 (13:36 +0100)]
Reduce logic duplication in RegisteredWorker
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>
Tim Düsterhus [Fri, 18 Nov 2022 16:04:54 +0000 (17:04 +0100)]
Improve order of rebuild workers
Tim Düsterhus [Fri, 18 Nov 2022 16:04:02 +0000 (17:04 +0100)]
Drop phrases for deleted rebuild worker