TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:18 +02:00
commit 1da5e665e7
73 changed files with 8040 additions and 0 deletions
+146
View File
@@ -0,0 +1,146 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" datatype="plaintext" original="EXT:filelist/Resources/Private/Language/locallang.xlf" date="2015-08-21T11:45:35Z" product-name="filelist">
<header/>
<body>
<trans-unit id="search">
<source>Search "%s" in %s</source>
</trans-unit>
<trans-unit id="live_search.file_provider.filter_label">
<source>Files</source>
</trans-unit>
<trans-unit id="live_search.file_provider.type_label">
<source>File</source>
</trans-unit>
<trans-unit id="live_search.file_provider.show_in_list">
<source>Show in file list</source>
</trans-unit>
<trans-unit id="live_search.file_provider.property.location">
<source>Location</source>
</trans-unit>
<trans-unit id="live_search.file_provider.property.size">
<source>Size</source>
</trans-unit>
<trans-unit id="live_search.file_provider.property.modified">
<source>Last modified</source>
</trans-unit>
<trans-unit id="search.reset">
<source>Reset search</source>
</trans-unit>
<trans-unit id="flashmessage.no_results">
<source>No results found</source>
</trans-unit>
<trans-unit id="flashmessage.no_results.message">
<source>This folder does not contain any files for "%s"</source>
</trans-unit>
<trans-unit id="flashmessage.no_items">
<source>This folder is empty</source>
</trans-unit>
<trans-unit id="flashmessage.no_items.message">
<source>Drag files here to upload them</source>
</trans-unit>
<trans-unit id="file_upload.php.pagetitle">
<source>Upload files</source>
</trans-unit>
<trans-unit id="file_upload.php.submit">
<source>Upload files</source>
</trans-unit>
<trans-unit id="file_upload.php.files">
<source>files</source>
</trans-unit>
<trans-unit id="file_rename.exists.title">
<source>File exists already</source>
</trans-unit>
<trans-unit id="file_rename.exists.description">
<source>You want to rename the file "{0}" to "{1}", but the file "{1}" already exists. How do you want to proceed?</source>
</trans-unit>
<trans-unit id="file_rename.actions.cancel">
<source>Cancel</source>
</trans-unit>
<trans-unit id="file_rename.actions.rename">
<source>Rename with unique name</source>
</trans-unit>
<trans-unit id="file_rename.actions.override">
<source>Overwrite</source>
</trans-unit>
<trans-unit id="file_rename.php.pagetitle">
<source>Rename</source>
</trans-unit>
<trans-unit id="file_rename.php.submit">
<source>Rename</source>
<note from="developer">This label is not used since TYPO3 v9.</note>
</trans-unit>
<trans-unit id="file_rename.php.label.target.file">
<source>New file name</source>
</trans-unit>
<trans-unit id="file_rename.php.label.target.folder">
<source>New folder name</source>
</trans-unit>
<trans-unit id="file_replace.title">
<source>Replace file "%s"</source>
</trans-unit>
<trans-unit id="file_replace.intro">
<source>You're about to replace the file "%s".</source>
</trans-unit>
<trans-unit id="file_replace.new_file.label">
<source>Select new file</source>
</trans-unit>
<trans-unit id="file_replace.keepFilename.label">
<source>Keep current filename "%s"?</source>
</trans-unit>
<trans-unit id="file_replace.button.replace">
<source>Replace</source>
</trans-unit>
<trans-unit id="file_edit.php.pagetitle">
<source>Edit</source>
</trans-unit>
<trans-unit id="file_edit.php.submit">
<source>Save</source>
</trans-unit>
<trans-unit id="file_edit.php.saveAndClose">
<source>Save and Close</source>
</trans-unit>
<trans-unit id="file_edit.php.coundNot">
<source>This filetype cannot be edited.&lt;br /&gt;The file must have an extension like:&lt;br /&gt;&lt;br
/&gt; &lt;b&gt;%s&lt;/b&gt;
</source>
</trans-unit>
<trans-unit id="file_newfolder.php.pagetitle">
<source>New file or folder</source>
</trans-unit>
<trans-unit id="file_newfolder.php.label_newfolder">
<source>Folder</source>
</trans-unit>
<trans-unit id="file_newfolder.php.submit">
<source>Create folders</source>
</trans-unit>
<trans-unit id="file_newfolder.php.folders">
<source>folders</source>
</trans-unit>
<trans-unit id="file_newfolder.php.newfile_submit">
<source>Create file</source>
</trans-unit>
<trans-unit id="file_newfolder.php.newfile">
<source>Create new textfile</source>
</trans-unit>
<trans-unit id="file_newfolder.php.label_newfile">
<source>File name</source>
</trans-unit>
<trans-unit id="file_newfolder.php.number_of_folders">
<source>Number of folders</source>
</trans-unit>
<trans-unit id="download">
<source>Download</source>
</trans-unit>
<trans-unit id="actions.new_folder">
<source>New Folder</source>
</trans-unit>
<trans-unit id="actions.new_file">
<source>New File</source>
</trans-unit>
<trans-unit id="translations">
<source>Translations</source>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" datatype="plaintext" original="EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf" date="2011-10-17T20:22:34Z" product-name="lang">
<header/>
<body>
<trans-unit id="clipBoard">
<source>Show clipboard</source>
</trans-unit>
<trans-unit id="clip_paste">
<source>Paste in clipboard content</source>
</trans-unit>
<trans-unit id="clip_pasteInto">
<source>Paste into: Clipboard content is inserted into this folder</source>
</trans-unit>
<trans-unit id="editMarked">
<source>Edit Metadata</source>
</trans-unit>
<trans-unit id="editColumns">
<source>Edit specific Metadata</source>
</trans-unit>
<trans-unit id="deleteMarked">
<source>Delete marked items</source>
</trans-unit>
<trans-unit id="clip_selectMarked">
<source>Transfer to clipboard</source>
</trans-unit>
<trans-unit id="clip_deleteMarked">
<source>Remove from clipboard</source>
</trans-unit>
<trans-unit id="deleteMarkedWarning">
<source>Are you sure you want to delete all marked items from this folder?</source>
</trans-unit>
<trans-unit id="c_name">
<source>Name</source>
</trans-unit>
<trans-unit id="c_size">
<source>Size</source>
</trans-unit>
<trans-unit id="c_record_type">
<source>Type</source>
</trans-unit>
<trans-unit id="c_rw">
<source>RW</source>
</trans-unit>
<trans-unit id="files">
<source>files</source>
</trans-unit>
<trans-unit id="temp">
<source>Temporary files</source>
</trans-unit>
<trans-unit id="read">
<source>R</source>
</trans-unit>
<trans-unit id="recycler">
<source>Recycler</source>
</trans-unit>
<trans-unit id="write">
<source>W</source>
</trans-unit>
<trans-unit id="storageNotBrowsableTitle">
<source>Access denied.</source>
</trans-unit>
<trans-unit id="storageNotBrowsableMessage">
<source>You are trying to access a folder in a storage that is not browsable.</source>
</trans-unit>
<trans-unit id="missingFolderPermissionsTitle">
<source>Missing folder permissions</source>
</trans-unit>
<trans-unit id="missingFolderPermissionsMessage">
<source>You have no access to the folder "%s".</source>
</trans-unit>
<trans-unit id="localStorageOfflineTitle">
<source>Base folder for local storage missing or not allowed</source>
</trans-unit>
<trans-unit id="localStorageOfflineMessage">
<source>Verify that the base folder for the storage "%s" exists and is allowed to be accessed.</source>
</trans-unit>
<trans-unit id="folderNotFoundTitle">
<source>Folder not found.</source>
</trans-unit>
<trans-unit id="folderNotFoundMessage">
<source>The folder "%s" cannot be accessed. Trying to use parent folder(s).</source>
</trans-unit>
<trans-unit id="translateMetadata">
<source>Translate metadata</source>
</trans-unit>
<trans-unit id="createMetadataForLanguage">
<source>Create metadata of this file for %s</source>
</trans-unit>
<trans-unit id="editMetadataForLanguage">
<source>Edit metadata of this file for %s</source>
</trans-unit>
<trans-unit id="paramError">
<source>Parameter Error</source>
</trans-unit>
<trans-unit id="targetNoDir">
<source>Target was not a directory!</source>
</trans-unit>
<trans-unit id="reloadMetadata">
<source>Reload Metadata</source>
</trans-unit>
<trans-unit id="rangeIndicator">
<source>Media %1$d - %2$d</source>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" datatype="plaintext" original="EXT:filelist/Resources/Private/Language/locallang_transfer_handler.xlf" date="2023-02-24T00:00:00Z" product-name="cms">
<header/>
<body>
<trans-unit id="message.transfer_resource.title">
<source>Transfer Resource</source>
</trans-unit>
<trans-unit id="message.transfer_resource.text">
<source>Transfer "%s" to "%s"?</source>
</trans-unit>
<trans-unit id="message.transfer_resources.title">
<source>Transfer Resources</source>
</trans-unit>
<trans-unit id="message.transfer_resources.text">
<source>Transfer %d resources to "%s"?</source>
</trans-unit>
<trans-unit id="message.button.cancel">
<source>Cancel</source>
</trans-unit>
<trans-unit id="message.button.copy">
<source>Copy</source>
</trans-unit>
<trans-unit id="message.button.move">
<source>Move</source>
</trans-unit>
</body>
</file>
</xliff>
+17
View File
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2">
<file source-language="en" datatype="plaintext" original="EXT:filelist/Resources/Private/Language/module.xlf" date="2026-11-10T13:37:37Z" product-name="filelist">
<header/>
<body>
<trans-unit id="short_description">
<source>Listing of media resources in registered storages</source>
</trans-unit>
<trans-unit id="description">
<source>This is the media administration system. Through this module you can upload, copy, move and delete files on the system.</source>
</trans-unit>
<trans-unit id="title">
<source>Media</source>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,51 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:if condition="{paginator.numberOfPages} > 1">
<nav aria-labelledby="filelist-pagination">
<ul class="pagination mb-0">
<li class="page-item">
<span id="filelist-pagination" class="page-link">
<f:translate key="rangeIndicator" domain="filelist.mod_file_list" arguments="{0: firstElement, 1: lastElement}" />
<span class="visually-hidden">, <f:translate key="pageIndicator" domain="core.mod_web_list" arguments="{0: currentPage, 1: totalPages}"/></span>
</span>
</li>
<f:comment><!--First page and previous page--></f:comment>
<f:if condition="{currentPage} > 1">
<f:then>
<li class="page-item"><a class="page-link" href="{currentUrl}&currentPage=1" aria-label="{f:translate(key: 'first', domain: 'core.common')}" title="{f:translate(key: 'first', domain: 'core.common')}"><core:icon identifier="actions-view-paging-first"/></a></li>
<li class="page-item"><a class="page-link" href="{currentUrl}&currentPage={currentPage -1}" aria-label="{f:translate(key: 'previous', domain: 'core.common')}" title="{f:translate(key: 'previous', domain: 'core.common')}"><core:icon identifier="actions-view-paging-previous" /></a></li>
</f:then>
<f:else>
<li class="page-item disabled" aria-hidden="true"><span class="page-link"><core:icon identifier="actions-view-paging-first" /></span></li>
<li class="page-item disabled" aria-hidden="true"><span class="page-link"><core:icon identifier="actions-view-paging-previous" /></span></li>
</f:else>
</f:if>
<f:variable name="pageInput">
<input type="number" autocomplete="off" name="currentPage" min="1" max="{totalPages}" value="{currentPage}" size="3" class="t3js-filelist-paging form-control form-control-sm paginator-input" />
<span aria-hidden="true">
</f:variable>
<li class="page-item">
<span class="page-link">
<f:format.raw><f:translate key="pageIndicator" domain="core.mod_web_list" arguments="{0: pageInput, 1: totalPages}"/></f:format.raw></span>
</span>
</li>
<f:comment><!--Next page and last page--></f:comment>
<f:if condition="{currentPage} < {totalPages}">
<f:then>
<li class="page-item"><a class="page-link" href="{currentUrl}&currentPage={currentPage + 1}" aria-label="{f:translate(key: 'next', domain: 'core.common')}" title="{f:translate(key: 'next', domain: 'core.common')}"><core:icon identifier="actions-view-paging-next" /></a></li>
<li class="page-item"><a class="page-link" href="{currentUrl}&currentPage={totalPages}" aria-label="{f:translate(key: 'last', domain: 'core.common')}" title="{f:translate(key: 'last', domain: 'core.common')}"><core:icon identifier="actions-view-paging-last" /></a></li>
</f:then>
<f:else>
<li class="page-item disabled" aria-hidden="true"><span class="page-link"><core:icon identifier="actions-view-paging-next" /></span></li>
<li class="page-item disabled" aria-hidden="true"><span class="page-link"><core:icon identifier="actions-view-paging-last" /></span></li>
</f:else>
</f:if>
<li class="page-item"><a class="page-link" href="{currentUrl}&currentPage={currentPage}" aria-label="{f:translate(key: 'reload', domain: 'core.common')}" title="{f:translate(key: 'reload', domain: 'core.common')}"><core:icon identifier="actions-refresh" /></a></li>
</ul>
</nav>
</f:if>
</html>
@@ -0,0 +1,27 @@
<html
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:layout name="ElementBrowserWithNavigation" />
<f:section name="Navigation">
<typo3-backend-component-filestorage-browser
active-folder="{f:if(condition: selectedFolder, then: selectedFolder.combinedIdentifier, else: '') -> f:format.htmlentities()}"
>
</typo3-backend-component-filestorage-browser>
</f:section>
<f:section name="Content">
<f:if condition="{selectedFolder}">
<h4 class="text-truncate mb-4">
<core:iconForResource resource="{selectedFolder}" />
{selectedFolder.storage.name}: {selectedFolder.identifier}
</h4>
</f:if>
<f:flashMessages queueIdentifier="core.template.flashMessages"/>
<f:format.raw>{content}</f:format.raw>
</f:section>
</html>
@@ -0,0 +1,42 @@
<html
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:layout name="ElementBrowserWithNavigation" />
<f:section name="Navigation">
<typo3-backend-component-filestorage-browser
active-folder="{f:if(condition: selectedFolder, then: selectedFolder.combinedIdentifier, else: '') -> f:format.htmlentities()}"
>
</typo3-backend-component-filestorage-browser>
</f:section>
<f:section name="Content">
<f:if condition="{selectedFolder}">
<h4 class="text-truncate mb-4">
<core:iconForResource resource="{selectedFolder}" />
{selectedFolder.storage.name}: {selectedFolder.identifier}
</h4>
</f:if>
<f:flashMessages queueIdentifier="core.template.flashMessages"/>
<f:if condition="{selectedFolder}">
<div
data-filelist-element="true"
data-filelist-type="folder"
data-filelist-identifier="{selectedFolder.combinedIdentifier}"
>
<button title="{selectedFolder.storage.name}" class="btn btn-default" data-filelist-action="primary">
<core:iconForResource resource="{selectedFolder}" />
<f:variable name="folderLabel" value="{f:if(condition: '{selectedFolder.name} !== \'\'', then: '{selectedFolder.name}', else: '{selectedFolder.storage.name}')}" />
<f:translate key="LLL:EXT:backend/Resources/Private/Language/locallang_browse_links.xlf:linkTo" arguments="{0: '/{folderLabel}'}">{selectedFolder.storage.name}: {selectedFolder.identifier}</f:translate>
</button>
</div>
</f:if>
<f:format.raw>{content}</f:format.raw>
</f:section>
</html>
@@ -0,0 +1,34 @@
<html
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:layout name="ElementBrowserWithNavigation" />
<f:section name="Navigation">
<typo3-backend-component-filestorage-browser
active-folder="{f:if(condition: selectedFolder, then: selectedFolder.combinedIdentifier, else: '') -> f:format.htmlentities()}"
>
</typo3-backend-component-filestorage-browser>
</f:section>
<f:section name="Content">
<f:if condition="{dragUploader}">
<div class="t3js-drag-uploader" data-target-folder="{selectedFolder.combinedIdentifier}" data-progress-container="#typo3-filelist"
data-dropzone-trigger=".t3js-drag-uploader-trigger" data-dropzone-target=".element-browser-body"
data-file-deny-pattern="{dragUploader.fileDenyPattern}" data-max-file-size="{dragUploader.maxFileSize}"
data-default-action="{dragUploader.defaultDuplicationBehaviourAction}" data-manual-table
></div>
</f:if>
<f:if condition="{selectedFolder}">
<h4 class="text-truncate mb-4">
<core:iconForResource resource="{selectedFolder}" />
{selectedFolder.storage.name}: {selectedFolder.identifier}
</h4>
</f:if>
<f:flashMessages queueIdentifier="core.template.flashMessages"/>
<f:format.raw>{content}</f:format.raw>
</f:section>
</html>
@@ -0,0 +1,18 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:layout name="Module" />
<f:section name="Content">
<form action="{moduleUrlTceFile}" method="post" id="EditFileController" name="editform">
<h1><f:translate key="LLL:EXT:filelist/Resources/Private/Language/locallang.xlf:file_edit.php.pagetitle" /> {fileName}</h1>
<f:format.raw>{hookContent}</f:format.raw>
<f:format.raw>{form}</f:format.raw>
</form>
</f:section>
</html>
@@ -0,0 +1,168 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:layout name="Module" />
<f:section name="Content">
<f:comment><!-- identifier initializes tree state --></f:comment>
<div class="filelist-main" data-filelist-current-identifier="{currentIdentifier -> f:format.htmlspecialchars()}">
<f:if condition="{folderIdentifier}">
<f:render section="headline" arguments="{_all}" />
<f:render section="content" arguments="{_all}" />
</f:if>
</div>
<f:if condition="{dragUploader}">
<div class="t3js-drag-uploader" data-target-folder="{folderIdentifier}" data-progress-container="#typo3-filelist"
data-dropzone-trigger=".t3js-drag-uploader-trigger" data-dropzone-target=".t3js-module-body h1:first-child"
data-file-deny-pattern="{dragUploader.fileDenyPattern}" data-max-file-size="{dragUploader.maxFileSize}"
data-default-action="{dragUploader.defaultDuplicationBehaviourAction}" data-reload-url="{listUrl}"
></div>
</f:if>
</f:section>
<f:section name="headline">
<h1>
<f:if condition="{searchTerm}">
<f:then>
<f:translate key="LLL:EXT:filelist/Resources/Private/Language/locallang.xlf:search" arguments="{0: searchTerm, 1: headline}" />
</f:then>
<f:else>
{headline}
</f:else>
</f:if>
</h1>
</f:section>
<f:section name="content">
<form method="post" name="fileListForm" action="{listUrl}">
<input type="hidden" name="cmd"/>
<f:if condition="{searchTerm} || {totalItems}">
<div class="form-row">
<div class="form-group">
<div class="input-group">
<input
type="search"
autocomplete="off"
id="filelist-searchterm"
name="searchTerm"
class="form-control"
value="{searchTerm}"
placeholder="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.enterSearchString')}"
/>
<label for="filelist-searchterm" class="visually-hidden">
<f:translate id="LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.label.searchString"/>
</label>
<input type="hidden" name="currentPage" value="0" />
<button type="submit" class="btn btn-default" name="search">
<f:translate id="LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.title.search"/>
</button>
</div>
</div>
</div>
</f:if>
<f:if condition="!{totalItems}">
<div class="t3-filelist-info-container">
<f:if condition="{searchTerm}">
<f:then>
<core:icon identifier="actions-question" size="large" />
<h5 class="mt-2">
{f:translate(key: 'LLL:EXT:filelist/Resources/Private/Language/locallang.xlf:flashmessage.no_results')}
</h5>
<p>
<f:translate key="LLL:EXT:filelist/Resources/Private/Language/locallang.xlf:flashmessage.no_results.message" arguments="{0: searchTerm}"/>
</p>
<button type="submit" class="btn btn-info" name="searchTerm" value="">
<f:translate key="LLL:EXT:filelist/Resources/Private/Language/locallang.xlf:search.reset" />
</button>
</f:then>
<f:else>
<core:icon identifier="apps-pagetree-folder-contains" size="large" />
<h5 class="mt-2">
{f:translate(key: 'LLL:EXT:filelist/Resources/Private/Language/locallang.xlf:flashmessage.no_items')}
</h5>
<p>
<f:translate key="LLL:EXT:filelist/Resources/Private/Language/locallang.xlf:flashmessage.no_items.message" arguments="{0: searchTerm}"/>
</p>
</f:else>
</f:if>
</div>
</f:if>
<div class="t3-filelist-container {f:if(condition: '!{totalItems}', then: 'hidden')}">
<f:if condition="{listHtml}">
<div class="multi-record-selection-actions-wrapper">
<div class="t3js-multi-record-selection-actions row row-cols-auto gx-2 align-items-center hidden">
<div class="col">
<strong><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.selection"/></strong>
</div>
<f:if condition="{editActionConfiguration}">
<div class="col">
<div class="btn-group">
<button type="button" class="btn btn-default btn-sm" disabled="disabled" data-multi-record-selection-action="edit" data-multi-record-selection-action-config="{editActionConfiguration -> f:format.raw()}">
<span title="{f:translate(key: 'LLL:EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf:editMarked')}">
<core:icon identifier="actions-open" size="small" /> <f:translate key="LLL:EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf:editMarked" />
</span>
</button>
<f:if condition="{editColumnsActionConfiguration}">
<button type="button" class="btn btn-default btn-sm" disabled="disabled" data-multi-record-selection-action="edit" data-multi-record-selection-action-config="{editColumnsActionConfiguration -> f:format.raw()}">
<span title="{f:translate(key: 'LLL:EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf:editColumns')}">
<core:icon identifier="actions-open" size="small" /> <f:translate key="LLL:EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf:editColumns" />
</span>
</button>
</f:if>
</div>
</div>
</f:if>
<f:if condition="{downloadActionConfiguration}">
<div class="col">
<button type="button" class="btn btn-default btn-sm" data-multi-record-selection-action="download" data-multi-record-selection-action-config="{downloadActionConfiguration -> f:format.raw()}">
<span title="{f:translate(key: 'LLL:EXT:filelist/Resources/Private/Language/locallang.xlf:download')}">
<core:icon identifier="actions-download" size="small" /> <f:translate key="LLL:EXT:filelist/Resources/Private/Language/locallang.xlf:download" />
</span>
</button>
</div>
</f:if>
<f:if condition="{showClipboardPanel} && {enableClipBoard.mode} != 'normal'">
<div class="col">
<div class="btn-group">
<button type="button" class="btn btn-default btn-sm" {f:if(condition: '{enableClipBoard.mode} == normal', then: 'disabled')} data-multi-record-selection-action="copyMarked">
<span title="{f:translate(key: 'LLL:EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf:clip_selectMarked')}">
<core:icon identifier="actions-edit-copy" size="small" /> <f:translate key="LLL:EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf:clip_selectMarked" />
</span>
</button>
<button type="button" class="btn btn-default btn-sm" {f:if(condition: '{enableClipBoard.mode} == normal', then: 'disabled')} data-multi-record-selection-action="removeMarked">
<span title="{f:translate(key: 'LLL:EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf:clip_deleteMarked')}">
<core:icon identifier="actions-minus" size="small" /> <f:translate key="LLL:EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf:clip_deleteMarked" />
</span>
</button>
</div>
</div>
</f:if>
<div class="col">
<button type="button" class="btn btn-default btn-sm" data-multi-record-selection-action="delete" data-multi-record-selection-action-config="{deleteActionConfiguration -> f:format.raw()}">
<span title="{f:translate(key: 'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.delete')}">
<core:icon identifier="actions-edit-delete" size="small" /> <f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.delete" />
</span>
</button>
</div>
</div>
</div>
</f:if>
{listHtml -> f:format.raw() -> f:if(condition: totalItems)}
</div>
</form>
<f:if condition="{listHtml}">
<f:if condition="{showClipboardPanel}">
<hr class="spacer">
<typo3-backend-clipboard-panel return-url="{listUrl}" table="_FILE"></typo3-backend-clipboard-panel>
</f:if>
</f:if>
</f:section>
</html>
@@ -0,0 +1,26 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<div class="table-fit">
<table class="table table-striped table-hover" id="typo3-filelist" data-mode="{mode}">
<thead>
{tableHeader -> f:format.raw()}
</thead>
<tbody data-multi-record-selection-row-selection="true">
{tableBody -> f:format.raw()}
</tbody>
</table>
</div>
<f:render partial="Pagination" arguments="{
paginator:paginator,
pagination:pagination,
currentPage:currentPage,
totalPages:totalPages,
currentUrl:currentUrl,
firstElement:firstElement,
lastElement:lastElement
}" />
</html>
@@ -0,0 +1,86 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<div class="resource-tiles-container">
<div class="resource-tiles my-3">
<f:for each="{resources}" as="resource">
<f:render section="ResourceTile" arguments="{resource: resource, displayThumbs: displayThumbs, displayCheckbox: displayCheckbox, defaultLanguageAccess: defaultLanguageAccess}" />
</f:for>
</div>
</div>
<f:render partial="Pagination" arguments="{
paginator:paginator,
pagination:pagination,
currentPage:currentPage,
totalPages:totalPages,
currentUrl:currentUrl,
firstElement:firstElement,
lastElement:lastElement
}" />
<f:section name="ResourceTile">
<div
class="resource-tile{f:if(condition: resource.isSelected, then: ' selected')}"
aria-labelledby="resource-tile-label-{resource.uid}"
data-filelist-element="true"
data-filelist-type="{resource.type}"
data-filelist-identifier="{resource.identifier}"
data-filelist-name="{resource.name}"
data-filelist-icon="{resource.iconIdentifier}"
data-filelist-preview="{f:if(condition: resource.preview, then: 'true', else: 'false')}"
data-filelist-uid="{resource.uid}"
data-filelist-meta-uid="{resource.metaDataUid}"
data-filelist-url="{resource.publicUrl}"
data-filelist-mime-type="{resource.mimeType}"
data-filelist-selectable="{f:if(condition: resource.isSelectable, then: 'true', else: 'false')}"
data-filelist-selected="{f:if(condition: resource.isSelected, then: 'true', else: 'false')}"
data-multi-record-selection-element="true"
{f:if(condition: defaultLanguageAccess, then: 'data-default-language-access="true"')}
draggable="{resource.canMove ? 'true' : 'false'}"
>
<button type="button" title="{resource.name}" data-filelist-action="primary">
<span class="resource-tile-label" id="resource-tile-label-{resource.uid}">{resource.name}</span>
<span class="resource-tile-preview" role="presentation">
<span class="resource-tile-preview-content">
<f:if condition="{displayThumbs} && {resource.preview}">
<f:then>
<span class="resource-tile-image">
<f:image image="{resource.preview}" maxHeight="115" maxWidth="166" additionalAttributes="{draggable: 'false'}" loading="lazy" alt="" />
</span>
</f:then>
<f:else>
<span class="resource-tile-icon">
{resource.iconLarge -> f:format.raw()}
</span>
</f:else>
</f:if>
</span>
</span>
<span class="resource-tile-nameplate">
<f:if condition="{resource.missing}">
<span class="resource-tile-nameplate-badge">
<span class="badge badge-danger"><f:translate key="LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:warning.file_missing" /></span><br>
</span>
</f:if>
<span class="resource-tile-nameplate-label">{resource.name}</span>
<span class="resource-tile-nameplate-activity">{resource.updatedAt -> f:format.date()}</span>
</span>
</button>
<f:if condition="{resource.isSelectable} && {resource.checkboxConfig} && {displayCheckbox}">
<span class="resource-tile-checkbox" role="checkbox" aria-label="{resource.name}">
<div class="form-check">
<input
class="form-check-input {resource.checkboxConfig.class}"
type="checkbox"
name="{resource.checkboxConfig.name}"
value="{resource.checkboxConfig.value}"
{f:if(condition: resource.checkboxConfig.checked, then: 'checked')}
>
</div>
</span>
</f:if>
</div>
</f:section>
</html>
@@ -0,0 +1,25 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:layout name="LinkBrowser" />
<f:section name="Navigation">
<typo3-backend-component-filestorage-browser
active-folder="{f:if(condition: selectedFolder, then: selectedFolder.combinedIdentifier, else: '') -> f:format.htmlentities()}"
>
</typo3-backend-component-filestorage-browser>
</f:section>
<f:section name="Content">
<f:if condition="{selectedFolder}">
<h4 class="text-truncate mb-4">
<core:iconForResource resource="{selectedFolder}" />
{selectedFolder.storage.name}: {selectedFolder.identifier}
</h4>
</f:if>
<f:format.raw>{content}</f:format.raw>
</f:section>
</html>
@@ -0,0 +1,41 @@
<html
xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
data-namespace-typo3-fluid="true"
>
<f:layout name="LinkBrowser" />
<f:section name="Navigation">
<typo3-backend-component-filestorage-browser
tree-actions="{treeActions -> f:format.json()}"
active-folder="{f:if(condition: selectedFolder, then: selectedFolder.combinedIdentifier, else: '') -> f:format.htmlentities()}"
>
</typo3-backend-component-filestorage-browser>
</f:section>
<f:section name="Content">
<f:if condition="{selectedFolder}">
<h4 class="text-truncate mb-4">
<core:iconForResource resource="{selectedFolder}" />
<f:render section="LinkWrap" contentAs="linkText" arguments="{_all}">
{selectedFolder.storage.name}: {selectedFolder.identifier}
</f:render>
</h4>
</f:if>
<f:format.raw>{content}</f:format.raw>
</f:section>
<f:section name="LinkWrap">
<f:if condition="{selectedFolderLink}">
<f:then>
<a href="#" class="element-browser-link" data-linkbrowser-link="{selectedFolderLink}">
{linkText -> f:format.raw()}
</a>
</f:then>
<f:else>
{linkText -> f:format.raw()}
</f:else>
</f:if>
</f:section>
</html>