first commit

This commit is contained in:
salam committed 2026-10-19 08:18:39 +02:00
commit 1218dd1517
12716 files changed
+989233

No files matched your search

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0" xmlns:t3="http://typo3.org/schemas/xliff">
<file t3:id="1440157535" 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" resname="search">
<source>Search</source>
</trans-unit>
<trans-unit id="flashmessage.no_results" resname="flashmessage.no_results">
<source>No results found</source>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,137 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.0" xmlns:t3="http://typo3.org/schemas/xliff">
<file t3:id="1415814869" 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="bigControlPanel" resname="bigControlPanel">
<source>Extended view</source>
</trans-unit>
<trans-unit id="clipBoard" resname="clipBoard">
<source>Show clipboard</source>
</trans-unit>
<trans-unit id="clip_paste" resname="clip_paste">
<source>Paste in clipboard content</source>
</trans-unit>
<trans-unit id="clip_pasteInto" resname="clip_pasteInto">
<source>Paste into: Clipboard content is inserted into this folder</source>
</trans-unit>
<trans-unit id="clip_markRecords" resname="clip_markRecords">
<source>Mark All/Mark none</source>
</trans-unit>
<trans-unit id="clip_selectMarked" resname="clip_selectMarked">
<source>Transfer the selection of files to clipboard</source>
</trans-unit>
<trans-unit id="clip_deleteMarked" resname="clip_deleteMarked">
<source>Delete marked</source>
</trans-unit>
<trans-unit id="clip_deleteMarkedWarning" resname="clip_deleteMarkedWarning">
<source>Are you sure you want to delete all marked files from this folder?</source>
</trans-unit>
<trans-unit id="displayThumbs" resname="displayThumbs">
<source>Display thumbnails</source>
</trans-unit>
<trans-unit id="c_file" resname="c_file">
<source>File Name</source>
</trans-unit>
<trans-unit id="c_filepath" resname="c_filepath">
<source>File Path</source>
</trans-unit>
<trans-unit id="c_size" resname="c_size">
<source>Size</source>
</trans-unit>
<trans-unit id="c_fileext" resname="c_fileext">
<source>Type</source>
</trans-unit>
<trans-unit id="c_tstamp" resname="c_tstamp">
<source>Last Modified</source>
</trans-unit>
<trans-unit id="c_rw" resname="c_rw">
<source>RW</source>
</trans-unit>
<trans-unit id="c__REF_" resname="c__REF_">
<source>Ref</source>
</trans-unit>
<trans-unit id="files" resname="files">
<source>files</source>
</trans-unit>
<trans-unit id="temp" resname="temp">
<source>Temporary files</source>
</trans-unit>
<trans-unit id="role_folder_temporary" resname="role_folder_temporary">
<source>Temporary files</source>
</trans-unit>
<trans-unit id="role_folder_recycler" resname="role_folder_recycler">
<source>Recycler</source>
</trans-unit>
<trans-unit id="read" resname="read">
<source>R</source>
</trans-unit>
<trans-unit id="recycler" resname="recycler">
<source>Recycler</source>
</trans-unit>
<trans-unit id="mlang_labels_tablabel" resname="mlang_labels_tablabel">
<source>Listing of files in the directory</source>
</trans-unit>
<trans-unit id="mlang_labels_tabdescr" resname="mlang_labels_tabdescr">
<source>This is the file administration system in TYPO3. It allows you to access the file mounts of your login. Through this module you can upload, copy, move an delete files on the server.</source>
</trans-unit>
<trans-unit id="mlang_tabs_tab" resname="mlang_tabs_tab">
<source>Filelist</source>
</trans-unit>
<trans-unit id="write" resname="write">
<source>W</source>
</trans-unit>
<trans-unit id="paramError" resname="paramError">
<source>Parameter Error</source>
</trans-unit>
<trans-unit id="targetNoDir" resname="targetNoDir">
<source>Target was not a directory!</source>
</trans-unit>
<trans-unit id="localDriverFlexform_basePath" resname="localDriverFlexform_basePath">
<source>Base path</source>
</trans-unit>
<trans-unit id="localDriverFlexform_basePath_placeholder" resname="localDriverFlexform_basePath_placeholder">
<source>Add storage path here. For example: myPath/folder/</source>
</trans-unit>
<trans-unit id="localDriverFlexform_pathType" resname="localDriverFlexform_pathType">
<source>Path type</source>
</trans-unit>
<trans-unit id="localDriverFlexform_pathType_relative" resname="localDriverFlexform_pathType_relative">
<source>relative</source>
</trans-unit>
<trans-unit id="localDriverFlexform_pathType_absolute" resname="localDriverFlexform_pathType_absolute">
<source>absolute</source>
</trans-unit>
<trans-unit id="localDriverFlexform_caseSensitive" resname="localDriverFlexform_caseSensitive">
<source>Uses case sensitive identifiers</source>
</trans-unit>
<trans-unit id="storageNotBrowsableTitle" resname="storageNotBrowsableTitle">
<source>Access denied.</source>
</trans-unit>
<trans-unit id="storageNotBrowsableMessage" resname="storageNotBrowsableMessage">
<source>You are trying to access a folder in a storage that is not browsable.</source>
</trans-unit>
<trans-unit id="missingFolderPermissionsTitle" resname="missingFolderPermissionsTitle">
<source>Missing folder permissions</source>
</trans-unit>
<trans-unit id="missingFolderPermissionsMessage" resname="missingFolderPermissionsMessage">
<source>You have no access to the folder "%s".</source>
</trans-unit>
<trans-unit id="folderNotFoundTitle" resname="folderNotFoundTitle">
<source>Folder not found.</source>
</trans-unit>
<trans-unit id="folderNotFoundMessage" resname="folderNotFoundMessage">
<source>The folder "%s" cannot be accessed. Trying to use parent folder(s).</source>
</trans-unit>
<trans-unit id="translateMetadata" resname="translateMetadata">
<source>Translate metadata</source>
</trans-unit>
<trans-unit id="createMetadataForLanguage" resname="createMetadataForLanguage">
<source>Create metadata of this file for %s</source>
</trans-unit>
<trans-unit id="editMetadataForLanguage" resname="editMetadataForLanguage">
<source>Edit metadata of this file for %s</source>
</trans-unit>
</body>
</file>
</xliff>
@@ -0,0 +1,7 @@
<f:render section="headline" />
<f:render section="content" />
<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"
data-file-deny-pattern="{fileDenyPattern}" data-max-file-size="{maxFileSize}"
></div>
@@ -0,0 +1,11 @@
<f:form action="search" class="form-inline form-inline-spaced">
<div class="form-group">
<div class="input-group">
<input type="hidden" name="cmd" class="form-control" value="search">
<f:form.textfield type="text" name="searchWord" class="form-control" value="{searchWord}"/>
<span class="input-group-btn">
<button class="btn btn-default" type="submit"><f:translate id="search">Search</f:translate></button>
</span>
</div>
</div>
</f:form>
@@ -0,0 +1,53 @@
<f:layout name="Default" />
<f:section name="headline">
<h1>{headline}</h1>
</f:section>
<f:section name="content">
<f:render partial="SearchForm" arguments="{searchWord:''}" />
<f:form method="post" name="dblistForm">
{listHtml -> f:format.raw()}
<input type="hidden" name="cmd"/>
</f:form>
<f:if condition="{listHtml}">
<!--
Listing options for extended view, clipboard and thumbnails
-->
<div class="typo3-listOptions">
<f:if condition="{checkboxes.bigControlPanel.enabled}">
<div class="checkbox">
<label for="bigControlPanel">
{checkboxes.bigControlPanel.html -> f:format.raw()}
{checkboxes.bigControlPanel.label}
</label>
</div>
</f:if>
<f:if condition="{checkboxes.displayThumbs.enabled}">
<div class="checkbox">
<label for="checkDisplayThumbs">
{checkboxes.displayThumbs.html -> f:format.raw()}
{checkboxes.displayThumbs.label}
</label>
</div>
</f:if>
<f:if condition="{checkboxes.enableClipBoard.enabled}">
<div class="checkbox">
<label for="checkClipBoard">
{checkboxes.enableClipBoard.html -> f:format.raw()}
{checkboxes.enableClipBoard.label}
</label>
</div>
</f:if>
</div>
<f:if condition="{showClipBoard}">
{clipBoardHtml -> f:format.raw()}
<f:be.buttons.csh table="xMOD_csh_corebe" field="filelist_clipboard" wrap="<span class='btn btn-sm btn-default'>|</span>" />
</f:if>
</f:if>
</f:section>
@@ -0,0 +1,9 @@
<f:layout name="Default" />
<f:section name="headline">
</f:section>
<f:section name="content">
</f:section>
@@ -0,0 +1,226 @@
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers"
xmlns:core="http://typo3.org/ns/TYPO3/CMS/Core/ViewHelpers"
xmlns:be="http://typo3.org/ns/TYPO3/CMS/Backend/ViewHelpers"
xmlns:fl="http://typo3.org/ns/TYPO3/CMS/Filelist/ViewHelpers">
<f:layout name="Default"/>
<f:section name="headline">
<h1><f:translate id="search">Search</f:translate>: "{searchWord}"</h1>
</f:section>
<f:section name="content">
<f:render partial="SearchForm" arguments="{searchWord:searchWord}" />
<f:if condition="{files->f:count()} > 0">
<div class="table-fit">
<table class="table table-striped table-hover" id="typo3-filelist">
<thead>
<tr data-uid="0" data-l10nparent="0">
<th class="col-icon nowrap"></th>
<th class="col-path nowrap">{f:translate( key:'LLL:EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf:c_filepath' )}</th>
<th class="col-title nowrap">{f:translate( key:'LLL:EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf:c_file' )}</th>
<th class="col-control"></th>
<th class="nowrap">{f:translate( key:'LLL:EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf:c_fileext' )}</th>
<th class="nowrap">{f:translate( key:'LLL:EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf:c_tstamp' )}</th>
<th class="nowrap">{f:translate( key:'LLL:EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf:c_size' )}</th>
<th class="nowrap">{f:translate( key:'LLL:EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf:c_rw' )}</th>
<th class="nowrap">{f:translate( key:'LLL:EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf:c__REF_' )}</th>
</tr>
</thead>
<tbody>
<f:for each="{files}" as="file">
<tr data-uid="0" data-l10nparent="0">
<td class="col-icon nowrap">
<a class="t3js-contextmenutrigger" data-uid="{file.identifier}" data-table="sys_file" href="#">
<core:iconForResource resource="{file.resource}" />
</a>
</td>
<td class="col-path nowrap">
{file.path}
</td>
<td class="col-title col-responsive nowrap">
<f:if condition="{file.isMetadataEditable}">
<f:then>
<a href="#" class="filelist-file-title"
title="{f:translate( key:'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.editMetadata' )}"
data-url="{be:uri.editRecord( uid:file.metadataUid, table:'sys_file_metadata', returnUrl:'{f:uri.action( action:\'search\', arguments:\'{ searchWord:\\'{searchWord->f:format.htmlentities()}\\' }\' ) -> f:format.raw()}' )}"
>
{file.name}
</a>
</f:then>
<f:else>
{file.name}
</f:else>
</f:if>
<f:if condition="{file.isImage}">
<br>
<f:image image="{file.resource}" maxWidth="{thumbnail.width}" maxHeight="{thumbnail.height}" />
</f:if>
</td>
<td class="col-control nowrap">
<div class="btn-group">
<f:if condition="{file.isEditable}">
<f:then>
<a href="#" class="btn btn-default filelist-file-edit"
title="{f:translate( key:'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.editcontent' )}"
data-url="{fl:uri.editFileContent( file:file.resource, returnUrl:'{f:uri.action( action:\'search\', arguments:\'{ searchWord:\\'{searchWord->f:format.htmlentities()}\\' }\' ) -> f:format.raw()}' )}"
>
<core:icon identifier="actions-page-open" />
</a>
</f:then>
<f:else>
<span class="btn btn-default disabled"><core:icon identifier="empty-empty" /></span>
</f:else>
</f:if>
<f:if condition="{file.IsMetadataEditable}">
<f:then>
<a href="#" class="btn btn-default filelist-file-edit"
title="{f:translate( key:'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.editMetadata' )}"
data-url="{be:uri.editRecord(uid:file.metadataUid, table:'sys_file_metadata', returnUrl:'{f:uri.action( action:\'search\', arguments:\'{ searchWord:\\'{searchWord->f:format.htmlentities()}\\' }\' ) -> f:format.raw()}' )}"
>
<core:icon identifier="actions-open" />
</a>
</f:then>
<f:else>
<span class="btn btn-default disabled"><core:icon identifier="empty-empty" /></span>
</f:else>
</f:if>
<f:if condition="{file.publicUrl}">
<f:then>
<a href="#" class="btn btn-default filelist-file-view"
title="{f:translate( key:'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.view' )}"
data-url="{file.publicUrl}"
>
<core:icon identifier="actions-document-view" />
</a>
</f:then>
<f:else>
<span class="btn btn-default disabled"><core:icon identifier="empty-empty" /></span>
</f:else>
</f:if>
<f:if condition="{file.isReplaceable}">
<f:then>
<a href="#" class="btn btn-default filelist-file-replace"
title="{f:translate( key:'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.replace' )}"
data-url="{fl:uri.replaceFile( file:file.resource, returnUrl:'{f:uri.action( action:\'search\', arguments:\'{ searchWord:\\'{searchWord->f:format.htmlentities()}\\' }\' ) -> f:format.raw()}' )}"
>
<core:icon identifier="actions-edit-replace" />
</a>
</f:then>
<f:else>
<span class="btn btn-default disabled"><core:icon identifier="empty-empty" /></span>
</f:else>
</f:if>
<f:if condition="{file.isRenamable}">
<f:then>
<a href="#" class="btn btn-default filelist-file-rename"
title="{f:translate( key:'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.rename' )}"
data-url="{fl:uri.renameFile( file:file.resource, returnUrl:'{f:uri.action( action:\'search\', arguments:\'{ searchWord:\\'{searchWord->f:format.htmlentities()}\\' }\' ) -> f:format.raw()}' )}"
>
<core:icon identifier="actions-edit-rename" />
</a>
</f:then>
<f:else>
<span class="btn btn-default disabled"><core:icon identifier="empty-empty" /></span>
</f:else>
</f:if>
<f:if condition="{file.isReadable}">
<f:then>
<a href="#" class="btn btn-default filelist-file-info"
title="{f:translate( key:'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.info' )}"
data-identifier="{file.identifier}"
>
<core:icon identifier="actions-document-info" />
</a>
</f:then>
<f:else>
<span class="btn btn-default disabled"><core:icon identifier="empty-empty" /></span>
</f:else>
</f:if>
<f:if condition="{file.copyable}">
<f:then>
<a href="#" class="btn btn-default filelist-file-copy"
title="{f:translate( key:'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.copy' )}"
data-url="{fl:uri.copyCutFile( file:file.resource, copyOrCut: 'copy' )}"
data-redirect-url="{f:uri.action( action:'search', arguments:'{ searchWord:\'{searchWord->f:format.htmlentities()}\' }' )}"
>
<f:if condition="{file.selected} == 'copy'">
<f:then><core:icon identifier="actions-edit-copy-release" /></f:then>
<f:else><core:icon identifier="actions-edit-copy" /></f:else>
</f:if>
</a>
</f:then>
<f:else>
<span class="btn btn-default disabled"><core:icon identifier="empty-empty" /></span>
</f:else>
</f:if>
<f:if condition="{file.cuttable}">
<f:then>
<a href="#" class="btn btn-default filelist-file-cut"
title="{f:translate( key:'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.cut' )}"
data-url="{fl:uri.copyCutFile( file:file.resource, copyOrCut: 'cut' )}"
>
<f:if condition="{file.selected} == 'cut'">
<f:then><core:icon identifier="actions-edit-cut-release" /></f:then>
<f:else><core:icon identifier="actions-edit-cut" /></f:else>
</f:if>
</a>
</f:then>
<f:else>
<span class="btn btn-default disabled"><core:icon identifier="empty-empty" /></span>
</f:else>
</f:if>
<f:if condition="{file.isDeletable}">
<f:then>
<a href="#" class="btn btn-default t3js-filelist-delete"
title="{f:translate( key:'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.delete' )}"
data-identifier="{file.identifier}"
data-title="{f:translate( key:'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:cm.delete' )}"
data-content="{f:translate( key:'LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:mess.delete', arguments: '{0:file.name}' )}"
data-check="{f:if(condition:settings.jsConfirmationDelete, then:'1', else:'0')}"
data-delete-url="{deleteUrl}"
data-delete-type="delete_file"
data-redirect-url="{f:uri.action( action:'search', arguments:'{ searchWord:\'{searchWord->f:format.htmlentities()}\' }' )}"
>
<core:icon identifier="actions-edit-delete" />
</a>
</f:then>
<f:else>
<span class="btn btn-default disabled"><core:icon identifier="empty-empty" /></span>
</f:else>
</f:if>
</div>
</td>
<td class="nowrap">{file.extension}</td>
<td class="nowrap">{file.lastModified}</td>
<td class="nowrap">{file.size}</td>
<td class="nowrap">
<f:if condition="{file.isReadable}"><strong class="text-danger">{f:translate( key:'LLL:EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf:read' )}</strong></f:if><f:if condition="{file.isWritable}"><strong class="text-danger">{f:translate( key:'LLL:EXT:filelist/Resources/Private/Language/locallang_mod_file_list.xlf:write' )}</strong></f:if>
</td>
<td class="nowrap">
<f:if condition="{file.referenceCount} > 0">
<f:then>
<a href="#" class="filelist-file-references" data-identifier="{file.identifier}" title="{f:translate( key:'LLL:EXT:backend/Resources/Private/Language/locallang.xlf:show_references' )} ({file.referenceCount})">{file.referenceCount}</a>
</f:then>
<f:else>
-
</f:else>
</f:if>
</td>
</tr>
</f:for>
</tbody>
</table>
</div>
</f:if>
</f:section>
</html>
Binary file not shown.

