Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
ed788cd
Add MediaBuilder, MediaCollection, commands and l10n storage for media
BurntimeX Oct 16, 2026
98fcaaa
Migrate media files to wcf1_file with MediaFileProcessor
BurntimeX Oct 16, 2026
efb3243
Migrate the media edit dialog to a form builder dialog
BurntimeX Oct 16, 2026
7d1e8a3
Migrate the ACP media list to a list view
BurntimeX Oct 16, 2026
7a4419a
Migrate the media manager to a list view dialog
BurntimeX Oct 18, 2026
ed0ab18
Fix ValueI18n sending undefined monolingual value when only one langu…
BurntimeX Oct 18, 2026
7a84ce7
Merge media edit dialog containers into a single section
BurntimeX Oct 18, 2026
e167ee2
Fix media edit dialog losing multilingual values by loading them afte…
BurntimeX Oct 18, 2026
b370390
Fix SimpleAclFormField in dialog forms: send allowAll and avoid dupli…
BurntimeX Oct 18, 2026
4ec85e2
Fix TypeError in media BBCode when active message has no language ID
BurntimeX Oct 18, 2026
3b146c9
Convert ACP media list from list view to grid view
BurntimeX Oct 18, 2026
6f0524c
Open image previews in the ACP media list with the image viewer
BurntimeX Oct 18, 2026
a74b486
Fix media uploads never settling by attaching the file element to the…
BurntimeX Oct 18, 2026
5b062f9
Show media upload errors in an alert dialog
BurntimeX Oct 18, 2026
03d2f1d
Open the edit dialog after uploading a single media file
BurntimeX Oct 18, 2026
689352e
Add pixel unit to media image dimension
BurntimeX Oct 18, 2026
cbe6b88
Show a success snackbar after uploading multiple media files in the ACP
BurntimeX Oct 18, 2026
3a2255c
Use a fixed four-column grid for the media manager dialog on desktop
BurntimeX Oct 18, 2026
98ed835
Trigger the media upload from the list view's primary button
BurntimeX Oct 18, 2026
4212e62
Rework the media manager into a selectable tile grid with search, dro…
BurntimeX Oct 18, 2026
1f147eb
Reset list view to the first page when its parameters change
BurntimeX Oct 18, 2026
035f783
Stop waiting for uploaded media tiles once the list has been reloaded
BurntimeX Oct 18, 2026
11f4bac
Remove the unused `wcf.media.button.insert` phrase
BurntimeX Oct 18, 2026
2ab0086
Let list view dialogs act as prompts and use it for the media manager
BurntimeX Oct 18, 2026
a27fd1a
Hide the media category filter when no categories exist
BurntimeX Oct 18, 2026
9f4d41c
Hide the empty edit mode wrapper in the media manager header
BurntimeX Oct 18, 2026
894f3a6
Allow pasting files from the clipboard into the media manager
BurntimeX Oct 18, 2026
d1d53a7
Use small buttons for the single media selection form field
BurntimeX Oct 18, 2026
cdd6d82
Use medium thumbnails for media manager tiles
BurntimeX Oct 18, 2026
6ca86a3
Merge frontend and ACP mediaJavaScript into shared_mediaJavaScript
BurntimeX Oct 18, 2026
58406f8
Allow replacing media files with any file of the same kind (image or …
BurntimeX Oct 18, 2026
8a5fe21
Remove obsolete media upload validation strategies and their phrases
BurntimeX Oct 18, 2026
11032a5
Add [wsmg] BBCode to insert multiple images as a scrollable media gal…
BurntimeX Oct 18, 2026
742e975
Remove obsolete language variable
BurntimeX Oct 18, 2026
0c2ab02
Only show accessible media files in the media manager
BurntimeX Oct 18, 2026
75b0bf7
Settle media manager promise when fetching selected media fails
BurntimeX Oct 18, 2026
e405002
Assign replacement media file on upload to prevent deleting the media…
BurntimeX Oct 19, 2026
21fa90e
Fix media manager not confirming on double click or Enter before the …
BurntimeX Oct 19, 2026
2c408af
Settle media insert options promise on any dialog close, including ba…
BurntimeX Oct 19, 2026
f0838ca
Prevent Enter in media manager search from submitting the dialog
BurntimeX Oct 19, 2026
9a98460
Prevent claiming unrelated files when saving the media edit form
BurntimeX Oct 19, 2026
8289a39
Truncate media title and alt text to their column length before saving
BurntimeX Oct 19, 2026
951d5ab
Restore caption HTML toggle and limit caption/alt text fields to imag…
BurntimeX Oct 19, 2026
4b092c1
Drop deleted media from manager selection and insert remaining files …
BurntimeX Oct 19, 2026
f87cb9f
Prevent opening the media manager multiple times on repeated clicks
BurntimeX Oct 19, 2026
da32a3d
Restrict legacy media location getters to the legacy storage
BurntimeX Oct 19, 2026
748c09b
Reject images with unreadable dimensions on file creation and treat n…
BurntimeX Oct 19, 2026
ecf0f44
Count only the initial request of ranged file downloads
BurntimeX Oct 19, 2026
975e9ea
Drop legacy media delivery from MediaPage and link media files directly
BurntimeX Oct 19, 2026
3fb613c
Remove orphaned media clipboard, search and replace phrases
BurntimeX Oct 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions com.woltlab.wcf/acpTemplateDelete.xml
Original file line number Diff line number Diff line change
Expand Up @@ -164,5 +164,8 @@
<template>userAssignToGroup</template>
<template>userEmailAddressExport</template>
<template>devtoolsNotificationTestDialog</template>
<template>mediaEditor</template>
<template>mediaListItems</template>
<template>mediaJavaScript</template>
</delete>
</data>
10 changes: 10 additions & 0 deletions com.woltlab.wcf/bbcode.xml
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,16 @@
</attribute>
</attributes>
</bbcode>
<bbcode name="wsmg">
<classname>wcf\system\bbcode\WoltLabSuiteMediaGalleryBBCode</classname>
<isBlockElement>1</isBlockElement>
<attributes>
<attribute name="0">
<validationpattern><![CDATA[^\d+(,\d+)*$]]></validationpattern>
<required>1</required>
</attribute>
</attributes>
</bbcode>
<bbcode name="wsp">
<classname>wcf\system\bbcode\WoltLabSuitePageBBCode</classname>
<attributes>
Expand Down
20 changes: 1 addition & 19 deletions com.woltlab.wcf/clipboardAction.xml
Original file line number Diff line number Diff line change
@@ -1,35 +1,17 @@
<?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/6.0/clipboardAction.xsd">
<import>
<delete>
<!-- com.woltlab.wcf.media -->
<action name="insert">
<actionclassname>wcf\system\clipboard\action\MediaClipboardAction</actionclassname>
<showorder>1</showorder>
<pages>
<page>menuManagerDialog-editor</page>
</pages>
</action>
<action name="delete">
<actionclassname>wcf\system\clipboard\action\MediaClipboardAction</actionclassname>
<showorder>2</showorder>
<pages>
<page>wcf\acp\page\MediaListPage</page>
<page>menuManagerDialog-editor</page>
<page>menuManagerDialog-select</page>
</pages>
</action>
<action name="setCategory">
<actionclassname>wcf\system\clipboard\action\MediaClipboardAction</actionclassname>
<showorder>3</showorder>
<pages>
<page>wcf\acp\page\MediaListPage</page>
<page>menuManagerDialog-editor</page>
<page>menuManagerDialog-select</page>
</pages>
</action>
<!-- /com.woltlab.wcf.media -->
</import>
<delete>
<!-- com.woltlab.wcf.user -->
<action name="assignToGroup">
<actionclassname>wcf\system\clipboard\action\UserClipboardAction</actionclassname>
Expand Down
11 changes: 11 additions & 0 deletions com.woltlab.wcf/fileDelete.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,17 @@
<file>js/WoltLabSuite/Core/Acp/Ui/User/Content/Remove/Handler.js</file>
<file>js/WoltLabSuite/Core/Ui/User/Editor.js</file>
<file>js/WoltLabSuite/Core/Ui/User/Trophy/List.js</file>
<file>js/WoltLabSuite/Core/Controller/Media/List.js</file>
<file>js/WoltLabSuite/Core/Media/List/Upload.js</file>
<file>js/WoltLabSuite/Core/Media/Clipboard.js</file>
<file>js/WoltLabSuite/Core/Media/Editor.js</file>
<file>js/WoltLabSuite/Core/Media/Manager/Base.js</file>
<file>js/WoltLabSuite/Core/Media/Manager/Search.js</file>
<file>js/WoltLabSuite/Core/Media/Replace.js</file>
<file>js/WoltLabSuite/Core/Media/Upload.js</file>
<file>lib/system/clipboard/action/MediaClipboardAction.class.php</file>
<file>lib/system/upload/MediaReplaceUploadFileValidationStrategy.class.php</file>
<file>lib/system/upload/MediaUploadFileValidationStrategy.class.php</file>
<file>lib/acp/action/UserQuickSearchAction.class.php</file>
<file>lib/acp/form/UserSearchForm.class.php</file>
<file>lib/data/user/UserContentAction.class.php</file>
Expand Down
15 changes: 8 additions & 7 deletions com.woltlab.wcf/objectType.xml
Original file line number Diff line number Diff line change
@@ -1,13 +1,6 @@
<?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/6.0/objectType.xsd">
<import>
<!-- clipboard items -->
<type>
<name>com.woltlab.wcf.media</name>
<definitionname>com.woltlab.wcf.clipboardItem</definitionname>
<listclassname>wcf\data\media\ViewableMediaList</listclassname>
</type>
<!-- /clipboard items -->
<!-- articles -->
<type>
<name>com.woltlab.wcf.article.category</name>
Expand Down Expand Up @@ -1176,8 +1169,16 @@
<definitionname>com.woltlab.wcf.file</definitionname>
<classname>wcf\system\file\processor\TrophyImageFileProcessor</classname>
</type>
<type>
<name>com.woltlab.wcf.media</name>
<definitionname>com.woltlab.wcf.file</definitionname>
<classname>wcf\system\file\processor\MediaFileProcessor</classname>
</type>
</import>
<delete>
<type name="com.woltlab.wcf.media">
<definitionname>com.woltlab.wcf.clipboardItem</definitionname>
</type>
<!-- sitemap objects are registered through `wcf\event\sitemap\SitemapObjectCollecting` since 6.3 -->
<type name="com.woltlab.wcf.sitemap.object.user">
<definitionname>com.woltlab.wcf.sitemap.object</definitionname>
Expand Down
1 change: 1 addition & 0 deletions com.woltlab.wcf/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@
<instruction type="script" run="standalone">acp/update_com.woltlab.wcf_6.3_userOptionCategoryL10n.php</instruction>
<instruction type="script" run="standalone">acp/update_com.woltlab.wcf_6.3_captchaQuestionL10n.php</instruction>
<instruction type="script" run="standalone">acp/update_com.woltlab.wcf_6.3_userOptionConfiguration.php</instruction>
<instruction type="script" run="standalone">acp/update_com.woltlab.wcf_6.3_mediaL10n.php</instruction>
<instruction type="database" run="standalone">acp/database/update_com.woltlab.wcf_6.3_step3.php</instruction>

The following step requires the new files and must run before the `cronjob` PIP, which precedes the `objectType` PIP:
Expand Down
5 changes: 5 additions & 0 deletions com.woltlab.wcf/templateDelete.xml
Original file line number Diff line number Diff line change
Expand Up @@ -130,5 +130,10 @@
<template>messageUserOptionOutput</template>
<template>shared_userOptionsCondition</template>
<template>groupedUserTrophyList</template>
<template>mediaEditor</template>
<template>mediaListItems</template>
<template>shared_mediaManager</template>
<template>shared_mediaSetCategoryDialog</template>
<template>mediaJavaScript</template>
</delete>
</data>
137 changes: 0 additions & 137 deletions com.woltlab.wcf/templates/mediaEditor.tpl

This file was deleted.

28 changes: 0 additions & 28 deletions com.woltlab.wcf/templates/mediaJavaScript.tpl

This file was deleted.

48 changes: 0 additions & 48 deletions com.woltlab.wcf/templates/mediaListItems.tpl

This file was deleted.

2 changes: 1 addition & 1 deletion com.woltlab.wcf/templates/shared_aclSimple.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,6 @@
{jsphrase name='wcf.acl.access.granted'}
{jsphrase name='wcf.acl.access.denied'}

new UiAclSimple('{$__aclSimplePrefix}', '{unsafe:$__aclInputName|encodeJS}');
new UiAclSimple('{unsafe:$__aclSimplePrefix|encodeJS}', '{unsafe:$__aclInputName|encodeJS}');
});
</script>
35 changes: 35 additions & 0 deletions com.woltlab.wcf/templates/shared_bbcode_wsmg.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<div class="mediaGallery">
<div class="mediaGallery__track" tabindex="0" role="region" aria-label="{lang}wcf.media.gallery{/lang}">
{foreach from=$mediaList item=media}
<figure class="mediaGallery__slide">
{if !$removeLinks}
<a href="{$media->getFullSizeImageSource()}" class="mediaGallery__link" data-caption="{$media->title}" data-type="image" data-fancybox="message-{$activeMessageObjectType}-{$activeMessageID}">
{/if}
<img src="{$media->getThumbnailLink('large')}" alt="{$media->altText}" title="{$media->title}" width="{$media->getThumbnailWidth('large')}" height="{$media->getThumbnailHeight('large')}" loading="lazy">
{if !$removeLinks}
</a>
{/if}

{if $media->caption}
<figcaption class="mediaGallery__caption">
{if $media->captionEnableHtml}
{unsafe:$media->caption}
{else}
{$media->caption}
{/if}
</figcaption>
{/if}
</figure>
{/foreach}
</div>

<div class="mediaGallery__controls" hidden>
<button type="button" class="mediaGallery__button mediaGallery__button--previous jsTooltip" title="{lang}wcf.media.gallery.previous{/lang}">
{icon name='chevron-left'}
</button>
<span class="mediaGallery__counter" aria-live="polite"></span>
<button type="button" class="mediaGallery__button mediaGallery__button--next jsTooltip" title="{lang}wcf.media.gallery.next{/lang}">
{icon name='chevron-right'}
</button>
</div>
</div>
Loading
Loading