GitHub/WoltLab/WCF.git
4 years agoFix validating style when editing users in ACP
Matthias Schmidt [Thu, 2 Jul 2020 17:03:19 +0000 (19:03 +0200)]
Fix validating style when editing users in ACP

See #3254

4 years agoMerge branch '5.2'
Matthias Schmidt [Thu, 2 Jul 2020 16:46:40 +0000 (18:46 +0200)]
Merge branch '5.2'

4 years agoAdd missing closing quotation mark in English language item
Matthias Schmidt [Thu, 2 Jul 2020 16:46:13 +0000 (18:46 +0200)]
Add missing closing quotation mark in English language item

4 years agoCorrectly handle non-numeric exception codes in core.functions.php
Tim Düsterhus [Thu, 2 Jul 2020 13:32:19 +0000 (15:32 +0200)]
Correctly handle non-numeric exception codes in core.functions.php

Database exceptions use the SQLSTATE as the error code. SQLSTATEs can
contains letters.

4 years agoMerge pull request #3421 from WoltLab/void-pip
Tim Düsterhus [Thu, 2 Jul 2020 11:57:42 +0000 (13:57 +0200)]
Merge pull request #3421 from WoltLab/void-pip

Add <void/> instruction

4 years agoMerge branch '5.2'
Tim Düsterhus [Thu, 2 Jul 2020 11:43:15 +0000 (13:43 +0200)]
Merge branch '5.2'

4 years agoMerge pull request #3413 from WoltLab/existingMapping
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

4 years agoUpdating minified JavaScript files
woltlab.com [Thu, 2 Jul 2020 10:32:06 +0000 (10:32 +0000)]
Updating minified JavaScript files

4 years agoMerge branch '5.2'
Tim Düsterhus [Thu, 2 Jul 2020 09:56:13 +0000 (11:56 +0200)]
Merge branch '5.2'

4 years agoFix formatting of text/plain notifications
Tim Düsterhus [Thu, 2 Jul 2020 09:55:33 +0000 (11:55 +0200)]
Fix formatting of text/plain notifications

see #325

4 years agoMerge pull request #3424 from WoltLab/resizer-strip-exif
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

4 years agoStrip 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.

4 years agoFix formatting of wcf.acp.user.activation.mail.plaintext
Tim Düsterhus [Thu, 2 Jul 2020 09:16:59 +0000 (11:16 +0200)]
Fix formatting of wcf.acp.user.activation.mail.plaintext

4 years agoFix layout of text/plain version of userRegistration notification mail
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.

4 years agoMerge pull request #3423 from WoltLab/deprecate-uploadhandler-isimage
Joshua Rüsweg [Thu, 2 Jul 2020 07:52:35 +0000 (09:52 +0200)]
Merge pull request #3423 from WoltLab/deprecate-uploadhandler-isimage

Deprecation of UploadHandler::isValidImage()

4 years agoMerge branch '5.2'
joshuaruesweg [Wed, 1 Jul 2020 19:52:08 +0000 (21:52 +0200)]
Merge branch '5.2'

4 years agoSimplify checking of existing of conditions on revoking trophies
joshuaruesweg [Wed, 1 Jul 2020 19:51:20 +0000 (21:51 +0200)]
Simplify checking of existing of conditions on revoking trophies
See #3422

4 years agoIncorrect check for legacy attachment dimensions
Alexander Ebert [Wed, 1 Jul 2020 19:16:26 +0000 (21:16 +0200)]
Incorrect check for legacy attachment dimensions

4 years agoDeprecation of UploadHandler::isValidImage()
joshuaruesweg [Wed, 1 Jul 2020 19:09:52 +0000 (21:09 +0200)]
Deprecation of UploadHandler::isValidImage()
Resolves #3380

4 years agoMerge branch '5.2'
joshuaruesweg [Wed, 1 Jul 2020 18:44:58 +0000 (20:44 +0200)]
Merge branch '5.2'

4 years agoFix revoking trophies w/o conditions yield an SQL error
joshuaruesweg [Wed, 1 Jul 2020 18:44:14 +0000 (20:44 +0200)]
Fix revoking trophies w/o conditions yield an SQL error
Fixes #3422

4 years agoAdd <void/> instruction
Tim Düsterhus [Wed, 1 Jul 2020 12:30:10 +0000 (14:30 +0200)]
Add <void/> instruction

