GitHub/WoltLab/WCF.git
3 years agoRelease 5.4.7 RC 1 5.4.7-RC-1 5.4.7_RC_1
Alexander Ebert [Tue, 7 Sep 2021 11:33:58 +0000 (13:33 +0200)]
Release 5.4.7 RC 1

3 years agoMerge branch '5.4' of https://github.com/WoltLab/WCF into 5.4
Alexander Ebert [Tue, 7 Sep 2021 11:32:43 +0000 (13:32 +0200)]
Merge branch '5.4' of https://github.com/WoltLab/WCF into 5.4

3 years agoUpdating minified JavaScript files
WoltLab [Tue, 7 Sep 2021 11:30:44 +0000 (11:30 +0000)]
Updating minified JavaScript files

3 years agoRemoved the upgrade instructions for 5.3.*
Alexander Ebert [Tue, 7 Sep 2021 11:28:49 +0000 (13:28 +0200)]
Removed the upgrade instructions for 5.3.*

This greatly reduces the size of the update packages. Upgrade from 5.3 will still work, but will upgrade to 5.4.6 only and then apply the remaining updates.

3 years agoCheck against the current menu item during editing only
Alexander Ebert [Tue, 7 Sep 2021 11:21:01 +0000 (13:21 +0200)]
Check against the current menu item during editing only

3 years agoMerge branch '5.3' into 5.4
Marcel Werk [Thu, 2 Sep 2021 13:55:21 +0000 (15:55 +0200)]
Merge branch '5.3' into 5.4

3 years agoNew link format for Facebook videos
Marcel Werk [Thu, 2 Sep 2021 13:54:36 +0000 (15:54 +0200)]
New link format for Facebook videos

3 years ago`exif` was not listed as a required extension
Alexander Ebert [Tue, 31 Aug 2021 20:31:14 +0000 (22:31 +0200)]
`exif` was not listed as a required extension

3 years agoTypo (missing comma)
Alexander Ebert [Tue, 31 Aug 2021 20:29:15 +0000 (22:29 +0200)]
Typo (missing comma)

3 years agoMerge pull request #4487 from WoltLab/npm
Alexander Ebert [Tue, 31 Aug 2021 20:04:47 +0000 (22:04 +0200)]
Merge pull request #4487 from WoltLab/npm

Upgrade npm dependencies

3 years agoRelease 5.4.6 5.4.6
Alexander Ebert [Tue, 31 Aug 2021 14:52:04 +0000 (16:52 +0200)]
Release 5.4.6

3 years agoRelease 5.4.5 5.4.5
Alexander Ebert [Tue, 31 Aug 2021 14:33:48 +0000 (16:33 +0200)]
Release 5.4.5

3 years agoRelease 5.4.5
Alexander Ebert [Tue, 31 Aug 2021 14:20:29 +0000 (16:20 +0200)]
Release 5.4.5

3 years agoMerge branch '5.3' into 5.4
Alexander Ebert [Tue, 31 Aug 2021 13:57:40 +0000 (15:57 +0200)]
Merge branch '5.3' into 5.4

3 years agoRelease 5.3.13 5.3.13
Alexander Ebert [Tue, 31 Aug 2021 12:49:21 +0000 (14:49 +0200)]
Release 5.3.13

3 years agoUpdating minified JavaScript files
WoltLab [Tue, 31 Aug 2021 12:35:22 +0000 (12:35 +0000)]
Updating minified JavaScript files

3 years agoMerge branch '5.2' into 5.3
Alexander Ebert [Tue, 31 Aug 2021 12:32:44 +0000 (14:32 +0200)]
Merge branch '5.2' into 5.3

3 years agoRelease 5.2.15 5.2.15
Alexander Ebert [Tue, 31 Aug 2021 11:40:31 +0000 (13:40 +0200)]
Release 5.2.15

3 years agoMerge branch '3.1' into 5.2
Alexander Ebert [Tue, 31 Aug 2021 11:31:31 +0000 (13:31 +0200)]
Merge branch '3.1' into 5.2

3 years agoRelease 3.1.23 3.1.23
Alexander Ebert [Tue, 31 Aug 2021 10:32:33 +0000 (12:32 +0200)]
Release 3.1.23

3 years agoSatisfy eslint
Tim Düsterhus [Mon, 30 Aug 2021 10:33:04 +0000 (12:33 +0200)]
Satisfy eslint

3 years agoRun prettier
Tim Düsterhus [Mon, 30 Aug 2021 10:08:35 +0000 (12:08 +0200)]
Run prettier

