From 87361777e643285fbbd20a9bdabe68bb97b72d55 Mon Sep 17 00:00:00 2001 From: Michael Oehlhof <typo3@oehlhof.de> Date: Fri, 23 Dec 2016 09:46:38 +0100 Subject: [PATCH] [BUGFIX] EXT:Scheduler: Update storage index saves correct storage When creating an "update storage index" task, now the selected storage is saved correct. Resolves: #67241 Releases: master Change-Id: I371c5aa882ff78095536f1e413d58850ccb46c2b Reviewed-on: https://review.typo3.org/51036 Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl> Tested-by: Wouter Wolters <typo3@wouterwolters.nl> Tested-by: TYPO3com <no-reply@typo3.com> Reviewed-by: Mona Muzaffar <mona.muzaffar@gmx.de> Reviewed-by: Frank Naegler <frank.naegler@typo3.org> Tested-by: Frank Naegler <frank.naegler@typo3.org> --- ...FileStorageIndexingAdditionalFieldProvider.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/typo3/sysext/scheduler/Classes/Task/FileStorageIndexingAdditionalFieldProvider.php b/typo3/sysext/scheduler/Classes/Task/FileStorageIndexingAdditionalFieldProvider.php index 2e2242bc20f5..3f870fbe2e1d 100644 --- a/typo3/sysext/scheduler/Classes/Task/FileStorageIndexingAdditionalFieldProvider.php +++ b/typo3/sysext/scheduler/Classes/Task/FileStorageIndexingAdditionalFieldProvider.php @@ -33,7 +33,7 @@ class FileStorageIndexingAdditionalFieldProvider implements \TYPO3\CMS\Scheduler if ($task !== null && !$task instanceof FileStorageIndexingTask) { throw new \InvalidArgumentException('Task not of type FileStorageExtractionTask', 1384275696); } - $additionalFields['scheduler_fileStorageIndexing_storage'] = $this->getAllStoragesField($task); + $additionalFields['scheduler_fileStorageIndexing_storage'] = $this->getAllStoragesField($task, $taskInfo); return $additionalFields; } @@ -41,19 +41,22 @@ class FileStorageIndexingAdditionalFieldProvider implements \TYPO3\CMS\Scheduler * Add a select field of available storages. * * @param FileStorageIndexingTask $task When editing, reference to the current task object. NULL when adding. + * @param array $taskInfo * @return array Array containing all the information pertaining to the additional fields */ - protected function getAllStoragesField(FileStorageIndexingTask $task = null) + protected function getAllStoragesField(FileStorageIndexingTask $task = null, $taskInfo) { /** @var \TYPO3\CMS\Core\Resource\ResourceStorage[] $storages */ $storages = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Resource\StorageRepository::class)->findAll(); $options = []; foreach ($storages as $storage) { - if ($task != null && $task->storageUid === $storage->getUid()) { - $options[] = '<option value="' . $storage->getUid() . '" selected="selected">' . $storage->getName() . '</option>'; - } else { - $options[] = '<option value="' . $storage->getUid() . '">' . $storage->getName() . '</option>'; + $selected = ''; + if ($task !== null && $task->storageUid === $storage->getUid()) { + $selected =' selected="selected"'; + } elseif ((int)$taskInfo['scheduler_fileStorageIndexing_storage'] === $storage->getUid()) { + $selected =' selected="selected"'; } + $options[] = '<option value="' . $storage->getUid() . '" ' . $selected . ' >' . $storage->getName() . '</option>'; } $fieldName = 'tx_scheduler[scheduler_fileStorageIndexing_storage]'; -- GitLab