Alexander Ebert [Thu, 28 Apr 2022 17:45:12 +0000 (19:45 +0200)]
Ignore connection errors caused by page navigation
See WoltLab/com.woltlab.wbb#539
Alexander Ebert [Thu, 28 Apr 2022 16:30:02 +0000 (18:30 +0200)]
Delay menu interaction until the page is loaded
User menu providers are registered asynchronously and the UI does not know once they are all ready.
See https://www.woltlab.com/community/thread/295264-userpanel-l%C3%A4dt-unvollst%C3%A4ndig/
Alexander Ebert [Thu, 28 Apr 2022 14:58:46 +0000 (16:58 +0200)]
Simplified the code logic
Alexander Ebert [Thu, 28 Apr 2022 14:09:12 +0000 (16:09 +0200)]
Use icons to represent the moderation queue types
Fixes #4742
Alexander Ebert [Thu, 28 Apr 2022 13:18:11 +0000 (15:18 +0200)]
Merge pull request #4704 from WoltLab/string-validation
Use is_string to validate strings
Tim Düsterhus [Thu, 28 Apr 2022 12:29:15 +0000 (14:29 +0200)]
Merge pull request #4762 from WoltLab/password-cleanup
Cleanup PHPASS password implementations
Alexander Ebert [Thu, 28 Apr 2022 12:28:23 +0000 (14:28 +0200)]
Remove the Google Plus profile field
Fixes #4741
Tim Düsterhus [Thu, 28 Apr 2022 12:20:47 +0000 (14:20 +0200)]
Deprecate TPhpass::hash() and TPhpass::needsRehash()
Tim Düsterhus [Thu, 28 Apr 2022 12:16:41 +0000 (14:16 +0200)]
Explicitly implement `Phpass::hash()` and `Phpass::needsRehash()`
They don't really belong into the `TPhpass` trait.
Tim Düsterhus [Thu, 28 Apr 2022 12:14:03 +0000 (14:14 +0200)]
Implement Drupal8::needsRehash()
Tim Düsterhus [Thu, 28 Apr 2022 12:08:12 +0000 (14:08 +0200)]
Move the Drupal8 costs into a class constant
Tim Düsterhus [Thu, 28 Apr 2022 12:04:02 +0000 (14:04 +0200)]
Delegate to TPhpass in Drupal8
Tim Düsterhus [Thu, 28 Apr 2022 11:52:48 +0000 (13:52 +0200)]
Use `\hash('md5', …)` instead of `\md5()` in TPhpass
This makes it easier to parameterize the implementation.
Tim Düsterhus [Thu, 28 Apr 2022 11:54:50 +0000 (13:54 +0200)]
Delegate base64 encoding for Drupal8 to TPhpass
Tim Düsterhus [Thu, 28 Apr 2022 11:50:43 +0000 (13:50 +0200)]
Add TPhpass::encode64()
Tim Düsterhus [Thu, 28 Apr 2022 10:38:03 +0000 (12:38 +0200)]
Merge branch '5.4'
Tim Düsterhus [Thu, 28 Apr 2022 10:36:23 +0000 (12:36 +0200)]
Add the Drupal8 hashing algorithm
Tim Düsterhus [Thu, 28 Apr 2022 10:21:19 +0000 (12:21 +0200)]
Fix the TPhpass algorithm
The salt extraction used `mb_strpos` where `mb_substr` needs to be used.
see
c586e46e62dd1d714b7c7db7911eb6cf5d96cc7e
Tim Düsterhus [Wed, 27 Apr 2022 13:58:31 +0000 (15:58 +0200)]
Merge pull request #4758 from WoltLab/mailbox-filterAddress
Unify the email validation of UserUtil::isValidEmail() and Mailbox::__construct() - Take 2
Marcel Werk [Wed, 27 Apr 2022 13:51:52 +0000 (15:51 +0200)]
Merge pull request #4760 from WoltLab/unified-mark-as-read-language-variables
Unified language variables for "mark as read" buttons
Marcel Werk [Wed, 27 Apr 2022 13:41:32 +0000 (15:41 +0200)]
Unified language variables for "mark as read" buttons
Marcel Werk [Wed, 27 Apr 2022 13:25:07 +0000 (15:25 +0200)]
Merge pull request #4759 from WoltLab/content-interaction-margins
Avoid empty content interaction elements to avoid obsolete margin
Marcel Werk [Wed, 27 Apr 2022 13:19:06 +0000 (15:19 +0200)]
Avoid empty content interaction elements to avoid obsolete margin
Tim Düsterhus [Wed, 27 Apr 2022 13:08:19 +0000 (15:08 +0200)]
Delegate to Mailbox::filterAddress() in UserUtil::isValidEmail()
see
1723b426d25ecaad5034a6f74e3b29db25dc1b29
Tim Düsterhus [Wed, 27 Apr 2022 13:07:02 +0000 (15:07 +0200)]
joshuaruesweg [Wed, 27 Apr 2022 13:01:28 +0000 (15:01 +0200)]
Add explicit support for `*` in excludedPackages in `PackageUpdateAction`
Fixes #4736
Tim Düsterhus [Wed, 27 Apr 2022 12:56:56 +0000 (14:56 +0200)]
Revert "Unify the email validation of UserUtil::isValidEmail() and Mailbox::__construct()"
This change broke WCFSetup, because Mailboxes implicitly carry a language which
is not readily available in WCFSetup.
The validation of the email address should likely be moved into a dedicated
method in Mailbox and then UserUtil::isValidEmail() deprecated.
This reverts commit
395f9a6affffdd5381134d3f9d39b70de453b668.
Marcel Werk [Wed, 27 Apr 2022 11:33:46 +0000 (13:33 +0200)]
Added standalone button for "mark as read"
Marcel Werk [Wed, 27 Apr 2022 11:23:57 +0000 (13:23 +0200)]
Removed useless RSS feed dialog for notifications
The option for an anonymous RSS feed does not make sense at this point, as guests do not have access to notifications.
Tim Düsterhus [Wed, 27 Apr 2022 07:20:17 +0000 (09:20 +0200)]
Match stop words case insensitively in MysqlSearchEngine
Tim Düsterhus [Wed, 27 Apr 2022 07:18:47 +0000 (09:18 +0200)]
Replace MysqlSearchEngine::getStopWords() by ::isStopWord()
Alexander Ebert [Tue, 26 Apr 2022 13:53:10 +0000 (15:53 +0200)]
Release 5.5.0 Alpha 4
WoltLab [Tue, 26 Apr 2022 13:42:57 +0000 (13:42 +0000)]
Updating minified JavaScript files
Tim Düsterhus [Tue, 26 Apr 2022 13:25:55 +0000 (15:25 +0200)]
Merge pull request #4757 from WoltLab/visit-tracker
Improve VisitTracker behavior
Tim Düsterhus [Tue, 26 Apr 2022 13:21:10 +0000 (15:21 +0200)]
Remove support for object specific lifetimes in VisitTracker
Tim Düsterhus [Tue, 26 Apr 2022 12:44:27 +0000 (14:44 +0200)]
Fix cleaning of tracked visits in DailyCleanUpCronjob
This part of the cronjob never was functional, because stored visitTime was
compared to the lifetime which could only ever match near the start of the unix
epoch.
Fix this by correctly subtracting the lifetime from the current timestamp. I've
opted to use 120 days as the cleanup lifetime, as this allows one to adjust the
DEFAULT_LIFETIME gracefully.
Tim Düsterhus [Tue, 26 Apr 2022 12:30:33 +0000 (14:30 +0200)]
Simplify VisitTracker::getVisitTime()
Tim Düsterhus [Tue, 26 Apr 2022 12:23:17 +0000 (14:23 +0200)]
Remove the intransparent doubling of the visit tracker lifetime if existing data exists
In case of com.woltlab.wbb this only triggers if and only if a user *ever*
marked all boards as read. With the increase of the default lifetime in the
previous commit it becomes obsolete.
Tim Düsterhus [Tue, 26 Apr 2022 12:22:24 +0000 (14:22 +0200)]
Increase VisitTracker::DEFAULT_LIFETIME to 31 days
see
0fb222af73eab6621c62c5bd4403bdf7330bfad8
Tim Düsterhus [Tue, 26 Apr 2022 12:22:05 +0000 (14:22 +0200)]
Use constant expression for VisitTracker::DEFAULT_LIFETIME
Alexander Ebert [Tue, 26 Apr 2022 11:19:52 +0000 (13:19 +0200)]
Enforce equal heights of all buttons
See https://www.woltlab.com/community/thread/295373-buttons-unterschiedlich-gro%C3%9F-wenn-pagination-aktiv/
Alexander Ebert [Tue, 26 Apr 2022 11:15:54 +0000 (13:15 +0200)]
Rephrased the button to set up notifications
See https://www.woltlab.com/community/thread/295368-desktop-benachrichtigungen-aktivieren-pr%C3%A4ferenzen-festlegen-falsch/
Tim Düsterhus [Tue, 26 Apr 2022 08:51:02 +0000 (10:51 +0200)]
Merge pull request #4756 from WoltLab/user-util-is-valid-email
Unify the email validation of UserUtil::isValidEmail() and Mailbox::__construct()
Tim Düsterhus [Tue, 26 Apr 2022 07:08:09 +0000 (09:08 +0200)]
Unify the email validation of UserUtil::isValidEmail() and Mailbox::__construct()
Alexander Ebert [Mon, 25 Apr 2022 17:24:37 +0000 (19:24 +0200)]
Pasting code into a code box caused duplicates
Alexander Ebert [Mon, 25 Apr 2022 16:24:01 +0000 (18:24 +0200)]
Superfluous CSS for dialog alignment
This was supposed to be removed by
8fb8e05c07732280ff5fea3b926b71f35db9b0ff
Alexander Ebert [Mon, 25 Apr 2022 16:15:22 +0000 (18:15 +0200)]
Disable the focus trap before hiding the dialog
See https://www.woltlab.com/community/thread/295337-mobil-thema-bearbeiten-bug/
Alexander Ebert [Mon, 25 Apr 2022 16:12:27 +0000 (18:12 +0200)]
Disable hiding of the user menu on Redactor focus
This change was missing from
106207823daf1b1105afc918fa66718ae70707e2
Alexander Ebert [Mon, 25 Apr 2022 15:35:16 +0000 (17:35 +0200)]
Disable hiding of the user menu on Redactor focus
The behavior was intended to increase the available screen space when the editor is active. However, the height of smartphones has constantly increased, reducing the impact of a couple extra pixels.
The major downside was the focus behavior which is somewhat unintuitive on mobile and has repeatedly caused confusion among users, because the menu was seemingly “lost”.
Alexander Ebert [Mon, 25 Apr 2022 15:16:33 +0000 (17:16 +0200)]
Keep the scrollbar visible while scrolling
See https://www.woltlab.com/community/thread/295349-scrollbar-ohne-hover-nicht-sichtbar-selbst-beim-scrollen/
Alexander Ebert [Mon, 25 Apr 2022 15:12:54 +0000 (17:12 +0200)]
Synchronize the unread indicator on menu close
See https://www.woltlab.com/community/thread/295340-mobiler-hinweis-verschwindet-nicht-direkt-nach-benachrichtigungen-als-gelesen-ma/
Alexander Ebert [Mon, 25 Apr 2022 15:10:46 +0000 (17:10 +0200)]
Use the DOM attribute as notification counter
Alexander Ebert [Mon, 25 Apr 2022 14:49:53 +0000 (16:49 +0200)]
User-friendly messages for network errors
See https://www.woltlab.com/community/thread/295356-load-failed-wenn-keine-netzwerkverbindung-beim-klick-auf-die-benachrichtigungen/
Tim Düsterhus [Mon, 25 Apr 2022 10:52:55 +0000 (12:52 +0200)]
Merge branch '5.4'
Sascha Greuel [Mon, 25 Apr 2022 10:32:11 +0000 (12:32 +0200)]
Set explicit `referrerpolicy` for Vimeo embeds
see
936c0f6d5d3f5a811110f7add4fa688a3e9a8377
see https://www.woltlab.com/community/thread/295351/?postID=
1891462#post1891462
Resolves #4755
Tim Düsterhus [Mon, 25 Apr 2022 10:49:48 +0000 (12:49 +0200)]
Set explicit `referrerpolicy` for YouTube embeds
YouTube requires the `Referer` header to be set for (some) embeds to work. By
using the attribute any `referrer-policy` header set on the top level document
is overridden (e.g. `same-origin`).
Co-authored-by: Sascha Greuel <github@1-2.dev>
Tim Düsterhus [Mon, 25 Apr 2022 08:33:34 +0000 (10:33 +0200)]
Fix assertion in TMultiRecipientModerationQueueCommentUserNotificationObjectType
Alexander Ebert [Sun, 24 Apr 2022 13:15:47 +0000 (15:15 +0200)]
Release 5.5.0 Alpha 3
WoltLab [Sun, 24 Apr 2022 13:04:47 +0000 (13:04 +0000)]
Updating minified JavaScript files
Marcel Werk [Sun, 24 Apr 2022 13:02:04 +0000 (15:02 +0200)]
Added standalone button for "mark as read"
Marcel Werk [Sun, 24 Apr 2022 13:01:32 +0000 (15:01 +0200)]
Show notification after "mark as read" is done
Alexander Ebert [Sun, 24 Apr 2022 12:45:58 +0000 (14:45 +0200)]
Skip the notification tab when in maintenance mode
See https://www.woltlab.com/community/thread/295237-leeres-benutzermen%C3%BC-im-wartungsmodus/
Alexander Ebert [Sun, 24 Apr 2022 12:17:43 +0000 (14:17 +0200)]
Improves visuals when marking user menu items read
See https://www.woltlab.com/community/thread/295256-mobiles-als-gelesen-markieren-von-benachrichtigungen-schlecht-erkenntlich-und-nu/
Alexander Ebert [Sun, 24 Apr 2022 12:12:19 +0000 (14:12 +0200)]
Incorrect selector target
Alexander Ebert [Sat, 23 Apr 2022 18:20:46 +0000 (20:20 +0200)]
Moved the page menu item counter to the text
Alexander Ebert [Sat, 23 Apr 2022 18:15:28 +0000 (20:15 +0200)]
Additional indicator for the active page menu
Marcel Werk [Sat, 23 Apr 2022 17:01:01 +0000 (19:01 +0200)]
Fixed code style
Alexander Ebert [Sat, 23 Apr 2022 16:08:39 +0000 (18:08 +0200)]
Unused import
Marcel Werk [Sat, 23 Apr 2022 13:19:37 +0000 (15:19 +0200)]
Merge branch 'master' of https://github.com/WoltLab/WCF
Marcel Werk [Sat, 23 Apr 2022 13:19:35 +0000 (15:19 +0200)]
Wrapping of the pagination prevented
Marcel Werk [Sat, 23 Apr 2022 13:08:29 +0000 (15:08 +0200)]
Fixed margins when pagination top was hidden
Marcel Werk [Sat, 23 Apr 2022 12:15:14 +0000 (14:15 +0200)]
Unified code of content header / footer navigation
Alexander Ebert [Sat, 23 Apr 2022 12:12:09 +0000 (14:12 +0200)]
Do not focus the search suggestions automatically
This interferes with the ability to enter a search term that is similar to a suggestion. Pressing enter would cause the suggestion to be filed in instead of submitting the value as-is.
Alexander Ebert [Sat, 23 Apr 2022 12:08:54 +0000 (14:08 +0200)]
Selecting a search suggestion discarded the search
See https://www.woltlab.com/community/thread/295268-suchfunktion-teilweise-umst%C3%A4ndlich/
Alexander Ebert [Fri, 22 Apr 2022 16:11:11 +0000 (18:11 +0200)]
Superfluous whitespace
Alexander Ebert [Fri, 22 Apr 2022 16:01:37 +0000 (18:01 +0200)]
Restore the user menu DOM on close
See https://www.woltlab.com/community/thread/295304-kontrollzentrum-nicht-mehr-anklickbar-nach-wechsel-der-aufl%C3%B6sung/
Alexander Ebert [Fri, 22 Apr 2022 15:16:55 +0000 (17:16 +0200)]
Exclude the macOS emoji keyboard from keypresses
See https://www.woltlab.com/community/thread/295207-hotkey-f%C3%BCr-emoji-men%C3%BC-funktioniert-im-editor-nicht/
Alexander Ebert [Fri, 22 Apr 2022 15:10:25 +0000 (17:10 +0200)]
Incorrect selection when submitting editor dialogs
Fixes #4747
Tim Düsterhus [Fri, 22 Apr 2022 14:13:42 +0000 (16:13 +0200)]
Update fileDelete.xml to remove files where only the case changed
It is not guaranteed that new file case was successfully applied on case
insensitive file system, so these files might be deleted even with the
fileDelete PIP verifying the actual casing since
49c488354f3fd5b02a851a48d912d6aad3601161.
Remove those files from fileDelete.xml to be on the safe side. This is no
longer easily doable with bash only. The following PHP script was used to
generate fileDelete.xml:
<?php
\exec(<<<'EOT'
git log --root --diff-filter=D --no-renames --summary |awk '/delete mode/{print $NF}' |grep wcfsetup/install/files/ |sort -u
EOT, $delete);
\exec(<<<'EOT'
find wcfsetup/install/files/ |sort -u
EOT, $preserve);
$preserve = \array_map('strtolower', $preserve);
$delete = \array_filter($delete, static function ($file) use ($preserve) {
return !\in_array(\strtolower($file), $preserve);
});
echo <<<'EOT'
<?xml version="1.0" encoding="UTF-8"?>
<data xmlns="http://www.woltlab.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.woltlab.com http://www.woltlab.com/XSD/2019/fileDelete.xsd">
<delete>
<!-- Special files -->
<file>acp/masterPassword.inc.php</file>
<!-- /Special files -->
EOT, "\n";
echo \implode("\n", \array_map(static function ($file) {
$file = \preg_replace('/^wcfsetup\\/install\\/files\\//', '', $file);
return "\t\t<file>{$file}</file>";
}, $delete))."\n";
echo <<<'EOT'
</delete>
</data>
EOT, "\n";
Tim Düsterhus [Fri, 22 Apr 2022 13:26:54 +0000 (15:26 +0200)]
Merge branch '5.4'
Tim Düsterhus [Fri, 22 Apr 2022 13:26:13 +0000 (15:26 +0200)]
Remove reference to CONTRIBUTING.md from README.md
see
5d7b7d602e0f6efb077bffda4b3ecceed8534810
Marcel Werk [Thu, 21 Apr 2022 15:28:08 +0000 (17:28 +0200)]
Added global language variable for "mark as read" buttons
Marcel Werk [Thu, 21 Apr 2022 13:26:24 +0000 (15:26 +0200)]
Button label optimized
Alexander Ebert [Thu, 21 Apr 2022 13:14:06 +0000 (15:14 +0200)]
Merge branch '5.4'
Alexander Ebert [Thu, 21 Apr 2022 13:12:48 +0000 (15:12 +0200)]
Detect italic/underline text pasted from Google Docs
Marcel Werk [Thu, 21 Apr 2022 09:33:12 +0000 (11:33 +0200)]
Pagination of search results was not accessible for guests
Closes #4749
Marcel Werk [Wed, 20 Apr 2022 20:19:21 +0000 (22:19 +0200)]
Individual sorting of search results had no effect
Alexander Ebert [Wed, 20 Apr 2022 16:06:39 +0000 (18:06 +0200)]
Release 5.5.0 Alpha 2
WoltLab [Wed, 20 Apr 2022 16:05:32 +0000 (16:05 +0000)]
Updating minified JavaScript files
Alexander Ebert [Wed, 20 Apr 2022 15:28:12 +0000 (17:28 +0200)]
Incorrect focus/scroll management on iOS
See https://www.woltlab.com/community/thread/295245-antworten-button-springt-zum-footer/
Alexander Ebert [Wed, 20 Apr 2022 14:05:36 +0000 (16:05 +0200)]
Incorrect DOM behavior of `dboAction`
The invocation of the `DomChangeListener` does not make any sense any more, because the API is designed to be asynchronous. The caller must take care of this themselves.
Alexander Ebert [Wed, 20 Apr 2022 13:29:23 +0000 (15:29 +0200)]
Merge pull request #4746 from WoltLab/55-user-menu-settings
Cleaned up the user menu, extra profile link
Alexander Ebert [Wed, 20 Apr 2022 13:21:35 +0000 (15:21 +0200)]
Inconsistent layout of multiline text
Alexander Ebert [Wed, 20 Apr 2022 13:05:51 +0000 (15:05 +0200)]
Cleaned up the user menu, extra profile link
Alexander Ebert [Wed, 20 Apr 2022 12:21:34 +0000 (14:21 +0200)]
Merge pull request #4744 from WoltLab/deprecate-fetchRemoteAvatar
Deprecate UserAvatarAction::fetchRemoteAvatar()
Tim Düsterhus [Wed, 20 Apr 2022 10:56:56 +0000 (12:56 +0200)]
Deprecate UserAvatarAction::fetchRemoteAvatar()
Tim Düsterhus [Wed, 20 Apr 2022 10:53:58 +0000 (12:53 +0200)]
Add `@since` to UserProfileAction::setAvatar()
see
7448a453886e504eaa1d70e8a39bbb1fad14dd42
see #4583
Marcel Werk [Wed, 20 Apr 2022 09:17:27 +0000 (11:17 +0200)]
Fetching a remote avatar didn't work if user doesn't have to permission to upload avatars
Tim Düsterhus [Tue, 19 Apr 2022 13:49:35 +0000 (15:49 +0200)]
Properly check permissions for the `systemIdMismatch` message in acp/index.tpl
Alexander Ebert [Tue, 19 Apr 2022 12:37:48 +0000 (14:37 +0200)]
Merge pull request #4739 from SoftCreatR/patch-4
Remove cursive font in quotes