From 58bf6484c5622140462268ddd978249862141b30 Mon Sep 17 00:00:00 2001 From: Gianluigi Martino <gmartino27@gmail.com> Date: Thu, 20 Apr 2017 18:15:24 +0200 Subject: [PATCH] [TASK] Show copy and cut buttons in filelist options At the moment it is only possible to copy or cut files / folder over the clickmenu. With this patch the copy and cut functions are also listed as buttons in option list. Resolves: #80920 Releases: master, 8.7, 7.6 Change-Id: I75d4b8666858b78c4ed01514d43af4471cef5c2e Reviewed-on: https://review.typo3.org/52521 Tested-by: TYPO3com <no-reply@typo3.com> Reviewed-by: Henrik Elsner <helsner@dfau.de> Tested-by: Henrik Elsner <helsner@dfau.de> Reviewed-by: Georg Ringer <georg.ringer@gmail.com> Tested-by: Georg Ringer <georg.ringer@gmail.com> --- typo3/sysext/filelist/Classes/FileList.php | 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/typo3/sysext/filelist/Classes/FileList.php b/typo3/sysext/filelist/Classes/FileList.php index 7232e1535dae..d6a3fc3ee9aa 100644 --- a/typo3/sysext/filelist/Classes/FileList.php +++ b/typo3/sysext/filelist/Classes/FileList.php @@ -922,6 +922,8 @@ class FileList extends AbstractRecordList { $cells = []; $fullIdentifier = $fileOrFolderObject->getCombinedIdentifier(); + $md5 = GeneralUtility::shortMD5($fullIdentifier); + $isSel = $this->clipObj->isSelected('_FILE', $md5); // Edit file content (if editable) if ($fileOrFolderObject instanceof File && $fileOrFolderObject->checkActionPermission('write') && GeneralUtility::inList($GLOBALS['TYPO3_CONF_VARS']['SYS']['textfile_ext'], $fileOrFolderObject->getExtension())) { @@ -990,6 +992,30 @@ class FileList extends AbstractRecordList $cells['info'] = $this->spaceIcon; } + // copy the file + if ($fileOrFolderObject->checkActionPermission('copy') && $this->clipObj->current === 'normal') { + $copyTitle = htmlspecialchars($this->getLanguageService()->sL('LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:cm.copy')); + $copyIcon = $this->iconFactory->getIcon('actions-edit-copy', Icon::SIZE_SMALL)->render(); + + if ($isSel === 'copy') { + $copyIcon = $this->iconFactory->getIcon('actions-edit-copy-release', Icon::SIZE_SMALL)->render(); + } + + $cells['copy'] = '<a class="btn btn-default"" href="' . htmlspecialchars($this->clipObj->selUrlFile($fullIdentifier, 1, ($isSel === 'copy'))) . '" title="' . $copyTitle . '">' . $copyIcon . '</a>'; + } + + // cut the file + if ($fileOrFolderObject->checkActionPermission('move') && $this->clipObj->current === 'normal') { + $cutTitle = htmlspecialchars($this->getLanguageService()->sL('LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:cm.cut')); + $cutIcon = $this->iconFactory->getIcon('actions-edit-cut', Icon::SIZE_SMALL)->render(); + + if ($isSel === 'cut') { + $cutIcon = $this->iconFactory->getIcon('actions-edit-cut-release', Icon::SIZE_SMALL)->render(); + } + + $cells['cut'] = '<a class="btn btn-default" href="' . htmlspecialchars($this->clipObj->selUrlFile($fullIdentifier, 0, ($isSel === 'cut'))) . '" title="' . $cutTitle . '">' . $cutIcon . '</a>'; + } + // delete the file if ($fileOrFolderObject->checkActionPermission('delete')) { $identifier = $fileOrFolderObject->getIdentifier(); -- GitLab