The <void/> instruction may only be used during updates and only when no
other package installation plugin is used. It will result in a noop
when running the upgrade, allowing an upgrade to adjust package metadata
without actually changing anything.

Example usage:

<instructions type="update" fromversion="*">
<void/>
</instructions>

Resolves #3411

4 years agoMerge branch '5.2'
Tim Düsterhus [Wed, 1 Jul 2020 10:59:18 +0000 (12:59 +0200)]
Merge branch '5.2'

4 years agoMerge branch '3.1' into 5.2
Alexander Ebert [Wed, 1 Jul 2020 09:15:46 +0000 (11:15 +0200)]
Merge branch '3.1' into 5.2

4 years agoMerge pull request #3418 from WoltLab/cronjob-fix
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

4 years agoMerge pull request #3416 from WoltLab/upload-acceptable
Tim Düsterhus [Tue, 30 Jun 2020 20:34:51 +0000 (22:34 +0200)]
Merge pull request #3416 from WoltLab/upload-acceptable

Allow specifying allowed file extensions for form builder's UploadFormField

4 years agoSupport setting user's style when editing user in ACP
Matthias Schmidt [Tue, 30 Jun 2020 16:10:50 +0000 (18:10 +0200)]
Support setting user's style when editing user in ACP

Close #3254

4 years agoGet rid of useless class attribute CronjobScheduler::$cronjobEditors
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.

4 years agoFix detection of stuck cronjobs
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.

4 years agoImprove error message for stuck cronjobs
Tim Düsterhus [Tue, 30 Jun 2020 12:07:51 +0000 (14:07 +0200)]
Improve error message for stuck cronjobs

4 years agoUse consistent wording 'acceptable' in Upload.js
Tim Düsterhus [Tue, 30 Jun 2020 09:47:51 +0000 (11:47 +0200)]
Use consistent wording 'acceptable' in Upload.js

4 years agoAdd support for acceptable types to UploadFormField of form builder
Tim Düsterhus [Tue, 30 Jun 2020 09:27:58 +0000 (11:27 +0200)]
Add support for acceptable types to UploadFormField of form builder

Resolves #3414

4 years agoAdd support for acceptable types to lib/system/file/upload/ functionality
Tim Düsterhus [Tue, 30 Jun 2020 09:27:19 +0000 (11:27 +0200)]
Add support for acceptable types to lib/system/file/upload/ functionality

see #3414

4 years agoAdd support for acceptable types to WoltLabSuite/Core/Upload
Tim Düsterhus [Tue, 30 Jun 2020 09:26:46 +0000 (11:26 +0200)]
Add support for acceptable types to WoltLabSuite/Core/Upload

see #3414

4 years agoMerge branch 'registerActivationMethodByUserAndAdmin'
joshuaruesweg [Mon, 29 Jun 2020 20:01:58 +0000 (22:01 +0200)]
Merge branch 'registerActivationMethodByUserAndAdmin'

4 years agoMerge pull request #3323 from WoltLab/registerActivationMethodByUserAndAdmin
Joshua Rüsweg [Mon, 29 Jun 2020 19:59:51 +0000 (21:59 +0200)]
Merge pull request #3323 from WoltLab/registerActivationMethodByUserAndAdmin

Register activation method by user and admin

4 years agoImprove wording regarding existing import mapping
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

4 years agoUse `RegisterNewActivationCode` as link for need email confirmation lang var
joshuaruesweg [Mon, 29 Jun 2020 09:49:57 +0000 (11:49 +0200)]
Use `RegisterNewActivationCode` as link for need email confirmation lang var

4 years agoFixed documentation issue
Marcel Werk [Sun, 28 Jun 2020 21:47:01 +0000 (23:47 +0200)]
Fixed documentation issue

4 years agoNew version number: 5.3.0 Alpha 1
Alexander Ebert [Sun, 28 Jun 2020 17:42:14 +0000 (19:42 +0200)]
New version number: 5.3.0 Alpha 1

4 years agoMerge branch '5.2'
Alexander Ebert [Sun, 28 Jun 2020 17:39:37 +0000 (19:39 +0200)]
Merge branch '5.2'

