GitHub/WoltLab/WCF.git
5 days agoMerge pull request #6144 from WoltLab/6.2-recptcha-v3
Olaf Braun [Fri, 13 Dec 2024 09:28:33 +0000 (10:28 +0100)]
Merge pull request #6144 from WoltLab/6.2-recptcha-v3

ReCaptcha v3

5 days agoAdd removed `wcf.captcha.recaptchaInvisible.error.recaptchaString.false`
Cyperghost [Fri, 13 Dec 2024 09:25:52 +0000 (10:25 +0100)]
Add removed `wcf.captcha.recaptchaInvisible.error.recaptchaString.false`

6 days agoAdd reCaptcha v3 handler
Cyperghost [Thu, 12 Dec 2024 09:59:20 +0000 (10:59 +0100)]
Add reCaptcha v3 handler
Migrate JavaScript to TypeScript

7 days agoAdd recaptcha v3 api key option
Cyperghost [Wed, 11 Dec 2024 09:21:33 +0000 (10:21 +0100)]
Add recaptcha v3 api key option

12 days agoUse `Database::prepare()` instead of `Database::prepareStatement()`
Marcel Werk [Fri, 6 Dec 2024 15:20:12 +0000 (16:20 +0100)]
Use `Database::prepare()` instead of `Database::prepareStatement()`

see https://github.com/WoltLab/WCF/issues/6002

12 days agoAdjust name of the `UserProfileHeaderStatItemCollecting` event
Marcel Werk [Fri, 6 Dec 2024 13:59:19 +0000 (14:59 +0100)]
Adjust name of the `UserProfileHeaderStatItemCollecting` event

We use a more generic name to make it clear that the event can also be used in other places in the future (e.g. in member lists).

12 days agoHide empty categories in category list box
Marcel Werk [Fri, 6 Dec 2024 13:01:29 +0000 (14:01 +0100)]
Hide empty categories in category list box

12 days agoRemove obsolete unsafe output of variables
Marcel Werk [Fri, 6 Dec 2024 13:01:03 +0000 (14:01 +0100)]
Remove obsolete unsafe output of variables

12 days agoFixed issue in the preview button when creating new objects
Marcel Werk [Fri, 6 Dec 2024 12:17:08 +0000 (13:17 +0100)]
Fixed issue in the preview button when creating new objects

13 days agoUnify phrases
Marcel Werk [Thu, 5 Dec 2024 16:01:06 +0000 (17:01 +0100)]
Unify phrases

ref https://www.woltlab.com/community/thread/307563-unify-upload-description-phrases/

13 days agoAdd method to get all embedded objects in a specific message
Marcel Werk [Thu, 5 Dec 2024 14:59:29 +0000 (15:59 +0100)]
Add method to get all embedded objects in a specific message

13 days agoUse `span` tag for the ´contentNotVisible´ element
Marcel Werk [Thu, 5 Dec 2024 13:31:08 +0000 (14:31 +0100)]
Use `span` tag for the ´contentNotVisible´ element

The use of `div` resulted in invalid HTML code if the element was surrounded by other formatting (e.g. bold).

13 days agoAlways make attachment preview visible if you are allowed to download the attachment
Marcel Werk [Thu, 5 Dec 2024 13:28:21 +0000 (14:28 +0100)]
Always make attachment preview visible if you are allowed to download the attachment

13 days agoMerge pull request #6132 from WoltLab/recent-activity-with-image
Marcel Werk [Thu, 5 Dec 2024 12:50:44 +0000 (13:50 +0100)]
Merge pull request #6132 from WoltLab/recent-activity-with-image

Add support for images in recent activities

13 days agoAdd option to add a custom css class
Marcel Werk [Thu, 5 Dec 2024 12:38:12 +0000 (13:38 +0100)]
Add option to add a custom css class

13 days agoMerge pull request #6126 from WoltLab/user-profile-header-overhaul
Marcel Werk [Thu, 5 Dec 2024 12:35:34 +0000 (13:35 +0100)]
Merge pull request #6126 from WoltLab/user-profile-header-overhaul

Overhaul the user profile header

13 days agoRemove obsolete `loading="lazy"` attribute
Marcel Werk [Thu, 5 Dec 2024 12:33:51 +0000 (13:33 +0100)]
Remove obsolete `loading="lazy"` attribute