3 years agoUpgrade TypeScript
Tim Düsterhus [Mon, 30 Aug 2021 09:50:56 +0000 (11:50 +0200)]
Upgrade TypeScript

3 years agoUpdate all npm dependendencies except TypeScript itself
Tim Düsterhus [Mon, 30 Aug 2021 09:48:16 +0000 (11:48 +0200)]
Update all npm dependendencies except TypeScript itself

3 years agoRelease 5.4.5 RC 1 5.4.5_RC_1
Alexander Ebert [Fri, 27 Aug 2021 10:43:18 +0000 (12:43 +0200)]
Release 5.4.5 RC 1

3 years agoUpdating minified JavaScript files
WoltLab [Fri, 27 Aug 2021 09:38:25 +0000 (09:38 +0000)]
Updating minified JavaScript files

3 years agoAdd placeholder to the 'path' input in DevtoolsProjectAddForm
Tim Düsterhus [Fri, 27 Aug 2021 09:26:53 +0000 (11:26 +0200)]
Add placeholder to the 'path' input in DevtoolsProjectAddForm

3 years agoAdd description to the path input in DevtoolsProjectAddForm
Tim Düsterhus [Fri, 27 Aug 2021 09:23:49 +0000 (11:23 +0200)]
Add description to the path input in DevtoolsProjectAddForm

Resolves #4479

3 years agoRevert "Remove erroneous DatabasePackageInstallationPlugin::getDefaultFilename()"
Tim Düsterhus [Fri, 27 Aug 2021 09:03:25 +0000 (11:03 +0200)]
Revert "Remove erroneous DatabasePackageInstallationPlugin::getDefaultFilename()"

