From df36be460a8260e9ecaafb5c20db079b66221f0c Mon Sep 17 00:00:00 2001 From: Oliver Hader <oliver@typo3.org> Date: Wed, 15 Apr 2020 11:00:56 +0200 Subject: [PATCH] [BUGFIX] Reset clipboard state for files that have been deleted Files that just have been deleted in filelist module need to be removed from current clipboard state - otherwise the rendering process will throw ResourceDoesNotExistException due to obviously missing files. Resolves: #91039 Releases: master, 9.5 Change-Id: Ic03cd8775ee4db40996e1152f4f0b1660323780f Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/64177 Tested-by: TYPO3com <noreply@typo3.com> Tested-by: Oliver Hader <oliver.hader@typo3.org> Reviewed-by: Benni Mack <benni@typo3.org> Reviewed-by: Markus Klein <markus.klein@typo3.org> Reviewed-by: Oliver Hader <oliver.hader@typo3.org> --- .../filelist/Classes/Controller/FileListController.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/typo3/sysext/filelist/Classes/Controller/FileListController.php b/typo3/sysext/filelist/Classes/Controller/FileListController.php index 024dda378e00..e4b84381b13f 100644 --- a/typo3/sysext/filelist/Classes/Controller/FileListController.php +++ b/typo3/sysext/filelist/Classes/Controller/FileListController.php @@ -363,8 +363,9 @@ class FileListController extends ActionController implements LoggerAwareInterfac if (!empty($items)) { // Make command array: $FILE = []; - foreach ($items as $v) { - $FILE['delete'][] = ['data' => $v]; + foreach ($items as $clipboardIdentifier => $combinedIdentifier) { + $FILE['delete'][] = ['data' => $combinedIdentifier]; + $this->filelist->clipObj->removeElement($clipboardIdentifier); } // Init file processing object for deleting and pass the cmd array. /** @var ExtendedFileUtility $fileProcessor */ @@ -373,6 +374,9 @@ class FileListController extends ActionController implements LoggerAwareInterfac $fileProcessor->setExistingFilesConflictMode($this->overwriteExistingFiles); $fileProcessor->start($FILE); $fileProcessor->processData(); + // Clean & Save clipboard state + $this->filelist->clipObj->cleanCurrent(); + $this->filelist->clipObj->endClipboard(); } } // Start up filelisting object, include settings. -- GitLab