13 days agoAdd permission check
Marcel Werk [Thu, 5 Dec 2024 12:24:39 +0000 (13:24 +0100)]
Add permission check

13 days agoApply suggestions from code review
Marcel Werk [Thu, 5 Dec 2024 11:22:24 +0000 (12:22 +0100)]
Apply suggestions from code review

2 weeks agoMerge pull request #6136 from WoltLab/6.2-acp-user-handler
Olaf Braun [Wed, 4 Dec 2024 17:59:54 +0000 (18:59 +0100)]
Merge pull request #6136 from WoltLab/6.2-acp-user-handler

Migrate `WCF.ACP.User.*Handler` to TypeScript

2 weeks agoAdd a missing border
Alexander Ebert [Wed, 4 Dec 2024 14:19:20 +0000 (15:19 +0100)]
Add a missing border

2 weeks agoAdd abstract implementation for image data providing
Marcel Werk [Wed, 4 Dec 2024 14:06:57 +0000 (15:06 +0100)]
Add abstract implementation for image data providing

2 weeks agoMigrate `WCF.ACP.User.*Handler` to TypeScript
Cyperghost [Wed, 4 Dec 2024 08:36:51 +0000 (09:36 +0100)]
Migrate `WCF.ACP.User.*Handler` to TypeScript

2 weeks agoMerge pull request #6125 from WoltLab/6.2-option-handler
Olaf Braun [Tue, 3 Dec 2024 12:46:21 +0000 (13:46 +0100)]
Merge pull request #6125 from WoltLab/6.2-option-handler

Migrate `WCF.Option.Handler` to typescript

2 weeks agoMerge branch 'refs/heads/6.2' into 6.2-option-handler
Olaf Braun [Tue, 3 Dec 2024 12:43:00 +0000 (13:43 +0100)]
Merge branch 'refs/heads/6.2' into 6.2-option-handler

# Conflicts:
# wcfsetup/install/files/acp/templates/userGroupAdd.tpl

2 weeks agoAdd support for images in recent activities
Marcel Werk [Tue, 3 Dec 2024 11:50:08 +0000 (12:50 +0100)]
Add support for images in recent activities

2 weeks agoMerge pull request #6131 from WoltLab/6.2-user-group-copy
Olaf Braun [Tue, 3 Dec 2024 11:47:22 +0000 (12:47 +0100)]
Merge pull request #6131 from WoltLab/6.2-user-group-copy

Migrate `WCF.ACP.User.Group.Copy` to TypeScript

2 weeks agoMerge pull request #6128 from WoltLab/6.2-flexible-category-list
Olaf Braun [Tue, 3 Dec 2024 11:46:53 +0000 (12:46 +0100)]
Merge pull request #6128 from WoltLab/6.2-flexible-category-list

Migrate `WCF.Category.FlexibleCategoryList `to TypeScript

2 weeks agoMerge pull request #6130 from WoltLab/6.2-tag-set-as-synonyms
Olaf Braun [Tue, 3 Dec 2024 11:46:30 +0000 (12:46 +0100)]
Merge pull request #6130 from WoltLab/6.2-tag-set-as-synonyms

Migrate `WCF.ACP.Tag.SetAsSynonymsHandler` to TypeScript

2 weeks agoMove `WoltLabSuite/Core/Acp/Ui/User/Group/Copy` to `WoltLabSuite/Core/Acp/Component...
Olaf Braun [Tue, 3 Dec 2024 11:45:25 +0000 (12:45 +0100)]
Move `WoltLabSuite/Core/Acp/Ui/User/Group/Copy` to `WoltLabSuite/Core/Acp/Component/User/Group/Copy`

2 weeks agoMove `WoltLabSuite/Core/Acp/Ui/Tag/SynonymsHandler` to `WoltLabSuite/Core/Acp/Compone...
Olaf Braun [Tue, 3 Dec 2024 11:40:43 +0000 (12:40 +0100)]
Move `WoltLabSuite/Core/Acp/Ui/Tag/SynonymsHandler` to `WoltLabSuite/Core/Acp/Component/Tag/SynonymsHandler`

2 weeks agoUpdate wcfsetup/install/files/acp/templates/userGroupAdd.tpl
Olaf Braun [Tue, 3 Dec 2024 11:24:44 +0000 (12:24 +0100)]
Update wcfsetup/install/files/acp/templates/userGroupAdd.tpl

