Tim Düsterhus [Fri, 3 Jul 2020 14:46:26 +0000 (16:46 +0200)]
Properly support multiple instances of WoltLabSuite/Core/Ui/ItemList/User
WoltLabSuite/Core/Ui/ItemList/User is a singleton and thus only has a single
instance of each object member. This lead to the `_shadowGroups` value being
fixed to the first input used.
Move the `_shadowGroups` into the existing `data` object (where the regular
`shadow` resides) to fix this issue.
Introduced in
8faf6ea10ac894b87b3e357f5248f67b4fd7b716.
Fixes #3433.
Tim Düsterhus [Fri, 3 Jul 2020 13:55:33 +0000 (15:55 +0200)]
Merge branch '3.1' into 5.2
Tim Düsterhus [Fri, 3 Jul 2020 13:53:39 +0000 (15:53 +0200)]
Merge pull request #3432 from WoltLab/linked-blocked-img
Fix markup for linked, blocked images in UGC
Tim Düsterhus [Fri, 3 Jul 2020 13:10:38 +0000 (15:10 +0200)]
Fix markup for linked, blocked images in UGC
Fixes #3384
Matthias Schmidt [Thu, 2 Jul 2020 16:46:13 +0000 (18:46 +0200)]
Add missing closing quotation mark in English language item
Alexander Ebert [Thu, 2 Jul 2020 11:20:39 +0000 (13:20 +0200)]
Merge pull request #3413 from WoltLab/existingMapping
Improve wording regarding existing import mapping
woltlab.com [Thu, 2 Jul 2020 10:32:06 +0000 (10:32 +0000)]
Updating minified JavaScript files
Tim Düsterhus [Thu, 2 Jul 2020 09:55:33 +0000 (11:55 +0200)]
Fix formatting of text/plain notifications
see #325
Tim Düsterhus [Thu, 2 Jul 2020 09:44:58 +0000 (11:44 +0200)]
Merge pull request #3424 from WoltLab/resizer-strip-exif
Strip exif information from loaded image in Resizer#loadFile
Tim Düsterhus [Thu, 2 Jul 2020 08:11:59 +0000 (10:11 +0200)]
Strip exif information from loaded image in Resizer#loadFile
Modern browsers take the Exif orientation into account when showing a JPEG
within an HTMLImageElement. Unfortunately this orientation is not only
visual, but extends to the blob received when reading this image into a
canvas.
The JavaScript based image resizer using within the attachment system takes
care reinsert the original Exif data after fetching the resized blob from
pica.js.
This causes the image to be reoriented multiple times, ultimately leading
to an incorrectly oriented image:
1. The browser rotates the image.
2. The server rotates the image again, because the original Exif information
has been preserved.
To fix this issue we strip the Exif information before handing the blob over
to the HTMLImageElement, forcing the browser to use the raw pixels instead
of pretending to be smart. When the Exif information is reinserted after
resizing the image that will be uploaded will then be reoriented only once:
On the server.
During fixing of this bug it was also investigated whether one can find out
whether the browser reoriented the image, it looks like one cannot. It was
also tested whether setting `image-orientation: none` will have any effect.
It only has in Firefox: When image-orientation: none is set you will get
the behavior as if no Exif information is present.
In Chrome the source image will not be be reoriented when rendered inside
of the DOM. Reading the pixel values however still returns the reoriented
garbage.
Thus stripping the exif information is the best solution to combat web
browsers attempting to be smart. Unfortunately it comes with an increased
processing requirement, because the raw blob (possible multiple megabytes)
will need to be processed to strip the Exif data.
Tim Düsterhus [Thu, 2 Jul 2020 09:16:59 +0000 (11:16 +0200)]
Fix formatting of wcf.acp.user.activation.mail.plaintext
Tim Düsterhus [Thu, 2 Jul 2020 09:00:18 +0000 (11:00 +0200)]
Fix layout of text/plain version of userRegistration notification mail
Whitespace is significant within the text/plain version, thus remove the
tabs like within all the other notifications.
joshuaruesweg [Wed, 1 Jul 2020 19:51:20 +0000 (21:51 +0200)]
Simplify checking of existing of conditions on revoking trophies
See #3422
Alexander Ebert [Wed, 1 Jul 2020 19:16:26 +0000 (21:16 +0200)]
Incorrect check for legacy attachment dimensions
joshuaruesweg [Wed, 1 Jul 2020 18:44:14 +0000 (20:44 +0200)]
Fix revoking trophies w/o conditions yield an SQL error
Fixes #3422
Alexander Ebert [Wed, 1 Jul 2020 09:15:46 +0000 (11:15 +0200)]
Merge branch '3.1' into 5.2
Alexander Ebert [Wed, 1 Jul 2020 09:15:01 +0000 (11:15 +0200)]
Merge pull request #3418 from WoltLab/cronjob-fix
Fix detection of stuck cronjobs
Tim Düsterhus [Tue, 30 Jun 2020 12:16:42 +0000 (14:16 +0200)]
Get rid of useless class attribute CronjobScheduler::$cronjobEditors
Just use a simple return value here. It avoids having to carefully manage
class state.
Tim Düsterhus [Tue, 30 Jun 2020 12:15:03 +0000 (14:15 +0200)]
Fix detection of stuck cronjobs
Consider the following scenario:
A cronjob is scheduled to run `0 * * * *` (i.e. every hour). The cronjob
successfully executes it's 23:00 execution belated on 23:30. Then the
nextExec will be 00:00. afterNextExec will be 01:00.
During night time nothing happens within the community, until at 05:xx when
the first user wakes up and opens their web browser. It restores two tabs
with our community and fetches them. Now the following will happen:
1. Request 1: Notices that the cronjob is due (00:00 < 05:xx). Setting
the cronjob's state to pending and starting execution.
2. Request 2: Notices that the cronjob is overdue (01:00 < 05:xx,
state = pending). Logging an error about a stuck job and
setting the cronjob's state to ready.
3. Request 1: Finishes executing the cronjob and updates nextExec = 06:00,
afterNextExec = 07:00, also setting the cronjob's state to
ready.
Fix this issue by updating the times for the next executions together with
the update of the state in a single database query / transaction. This will
prevent other requests from seeing the cronjob with state = pending or
state = executing and an way outdated date.
A side effect of this change is that cronjobs will match the intended
schedule better.
Consider the following:
A cronjob running every minute, taking 5 seconds to execute. The execution
is triggered at 00:00:58. It will finish executing 00:01:03. Previously the
nextExec would be set to 00:02:00, now it will be 00:01:00. Thus the first
request after 00:01:03 (i.e. once the state is set back to ready) will
trigger execution, more closely matching the intended schedule.
Tim Düsterhus [Tue, 30 Jun 2020 12:07:51 +0000 (14:07 +0200)]
Improve error message for stuck cronjobs
Tim Düsterhus [Mon, 29 Jun 2020 15:30:40 +0000 (17:30 +0200)]
Improve wording regarding existing import mapping
Resolves WoltLab/com.woltlab.wcf.exporter#43
Tim Düsterhus [Sun, 28 Jun 2020 14:10:01 +0000 (16:10 +0200)]
Merge pull request #3409 from WoltLab/php8-handleError
Fix PHP 8 compatibility for WCF::handleError()
Tim Düsterhus [Sun, 28 Jun 2020 13:50:05 +0000 (15:50 +0200)]
Fix PHP 8 compatibility for WCF::handleError()
Quoting from the UPGRADING manual (https://github.com/php/php-src/blob/php-8.0.0alpha1/UPGRADING):
> The @ operator will no longer silence fatal errors (E_ERROR, E_CORE_ERROR,
> E_COMPILE_ERROR, E_USER_ERROR, E_RECOVERABLE_ERROR, E_PARSE). Error handlers
> that expect error_reporting to be 0 when @ is used, should be adjusted to
> use a mask check instead:
Matthias Schmidt [Sun, 28 Jun 2020 12:35:49 +0000 (14:35 +0200)]
Merge branch '3.1' into 5.2
Matthias Schmidt [Sun, 28 Jun 2020 12:35:35 +0000 (14:35 +0200)]
Hide empty tag box on tagged page
Matthias Schmidt [Sat, 27 Jun 2020 16:22:46 +0000 (18:22 +0200)]
Fix validation of url form field value
Close #3390
Alexander Ebert [Sat, 27 Jun 2020 12:10:30 +0000 (14:10 +0200)]
Release 5.2.7
woltlab.com [Sat, 27 Jun 2020 11:45:51 +0000 (11:45 +0000)]
Updating minified JavaScript files
Alexander Ebert [Sat, 27 Jun 2020 11:43:48 +0000 (13:43 +0200)]
Merge branch '3.1' into 5.2
Alexander Ebert [Sat, 27 Jun 2020 10:54:23 +0000 (12:54 +0200)]
Release 3.1.15
woltlab.com [Sat, 27 Jun 2020 09:58:45 +0000 (09:58 +0000)]
Updating minified JavaScript files
Alexander Ebert [Sat, 27 Jun 2020 09:56:53 +0000 (11:56 +0200)]
Merge branch '3.0' into 3.1
Alexander Ebert [Sat, 27 Jun 2020 09:52:48 +0000 (11:52 +0200)]
Preparing the release 3.0.25
Alexander Ebert [Sat, 27 Jun 2020 09:51:15 +0000 (11:51 +0200)]
Revert "Preparing the release 3.1.15"
This reverts commit
bd4d9de5fc28d17643c109fc87ae88f2d9265817.
Alexander Ebert [Sat, 27 Jun 2020 09:50:30 +0000 (11:50 +0200)]
Preparing the release 3.1.15
Alexander Ebert [Sat, 27 Jun 2020 09:41:29 +0000 (11:41 +0200)]
Incorrect encoding of conditions
Alexander Ebert [Sat, 27 Jun 2020 09:40:49 +0000 (11:40 +0200)]
Merge branch '3.0' into 3.1
Alexander Ebert [Sat, 27 Jun 2020 09:39:05 +0000 (11:39 +0200)]
Incorrect encoding of conditions
Matthias Schmidt [Sat, 27 Jun 2020 05:51:02 +0000 (07:51 +0200)]
Fix checking current value of radio button form fields
Tim Düsterhus [Fri, 26 Jun 2020 14:13:55 +0000 (16:13 +0200)]
Whitelist `parse_url` in enterprise mode
Marcel Werk [Thu, 25 Jun 2020 09:04:07 +0000 (11:04 +0200)]
Merge branch '3.1' into 5.2
Marcel Werk [Thu, 25 Jun 2020 09:03:06 +0000 (11:03 +0200)]
Fixed 'data too long for column username' issue
Matthias Schmidt [Wed, 24 Jun 2020 15:21:07 +0000 (17:21 +0200)]
Merge branch '5.2' of github.com:WoltLab/WCF into 5.2
Matthias Schmidt [Wed, 24 Jun 2020 15:21:02 +0000 (17:21 +0200)]
Check for missing length of varchar columns
Matthias Schmidt [Wed, 24 Jun 2020 15:12:47 +0000 (17:12 +0200)]
Fix updating decimal fields with default value (#3382)
MySQL stores the default value using the specified number of decimals so that when comparing the existing default value with the new default value, the same format should be used.
Marcel Werk [Tue, 23 Jun 2020 15:38:51 +0000 (17:38 +0200)]
Merge branch '3.1' into 5.2
Marcel Werk [Tue, 23 Jun 2020 15:37:07 +0000 (17:37 +0200)]
Article image did not always have the right content language
Marcel Werk [Tue, 23 Jun 2020 10:03:24 +0000 (12:03 +0200)]
Merge branch '3.1' into 5.2
Marcel Werk [Tue, 23 Jun 2020 10:03:01 +0000 (12:03 +0200)]
Fixed 'Prepared statement contains too many placeholders' error in bulk processing
Marcel Werk [Mon, 22 Jun 2020 22:03:16 +0000 (00:03 +0200)]
Merge branch '3.1' into 5.2
Marcel Werk [Mon, 22 Jun 2020 22:02:56 +0000 (00:02 +0200)]
Message with the content "0" led to empty entries in recent activities
joshuaruesweg [Mon, 22 Jun 2020 14:44:05 +0000 (16:44 +0200)]
Fix broken HTML markup
The video can be placed within normal text (inside `<p>` elements). `<div>` elements are not allowed within `<p>` elements. Because the class `.videoContainer` is already a block element (via CSS), we can easily change the element type to `<span>`, which is allowed inside of `<p>` elements.
Tim Düsterhus [Mon, 22 Jun 2020 11:29:51 +0000 (13:29 +0200)]
Merge pull request #3367 from WoltLab/remotefile-openssl
Stop RemoteFile from swallowing OpenSSL error details
Marcel Werk [Mon, 15 Jun 2020 16:25:01 +0000 (18:25 +0200)]
Merge branch '3.1' into 5.2
Marcel Werk [Mon, 15 Jun 2020 16:22:59 +0000 (18:22 +0200)]
Merge pull request #3368 from WoltLab/twitch-bbcode-fix
Fixed broken twitch bbcode
Marcel Werk [Mon, 15 Jun 2020 16:14:40 +0000 (18:14 +0200)]
Applied code suggestions
Marcel Werk [Sun, 14 Jun 2020 16:32:26 +0000 (18:32 +0200)]
Fixed broken twitch bbcode
Embedding now requires the new 'parent' parameter
Tim Düsterhus [Sat, 13 Jun 2020 11:25:01 +0000 (13:25 +0200)]
Stop RemoteFile from swallowing OpenSSL error details
Fixes #3107
joshuaruesweg [Thu, 11 Jun 2020 19:06:54 +0000 (21:06 +0200)]
Merge branch '3.1' into 5.2
joshuaruesweg [Thu, 11 Jun 2020 19:06:06 +0000 (21:06 +0200)]
Fix sitemaps added multiple times in index file
Marcel Werk [Wed, 10 Jun 2020 18:16:38 +0000 (20:16 +0200)]
Merge branch '3.1' into 5.2
Marcel Werk [Wed, 10 Jun 2020 18:10:23 +0000 (20:10 +0200)]
Fixed bug with multiple comment widgets on a single page
Alexander Ebert [Tue, 9 Jun 2020 12:09:20 +0000 (14:09 +0200)]
Merge branch '3.1' into 5.2
Alexander Ebert [Tue, 9 Jun 2020 12:08:14 +0000 (14:08 +0200)]
Typo
Marcel Werk [Fri, 5 Jun 2020 11:06:12 +0000 (13:06 +0200)]
Removed obsolete code
Alexander Ebert [Fri, 5 Jun 2020 10:45:24 +0000 (12:45 +0200)]
Indirect variable overshadowing
Alexander Ebert [Wed, 3 Jun 2020 16:18:12 +0000 (18:18 +0200)]
Merge branch '3.1' into 5.2
Alexander Ebert [Wed, 3 Jun 2020 16:18:01 +0000 (18:18 +0200)]
Template event for reported user profiles
Alexander Ebert [Wed, 3 Jun 2020 11:42:45 +0000 (13:42 +0200)]
Enable the iOS workaround for misaligned carets for the desktop Safari
Tim Düsterhus [Wed, 3 Jun 2020 11:34:07 +0000 (13:34 +0200)]
Merge pull request #3346 from Krymonota/patch-11
Add doubleval and floatval to enterprise functions
Niklas [Wed, 3 Jun 2020 11:32:34 +0000 (13:32 +0200)]
Add doubleval and floatval to enterprise functions
Tim Düsterhus [Wed, 3 Jun 2020 10:19:54 +0000 (12:19 +0200)]
Merge branch '3.1' into 5.2
Tim Düsterhus [Wed, 3 Jun 2020 10:19:11 +0000 (12:19 +0200)]
Merge branch '3.0' into 3.1
Peter Frühwirt [Wed, 3 Jun 2020 07:19:36 +0000 (09:19 +0200)]
Allow 'current' function in templates in enterprise mode
Resolves #3344
Tim Düsterhus [Tue, 2 Jun 2020 17:02:42 +0000 (19:02 +0200)]
Merge pull request #3342 from Krymonota/remove-obsolete-user-signature-properties
Remove obsolete signature properties documentation
Alexander Ebert [Tue, 2 Jun 2020 15:18:51 +0000 (17:18 +0200)]
Allow changes to the ip address search engine regardless of active logging
Alexander Ebert [Tue, 2 Jun 2020 15:02:45 +0000 (17:02 +0200)]
Ignore double clicks on reaction buttons
Marcel Werk [Mon, 1 Jun 2020 12:02:01 +0000 (14:02 +0200)]
Removed double checking of permissions
joshuaruesweg [Sun, 31 May 2020 18:09:28 +0000 (20:09 +0200)]
Fix marking special trophies as special, if the user which awards the trophy has the trophy awarded
Niklas (Krymonota) [Sat, 30 May 2020 17:31:46 +0000 (19:31 +0200)]
Marcel Werk [Fri, 29 May 2020 18:49:55 +0000 (20:49 +0200)]
Merge branch '3.1' into 5.2
Marcel Werk [Fri, 29 May 2020 18:49:30 +0000 (20:49 +0200)]
Improved notifications for expiring paid subscriptions
woltlab.com [Thu, 28 May 2020 10:44:29 +0000 (10:44 +0000)]
Updating minified JavaScript files
Alexander Ebert [Thu, 28 May 2020 10:42:43 +0000 (12:42 +0200)]
Incorrect fix for the class access
woltlab.com [Thu, 28 May 2020 10:40:00 +0000 (10:40 +0000)]
Updating minified JavaScript files
Alexander Ebert [Thu, 28 May 2020 10:37:56 +0000 (12:37 +0200)]
Accessing the DOM too early in some cases
woltlab.com [Thu, 28 May 2020 10:26:25 +0000 (10:26 +0000)]
Updating minified JavaScript files
Alexander Ebert [Thu, 28 May 2020 10:23:26 +0000 (12:23 +0200)]
Experimental work around for subpixel rendering issues in Microsoft Edge on Chromium
Alexander Ebert [Wed, 27 May 2020 14:09:01 +0000 (16:09 +0200)]
Prevent browsers from filling in username/password on unrelated inputs
Alexander Ebert [Wed, 27 May 2020 09:47:06 +0000 (11:47 +0200)]
Merge pull request #3334 from Krymonota/update-default-cookie-prefix
Update value of the default cookie prefix
Alexander Ebert [Tue, 26 May 2020 22:02:59 +0000 (00:02 +0200)]
Merge branch '3.1' into 5.2
Alexander Ebert [Tue, 26 May 2020 21:59:58 +0000 (23:59 +0200)]
Merge pull request #3337 from Krymonota/patch-10
Log invalid receiver email in PayPal callback
Tim Düsterhus [Tue, 26 May 2020 11:29:41 +0000 (13:29 +0200)]
Guard ENTERPRISE_MODE_DOMAIN_OVERRIDE functionality against PHP_SAPI !== 'cli'
Marcel Werk [Tue, 26 May 2020 10:33:01 +0000 (12:33 +0200)]
Merge branch '3.1' into 5.2
Marcel Werk [Tue, 26 May 2020 10:32:45 +0000 (12:32 +0200)]
Fixed issue caused by an invalid default value for date user options
joshuaruesweg [Tue, 26 May 2020 09:31:29 +0000 (11:31 +0200)]
Merge branch '3.1' into 5.2
joshuaruesweg [Tue, 26 May 2020 09:29:07 +0000 (11:29 +0200)]
Remove font-size from trophy images
joshuaruesweg [Tue, 26 May 2020 09:10:37 +0000 (11:10 +0200)]
Add missing long class for user trophy description
joshuaruesweg [Tue, 26 May 2020 09:06:10 +0000 (11:06 +0200)]
Merge branch '3.1' into 5.2
joshuaruesweg [Tue, 26 May 2020 09:01:11 +0000 (11:01 +0200)]
Fix symlink issue during synchronisation of file pip