Marcel Werk [Sat, 7 Aug 2021 09:18:22 +0000 (11:18 +0200)]
Improved acp search
Closes #3335
Alexander Ebert [Sat, 7 Aug 2021 08:48:34 +0000 (10:48 +0200)]
Merge branch '5.4'
Alexander Ebert [Sat, 7 Aug 2021 08:48:11 +0000 (10:48 +0200)]
Merge pull request #4442 from SoftCreatR/css-optimizations
Prefixed CSS First
Sascha Greuel [Fri, 6 Aug 2021 18:42:21 +0000 (20:42 +0200)]
Prefixed CSS First
Ensured vendor-prefixed versions of a CSS property are listed before the standardized, unprefixed version.
When multiple versions of the same CSS property are specified, the last supported one will be used due to how browsers handle fallback values. This means the order matters when using both vendor-prefixed and unprefixed versions of the same property. Specifically, the unprefixed version must be listed last to ensure standardized behavior takes precedence.
Alexander Ebert [Fri, 6 Aug 2021 16:15:55 +0000 (18:15 +0200)]
Removing inline formatting yielded empty elements and broke the selection
See https://community.woltlab.com/thread/291496-fettmarkierung-bei-einem-einzelnen-wort-kann-nicht-mehr-entfernt-werden/
Alexander Ebert [Fri, 6 Aug 2021 14:44:42 +0000 (16:44 +0200)]
Strip de fact empty paragraphs in messages
Tim Düsterhus [Fri, 6 Aug 2021 13:25:14 +0000 (15:25 +0200)]
Merge branch '5.4'
WoltLab [Fri, 6 Aug 2021 12:52:45 +0000 (12:52 +0000)]
Updating minified JavaScript files
Tim Düsterhus [Fri, 6 Aug 2021 12:44:42 +0000 (14:44 +0200)]
Merge pull request #4440 from WoltLab/sourcemap-proxy
Add proxy_sourcemap.php
Alexander Ebert [Fri, 6 Aug 2021 12:41:10 +0000 (14:41 +0200)]
Merge branch '5.3' into 5.4
Alexander Ebert [Fri, 6 Aug 2021 12:41:00 +0000 (14:41 +0200)]
Prevent submitting an empty message to the preview
Tim Düsterhus [Fri, 6 Aug 2021 12:34:52 +0000 (14:34 +0200)]
Merge pull request #4441 from WoltLab/acp-logout-to-reauth
Redirect the user to ACP reauthentication instead of frontend after logout
Tim Düsterhus [Fri, 6 Aug 2021 08:04:23 +0000 (10:04 +0200)]
Add proxy_sourcemap.php
Tim Düsterhus [Fri, 6 Aug 2021 11:43:36 +0000 (13:43 +0200)]
Redirect the user to ACP reauthentication instead of frontend after logout
Tim Düsterhus [Fri, 6 Aug 2021 11:34:59 +0000 (13:34 +0200)]
Revert "Update Open Sans"
This reverts Open Sans back to the non-variable version, as the variable one
appears to render pretty badly on Windows.
This reverts commit
33c8866a790e9e6bc46358f6e82df76d2e32f56e.
Tim Düsterhus [Fri, 6 Aug 2021 10:32:25 +0000 (12:32 +0200)]
Merge branch '5.4'
Tim Düsterhus [Fri, 6 Aug 2021 10:31:18 +0000 (12:31 +0200)]
Merge branch '5.3' into 5.4
Tim Düsterhus [Fri, 6 Aug 2021 10:26:36 +0000 (12:26 +0200)]
Merge branch '5.2' into 5.3
Joshua Rüsweg [Fri, 6 Aug 2021 09:22:18 +0000 (11:22 +0200)]
Merge pull request #4439 from xopez/5.2
Fixes Bings Sitemap Howto
Marcel Werk [Thu, 5 Aug 2021 15:56:02 +0000 (17:56 +0200)]
Reactions were not displayed in article list when sorted by title
Marcel Werk [Thu, 5 Aug 2021 15:48:20 +0000 (17:48 +0200)]
Mark as read doesn't removed the badge in the mobile menu
xopez [Thu, 5 Aug 2021 14:55:45 +0000 (16:55 +0200)]
Fixes Bings Sitemap Howto
This includes the correct links if the Bing Webmaster Tools help & how-to for sitemaps.
Tim Düsterhus [Thu, 5 Aug 2021 13:44:44 +0000 (15:44 +0200)]
Merge pull request #4438 from WoltLab/5.4-fix-missing-salts
Fix having an incorrect parameter if a hash does not contains a salt
joshuaruesweg [Thu, 5 Aug 2021 12:43:29 +0000 (14:43 +0200)]
Fix having an incorrect parameter if a hash does not contains a salt
Fixes #4416
Alexander Ebert [Thu, 5 Aug 2021 11:39:03 +0000 (13:39 +0200)]
Reset the avatar cache to force the use of the WebP variants
Fixes #4424
joshuaruesweg [Thu, 5 Aug 2021 11:04:46 +0000 (13:04 +0200)]
Delete reaction type icon on delete action
Tim Düsterhus [Thu, 5 Aug 2021 09:40:52 +0000 (11:40 +0200)]
Merge branch '5.2' into 5.3
Tim Düsterhus [Thu, 5 Aug 2021 09:40:26 +0000 (11:40 +0200)]
Merge branch '5.4'
Tim Düsterhus [Thu, 5 Aug 2021 09:40:15 +0000 (11:40 +0200)]
Run SCSS prettier
Tim Düsterhus [Thu, 5 Aug 2021 07:16:18 +0000 (09:16 +0200)]
Fix typo in watchedArticleList.tpl
Tim Düsterhus [Wed, 4 Aug 2021 13:32:52 +0000 (15:32 +0200)]
Merge branch '5.4'
Tim Düsterhus [Wed, 4 Aug 2021 13:32:36 +0000 (15:32 +0200)]
Merge branch '5.3' into 5.4
Marcel Werk [Wed, 4 Aug 2021 13:27:50 +0000 (15:27 +0200)]
Some external links in the admin panel did not open in a new window
Alexander Ebert [Wed, 4 Aug 2021 12:23:34 +0000 (14:23 +0200)]
Trim the preview height using traditional overflow
`-webkit-line-clamp` is broken in Firefox and Safari once complex HTML is used.
See https://community.woltlab.com/thread/291373-rich-embeds-mit-liste-fehlerhaft/
Alexander Ebert [Wed, 4 Aug 2021 11:49:05 +0000 (13:49 +0200)]
Skip the user menu initialization if there are no items
Alexander Ebert [Wed, 4 Aug 2021 10:33:43 +0000 (12:33 +0200)]
Detect `<center>` as a block element
Tim Düsterhus [Wed, 4 Aug 2021 09:26:15 +0000 (11:26 +0200)]
Merge branch '5.2' into 5.3
Tim Düsterhus [Wed, 4 Aug 2021 09:25:25 +0000 (11:25 +0200)]
Merge pull request #4435 from WoltLab/php-ddl-diff
PHP DDL Fixes
Tim Düsterhus [Wed, 4 Aug 2021 08:57:06 +0000 (10:57 +0200)]
Take the array key into account when checking whether a column is up to date in DatabaseTableChangeProcessor
Previously updating a column that looks like this:
column VARCHAR(1) NOT NULL
to:
column VARCHAR(1) NULL
would not do anything.
Converted into the `getData()` representation of the PHP DDL API these would
look like:
[ 'default' => null
, 'notNull' => 1
, 'type' => 'VARCHAR'
, 'length' => 1
]
and
[ 'default' => null
, 'notNull' => 0
, 'type' => 'VARCHAR'
, 'length' => 1
]
respectively.
Now taking the diff of the first array against the second array (subtracting
the second from the first) will remove *both* 1 values, resulting in an
empty difference, thus believing both columns are identical.
Fix this issue by using `array_diff_assoc` which will also take the key into
account.
Tim Düsterhus [Wed, 4 Aug 2021 08:36:12 +0000 (10:36 +0200)]
Take the array key into account when checking whether a KEY is up to date in DatabaseTableChangeProcessor
Previously updating a (pretty contrived) KEY that looks like this:
[…] UNIQUE KEY someIndex (`UNIQUE`)
to:
[…] KEY someIndex (`UNIQUE`)
would not do anything.
Converted into the `getData()` representation of the PHP DDL API these would
look like:
[ 'columns' => 'UNIQUE'
, 'type' => 'UNIQUE'
]
and
[ 'columns' => 'UNIQUE'
, 'type' => null
]
respectively.
Now taking the diff of the first array against the second array (subtracting
the second from the first) will remove *both* 'UNIQUE' values, resulting in an
empty difference, thus believing both KEYs are identical.
Fix this issue by using `array_diff_assoc` which will also take the key into
account.
Alexander Ebert [Tue, 3 Aug 2021 15:17:12 +0000 (17:17 +0200)]
Incorrect handling of `null` values for metacode attributes
Tim Düsterhus [Tue, 3 Aug 2021 15:09:29 +0000 (17:09 +0200)]
Merge branch '5.2' into 5.3
Tim Düsterhus [Tue, 3 Aug 2021 15:08:35 +0000 (17:08 +0200)]
Merge pull request #4433 from WoltLab/php-ddl-diff
PHP DDL Fixes
Tim Düsterhus [Tue, 3 Aug 2021 14:33:43 +0000 (16:33 +0200)]
Take the array key into account when checking whether a FOREIGN KEY is up to date in DatabaseTableChangeProcessor
Previously updating a FOREIGN KEY that looks like this:
[…] FOREIGN KEY (fooID) REFERENCES wcf1_foo (fooID) ON DELETE SET NULL ON UPDATE CASCADE
to:
[…] FOREIGN KEY (fooID) REFERENCES wcf1_foo (fooID) ON DELETE CASCADE ON UPDATE SET NULL
would not do anything.
Converted into the `getData()` representation of the PHP DDL API these would
look identical when looking at the values only. Both span the same column and
reference the same column on the same table. The `ON …` actions are one
`CASCADE` and one `SET NULL` for both.
For this reason the diff is empty, believing that the FOREIGN KEY already
matches the expected configuration.
Fix this issue by using `array_diff_assoc` which will also take the key into
account.
Tim Düsterhus [Tue, 3 Aug 2021 14:13:58 +0000 (16:13 +0200)]
Take the array key into account when matching up FOREIGN KEYs in DatabaseTableChangeProcessor
Previously a FOREIGN KEY within the database that looks like this:
[…] FOREIGN KEY (someOtherUserID) REFERENCES wcf1_user (userID) […]
would match up a FOREIGN KEY definition like the following:
[…] FOREIGN KEY (userID) REFERENCES wcf1_user (userID) […]
Converted into the `getDiffData()` representation of the PHP DDL API these
would like:
[ 'columns' => 'someOtherUserID'
, 'referencedColumns' => 'userID'
, 'referencedTable' => 'wcf1_user'
]
and
[ 'columns' => 'userID'
, 'referencedColumns' => 'userID'
, 'referencedTable' => 'wcf1_user'
]
respectively.
Now taking the diff of the second array against the first array (subtracting
the first from the second) will remove *both* 'userID' values, resulting in an
empty difference, thus believing both FOREIGN KEYs are identical
Fix this issue by using `array_diff_assoc` which will also take the key into
account.
Alexander Ebert [Tue, 3 Aug 2021 12:36:05 +0000 (14:36 +0200)]
Merge pull request #4430 from WoltLab/js-legacy-inheritance
Resolved side effects from previous inheritance approach
Tim Düsterhus [Tue, 3 Aug 2021 12:35:40 +0000 (14:35 +0200)]
Merge pull request #4429 from WoltLab/form-field-data-handler-es6
Support ES 6 default exports for form builder field JavaScript data handlers
Tim Düsterhus [Mon, 2 Aug 2021 15:05:36 +0000 (17:05 +0200)]
Support ES 6 default exports for form builder field JavaScript data handlers
For legacy exports the value loaded by `require()` (`FormBuilderField`) will be
whatever the module author returned within the module definition. ES 6 modules
on the other hand will be passed as an object containing the exported values,
with the default export residing in the `default` key.
tslib's `__importDefault` will transform a legacy export into a ES 6 module, by
putting the exported value into the `default` key of an freshly created object.
This allows us to handle both legacy as well as ES 6 default exports identically
by simply using the `default` value of the `FormBuilderField` variable.
Tim Düsterhus [Tue, 3 Aug 2021 12:19:31 +0000 (14:19 +0200)]
Merge pull request #4432 from WoltLab/package-server-optional
Do not store optional information from update servers within the database
Tim Düsterhus [Tue, 3 Aug 2021 10:39:49 +0000 (12:39 +0200)]
Merge branch '5.4'
Tim Düsterhus [Tue, 3 Aug 2021 10:39:34 +0000 (12:39 +0200)]
Merge branch '5.3' into 5.4
Tim Düsterhus [Tue, 3 Aug 2021 10:36:59 +0000 (12:36 +0200)]
Update style for PHP CS Fixer 3.0.1
Tim Düsterhus [Tue, 3 Aug 2021 10:00:26 +0000 (12:00 +0200)]
Do not store optional information from update servers within the database
These do not appear to be used anywhere and the official package servers do not
expose them either, making them effectively empty even in current versions.
see
fd3511448663b86f4428e848bbefa07b93bf4bad
see #4371
see #4385
Marcel Werk [Tue, 3 Aug 2021 08:56:51 +0000 (10:56 +0200)]
Merge pull request #4431 from WoltLab/foreach-empty
Fix `{foreach}` loops when the to-be-iterated value is empty
Tim Düsterhus [Tue, 3 Aug 2021 07:55:35 +0000 (09:55 +0200)]
Fix `{foreach}` loops when the to-be-iterated value is empty
The restoring of the `item` value failed, because the necessary data in
`foreachVars` was only being filled when the `foreach()` loop was actually
entered. Move this saving of the old value up to ensure it always happens.
see
75ce18bc18904d1215c7d021ac0ac18c0a7a5d42
see #4425
Alexander Ebert [Mon, 2 Aug 2021 17:06:53 +0000 (19:06 +0200)]
Resolved side effects from previous inheritance approach
This is a follow-up for
db23f8af33398c4851d6ba36436592f406b35a0d which introduced a flawed change.
The iteration over the prototype chain caused the prototype itself being bound to an object on runtime, conflicting with other objects.
The root cause was that some parts of the inherited functions were still bound to `constructed`, which was attempted to be fixed by poking the prototype chain.
This new fix is a bit weird, unless one understands that the call to `Reflect.construct()` is a bit tricky because any bound call inside the constructor of `legacyClass` will be bound to `constructed`.
This change is more of a sledge hammer approach, but it works all cases that I tested, including those that were initially the cause for the previous fix as well as new issues caused by the fix.
Alexander Ebert [Sat, 31 Jul 2021 10:03:07 +0000 (12:03 +0200)]
Sneaky whitespace
Alexander Ebert [Sat, 31 Jul 2021 09:46:23 +0000 (11:46 +0200)]
Incorrect value type when using the legacy MySQL extension
Marcel Werk [Fri, 30 Jul 2021 21:21:07 +0000 (23:21 +0200)]
Improved a11y of content items
Marcel Werk [Fri, 30 Jul 2021 17:14:02 +0000 (19:14 +0200)]
Improved usability of footer links on mobile devices
Tim Düsterhus [Fri, 30 Jul 2021 12:52:38 +0000 (14:52 +0200)]
Merge branch '5.4'
Tim Düsterhus [Fri, 30 Jul 2021 12:51:19 +0000 (14:51 +0200)]
Merge branch '5.3' into 5.4
Tim Düsterhus [Fri, 30 Jul 2021 12:45:20 +0000 (14:45 +0200)]
Merge branch '5.2' into 5.3
Tim Düsterhus [Fri, 30 Jul 2021 12:44:55 +0000 (14:44 +0200)]
Merge pull request #4427 from WoltLab/label-form-field-dependency
Add missing check for dependencies in LabelFormField processor
Tim Düsterhus [Fri, 30 Jul 2021 12:43:01 +0000 (14:43 +0200)]
Merge pull request #4426 from WoltLab/label-form-field-selection
Properly show the label form field's selection if it has a value upon load
Marcel Werk [Fri, 30 Jul 2021 12:38:05 +0000 (14:38 +0200)]
ACL values were not deleted when deleting categories
Tim Düsterhus [Fri, 30 Jul 2021 08:27:05 +0000 (10:27 +0200)]
Properly show the label form field's selection if it has a value upon load
This got broken during the TypeScript migration, because the constructor's
`labelId` parameter is typed as string, but in reality it was passed an
integer. This broke a `===` comparison with the `data-label-id` property of the
list items, thus failing to properly select the label.
Tim Düsterhus [Fri, 30 Jul 2021 09:03:55 +0000 (11:03 +0200)]
Add missing check for dependencies in LabelFormField processor
Marcel Werk [Thu, 29 Jul 2021 15:34:19 +0000 (17:34 +0200)]
Merge pull request #4425 from WoltLab/template-engine-foreach-variable-unset-fix
Foreach tag unset variables that have the value NULL
Marcel Werk [Wed, 28 Jul 2021 16:00:48 +0000 (18:00 +0200)]
Re-added previous share button selector to keep compatibility
Missing js file
Marcel Werk [Wed, 28 Jul 2021 15:48:49 +0000 (17:48 +0200)]
Re-added previous share button selector to keep compatibility
Marcel Werk [Wed, 28 Jul 2021 14:07:48 +0000 (16:07 +0200)]
share button class name changed to prevent blocking by ad blockers
Marcel Werk [Wed, 28 Jul 2021 12:24:50 +0000 (14:24 +0200)]
Foreach tag unset variables that have the value NULL
Tim Düsterhus [Wed, 28 Jul 2021 07:58:23 +0000 (09:58 +0200)]
Merge branch '5.4'
Tim Düsterhus [Wed, 28 Jul 2021 07:58:10 +0000 (09:58 +0200)]
Use correct English quote marks in en.xml (5.4)
Tim Düsterhus [Wed, 28 Jul 2021 07:57:35 +0000 (09:57 +0200)]
Merge branch '5.3' into 5.4
Tim Düsterhus [Wed, 28 Jul 2021 07:56:09 +0000 (09:56 +0200)]
Use correct English quote marks in en.xml
Tim Düsterhus [Tue, 27 Jul 2021 15:25:21 +0000 (17:25 +0200)]
Merge branch '5.4'
Tim Düsterhus [Tue, 27 Jul 2021 15:21:22 +0000 (17:21 +0200)]
Merge pull request #4423 from WoltLab/oauth-pkce
Add PKCE support to AbstractOauth2Action
Tim Düsterhus [Tue, 27 Jul 2021 14:37:05 +0000 (16:37 +0200)]
Name “Notfallcodes“ consistently
Drop the hyphen from “Notfall-Code”.
Tim Düsterhus [Tue, 27 Jul 2021 14:32:27 +0000 (16:32 +0200)]
Add PKCE support to AbstractOauth2Action
Tim Düsterhus [Tue, 27 Jul 2021 14:22:01 +0000 (16:22 +0200)]
Merge branch '5.4'
Tim Düsterhus [Tue, 27 Jul 2021 14:15:24 +0000 (16:15 +0200)]
Merge pull request #4421 from WoltLab/5.4-deleteDsStore
Add files/acp/update_com.woltlab.wcf_5.4.3_deleteDsStore.php
Marcel Werk [Tue, 27 Jul 2021 13:27:51 +0000 (15:27 +0200)]
Merge pull request #4422 from WoltLab/5.4-check-search-rebuild
Refer to RebuildDataPage in the system check for search engine tables
Tim Düsterhus [Tue, 27 Jul 2021 12:53:47 +0000 (14:53 +0200)]
Refer to RebuildDataPage in the system check for search engine tables
Tim Düsterhus [Tue, 27 Jul 2021 12:44:15 +0000 (14:44 +0200)]
Generate preload manifest when testing style
Tim Düsterhus [Tue, 27 Jul 2021 12:36:12 +0000 (14:36 +0200)]
Fix system font stack when combined with a Google Font
Perform the replacement of the system font name, before prepending the Google
font to properly match the font name without the Google font prefix.
Tim Düsterhus [Tue, 27 Jul 2021 12:18:15 +0000 (14:18 +0200)]
Add files/acp/update_com.woltlab.wcf_5.4.3_deleteDsStore.php
Tim Düsterhus [Tue, 27 Jul 2021 12:31:26 +0000 (14:31 +0200)]
Drop obsolete update_com.woltlab.wcf_5.4.2_deleteInvalidSessions.php
This was only required to fix a bug in 5.4.0.
Tim Düsterhus [Mon, 26 Jul 2021 16:04:36 +0000 (18:04 +0200)]
Merge pull request #4420 from WoltLab/userQuit
Add notice letting the user know quitting their account is active
Alexander Ebert [Mon, 26 Jul 2021 16:04:32 +0000 (18:04 +0200)]
Merge branch '5.4' of https://github.com/WoltLab/WCF into 5.4
Alexander Ebert [Mon, 26 Jul 2021 16:04:20 +0000 (18:04 +0200)]
Release 5.4.2
Marcel Werk [Mon, 26 Jul 2021 16:03:10 +0000 (18:03 +0200)]
Merge branch '5.4' of https://github.com/WoltLab/WCF into 5.4
Marcel Werk [Mon, 26 Jul 2021 15:59:17 +0000 (17:59 +0200)]
Fix code style
WoltLab [Mon, 26 Jul 2021 15:54:45 +0000 (15:54 +0000)]
Updating minified JavaScript files
Alexander Ebert [Mon, 26 Jul 2021 15:53:29 +0000 (17:53 +0200)]
Merge pull request #4417 from WoltLab/captcha-delete-after-use
Delete the captcha registration after retrieving data in Comment/Add and Message/Reply
WoltLab [Mon, 26 Jul 2021 15:51:34 +0000 (15:51 +0000)]
Updating minified JavaScript files
Marcel Werk [Mon, 26 Jul 2021 15:50:31 +0000 (17:50 +0200)]
TOC code was visible in search results of articles
Alexander Ebert [Mon, 26 Jul 2021 15:23:41 +0000 (17:23 +0200)]
Ignore click events that were triggered outside of the editor
This appears to haben if the click event was partially intercepted because of an open overlay that was implicitly closed.
Tim Düsterhus [Mon, 26 Jul 2021 14:44:59 +0000 (16:44 +0200)]
Add notice letting the user know quitting their account is active