diff --git a/typo3/sysext/scheduler/Classes/Task/FileIndexingTask.php b/typo3/sysext/scheduler/Classes/Task/FileIndexingTask.php index 8485a042c7c740f71b5e539ddba4a29bf265063b..1f47d6d437b02cdb1b75a8a9e3fc601df086b7ef 100644 --- a/typo3/sysext/scheduler/Classes/Task/FileIndexingTask.php +++ b/typo3/sysext/scheduler/Classes/Task/FileIndexingTask.php @@ -27,6 +27,7 @@ namespace TYPO3\CMS\Scheduler\Task; * This class provides Scheduler plugin implementation * * @author Lorenz Ulrich <lorenz.ulrich@visol.ch> + * @deprecated since TYPO3 CMS 6.2 LTS - will be removed 2 versions later */ class FileIndexingTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask { @@ -78,27 +79,22 @@ class FileIndexingTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask { $this->paths = $paths; } + /** + * Hardcode disabled state + * + * @return boolean TRUE if task is disabled, FALSE otherwise + */ + public function isDisabled() { + return TRUE; + } + /** * Function execute from the Scheduler * * @return boolean TRUE on successful execution, FALSE on error */ public function execute() { - $successfullyExecuted = TRUE; - - /** @var $fileFactory \TYPO3\CMS\Core\Resource\ResourceFactory */ - $fileFactory = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\ResourceFactory'); - /** @var $indexerService \TYPO3\CMS\Core\Resource\Service\IndexerService */ - $indexerService = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\Service\\IndexerService'); - - // run indexing of every storage - $storageRecords = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'sys_file_storage', 'deleted = 0'); - foreach ($storageRecords as $storageRecord) { - $storageObject = $fileFactory->getStorageObject($storageRecord['uid'], $storageRecord); - $folder = $storageObject->getRootLevelFolder(); - $indexerService->indexFilesInFolder($folder); - } - return $successfullyExecuted; + return FALSE; } } diff --git a/typo3/sysext/scheduler/Classes/Task/FileStorageExtractionAdditionalFieldProvider.php b/typo3/sysext/scheduler/Classes/Task/FileStorageExtractionAdditionalFieldProvider.php new file mode 100644 index 0000000000000000000000000000000000000000..98727a949e5bd725f95cfe7418f2678442cf2af7 --- /dev/null +++ b/typo3/sysext/scheduler/Classes/Task/FileStorageExtractionAdditionalFieldProvider.php @@ -0,0 +1,140 @@ +<?php +namespace TYPO3\CMS\Scheduler\Task; + +/*************************************************************** + * Copyright notice + * + * (c) 2013 Steffen Ritter <steffen.ritter@typo3.org> + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +use TYPO3\CMS\Core\Utility\MathUtility; + +/** + * Additional BE fields for task which extracts metadata from storage + * + */ +class FileStorageExtractionAdditionalFieldProvider implements \TYPO3\CMS\Scheduler\AdditionalFieldProviderInterface { + + /** + * Add additional fields + * + * @param array $taskInfo Reference to the array containing the info used in the add/edit form + * @param object $task When editing, reference to the current task object. Null when adding. + * @param \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject Reference to the calling object (Scheduler's BE module) + * @return array Array containing all the information pertaining to the additional fields + * @throws \InvalidArgumentException + */ + public function getAdditionalFields(array &$taskInfo, $task, \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject) { + if ($task !== NULL && !$task instanceof FileStorageExtractionTask) { + throw new \InvalidArgumentException('Task not of type FileStorageExtractionTask', 1384275695); + } + $additionalFields['scheduler_fileStorageIndexing_storage'] = $this->getAllStoragesField($task); + $additionalFields['scheduler_fileStorageIndexing_fileCount'] = $this->getFileCountField($task); + return $additionalFields; + } + + /** + * Returns a field configuration including a selectbox for available storages + * + * @param FileStorageExtractionTask $task When editing, reference to the current task object. NULL when adding. + * @return array Array containing all the information pertaining to the additional fields + */ + protected function getAllStoragesField(FileStorageExtractionTask $task = NULL) { + /** @var \TYPO3\CMS\Core\Resource\ResourceStorage[] $storages */ + $storages = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Core\Resource\StorageRepository')->findAll(); + $options = array(); + 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>'; + } + } + + $fieldName = 'tx_scheduler[scheduler_fileStorageIndexing_storage]'; + $fieldId = 'scheduler_fileStorageIndexing_storage'; + $fieldHtml = '<select name="' . $fieldName . '" id="' . $fieldId . '">' . implode("\n", $options) . '</select>'; + + $fieldConfiguration = array( + 'code' => $fieldHtml, + 'label' => 'LLL:EXT:scheduler/mod1/locallang.xlf:label.fileStorageIndexing.storage', + 'cshKey' => '_MOD_system_txschedulerM1', + 'cshLabel' => $fieldId + ); + return $fieldConfiguration; + } + + /** + * Returns a field configuration including a input field for the file count + * + * @param FileStorageExtractionTask $task When editing, reference to the current task object. NULL when adding. + * @return array Array containing all the information pertaining to the additional fields + */ + protected function getFileCountField(FileStorageExtractionTask $task = NULL) { + $fieldName = 'tx_scheduler[scheduler_fileStorageIndexing_fileCount]'; + $fieldId = 'scheduler_fileStorageIndexing_fileCount'; + $fieldValue = $task !== NULL ? intval($task->maxFileCount) : 100; + $fieldHtml = '<input type="text" name="' . $fieldName . '" id="' . $fieldId . '" value="' . htmlspecialchars($fieldValue) . '" />'; + + $fieldConfiguration = array( + 'code' => $fieldHtml, + 'label' => 'LLL:EXT:scheduler/mod1/locallang.xlf:label.fileStorageExtraction.fileCount', + 'cshKey' => '_MOD_system_txschedulerM1', + 'cshLabel' => $fieldId + ); + return $fieldConfiguration; + } + + /** + * Validate additional fields + * + * @param array $submittedData Reference to the array containing the data submitted by the user + * @param \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject Reference to the calling object (Scheduler's BE module) + * @return boolean True if validation was ok (or selected class is not relevant), false otherwise + */ + public function validateAdditionalFields(array &$submittedData, \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject) { + if (!MathUtility::canBeInterpretedAsInteger($submittedData['scheduler_fileStorageIndexing_storage']) || + !MathUtility::canBeInterpretedAsInteger($submittedData['scheduler_fileStorageIndexing_fileCount'])) { + return FALSE; + } elseif(\TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->getStorageObject($submittedData['scheduler_fileStorageIndexing_storage']) === NULL) { + return FALSE; + } elseif (!MathUtility::isIntegerInRange($submittedData['scheduler_fileStorageIndexing_fileCount'], 1, 9999)) { + return FALSE; + } + return TRUE; + } + + /** + * Save additional field in task + * + * @param array $submittedData Contains data submitted by the user + * @param \TYPO3\CMS\Scheduler\Task\AbstractTask $task Reference to the current task object + * @return void + * @throws \InvalidArgumentException + */ + public function saveAdditionalFields(array $submittedData, \TYPO3\CMS\Scheduler\Task\AbstractTask $task) { + if ($task !== NULL && !$task instanceof FileStorageExtractionTask) { + throw new \InvalidArgumentException('Task not of type FileStorageExtractionTask', 1384275695); + } + $task->storageUid = intval($submittedData['scheduler_fileStorageIndexing_storage']); + $task->maxFileCount = intval($submittedData['scheduler_fileStorageIndexing_fileCount']); + } + +} diff --git a/typo3/sysext/scheduler/Classes/Task/FileStorageExtractionTask.php b/typo3/sysext/scheduler/Classes/Task/FileStorageExtractionTask.php new file mode 100644 index 0000000000000000000000000000000000000000..54ff3b28c5b2faaf888ae7fc6279b3fe8b080aa9 --- /dev/null +++ b/typo3/sysext/scheduler/Classes/Task/FileStorageExtractionTask.php @@ -0,0 +1,78 @@ +<?php +namespace TYPO3\CMS\Scheduler\Task; + +/*************************************************************** + * Copyright notice + * + * (c) 2013 Steffen Ritter <steffen.ritter@typo3.org> + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +/** + * This task which indexes files in storage + * + */ +class FileStorageExtractionTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask { + + /** + * Storage Uid + * + * @var integer + */ + public $storageUid = -1; + + /** + * FileCount + * @var integer + */ + public $maxFileCount = 100; + + /** + * Function execute from the Scheduler + * + * @return boolean TRUE on successful execution, FALSE on error + */ + public function execute() { + $success = FALSE; + if (intval($this->storageUid) > 0) { + $storage = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->getStorageObject($this->storageUid); + $storage->setEvaluatePermissions(FALSE); + $indexer = $this->getIndexer($storage); + try { + $indexer->runMetaDataExtraction(intval($this->maxFileCount)); + $success = TRUE; + } catch (\Exception $e) { + $success = FALSE; + } + $storage->setEvaluatePermissions(TRUE); + } + return $success; + } + + /** + * Gets the indexer + * + * @param \TYPO3\CMS\Core\Resource\ResourceStorage $storage + * @return \TYPO3\CMS\Core\Resource\Index\Indexer + */ + protected function getIndexer(\TYPO3\CMS\Core\Resource\ResourceStorage $storage) { + return \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\Index\\Indexer', $storage); + } + +} diff --git a/typo3/sysext/scheduler/Classes/Task/FileStorageIndexingAdditionalFieldProvider.php b/typo3/sysext/scheduler/Classes/Task/FileStorageIndexingAdditionalFieldProvider.php new file mode 100644 index 0000000000000000000000000000000000000000..299f3603b2dc3fbdc6191fee5a21eb4db8df1c52 --- /dev/null +++ b/typo3/sysext/scheduler/Classes/Task/FileStorageIndexingAdditionalFieldProvider.php @@ -0,0 +1,113 @@ +<?php +namespace TYPO3\CMS\Scheduler\Task; + +/*************************************************************** + * Copyright notice + * + * (c) 2013 Steffen Ritter <steffen.ritter@typo3.org> + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ + +/** + * Additional BE fields for tasks which indexes files in a storage + * + */ +class FileStorageIndexingAdditionalFieldProvider implements \TYPO3\CMS\Scheduler\AdditionalFieldProviderInterface { + + /** + * Add additional fields + * + * @param array $taskInfo Reference to the array containing the info used in the add/edit form + * @param object $task When editing, reference to the current task object. Null when adding. + * @param \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject Reference to the calling object (Scheduler's BE module) + * @return array Array containing all the information pertaining to the additional fields + * @throws \InvalidArgumentException + */ + public function getAdditionalFields(array &$taskInfo, $task, \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject) { + if ($task !== NULL && !$task instanceof FileStorageIndexingTask) { + throw new \InvalidArgumentException('Task not of type FileStorageExtractionTask', 1384275696); + } + $additionalFields['scheduler_fileStorageIndexing_storage'] = $this->getAllStoragesField($task); + return $additionalFields; + } + + /** + * Add a select field of available storages. + * + * @param FileStorageIndexingTask $task When editing, reference to the current task object. NULL when adding. + * @return array Array containing all the information pertaining to the additional fields + */ + protected function getAllStoragesField(FileStorageIndexingTask $task = NULL) { + /** @var \TYPO3\CMS\Core\Resource\ResourceStorage[] $storages */ + $storages = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Core\Resource\StorageRepository')->findAll(); + $options = array(); + 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>'; + } + } + + $fieldName = 'tx_scheduler[scheduler_fileStorageIndexing_storage]'; + $fieldId = 'scheduler_fileStorageIndexing_storage'; + $fieldHtml = '<select name="' . $fieldName . '" id="' . $fieldId . '">' . implode("\n", $options) . '</select>'; + + $fieldConfiguration = array( + 'code' => $fieldHtml, + 'label' => 'LLL:EXT:scheduler/mod1/locallang.xlf:label.fileStorageIndexing.storage', + 'cshKey' => '_MOD_system_txschedulerM1', + 'cshLabel' => $fieldId + ); + return $fieldConfiguration; + } + + /** + * Validate additional fields + * + * @param array $submittedData Reference to the array containing the data submitted by the user + * @param \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject Reference to the calling object (Scheduler's BE module) + * @return boolean True if validation was ok (or selected class is not relevant), false otherwise + */ + public function validateAdditionalFields(array &$submittedData, \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject) { + $value = $submittedData['scheduler_fileStorageIndexing_storage']; + if (!\TYPO3\CMS\Core\Utility\MathUtility::canBeInterpretedAsInteger($value)) { + return FALSE; + } elseif(\TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->getStorageObject($submittedData['scheduler_fileStorageIndexing_storage']) !== NULL) { + return TRUE; + } + return FALSE; + } + + /** + * Save additional field in task + * + * @param array $submittedData Contains data submitted by the user + * @param \TYPO3\CMS\Scheduler\Task\AbstractTask $task Reference to the current task object + * @return void + * @throws \InvalidArgumentException + */ + public function saveAdditionalFields(array $submittedData, \TYPO3\CMS\Scheduler\Task\AbstractTask $task) { + if (!$task instanceof FileStorageIndexingTask) { + throw new \InvalidArgumentException('Task not of type FileStorageExtractionTask', 1384275696); + } + $task->storageUid = intval($submittedData['scheduler_fileStorageIndexing_storage']); + } + +} diff --git a/typo3/sysext/scheduler/Classes/Task/FileStorageIndexingTask.php b/typo3/sysext/scheduler/Classes/Task/FileStorageIndexingTask.php new file mode 100644 index 0000000000000000000000000000000000000000..c2da3f61c3f30c692e230d33277954d5a4681f28 --- /dev/null +++ b/typo3/sysext/scheduler/Classes/Task/FileStorageIndexingTask.php @@ -0,0 +1,72 @@ +<?php +namespace TYPO3\CMS\Scheduler\Task; + +/*************************************************************** + * Copyright notice + * + * (c) 2013 Steffen Ritter <steffen.ritter@typo3.org> + * All rights reserved + * + * This script is part of the TYPO3 project. The TYPO3 project is + * free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * The GNU General Public License can be found at + * http://www.gnu.org/copyleft/gpl.html. + * + * This script is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * This copyright notice MUST APPEAR in all copies of the script! + ***************************************************************/ +/** + * This task tries to find changes in storage and writes them back to DB + * + */ +class FileStorageIndexingTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask { + + /** + * Storage Uid + * + * @var integer + */ + public $storageUid = -1; + + /** + * Function execute from the Scheduler + * + * @return boolean TRUE on successful execution, FALSE on error + */ + public function execute() { + $success = FALSE; + if (intval($this->storageUid) > 0) { + $storage = \TYPO3\CMS\Core\Resource\ResourceFactory::getInstance()->getStorageObject($this->storageUid); + $storage->setEvaluatePermissions(FALSE); + $indexer = $this->getIndexer($storage); + try { + $indexer->processChangesInStorages(); + $success = TRUE; + } catch (\Exception $e) { + $success = FALSE; + } + $storage->setEvaluatePermissions(TRUE); + } + return $success; + } + + /** + * Gets the indexer + * + * @param \TYPO3\CMS\Core\Resource\ResourceStorage $storage + * @return \TYPO3\CMS\Core\Resource\Index\Indexer + */ + protected function getIndexer(\TYPO3\CMS\Core\Resource\ResourceStorage $storage) { + return \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Resource\\Index\\Indexer', $storage); + } + + +} diff --git a/typo3/sysext/scheduler/ext_localconf.php b/typo3/sysext/scheduler/ext_localconf.php index f710a64dd8e95d466c80694f4505fbecf327201f..87930a1970f1e0c3ec557307fdf7352bece959dd 100644 --- a/typo3/sysext/scheduler/ext_localconf.php +++ b/typo3/sysext/scheduler/ext_localconf.php @@ -38,6 +38,24 @@ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Sch 'title' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:fileIndexing.name', 'description' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:fileIndexing.description' ); + +// Add task to index file in a storage +$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\FileStorageIndexingTask'] = array( + 'extension' => $_EXTKEY, + 'title' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:fileStorageIndexing.name', + 'description' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:fileStorageIndexing.description', + 'additionalFields' => 'TYPO3\\CMS\\Scheduler\\Task\\FileStorageIndexingAdditionalFieldProvider' +); + +// Add task for extracting metadata from files in a storage +$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\FileStorageExtractionTask'] = array( + 'extension' => $_EXTKEY, + 'title' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:fileStorageExtraction.name', + 'description' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:fileStorageExtraction.description', + 'additionalFields' => 'TYPO3\\CMS\\Scheduler\\Task\\FileStorageExtractionAdditionalFieldProvider' + +); + // Add recycler directory cleanup task. Windows is not supported // because "filectime" does not change after moving a file if (TYPO3_OS != 'WIN') { @@ -48,6 +66,7 @@ if (TYPO3_OS != 'WIN') { 'additionalFields' => 'TYPO3\\CMS\\Scheduler\\Task\\RecyclerGarbageCollectionAdditionalFieldProvider' ); } + // Add table garbage collection task $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\TableGarbageCollectionTask'] = array( 'extension' => $_EXTKEY, diff --git a/typo3/sysext/scheduler/locallang.xlf b/typo3/sysext/scheduler/locallang.xlf index 40f11ce601b17f9e209b4dcade85e59a07b9da21..e07e61f0924770ee7af87124e743cc93c61c88b6 100644 --- a/typo3/sysext/scheduler/locallang.xlf +++ b/typo3/sysext/scheduler/locallang.xlf @@ -22,11 +22,23 @@ <source>This task calls the garbage collection of configured caching framework caches which use one of the selected backends. This will free some space in cache backends which do not have an internal garbage collection. In case of the default database backend it is advisable to run this task once a day when the database is mostly idle.</source> </trans-unit> <trans-unit id="fileIndexing.name" xml:space="preserve"> - <source>File Abstraction Layer: Indexing job</source> + <source>[OBSOLETE] File Abstraction Layer: Indexing job</source> </trans-unit> <trans-unit id="fileIndexing.description" xml:space="preserve"> <source>Runs indexing tasks based on an indexing configuration and a storage/folder information.</source> </trans-unit> + <trans-unit id="fileStorageIndexing.name" xml:space="preserve"> + <source>File Abstraction Layer: Update storage index</source> + </trans-unit> + <trans-unit id="fileStorageIndexing.description" xml:space="preserve"> + <source>Updates the Index/Cache Data of a Storage; only needed if changes to the storage are possible outside the backend (FTP, RemoteStorages).</source> + </trans-unit> + <trans-unit id="fileStorageExtraction.name" xml:space="preserve"> + <source>File Abstraction Layer: Extract metadata in storage</source> + </trans-unit> + <trans-unit id="fileStorageExtraction.description" xml:space="preserve"> + <source>Extracts metadata for all files in storage which have been changed since last run.</source> + </trans-unit> <trans-unit id="tableGarbageCollection.name" xml:space="preserve"> <source>Table garbage collection</source> </trans-unit> diff --git a/typo3/sysext/scheduler/mod1/locallang.xlf b/typo3/sysext/scheduler/mod1/locallang.xlf index 5f4fa3518ee83554ef6b940badac18cc12a18f77..e50c2d6ad1fcb63f8caa9dd2ee5886001f47fca4 100644 --- a/typo3/sysext/scheduler/mod1/locallang.xlf +++ b/typo3/sysext/scheduler/mod1/locallang.xlf @@ -111,6 +111,12 @@ <trans-unit id="label.start" xml:space="preserve"> <source>Start (HH:MM DD-MM-YYYY)</source> </trans-unit> + <trans-unit id="label.fileStorageIndexing.storage" xml:space="preserve"> + <source>Storage to index</source> + </trans-unit> + <trans-unit id="label.fileStorageExtraction.fileCount" xml:space="preserve"> + <source>Number of files per run</source> + </trans-unit> <trans-unit id="label.tableGarbageCollection.allTables" xml:space="preserve"> <source>Clean all available tables</source> </trans-unit>