Co-authored-by: Alexander Ebert <ebert@woltlab.com>
2 weeks agoMerge pull request #6129 from WoltLab/6.2-language-item-list
Olaf Braun [Tue, 3 Dec 2024 11:15:11 +0000 (12:15 +0100)]
Merge pull request #6129 from WoltLab/6.2-language-item-list

Migrate `WCF.ACP.Language.ItemList` to TypeScript

2 weeks agoMigrate `WCF.ACP.User.Group.Copy` to TypeScript
Cyperghost [Tue, 3 Dec 2024 09:16:36 +0000 (10:16 +0100)]
Migrate `WCF.ACP.User.Group.Copy` to TypeScript

2 weeks agoRemove black line
Cyperghost [Tue, 3 Dec 2024 08:44:22 +0000 (09:44 +0100)]
Remove black line

2 weeks agoMigrate `WCF.ACP.Tag.SetAsSynonymsHandler` to TypeScript
Cyperghost [Tue, 3 Dec 2024 08:43:52 +0000 (09:43 +0100)]
Migrate `WCF.ACP.Tag.SetAsSynonymsHandler` to TypeScript

2 weeks agoMerge pull request #6124 from WoltLab/6.2-sortable-js
Olaf Braun [Tue, 3 Dec 2024 06:59:09 +0000 (07:59 +0100)]
Merge pull request #6124 from WoltLab/6.2-sortable-js

Migrate `WCF.Sortable.List` to Typescript

2 weeks agoRemove the file `WCF.ACP.Language.js` which is no longer needed
Cyperghost [Mon, 2 Dec 2024 12:30:29 +0000 (13:30 +0100)]
Remove the file `WCF.ACP.Language.js` which is no longer needed

2 weeks agoMigrate `WCF.ACP.Language.ItemList` to TypeScript
Cyperghost [Mon, 2 Dec 2024 12:27:14 +0000 (13:27 +0100)]
Migrate `WCF.ACP.Language.ItemList` to TypeScript

2 weeks agoMark `WCF.Category.FlexibleCategoryList` as deprecated
Cyperghost [Mon, 2 Dec 2024 11:04:12 +0000 (12:04 +0100)]
Mark `WCF.Category.FlexibleCategoryList` as deprecated

2 weeks agoMigrate `WCF.Category.FlexibleCategoryList` to TypeScript
Cyperghost [Mon, 2 Dec 2024 11:02:02 +0000 (12:02 +0100)]
Migrate `WCF.Category.FlexibleCategoryList` to TypeScript

2 weeks agoUse `JSON.parse()` instead of `eval()`.
Cyperghost [Mon, 2 Dec 2024 09:02:57 +0000 (10:02 +0100)]
Use `JSON.parse()` instead of `eval()`.

2 weeks agoOverhaul the user profile header
Marcel Werk [Fri, 29 Nov 2024 16:06:13 +0000 (17:06 +0100)]
Overhaul the user profile header

2 weeks agoRun `tsc`
Cyperghost [Fri, 29 Nov 2024 11:57:12 +0000 (12:57 +0100)]
Run `tsc`

2 weeks agoMigrate `WCF.Option.Handler` to typescript
Cyperghost [Fri, 29 Nov 2024 11:56:08 +0000 (12:56 +0100)]
Migrate `WCF.Option.Handler` to typescript
Mark `WCF.Option.Handler` as deprecated