After

Width:  |  Height:  |  Size: 350 B

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64"><path fill="#4C7E3A" d="M0 0h64v64H0z"/><path fill="#FFF" d="M36 30h10c0-.692-.097-1.36-.262-2H36v2zM36 26h8.921a8.02 8.02 0 0 0-1.642-2H36v2zM36 34h14.648a5.958 5.958 0 0 0-1.195-2H36v2zM34 40V21.865A9.959 9.959 0 0 0 27 19c-5.413 0-9.81 4.304-9.984 9.675A6.995 6.995 0 0 0 20 42h14v-2zM36 38h14.651A5.97 5.97 0 0 0 51 36H36v2zM36 40v2h9a5.976 5.976 0 0 0 4.463-2H36z"/></svg>

After

Width:  |  Height:  |  Size: 437 B

@@ -0,0 +1,197 @@
/*
* This file is part of the TYPO3 CMS project.
*
* It is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, either version 2
* of the License, or any later version.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* The TYPO3 project - inspiring people to share!
*/
/**
* Module: TYPO3/CMS/Filelist/ContextMenuActions
*
* JavaScript to handle filelist actions from context menu
* @exports TYPO3/CMS/Filelist/ContextMenuActions
*/
define(['jquery', 'TYPO3/CMS/Backend/Modal', 'TYPO3/CMS/Backend/Severity'], function($, Modal, Severity) {
'use strict';
/**
* @exports TYPO3/CMS/Filelist/ContextMenuActions
*/
var ContextMenuActions = {};
ContextMenuActions.getReturnUrl = function() {
return top.rawurlencode(top.list_frame.document.location.pathname + top.list_frame.document.location.search);
};
ContextMenuActions.renameFile = function(table, uid) {
top.TYPO3.Backend.ContentContainer.setUrl(
top.TYPO3.settings.FileRename.moduleUrl + '&target=' + top.rawurlencode(uid) + '&returnUrl=' + ContextMenuActions.getReturnUrl()
);
};
ContextMenuActions.editFile = function(table, uid) {
top.TYPO3.Backend.ContentContainer.setUrl(
top.TYPO3.settings.FileEdit.moduleUrl + '&target=' + top.rawurlencode(uid) + '&returnUrl=' + ContextMenuActions.getReturnUrl()
);
};
ContextMenuActions.editFileStorage = function(table, uid) {
top.TYPO3.Backend.ContentContainer.setUrl(
top.TYPO3.settings.FormEngine.moduleUrl + '&edit[sys_file_storage][' + parseInt(uid, 10) + ']=edit&returnUrl=' + ContextMenuActions.getReturnUrl()
);
};
ContextMenuActions.openInfoPopUp = function(table, uid) {
if (table === 'sys_file_storage') {
top.TYPO3.InfoWindow.showItem(table, uid);
} else {
//files and folders
top.TYPO3.InfoWindow.showItem('_FILE', uid);
}
};
ContextMenuActions.uploadFile = function(table, uid) {
top.TYPO3.Backend.ContentContainer.setUrl(
top.TYPO3.settings.FileUpload.moduleUrl + '&target=' + top.rawurlencode(uid) + '&returnUrl=' + ContextMenuActions.getReturnUrl()
);
};
ContextMenuActions.createFile = function(table, uid) {
top.TYPO3.Backend.ContentContainer.setUrl(
top.TYPO3.settings.FileCreate.moduleUrl + '&target=' + top.rawurlencode(uid) + '&returnUrl=' + ContextMenuActions.getReturnUrl()
);
};
ContextMenuActions.deleteFile = function(table, uid) {
var $anchorElement = $(this);
var performDelete = function() {
top.TYPO3.Backend.ContentContainer.setUrl(
top.TYPO3.settings.FileCommit.moduleUrl + '&data[delete][0][data]=' + top.rawurlencode(uid) + '&data[delete][0][redirect]=' + ContextMenuActions.getReturnUrl()
);
};
if (!$anchorElement.data('title')) {
performDelete();
return;
}
var $modal = Modal.confirm(
$anchorElement.data('title'),
$anchorElement.data('message'),
Severity.warning, [
{
text: $(this).data('button-close-text') || TYPO3.lang['button.cancel'] || 'Cancel',
active: true,
btnClass: 'btn-default',
name: 'cancel'
},
{
text: $(this).data('button-ok-text') || TYPO3.lang['button.delete'] || 'Delete',
btnClass: 'btn-warning',
name: 'delete'
}
]);
$modal.on('button.clicked', function(e) {
if (e.target.name === 'delete') {
performDelete();
}
Modal.dismiss();
});
};
ContextMenuActions.copyFile = function(table, uid) {
var shortMD5 = top.MD5(uid).substring(0, 10);
var url = TYPO3.settings.ajaxUrls['contextmenu_clipboard'];
url += '&CB[el][_FILE%7C' + shortMD5 + ']=' + top.rawurlencode(uid) + '&CB[setCopyMode]=1';
$.ajax(url).always(function() {
top.TYPO3.Backend.ContentContainer.refresh(true);
});
};
ContextMenuActions.copyReleaseFile = function(table, uid) {
var shortMD5 = top.MD5(uid).substring(0, 10);
var url = TYPO3.settings.ajaxUrls['contextmenu_clipboard'];
url += '&CB[el][_FILE%7C' + shortMD5 + ']=0&CB[setCopyMode]=1';
$.ajax(url).always(function() {
top.TYPO3.Backend.ContentContainer.refresh(true);
});
};
ContextMenuActions.cutFile = function(table, uid) {
var shortMD5 = top.MD5(uid).substring(0, 10);
var url = TYPO3.settings.ajaxUrls['contextmenu_clipboard'];
url += '&CB[el][_FILE%7C' + shortMD5 + ']=' + top.rawurlencode(uid);
$.ajax(url).always(function() {
top.TYPO3.Backend.ContentContainer.refresh(true);
});
};
ContextMenuActions.cutReleaseFile = function(table, uid) {
var shortMD5 = top.MD5(uid).substring(0, 10);
var url = TYPO3.settings.ajaxUrls['contextmenu_clipboard'];
url += '&CB[el][_FILE%7C' + shortMD5 + ']=0';
$.ajax(url).always(function() {
top.TYPO3.Backend.ContentContainer.refresh(true);
});
};
ContextMenuActions.pasteFileInto = function(table, uid) {
var $anchorElement = $(this);
var title = $anchorElement.data('title');
var performPaste = function() {
top.TYPO3.Backend.ContentContainer.setUrl(
top.TYPO3.settings.FileCommit.moduleUrl + '&CB[paste]=FILE|' + top.rawurlencode(uid) + '&CB[pad]=normal&redirect=' + ContextMenuActions.getReturnUrl()
);
};
if (!$anchorElement.data('title')) {
performPaste();
return;
}
var $modal = Modal.confirm(
$anchorElement.data('title'),
$anchorElement.data('message'),
Severity.warning, [
{
text: $(this).data('button-close-text') || TYPO3.lang['button.cancel'] || 'Cancel',
active: true,
btnClass: 'btn-default',
name: 'cancel'
},
{
text: $(this).data('button-ok-text') || TYPO3.lang['button.ok'] || 'OK',
btnClass: 'btn-warning',
name: 'ok'
}
]);
$modal.on('button.clicked', function(e) {
if (e.target.name === 'ok') {
performPaste();
}
Modal.dismiss();
});
};
ContextMenuActions.dropInto = function(table, uid, mode) {
var target = $(this).data('drop-target');
top.TYPO3.Backend.ContentContainer.setUrl(
top.TYPO3.settings.FileCommit.moduleUrl
+ '&file[' + mode + '][0][data]=' + top.rawurlencode(uid)
+ '&file[' + mode + '][0][target]=' + top.rawurlencode(target)
+ '&redirect=' + ContextMenuActions.getReturnUrl()
);
};
ContextMenuActions.dropMoveInto = function(table, uid) {
ContextMenuActions.dropInto.bind($(this))(table, uid, 'move');
};
ContextMenuActions.dropCopyInto = function(table, uid) {
ContextMenuActions.dropInto.bind($(this))(table, uid, 'copy');
};
return ContextMenuActions;
});
@@ -0,0 +1,61 @@
/*
* This file is part of the TYPO3 CMS project.
*
* It is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, either version 2
* of the License, or any later version.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* The TYPO3 project - inspiring people to share!
*/
/**
* Module: TYPO3/CMS/Filelist/FileDelete
* JavaScript for file delete
*/
define(['jquery', 'TYPO3/CMS/Backend/Modal', 'TYPO3/CMS/Backend/Severity'], function($, Modal, Severity) {
$(function() {
$(document).on('click', '.t3js-filelist-delete', function(e) {
e.preventDefault();
var $anchorElement = $(this);
var redirectUrl = $anchorElement.data('redirectUrl');
if (redirectUrl) {
redirectUrl = top.rawurlencode(redirectUrl);
} else {
redirectUrl = top.rawurlencode(top.list_frame.document.location.pathname + top.list_frame.document.location.search);
}
var identifier = $anchorElement.data('identifier');
var deleteType = $anchorElement.data('deleteType');
var deleteUrl = $anchorElement.data('deleteUrl') + '&data[delete][0][data]=' + encodeURIComponent(identifier);
if ($anchorElement.data('check')) {
var $modal = Modal.confirm($anchorElement.data('title'), $anchorElement.data('content'), Severity.warning, [
{
text: TYPO3.lang['buttons.confirm.delete_file.no'] || 'Cancel',
active: true,
btnClass: 'btn-default',
name: 'no'
},
{
text: TYPO3.lang['buttons.confirm.' + deleteType + '.yes'] || 'Yes, delete this file or folder',
btnClass: 'btn-warning',
name: 'yes'
}
]);
$modal.on('button.clicked', function(e) {
if (e.target.name === 'no') {
Modal.dismiss();
} else if (e.target.name === 'yes') {
Modal.dismiss();
top.list_frame.location.href = deleteUrl + '&data[delete][0][redirect]=' + redirectUrl;
}
});
} else {
top.list_frame.location.href = deleteUrl + '&data[delete][0][redirect]=' + redirectUrl;
}
});
});
});
@@ -0,0 +1,99 @@
/*
* This file is part of the TYPO3 CMS project.
*
* It is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, either version 2
* of the License, or any later version.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* The TYPO3 project - inspiring people to share!
*/
/**
* Module: TYPO3/CMS/Filelist/Filelist
* @exports TYPO3/CMS/Filelist/Filelist
*/
define(['jquery', 'TYPO3/CMS/Backend/InfoWindow'], function($, InfoWindow) {
$(function() {
$('a.filelist-file-title').click(function(event) {
event.preventDefault();
var url = $(this).attr('data-url');
window.location.href = url;
});
$('a.btn.filelist-file-edit').click(function(event) {
event.preventDefault();
var url = $(this).attr('data-url');
top.list_frame.location.href = url;
});
$('a.btn.filelist-file-view').click(function(event) {
event.preventDefault();
var url = $(this).attr('data-url');
top.openUrlInWindow(url, 'WebFile')
});
$('a.btn.filelist-file-replace').click(function(event) {
event.preventDefault();
var url = $(this).attr('data-url');
top.list_frame.location.href = url;
});
$('a.btn.filelist-file-rename').click(function(event) {
event.preventDefault();
var url = $(this).attr('data-url');
top.list_frame.location.href = url;
});
$('a.btn.filelist-file-info').click(function(event) {
event.preventDefault();
var identifier = $(this).attr('data-identifier');
openFileInfoPopup(identifier);
});
$('a.filelist-file-references').click(function(event) {
event.preventDefault();
var identifier = $(this).attr('data-identifier');
openFileInfoPopup(identifier);
});
$('a.btn.filelist-file-copy').click(function(event) {
event.preventDefault();
var url = $(this).attr('data-url');
var redirectUrl = $(this).attr('data-url');
if (redirectUrl) {
redirectUrl = top.rawurlencode(redirectUrl);
} else {
redirectUrl = top.rawurlencode(top.list_frame.document.location.pathname + top.list_frame.document.location.search);
}
top.list_frame.location.href = url + '&redirect=' + redirectUrl;
});
$('a.btn.filelist-file-cut').click(function(event) {
event.preventDefault();
var url = $(this).attr('data-url');
top.list_frame.location.href = url;
});
});
/**
* @param identifier
*/
function openFileInfoPopup(identifier) {
InfoWindow.showItem('_FILE', identifier);
}
});
@@ -0,0 +1,28 @@
/*
* This file is part of the TYPO3 CMS project.
*
* It is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, either version 2
* of the License, or any later version.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* The TYPO3 project - inspiring people to share!
*/
/**
* Module: TYPO3/CMS/Filelist/FileListLocalisation
* @exports TYPO3/CMS/Filelist/FileListLocalisation
*/
define(['jquery'], function($) {
$(function() {
$('a.filelist-translationToggler').click(function(event) {
var id = $(this).attr('data-fileid');
$('div[data-fileid="' + id + '"]').toggle();
});
});
return null;
});
@@ -0,0 +1,35 @@
/*
* This file is part of the TYPO3 CMS project.
*
* It is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License, either version 2
* of the License, or any later version.
*
* For the full copyright and license information, please read the
* LICENSE.txt file that was distributed with this source code.
*
* The TYPO3 project - inspiring people to share!
*/
/**
* Module: TYPO3/CMS/Filelist/FileSearch
* JavaScript for file search
* @exports TYPO3/CMS/Filelist/FileSearch
*/
define(['jquery', 'TYPO3/CMS/Backend/jquery.clearable'], function($) {
$(function() {
var $searchFields = $('input[name="tx_filelist_file_filelistlist[searchWord]"]');
var searchResultShown = ('' !== $searchFields.first().val());
// make search field clearable
$searchFields.clearable({
onClear: function() {
if (searchResultShown) {
$(this).closest('form').submit();
}
}
});
});
});