4 years agoMerge pull request #3397 from WoltLab/media-caption-width
Tim Düsterhus [Sun, 28 Jun 2020 15:59:45 +0000 (17:59 +0200)]
Merge pull request #3397 from WoltLab/media-caption-width

Limit media images' caption size to image width

4 years agoMerge pull request #3396 from WoltLab/composer-deps
Tim Düsterhus [Sun, 28 Jun 2020 15:59:02 +0000 (17:59 +0200)]
Merge pull request #3396 from WoltLab/composer-deps

Update composer dependencies

4 years agoMerge pull request #3409 from WoltLab/php8-handleError
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()

4 years agoFix 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:

4 years agoMerge branch '5.2'
Matthias Schmidt [Sun, 28 Jun 2020 12:36:05 +0000 (14:36 +0200)]
Merge branch '5.2'

4 years agoMerge branch '3.1' into 5.2
Matthias Schmidt [Sun, 28 Jun 2020 12:35:49 +0000 (14:35 +0200)]
Merge branch '3.1' into 5.2

4 years agoHide empty tag box on tagged page
Matthias Schmidt [Sun, 28 Jun 2020 12:35:35 +0000 (14:35 +0200)]
Hide empty tag box on tagged page

4 years agoMove sidebar on the TaggedPage to the right
Matthias Schmidt [Sun, 28 Jun 2020 12:30:40 +0000 (14:30 +0200)]
Move sidebar on the TaggedPage to the right

Close  #3377

4 years agoMerge branch '5.2'
Matthias Schmidt [Sat, 27 Jun 2020 16:23:19 +0000 (18:23 +0200)]
Merge branch '5.2'

4 years agoFix validation of url form field value
Matthias Schmidt [Sat, 27 Jun 2020 16:22:46 +0000 (18:22 +0200)]
Fix validation of url form field value

Close #3390

4 years agoRelease 5.2.7 5.2.7
Alexander Ebert [Sat, 27 Jun 2020 12:10:30 +0000 (14:10 +0200)]
Release 5.2.7

4 years agoUpdating minified JavaScript files
woltlab.com [Sat, 27 Jun 2020 11:45:51 +0000 (11:45 +0000)]
Updating minified JavaScript files

4 years agoMerge branch '3.1' into 5.2
Alexander Ebert [Sat, 27 Jun 2020 11:43:48 +0000 (13:43 +0200)]
Merge branch '3.1' into 5.2

4 years agoMerge pull request #3374 from WoltLab/exception-log-dedup
Tim Düsterhus [Sat, 27 Jun 2020 11:03:55 +0000 (13:03 +0200)]
Merge pull request #3374 from WoltLab/exception-log-dedup

Deduplicate Exceptions in ExceptionLogView

4 years agoRelease 3.1.15 3.1.15
Alexander Ebert [Sat, 27 Jun 2020 10:54:23 +0000 (12:54 +0200)]
Release 3.1.15

4 years agoUpdating minified JavaScript files
woltlab.com [Sat, 27 Jun 2020 09:58:45 +0000 (09:58 +0000)]
Updating minified JavaScript files

4 years agoMerge branch '3.0' into 3.1
Alexander Ebert [Sat, 27 Jun 2020 09:56:53 +0000 (11:56 +0200)]
Merge branch '3.0' into 3.1

4 years agoPreparing the release 3.0.25 3.0.25
Alexander Ebert [Sat, 27 Jun 2020 09:52:48 +0000 (11:52 +0200)]
Preparing the release 3.0.25

4 years agoRevert "Preparing the release 3.1.15"
Alexander Ebert [Sat, 27 Jun 2020 09:51:15 +0000 (11:51 +0200)]
Revert "Preparing the release 3.1.15"

This reverts commit bd4d9de5fc28d17643c109fc87ae88f2d9265817.

4 years agoPreparing the release 3.1.15
Alexander Ebert [Sat, 27 Jun 2020 09:50:30 +0000 (11:50 +0200)]
Preparing the release 3.1.15

4 years agoIncorrect encoding of conditions
Alexander Ebert [Sat, 27 Jun 2020 09:41:29 +0000 (11:41 +0200)]
Incorrect encoding of conditions

4 years agoMerge branch '3.0' into 3.1
Alexander Ebert [Sat, 27 Jun 2020 09:40:49 +0000 (11:40 +0200)]
Merge branch '3.0' into 3.1