This had the unintended side-effect of no longer listing the database PIP
within the “Sync” view of dev tools. This will need to be revisited (#4480).

This reverts commit d5b180155d5805bda7e3132df2f4fde6627a49db.

3 years agoMerge pull request #4478 from ilouHD/patch-2
Alexander Ebert [Thu, 26 Aug 2021 14:31:32 +0000 (16:31 +0200)]
Merge pull request #4478 from ilouHD/patch-2

Update de.xml

3 years agoUpdate de.xml
ilou [Thu, 26 Aug 2021 14:26:25 +0000 (16:26 +0200)]
Update de.xml

fixed some typos when creating a new project using the devtools-gui in the german language.

Regarding the item `wcf.acp.devtools.project.isApplication.description` I'm unsure, why template-folders are mentioned explicitly. As I know they're the same as in plugins/projects, which are no applications.

3 years agoIncorrect alignment of positioned elements when they are hidden
Alexander Ebert [Thu, 26 Aug 2021 14:06:18 +0000 (16:06 +0200)]
Incorrect alignment of positioned elements when they are hidden

The calculation did not consider the `display` attribute, causing the elements dimensions to be considered as `0x0` for the purpose of the calculation.

See https://community.woltlab.com/thread/291896-beitragsoptionen-verschoben/

3 years agoReset the floating code box header when the sticky page header is hidden
Alexander Ebert [Thu, 26 Aug 2021 12:45:28 +0000 (14:45 +0200)]
Reset the floating code box header when the sticky page header is hidden

See https://community.woltlab.com/thread/291977-sticky-code-header-w%C3%A4hrend-antwort-unsch%C3%B6n/

3 years agoDrop obsolete update scripts for 5.4.2 -> 5.4.3
Tim Düsterhus [Thu, 26 Aug 2021 10:11:39 +0000 (12:11 +0200)]
Drop obsolete update scripts for 5.4.2 -> 5.4.3

3 years agoRemove erroneous DatabasePackageInstallationPlugin::getDefaultFilename()
Tim Düsterhus [Thu, 26 Aug 2021 10:06:39 +0000 (12:06 +0200)]
Remove erroneous DatabasePackageInstallationPlugin::getDefaultFilename()

3 years agoMerge branch '5.3' into 5.4
Tim Düsterhus [Thu, 26 Aug 2021 08:32:39 +0000 (10:32 +0200)]
Merge branch '5.3' into 5.4

3 years agoMerge branch '5.2' into 5.3
Tim Düsterhus [Thu, 26 Aug 2021 08:30:59 +0000 (10:30 +0200)]
Merge branch '5.2' into 5.3

3 years agoMerge branch '3.1' into 5.2
Tim Düsterhus [Thu, 26 Aug 2021 08:30:10 +0000 (10:30 +0200)]
Merge branch '3.1' into 5.2

3 years agoFix return type comment for AbstractDatabaseObjectAction::getSingleObject()
Tim Düsterhus [Thu, 26 Aug 2021 08:29:10 +0000 (10:29 +0200)]
Fix return type comment for AbstractDatabaseObjectAction::getSingleObject()

3 years agoClean up control and data flow in UserFormField::validate()
Tim Düsterhus [Wed, 25 Aug 2021 11:52:15 +0000 (13:52 +0200)]
Clean up control and data flow in UserFormField::validate()

3 years agoFix typo in en.xml
Tim Düsterhus [Wed, 25 Aug 2021 11:48:44 +0000 (13:48 +0200)]
Fix typo in en.xml

3 years agoFix error message for nonExistent user in UserFormField
Tim Düsterhus [Wed, 25 Aug 2021 11:47:33 +0000 (13:47 +0200)]
Fix error message for nonExistent user in UserFormField

3 years agoMerge branch '5.3' into 5.4
Tim Düsterhus [Wed, 25 Aug 2021 11:39:38 +0000 (13:39 +0200)]
Merge branch '5.3' into 5.4

3 years agoMerge branch '5.2' into 5.3
Tim Düsterhus [Wed, 25 Aug 2021 11:37:43 +0000 (13:37 +0200)]
Merge branch '5.2' into 5.3

3 years agoCorrectly handle null values in UserFormField::validate()
Tim Düsterhus [Wed, 25 Aug 2021 11:36:54 +0000 (13:36 +0200)]
Correctly handle null values in UserFormField::validate()

Closes #4471

Co-authored-by: Fabii547 <Fabii547@users.noreply.github.com>
3 years agoSimplify UserFormField's form data processor using `\array_column()`
Tim Düsterhus [Wed, 25 Aug 2021 11:32:55 +0000 (13:32 +0200)]
Simplify UserFormField's form data processor using `\array_column()`

3 years agoMake requirement validation more readable in UserFormField::validate()
Tim Düsterhus [Wed, 25 Aug 2021 11:25:31 +0000 (13:25 +0200)]
Make requirement validation more readable in UserFormField::validate()

3 years agoReturn explicit `null` in UserFormField::getSaveValue()
Tim Düsterhus [Wed, 25 Aug 2021 11:21:07 +0000 (13:21 +0200)]
Return explicit `null` in UserFormField::getSaveValue()

3 years agoAdd missing 'not' in error message in AbstractFormFieldDecorator
Tim Düsterhus [Wed, 25 Aug 2021 08:37:13 +0000 (10:37 +0200)]
Add missing 'not' in error message in AbstractFormFieldDecorator

3 years agoTrim trailing whitespace in Core/Ui/Object/Action.ts
Tim Düsterhus [Wed, 25 Aug 2021 07:19:28 +0000 (09:19 +0200)]
Trim trailing whitespace in Core/Ui/Object/Action.ts

3 years agoPrevent the default action of a toggle button
Alexander Ebert [Tue, 24 Aug 2021 21:53:37 +0000 (23:53 +0200)]
Prevent the default action of a toggle button

3 years agoPrevent the menu item itself being selected as its parent item
Alexander Ebert [Tue, 24 Aug 2021 21:23:55 +0000 (23:23 +0200)]
Prevent the menu item itself being selected as its parent item

See https://community.woltlab.com/thread/291999-men%C3%BCpunkt-verschwindet-wenn-%C3%BCbergeordneter-men%C3%BCpunkt-der-gleiche-ist/

3 years agoMatch mentions later because they are less specific
Alexander Ebert [Tue, 24 Aug 2021 21:15:20 +0000 (23:15 +0200)]
Match mentions later because they are less specific

Parts like `@example` can legitimately appears as part of a link that gets auto-detected.

This issue was discovered when an URL was pasted that happens to also match a user that is named `document`. The "offending" URL was: `https://developer.mozilla.org/de/docs/Web/CSS/@document`

The `@document` is recognized as part of a mention because the forward slash is a valid token that matches the boundary condition (`\b`) of the regex for mentions.

See https://community.woltlab.com/thread/292020-automatische-link-umwandlung-schl%C3%A4gt-fehlt/

3 years agoImproved phrasing of merging user accounts
Alexander Ebert [Tue, 24 Aug 2021 16:10:20 +0000 (18:10 +0200)]
Improved phrasing of merging user accounts

https://community.woltlab.com/thread/292121-merging-user-accounts/

3 years agoImproved phrasing
Alexander Ebert [Tue, 24 Aug 2021 15:52:44 +0000 (17:52 +0200)]
Improved phrasing

https://community.woltlab.com/thread/292111-typo-verbesserung-types-of-content-und-by-zu-of/

3 years agoReset the page cache when modifying the app landing pages
Alexander Ebert [Tue, 24 Aug 2021 15:47:31 +0000 (17:47 +0200)]
Reset the page cache when modifying the app landing pages

Fixes #4475

3 years agoRecommend the maintenance mode while rebuilding data
Alexander Ebert [Tue, 24 Aug 2021 15:17:21 +0000 (17:17 +0200)]
Recommend the maintenance mode while rebuilding data

Closes #4419

3 years agoExclude banned users from list of users awaiting approval
Tim Düsterhus [Tue, 24 Aug 2021 14:44:05 +0000 (16:44 +0200)]
Exclude banned users from list of users awaiting approval

3 years agoUpdating minified JavaScript files
WoltLab [Tue, 24 Aug 2021 12:28:06 +0000 (12:28 +0000)]
Updating minified JavaScript files

3 years agoUpdating minified JavaScript files
WoltLab [Tue, 24 Aug 2021 09:49:26 +0000 (09:49 +0000)]
Updating minified JavaScript files

3 years agoMerge pull request #4473 from WoltLab/samesite
Tim Düsterhus [Mon, 23 Aug 2021 14:30:28 +0000 (16:30 +0200)]
Merge pull request #4473 from WoltLab/samesite

Set SameSite=none when embedding into frames is allowed

3 years agoSet SameSite=none when embedding into frames is allowed
Tim Düsterhus [Mon, 23 Aug 2021 14:15:52 +0000 (16:15 +0200)]
Set SameSite=none when embedding into frames is allowed

Resolves #4428

3 years agoMerge pull request #4470 from WoltLab/oauth2-state-clear
Tim Düsterhus [Fri, 20 Aug 2021 13:52:15 +0000 (15:52 +0200)]
Merge pull request #4470 from WoltLab/oauth2-state-clear

Ensure that the OAuth 2 state parameter is cleared in all cases

3 years agoEnsure that the OAuth 2 state parameter is cleared in all cases
Tim Düsterhus [Fri, 20 Aug 2021 13:16:46 +0000 (15:16 +0200)]
Ensure that the OAuth 2 state parameter is cleared in all cases

3 years agoMissing phrases for validation errors in the app management
Alexander Ebert [Fri, 20 Aug 2021 13:09:50 +0000 (15:09 +0200)]
Missing phrases for validation errors in the app management

3 years agoMerge pull request #4467 from WoltLab/coverPhoto-worker
Tim Düsterhus [Fri, 20 Aug 2021 09:50:14 +0000 (11:50 +0200)]
Merge pull request #4467 from WoltLab/coverPhoto-worker

Fix handling of cover photos in UserRebuildDataWorker

3 years agoAdd AbstractFormFieldDecorator (#4469)
Peter Lohse [Fri, 20 Aug 2021 09:19:23 +0000 (11:19 +0200)]
Add AbstractFormFieldDecorator (#4469)

3 years agoRemove records of unreadable cover photos in UserRebuildDataWorker
Tim Düsterhus [Fri, 20 Aug 2021 07:35:35 +0000 (09:35 +0200)]
Remove records of unreadable cover photos in UserRebuildDataWorker

This is a clean fix of c3ebf8b995927b826072cfcc72d08a9ebd93f878.

3 years agoCheck `coverPhotoHasWebP` in UserRebuildDataWorker
Tim Düsterhus [Fri, 20 Aug 2021 07:31:14 +0000 (09:31 +0200)]
Check `coverPhotoHasWebP` in UserRebuildDataWorker

This is already checked in `->createWebpVariant()`, but with the `->update()`
added in the previous commit this saves some work.

3 years agoUpdate `coverPhotoHasWebP` in UserRebuilDataWorker
Tim Düsterhus [Fri, 20 Aug 2021 07:30:32 +0000 (09:30 +0200)]
Update `coverPhotoHasWebP` in UserRebuilDataWorker

3 years agoUse ->getLocation() in UserCoverPhoto::createWebpVariant()
Tim Düsterhus [Fri, 20 Aug 2021 07:20:51 +0000 (09:20 +0200)]
Use ->getLocation() in UserCoverPhoto::createWebpVariant()

This partially reapplies c3ebf8b995927b826072cfcc72d08a9ebd93f878 which was
reverted in 300312306b2858b6b9f474a30814fe16c3e1854c.

3 years agoRevert "Skip cover photos that cannot be read"
Tim Düsterhus [Fri, 20 Aug 2021 07:19:28 +0000 (09:19 +0200)]
Revert "Skip cover photos that cannot be read"

This should rather be cleanly fixed within the UserRebuildDataWorker, while
also updating the database on failure.

This reverts commit c3ebf8b995927b826072cfcc72d08a9ebd93f878.

3 years agoFix check whether a non-owned index is being dropped in DatabaseTableChangeProcessor
Tim Düsterhus [Thu, 19 Aug 2021 14:43:57 +0000 (16:43 +0200)]
Fix check whether a non-owned index is being dropped in DatabaseTableChangeProcessor

The reproducer and fix is effectively identical to the one in
d7f721d6f920d66f75102723b504d89e57a8c9ff.

Package A: Installs KEY someIndex (`UNIQUE`)
Package B: Installs UNIQUE KEY someIndex2 (`UNIQUE`)
Package B: Drops UNIQUE KEY someIndex2 (`UNIQUE`)

It was erroneously detected that Package B would drop the index owned by
Package A. The actual dropping logic was already correct, just the safety check
was incorrect.

3 years agoSkip cover photos that cannot be read
Alexander Ebert [Wed, 18 Aug 2021 16:37:11 +0000 (18:37 +0200)]
Skip cover photos that cannot be read

3 years agoMerge pull request #4464 from WoltLab/session-id-unpack
Tim Düsterhus [Wed, 18 Aug 2021 09:35:20 +0000 (11:35 +0200)]
Merge pull request #4464 from WoltLab/session-id-unpack

Fix unpacking of the sessionId

3 years agoAdd safety check for unpacked session cookie data
Tim Düsterhus [Wed, 18 Aug 2021 07:43:22 +0000 (09:43 +0200)]
Add safety check for unpacked session cookie data

3 years agoFix unpacking of the sessionId
Tim Düsterhus [Wed, 18 Aug 2021 07:44:07 +0000 (09:44 +0200)]
Fix unpacking of the sessionId

As documented by PHP's reference documentation:

> The "a" code now retains trailing NULL bytes.
> The "A" code now strips all trailing ASCII whitespace (spaces, tabs,
> newlines, carriage returns, and NULL bytes).

Previously, with the 'A' code, sessionIds ending in ASCII whitespace would be
incorrectly unpacked, missing their trailing bytes. This ultimately resulted in
the session not being found and the user being logged out.

Five of the 256 possible characters exhibited this bug, making this fail in
roughly 2% of the cases.

However this likely was not noticable by the typical user. Once they have a
non-affected sessionId, this Id is not going to change. What the user might've
noticed is a login not working, despite showing a success message, because they
sessionId change after a successful login handed out an affected sessionId. But
then the user would likely try again, succeeding this time and writing off the
incident as a fluke.

Test script to reproduce the issue:

    <?php

    for ($i = 0; $i <= 255; $i++) {
        $string = "foo".chr($i);

        $packed = \pack(
            'CA4',
            1,
            $string
        );
        $unpacked1 = \unpack('Cversion/A4string', $packed);
        $unpacked2 = \unpack('Cversion/a4string', $packed);

        if ($unpacked1['string'] !== $string) {
            echo "$i: unpacked1\n";
        }
        if ($unpacked2['string'] !== $string) {
            echo "$i: unpacked2\n";
        }
    }

3 years agoFix informal phrase in de.xml
Tim Düsterhus [Wed, 18 Aug 2021 07:04:18 +0000 (09:04 +0200)]
Fix informal phrase in de.xml

3 years agoMark as read doesn't removed the badge from submenu entries
Marcel Werk [Mon, 16 Aug 2021 13:08:54 +0000 (15:08 +0200)]
Mark as read doesn't removed the badge from submenu entries

3 years agoMissing informal variant
Marcel Werk [Mon, 16 Aug 2021 12:56:30 +0000 (14:56 +0200)]
Missing informal variant

3 years agoTypo
Marcel Werk [Mon, 16 Aug 2021 12:52:59 +0000 (14:52 +0200)]
Typo

3 years agoWhitelist `abs` in enterprise mode
Tim Düsterhus [Mon, 16 Aug 2021 10:53:46 +0000 (12:53 +0200)]
Whitelist `abs` in enterprise mode

3 years agoMerge pull request #4463 from WoltLab/smiley-unicode-title
Tim Düsterhus [Mon, 16 Aug 2021 09:02:42 +0000 (11:02 +0200)]
Merge pull request #4463 from WoltLab/smiley-unicode-title

Fix Unicode in smiley titles

3 years agoFix Unicode in smiley titles
Tim Düsterhus [Mon, 16 Aug 2021 07:09:10 +0000 (09:09 +0200)]
Fix Unicode in smiley titles

see 5d0bf3ec233f62c6a5a68629e32b7eaa8c9d1dd3
see #4156

3 years agoFix localization of PAGE_TITLE in __multifactorTotpSecretField.tpl
Tim Düsterhus [Sun, 15 Aug 2021 12:33:39 +0000 (14:33 +0200)]
Fix localization of PAGE_TITLE in __multifactorTotpSecretField.tpl

3 years agoAdd `required` attributes to acptemplates/login
Tim Düsterhus [Fri, 13 Aug 2021 10:31:32 +0000 (12:31 +0200)]
Add `required` attributes to acptemplates/login

3 years agoShow article labels in recent activities
Marcel Werk [Fri, 13 Aug 2021 09:35:44 +0000 (11:35 +0200)]
Show article labels in recent activities

3 years agoFix PHP 8.1 compatibility in DatabaseObject::getDatabaseTableIndexName()
Tim Düsterhus [Fri, 13 Aug 2021 08:45:58 +0000 (10:45 +0200)]
Fix PHP 8.1 compatibility in DatabaseObject::getDatabaseTableIndexName()

3 years agoMerge branch '5.3' into 5.4
Tim Düsterhus [Fri, 13 Aug 2021 07:20:30 +0000 (09:20 +0200)]
Merge branch '5.3' into 5.4

3 years agoMerge branch '5.2' into 5.3
Tim Düsterhus [Fri, 13 Aug 2021 07:19:27 +0000 (09:19 +0200)]
Merge branch '5.2' into 5.3

3 years agoMerge pull request #4459 from SoftCreatR/bugfix/custom-errors
Tim Düsterhus [Fri, 13 Aug 2021 07:18:36 +0000 (09:18 +0200)]
Merge pull request #4459 from SoftCreatR/bugfix/custom-errors

Unify error handling in several templates

3 years agoUnified error handling in several templates
Sascha Greuel [Thu, 12 Aug 2021 16:08:27 +0000 (18:08 +0200)]
Unified error handling in several templates

3 years agoSlightly improve phrasing in de.xml
Tim Düsterhus [Thu, 12 Aug 2021 15:22:34 +0000 (17:22 +0200)]
Slightly improve phrasing in de.xml

3 years agoMerge branch '5.3' into 5.4
Tim Düsterhus [Thu, 12 Aug 2021 08:09:17 +0000 (10:09 +0200)]
Merge branch '5.3' into 5.4

3 years agoAdd missing call to ->loadVariables() before downloading Google Font during style...
Tim Düsterhus [Thu, 12 Aug 2021 08:07:08 +0000 (10:07 +0200)]
Add missing call to ->loadVariables() before downloading Google Font during style import

3 years agoRename `Ui/Object/Action/Toogle` to `Toggle` (#4450)
Joshua Rüsweg [Thu, 12 Aug 2021 07:23:30 +0000 (09:23 +0200)]
Rename `Ui/Object/Action/Toogle` to `Toggle` (#4450)

3 years agoMerge pull request #4456 from WoltLab/style-edit-description
Tim Düsterhus [Wed, 11 Aug 2021 13:31:13 +0000 (15:31 +0200)]
Merge pull request #4456 from WoltLab/style-edit-description

Prevent StyleEditForm from creating phrases with empty name

3 years agoDelete the empty phrase when updating to 5.4.5
Tim Düsterhus [Wed, 11 Aug 2021 12:22:10 +0000 (14:22 +0200)]
Delete the empty phrase when updating to 5.4.5

3 years agoValidate the languageVariable in I18nHandler::save()
Tim Düsterhus [Wed, 11 Aug 2021 12:19:53 +0000 (14:19 +0200)]
Validate the languageVariable in I18nHandler::save()

3 years agoAdd LanguageEditor::validateItemName()
Tim Düsterhus [Wed, 11 Aug 2021 12:17:49 +0000 (14:17 +0200)]
Add LanguageEditor::validateItemName()