2 weeks agoMove `this._options.options.toleranceElement` to `this._options.toleranceElement...
Cyperghost [Fri, 29 Nov 2024 11:05:16 +0000 (12:05 +0100)]
Move `this._options.options.toleranceElement` to `this._options.toleranceElement` if it exists

2 weeks agoUse `dboAction` instead of `apiOnce`
Cyperghost [Fri, 29 Nov 2024 11:03:15 +0000 (12:03 +0100)]
Use `dboAction` instead of `apiOnce`
Move callback functions into a separate methode

2 weeks agoMerge pull request #6123 from WoltLab/profile-tabmenu-typescript
Marcel Werk [Thu, 28 Nov 2024 11:21:59 +0000 (12:21 +0100)]
Merge pull request #6123 from WoltLab/profile-tabmenu-typescript

Migrate `WCF.User.Profile.TabMenu` to Typescript

2 weeks agoUse `WoltLabSuite/Core/Ui/Sortable/List` for acp boxes sorting
Cyperghost [Thu, 28 Nov 2024 09:27:55 +0000 (10:27 +0100)]
Use `WoltLabSuite/Core/Ui/Sortable/List` for acp boxes sorting

2 weeks agoMark `WCF.Sortable.List` as deprecated
Cyperghost [Thu, 28 Nov 2024 09:18:25 +0000 (10:18 +0100)]
Mark `WCF.Sortable.List` as deprecated

2 weeks agoSave sortable list
Cyperghost [Thu, 28 Nov 2024 09:16:26 +0000 (10:16 +0100)]
Save sortable list

3 weeks agoMigrate `WCF.User.Profile.TabMenu` to Typescript
Marcel Werk [Wed, 27 Nov 2024 17:11:58 +0000 (18:11 +0100)]
Migrate `WCF.User.Profile.TabMenu` to Typescript

Closes #6093

3 weeks agoStore Sortable objects
Cyperghost [Wed, 27 Nov 2024 13:36:07 +0000 (14:36 +0100)]
Store Sortable objects

3 weeks agoAdd `toleranceElement` to the supported options
Cyperghost [Wed, 27 Nov 2024 13:16:51 +0000 (14:16 +0100)]
Add `toleranceElement` to the supported options
Handle max nesting level

3 weeks agoMerge pull request #6114 from WoltLab/message-preview-typescript
Marcel Werk [Wed, 27 Nov 2024 13:09:50 +0000 (14:09 +0100)]
Merge pull request #6114 from WoltLab/message-preview-typescript

Migrate `WCF.Message.Preview` to Typescript

3 weeks agoStandardize naming and paths
Marcel Werk [Wed, 27 Nov 2024 12:22:23 +0000 (13:22 +0100)]
Standardize naming and paths

3 weeks agoMerge pull request #6116 from WoltLab/moderation-management-typescript
Marcel Werk [Wed, 27 Nov 2024 12:08:11 +0000 (13:08 +0100)]
Merge pull request #6116 from WoltLab/moderation-management-typescript

Migrate `WCF.Moderation.Management` to Typescript

3 weeks agoApply suggestions from code review
Marcel Werk [Wed, 27 Nov 2024 12:03:40 +0000 (13:03 +0100)]
Apply suggestions from code review

3 weeks agoMigrate `WCF.Moderation.Management` to Typescript
Marcel Werk [Sun, 24 Nov 2024 16:14:57 +0000 (17:14 +0100)]
Migrate `WCF.Moderation.Management` to Typescript

Closes #6090

3 weeks agoMerge pull request #6072 from WoltLab/6.2-formbuilder-tags
Olaf Braun [Wed, 27 Nov 2024 11:30:42 +0000 (12:30 +0100)]
Merge pull request #6072 from WoltLab/6.2-formbuilder-tags

FormBuilder for tags

3 weeks agoMerge pull request #6120 from WoltLab/notification-list-typescript
Marcel Werk [Wed, 27 Nov 2024 11:15:31 +0000 (12:15 +0100)]
Merge pull request #6120 from WoltLab/notification-list-typescript

Migrate `WCF.Notification.List` to Typescript

3 weeks agoMove `toleranceElement` into `SortableListOptions`
Cyperghost [Wed, 27 Nov 2024 10:30:24 +0000 (11:30 +0100)]
Move `toleranceElement` into `SortableListOptions`

3 weeks agoLoading the `types.d.ts` is no longer necessary
Cyperghost [Wed, 27 Nov 2024 08:50:30 +0000 (09:50 +0100)]
Loading the `types.d.ts` is no longer necessary

3 weeks agoMerge pull request #6118 from WoltLab/6.2-formbuilder-label
Olaf Braun [Wed, 27 Nov 2024 07:41:06 +0000 (08:41 +0100)]
Merge pull request #6118 from WoltLab/6.2-formbuilder-label

Use FormBuilder for labels

3 weeks agoMerge pull request #6078 from WoltLab/6.2-formbuilder-user-rank
Olaf Braun [Wed, 27 Nov 2024 07:40:06 +0000 (08:40 +0100)]
Merge pull request #6078 from WoltLab/6.2-formbuilder-user-rank

Use FormBuilder for user ranks

3 weeks agoRun `tsc`
Cyperghost [Wed, 27 Nov 2024 07:36:19 +0000 (08:36 +0100)]
Run `tsc`

3 weeks agoUpdate ts/WoltLabSuite/Core/Form/Builder/Field/Controller/BadgeColor.ts
Olaf Braun [Wed, 27 Nov 2024 07:35:02 +0000 (08:35 +0100)]
Update ts/WoltLabSuite/Core/Form/Builder/Field/Controller/BadgeColor.ts

Co-authored-by: Alexander Ebert <ebert@woltlab.com>
3 weeks agoMerge pull request #6073 from WoltLab/6.2-formbuilder-media-provider
Olaf Braun [Wed, 27 Nov 2024 07:34:54 +0000 (08:34 +0100)]
Merge pull request #6073 from WoltLab/6.2-formbuilder-media-provider

Use FormBuilder for BBCodeMediaProvider

3 weeks agoMerge pull request #6079 from WoltLab/6.2-formbuilder-user-option
Olaf Braun [Tue, 26 Nov 2024 21:27:32 +0000 (22:27 +0100)]
Merge pull request #6079 from WoltLab/6.2-formbuilder-user-option

Use FormBuilder for user options

3 weeks agoUpdate the JS artifacts
Alexander Ebert [Tue, 26 Nov 2024 16:41:51 +0000 (17:41 +0100)]
Update the JS artifacts

3 weeks agoMerge branch '6.1' into 6.2
Alexander Ebert [Tue, 26 Nov 2024 16:37:11 +0000 (17:37 +0100)]
Merge branch '6.1' into 6.2

3 weeks agoMerge branch '6.0' into 6.1
Alexander Ebert [Tue, 26 Nov 2024 16:36:37 +0000 (17:36 +0100)]
Merge branch '6.0' into 6.1

3 weeks agoUpdate the CKEditor stylesheet
Alexander Ebert [Tue, 26 Nov 2024 16:35:24 +0000 (17:35 +0100)]
Update the CKEditor stylesheet

3 weeks agoMerge pull request #6115 from WoltLab/message-form-tabs-typescript
Marcel Werk [Tue, 26 Nov 2024 16:20:20 +0000 (17:20 +0100)]
Merge pull request #6115 from WoltLab/message-form-tabs-typescript

Migrate wcf.messageTabMenu (jQuery Widget) to Typescript

3 weeks agoFix outdated js file
Marcel Werk [Mon, 25 Nov 2024 15:16:48 +0000 (16:16 +0100)]
Fix outdated js file

3 weeks agoMigrate wcf.messageTabMenu (jQuery Widget) to Typescript
Marcel Werk [Fri, 22 Nov 2024 14:48:39 +0000 (15:48 +0100)]
Migrate wcf.messageTabMenu (jQuery Widget) to Typescript

HTML and CSS are still a mess and should be overhauled with a future update.

Closes #6088
Closes #6089

3 weeks agoMerge pull request #6119 from WoltLab/user-activity-point-list-typescript
Marcel Werk [Tue, 26 Nov 2024 16:17:06 +0000 (17:17 +0100)]
Merge pull request #6119 from WoltLab/user-activity-point-list-typescript

Migrate `WCF.User.Profile.ActivityPointList` to Typescript

3 weeks agoFix outdated js
Marcel Werk [Tue, 26 Nov 2024 16:15:59 +0000 (17:15 +0100)]
Fix outdated js

3 weeks agoMerge branch '6.2' into user-activity-point-list-typescript
Marcel Werk [Tue, 26 Nov 2024 16:08:43 +0000 (17:08 +0100)]
Merge branch '6.2' into user-activity-point-list-typescript

3 weeks agoMerge branch '6.0' into 6.1
Marcel Werk [Tue, 26 Nov 2024 16:06:10 +0000 (17:06 +0100)]
Merge branch '6.0' into 6.1

3 weeks agoFix missing scrolling when editing comments / replies
Marcel Werk [Tue, 26 Nov 2024 16:05:52 +0000 (17:05 +0100)]
Fix missing scrolling when editing comments / replies

3 weeks agoFix double scrolling when replying to a comment
Marcel Werk [Tue, 26 Nov 2024 16:05:31 +0000 (17:05 +0100)]
Fix double scrolling when replying to a comment

Closes #5991

3 weeks agoAdd option to focus the editor without scrolling
Marcel Werk [Tue, 26 Nov 2024 16:04:04 +0000 (17:04 +0100)]
Add option to focus the editor without scrolling

3 weeks agoMerge pull request #6074 from WoltLab/6.2-captcha
Olaf Braun [Tue, 26 Nov 2024 15:28:07 +0000 (16:28 +0100)]
Merge pull request #6074 from WoltLab/6.2-captcha

Use FormBuilder for captcha questions

3 weeks agoApply suggestions from code review
Marcel Werk [Tue, 26 Nov 2024 14:59:37 +0000 (15:59 +0100)]
Apply suggestions from code review

Co-authored-by: Alexander Ebert <ebert@woltlab.com>
3 weeks agoMerge branch '6.0' into 6.1
Marcel Werk [Tue, 26 Nov 2024 14:58:14 +0000 (15:58 +0100)]
Merge branch '6.0' into 6.1

3 weeks agoRemove request id from the output of a exception
Marcel Werk [Tue, 26 Nov 2024 14:58:00 +0000 (15:58 +0100)]
Remove request id from the output of a exception

Closes #5999

3 weeks agoPrevents an underlying dialog from being closed when the file selection dialog is...
Olaf Braun [Tue, 26 Nov 2024 14:12:29 +0000 (15:12 +0100)]
Prevents an underlying dialog from being closed when the file selection dialog is canceled by the user

3 weeks agoUse sortablejs
Cyperghost [Tue, 26 Nov 2024 11:50:11 +0000 (12:50 +0100)]
Use sortablejs

3 weeks agoMerge pull request #6113 from WoltLab/edit-history-typescript
Marcel Werk [Tue, 26 Nov 2024 11:09:27 +0000 (12:09 +0100)]
Merge pull request #6113 from WoltLab/edit-history-typescript

Migrate `WCF.Message.EditHistory` to Typescript

3 weeks agoStandardize naming and paths
Marcel Werk [Tue, 26 Nov 2024 11:05:54 +0000 (12:05 +0100)]
Standardize naming and paths

3 weeks agoAdd sortablejs
Cyperghost [Tue, 26 Nov 2024 11:01:22 +0000 (12:01 +0100)]
Add sortablejs

3 weeks agoRemove reading the object from the try/catch block. Leave only reading the query...
Cyperghost [Tue, 26 Nov 2024 10:19:33 +0000 (11:19 +0100)]
Remove reading the object from the try/catch block. Leave only reading the query parameters in it.

3 weeks agoRemove reading the object from the try/catch block. Leave only reading the query...
Cyperghost [Tue, 26 Nov 2024 10:18:51 +0000 (11:18 +0100)]
Remove reading the object from the try/catch block. Leave only reading the query parameters in it.

3 weeks agoRemove reading the object from the try/catch block. Leave only reading the query...
Cyperghost [Tue, 26 Nov 2024 10:15:48 +0000 (11:15 +0100)]
Remove reading the object from the try/catch block. Leave only reading the query parameters in it.

3 weeks agoRemove reading the object from the try/catch block. Leave only reading the query...
Cyperghost [Tue, 26 Nov 2024 10:15:05 +0000 (11:15 +0100)]
Remove reading the object from the try/catch block. Leave only reading the query parameters in it.

3 weeks agoRemove reading the object from the try/catch block. Leave only reading the query...
Cyperghost [Tue, 26 Nov 2024 10:14:18 +0000 (11:14 +0100)]
Remove reading the object from the try/catch block. Leave only reading the query parameters in it.

3 weeks agoRemove reading the object from the try/catch block. Leave only reading the query...
Cyperghost [Tue, 26 Nov 2024 10:13:47 +0000 (11:13 +0100)]
Remove reading the object from the try/catch block. Leave only reading the query parameters in it.

3 weeks agoMerge branch '6.2' into 6.2-captcha
Cyperghost [Tue, 26 Nov 2024 10:12:27 +0000 (11:12 +0100)]
Merge branch '6.2' into 6.2-captcha

# Conflicts:
# wcfsetup/install/files/lib/data/TI18nDatabaseObjectAction.class.php

3 weeks agoMerge pull request #6035 from WoltLab/fancybox
Olaf Braun [Tue, 26 Nov 2024 10:05:59 +0000 (11:05 +0100)]
Merge pull request #6035 from WoltLab/fancybox

New image viewer