4 years agoIncorrect encoding of conditions
Alexander Ebert [Sat, 27 Jun 2020 09:39:05 +0000 (11:39 +0200)]
Incorrect encoding of conditions

4 years agoMerge branch '5.2'
Matthias Schmidt [Sat, 27 Jun 2020 05:51:16 +0000 (07:51 +0200)]
Merge branch '5.2'

4 years agoFix checking current value of radio button form fields
Matthias Schmidt [Sat, 27 Jun 2020 05:51:02 +0000 (07:51 +0200)]
Fix checking current value of radio button form fields

4 years agoMerge branch '5.2'
Tim Düsterhus [Fri, 26 Jun 2020 14:14:22 +0000 (16:14 +0200)]
Merge branch '5.2'

4 years agoWhitelist `parse_url` in enterprise mode
Tim Düsterhus [Fri, 26 Jun 2020 14:13:55 +0000 (16:13 +0200)]
Whitelist `parse_url` in enterprise mode

4 years agoLimit media images' caption size to image width
Tim Düsterhus [Fri, 26 Jun 2020 11:40:10 +0000 (13:40 +0200)]
Limit media images' caption size to image width

Resolves #3228

4 years agoUpdate composer dependencies
Tim Düsterhus [Fri, 26 Jun 2020 10:16:26 +0000 (12:16 +0200)]
Update composer dependencies

4 years agoMerge pull request #3385 from WoltLab/amp-ext-img
Marcel Werk [Thu, 25 Jun 2020 11:00:52 +0000 (13:00 +0200)]
Merge pull request #3385 from WoltLab/amp-ext-img

Output external images with unknown dimensions in AMP pages

4 years agoOutput external images with unknown dimensions in AMP pages
Tim Düsterhus [Thu, 25 Jun 2020 09:47:19 +0000 (11:47 +0200)]
Output external images with unknown dimensions in AMP pages

The `layout="fill"` attribute allows to embed an `<amp-img>` with unknown
dimensions. This comes with the drawback that the image will stretch as
far as possible, not maintaining the aspect-ratio and taking up the whole
page.

To solve this a container with known dimensions needs to be put around it
and the `<img>` within needs to have the `object-fit: contain` property.
This property will contain the image within the container while maintaining
aspect ratio at the drawback that the empty space of the container will be
filled with void.

This container was selected to be a 16:9 aspect ratio, with a size of
384×216 Pixels (one fifth of Full HD in each dimension), hopefully
minimizing the void on common image formats.

The resulting AMP was checked against the AMP validator and passed.

Fixes #3264

4 years agoMerge branch '5.2'
Marcel Werk [Thu, 25 Jun 2020 09:04:21 +0000 (11:04 +0200)]
Merge branch '5.2'

4 years agoMerge branch '3.1' into 5.2
Marcel Werk [Thu, 25 Jun 2020 09:04:07 +0000 (11:04 +0200)]
Merge branch '3.1' into 5.2

4 years agoFixed 'data too long for column username' issue
Marcel Werk [Thu, 25 Jun 2020 09:03:06 +0000 (11:03 +0200)]
Fixed 'data too long for column username' issue

4 years agoFix leaking globals
joshuaruesweg [Wed, 24 Jun 2020 19:26:26 +0000 (21:26 +0200)]
Fix leaking globals

4 years agoMerge pull request #3383 from WoltLab/audio-attachment
Joshua Rüsweg [Wed, 24 Jun 2020 18:39:08 +0000 (20:39 +0200)]
Merge pull request #3383 from WoltLab/audio-attachment

Add audio player for embedded audio attachments

4 years agoAdd audio player for embedded audio attachments
joshuaruesweg [Wed, 24 Jun 2020 18:11:37 +0000 (20:11 +0200)]
Add audio player for embedded audio attachments
Closes #3231

4 years agoMerge pull request #3372 from WoltLab/video-attachment-rework
Joshua Rüsweg [Wed, 24 Jun 2020 17:34:10 +0000 (19:34 +0200)]
Merge pull request #3372 from WoltLab/video-attachment-rework

Improve layout for embedded videos in ugc

4 years agoMerge branch 'master'
joshuaruesweg [Wed, 24 Jun 2020 17:26:05 +0000 (19:26 +0200)]
Merge branch 'master'

4 years agoMerge pull request #3358 from WoltLab/user-profile-special-trophies
Marcel Werk [Wed, 24 Jun 2020 16:04:28 +0000 (18:04 +0200)]
Merge pull request #3358 from WoltLab/user-profile-special-trophies

Indicate the existance of further trophies in special trophy list on …

4 years agoReverted changes to UserProfile::getSpecialTrophies()
Marcel Werk [Wed, 24 Jun 2020 16:01:31 +0000 (18:01 +0200)]
Reverted changes to UserProfile::getSpecialTrophies()

4 years agoUpdate com.woltlab.wcf/templates/user.tpl
Marcel Werk [Wed, 24 Jun 2020 15:54:07 +0000 (17:54 +0200)]
Update com.woltlab.wcf/templates/user.tpl

Co-authored-by: Alexander Ebert <ebert@woltlab.com>
4 years agoFix JavaScript error for ACL form fields in non-ajax forms
Matthias Schmidt [Wed, 24 Jun 2020 15:40:43 +0000 (17:40 +0200)]
Fix JavaScript error for ACL form fields in non-ajax forms

See 6cce1152a855f636ac22689cbf531f3928f97506

4 years agoMerge branch '5.2'
Matthias Schmidt [Wed, 24 Jun 2020 15:21:30 +0000 (17:21 +0200)]
Merge branch '5.2'

4 years agoMerge branch '5.2' of github.com:WoltLab/WCF into 5.2
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

4 years agoCheck for missing length of varchar columns
Matthias Schmidt [Wed, 24 Jun 2020 15:21:02 +0000 (17:21 +0200)]
Check for missing length of varchar columns

4 years agoFix updating decimal fields with default value (#3382)
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.

4 years agoMerge pull request #3375 from WoltLab/notification-settings
Alexander Ebert [Wed, 24 Jun 2020 15:08:55 +0000 (17:08 +0200)]
Merge pull request #3375 from WoltLab/notification-settings

New UI for the notification settings

4 years agoVisually disable the email settings for suppressed notifications
Alexander Ebert [Tue, 23 Jun 2020 18:32:50 +0000 (20:32 +0200)]
Visually disable the email settings for suppressed notifications

4 years agoRefresh the aria label when the tooltip value is updated
Alexander Ebert [Tue, 23 Jun 2020 17:54:55 +0000 (19:54 +0200)]
Refresh the aria label when the tooltip value is updated

4 years agoDisplay a tooltip for the currently selected email type
Alexander Ebert [Tue, 23 Jun 2020 17:54:25 +0000 (19:54 +0200)]
Display a tooltip for the currently selected email type

4 years agoMissing phrases for the column heads
Alexander Ebert [Tue, 23 Jun 2020 16:53:18 +0000 (18:53 +0200)]
Missing phrases for the column heads

4 years agoNew UI for the notification settings
Alexander Ebert [Tue, 23 Jun 2020 16:49:08 +0000 (18:49 +0200)]
New UI for the notification settings

4 years agoMerge branch '5.2'
Marcel Werk [Tue, 23 Jun 2020 15:39:05 +0000 (17:39 +0200)]
Merge branch '5.2'

4 years agoMerge branch '3.1' into 5.2
Marcel Werk [Tue, 23 Jun 2020 15:38:51 +0000 (17:38 +0200)]
Merge branch '3.1' into 5.2

4 years agoArticle image did not always have the right content language
Marcel Werk [Tue, 23 Jun 2020 15:37:07 +0000 (17:37 +0200)]
Article image did not always have the right content language

4 years agoCollapse duplicated exceptions on ExceptionLogViewPage
Tim Düsterhus [Tue, 23 Jun 2020 14:18:11 +0000 (16:18 +0200)]
Collapse duplicated exceptions on ExceptionLogViewPage

Closes #3044

4 years agoAdd stackHash to ExceptionLogUtil
Tim Düsterhus [Tue, 23 Jun 2020 14:17:56 +0000 (16:17 +0200)]
Add stackHash to ExceptionLogUtil

4 years agoMerge branch '5.2'
Marcel Werk [Tue, 23 Jun 2020 10:05:19 +0000 (12:05 +0200)]
Merge branch '5.2'