[TASK] Upgrade ext:scheduler to a modern file structure 75/31875/10
authorWouter Wolters <typo3@wouterwolters.nl>
Sun, 27 Jul 2014 23:37:17 +0000 (01:37 +0200)
committerMarkus Klein <klein.t3@reelworx.at>
Mon, 8 Sep 2014 16:01:27 +0000 (18:01 +0200)
* Move images to Resources/Public/Images/
* Move language files to Resources/Private/Language/
* Migrate ExtJs to jQuery
* Move module template to Resources/Private/Template/
* Add strict comparison were possible

Resolves: #60630
Releases: 6.3
Change-Id: I7bae64263268562b158dccf9b9c8fa6d6726fe52
Reviewed-on: http://review.typo3.org/31875
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Markus Klein <klein.t3@reelworx.at>
Tested-by: Markus Klein <klein.t3@reelworx.at>
62 files changed:
typo3/sysext/core/Documentation/Changelog/master/Breaking-60630-SchedulerJavascriptFileMoved.rst [new file with mode: 0644]
typo3/sysext/core/Documentation/Changelog/master/Breaking-60630-SchedulerLanguageFilesMoved.rst [new file with mode: 0644]
typo3/sysext/core/Documentation/Changelog/master/Breaking-60630-SchedulerModuleTemplateMoved.rst [new file with mode: 0644]
typo3/sysext/scheduler/Classes/AdditionalFieldProviderInterface.php
typo3/sysext/scheduler/Classes/Controller/SchedulerModuleController.php
typo3/sysext/scheduler/Classes/CronCommand/CronCommand.php
typo3/sysext/scheduler/Classes/CronCommand/NormalizeCommand.php
typo3/sysext/scheduler/Classes/Example/SleepTask.php
typo3/sysext/scheduler/Classes/Example/SleepTaskAdditionalFieldProvider.php
typo3/sysext/scheduler/Classes/Example/TestTask.php
typo3/sysext/scheduler/Classes/Example/TestTaskAdditionalFieldProvider.php
typo3/sysext/scheduler/Classes/Execution.php
typo3/sysext/scheduler/Classes/FailedExecutionException.php
typo3/sysext/scheduler/Classes/ProgressProviderInterface.php
typo3/sysext/scheduler/Classes/Scheduler.php
typo3/sysext/scheduler/Classes/Task/AbstractTask.php
typo3/sysext/scheduler/Classes/Task/CachingFrameworkGarbageCollectionAdditionalFieldProvider.php
typo3/sysext/scheduler/Classes/Task/CachingFrameworkGarbageCollectionTask.php
typo3/sysext/scheduler/Classes/Task/FileIndexingTask.php
typo3/sysext/scheduler/Classes/Task/FileStorageExtractionAdditionalFieldProvider.php
typo3/sysext/scheduler/Classes/Task/FileStorageExtractionTask.php
typo3/sysext/scheduler/Classes/Task/FileStorageIndexingAdditionalFieldProvider.php
typo3/sysext/scheduler/Classes/Task/FileStorageIndexingTask.php
typo3/sysext/scheduler/Classes/Task/RecyclerGarbageCollectionAdditionalFieldProvider.php
typo3/sysext/scheduler/Classes/Task/RecyclerGarbageCollectionTask.php
typo3/sysext/scheduler/Classes/Task/TableGarbageCollectionAdditionalFieldProvider.php
typo3/sysext/scheduler/Classes/Task/TableGarbageCollectionTask.php
typo3/sysext/scheduler/Configuration/TCA/tx_scheduler_task_group.php
typo3/sysext/scheduler/Resources/Private/Language/locallang.xlf [new file with mode: 0644]
typo3/sysext/scheduler/Resources/Private/Language/locallang_csh_scheduler.xlf [new file with mode: 0644]
typo3/sysext/scheduler/Resources/Private/Language/locallang_mod.xlf [new file with mode: 0644]
typo3/sysext/scheduler/Resources/Private/Language/locallang_tca.xlf [new file with mode: 0644]
typo3/sysext/scheduler/Resources/Private/Templates/Module.html [new file with mode: 0644]
typo3/sysext/scheduler/Resources/Public/Images/status_disabled.png [new file with mode: 0644]
typo3/sysext/scheduler/Resources/Public/Images/status_failure.png [new file with mode: 0644]
typo3/sysext/scheduler/Resources/Public/Images/status_late.png [new file with mode: 0644]
typo3/sysext/scheduler/Resources/Public/Images/status_running.png [new file with mode: 0644]
typo3/sysext/scheduler/Resources/Public/Images/status_scheduled.png [new file with mode: 0644]
typo3/sysext/scheduler/Resources/Public/Images/stop.png [new file with mode: 0644]
typo3/sysext/scheduler/Resources/Public/JavaScript/Scheduler.js [new file with mode: 0644]
typo3/sysext/scheduler/Resources/Public/StyleSheets/main.css [new file with mode: 0644]
typo3/sysext/scheduler/Tests/Unit/Controller/SchedulerModuleControllerTest.php
typo3/sysext/scheduler/Tests/Unit/CronCommand/CronCommandTest.php
typo3/sysext/scheduler/Tests/Unit/CronCommand/NormalizeCommandTest.php
typo3/sysext/scheduler/cli/scheduler_cli_dispatch.php
typo3/sysext/scheduler/ext_localconf.php
typo3/sysext/scheduler/ext_tables.php
typo3/sysext/scheduler/locallang.xlf [deleted file]
typo3/sysext/scheduler/locallang_tca.xlf [deleted file]
typo3/sysext/scheduler/mod1/conf.php
typo3/sysext/scheduler/mod1/locallang.xlf [deleted file]
typo3/sysext/scheduler/mod1/locallang_csh_scheduler.xlf [deleted file]
typo3/sysext/scheduler/mod1/locallang_mod.xlf [deleted file]
typo3/sysext/scheduler/mod1/mod_template.html [deleted file]
typo3/sysext/scheduler/res/gfx/status_disabled.png [deleted file]
typo3/sysext/scheduler/res/gfx/status_failure.png [deleted file]
typo3/sysext/scheduler/res/gfx/status_late.png [deleted file]
typo3/sysext/scheduler/res/gfx/status_running.png [deleted file]
typo3/sysext/scheduler/res/gfx/status_scheduled.png [deleted file]
typo3/sysext/scheduler/res/gfx/stop.png [deleted file]
typo3/sysext/scheduler/res/tx_scheduler_be.css [deleted file]
typo3/sysext/scheduler/res/tx_scheduler_be.js [deleted file]

diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-60630-SchedulerJavascriptFileMoved.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-60630-SchedulerJavascriptFileMoved.rst
new file mode 100644 (file)
index 0000000..acec80e
--- /dev/null
@@ -0,0 +1,28 @@
+=============================================================
+Breaking: #60630 - Scheduler Javascript File Moved
+=============================================================
+
+Description
+===========
+
+Javascript files of the scheduler module moved from EXT:scheduler/res/tx_scheduler_be.js to
+EXT:scheduler/Resources/Public/JavaScript/Scheduler.js
+
+
+Impact
+======
+
+Javascript or file not found errors.
+
+
+Affected installations
+======================
+
+An installation is affected if a 3rd party extension includes EXT:scheduler/res/tx_scheduler_be.js
+
+
+Migration
+=========
+
+Include EXT:scheduler/Resources/Public/JavaScript/Scheduler.js instead or refactor the affected extension to free it
+from the dependency to this scheduler internal file.
\ No newline at end of file
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-60630-SchedulerLanguageFilesMoved.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-60630-SchedulerLanguageFilesMoved.rst
new file mode 100644 (file)
index 0000000..b48587b
--- /dev/null
@@ -0,0 +1,29 @@
+===========================================================
+Breaking: #60630 - Scheduler Language Files Moved
+===========================================================
+
+Description
+===========
+
+The language files of the scheduler extension are moved to EXT:scheduler/Resources/Private/Language/
+
+
+Impact
+======
+
+Labels are not translated when being fetched from old file location.
+
+
+Affected installations
+======================
+
+A TYPO3 instance is affected if a 3rd party extension uses a language file from EXT:scheduler
+or if localization overrides of these files are registered. Those overridden labels may not
+work anymore.
+
+
+Migration
+=========
+
+Use new path to language file instead or create/copy the labels to an own language file and
+adapt existing overrides to the new file locations.
diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-60630-SchedulerModuleTemplateMoved.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-60630-SchedulerModuleTemplateMoved.rst
new file mode 100644 (file)
index 0000000..e4fa457
--- /dev/null
@@ -0,0 +1,28 @@
+===========================================================
+Breaking: #60630 - Scheduler Module Template File Moved
+===========================================================
+
+Description
+===========
+
+The HTML template file for the scheduler module was moved from EXT:scheduler/mod1/mod_template.html
+to EXT:scheduler/Resources/Private/Templates/Module.html.
+
+
+Impact
+======
+
+Broken module screen.
+
+
+Affected installations
+======================
+
+A TYPO3 instance is affected if a 3rd party extension uses file EXT:scheduler/mod1/mod_template.html
+
+
+Migration
+=========
+
+Use file EXT:scheduler/Resources/Private/Templates/Module.html instead or refactor the affected extension to free it
+from the dependency to this scheduler internal file.
index 28a9240..9ea4a84 100644 (file)
@@ -13,13 +13,14 @@ namespace TYPO3\CMS\Scheduler;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * Interface for classes who want to provide additional fields when adding a task
  *
- * @author             Ingo Renner <ingo@typo3.org>
+ * @author Ingo Renner <ingo@typo3.org>
  */
-interface AdditionalFieldProviderInterface
-{
+interface AdditionalFieldProviderInterface {
+
        /**
         * Gets additional fields to render in the form to add/edit a task
         *
index b66a082..8cc99eb 100644 (file)
@@ -18,27 +18,28 @@ use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\CMS\Core\Utility\ExtensionManagementUtility;
 use TYPO3\CMS\Backend\Utility\BackendUtility;
 use TYPO3\CMS\Backend\Utility\IconUtility;
+use TYPO3\CMS\Core\Messaging\FlashMessage;
 
 /**
  * Module 'TYPO3 Scheduler administration module' for the 'scheduler' extension.
  *
- * @author             François Suter <francois@typo3.org>
- * @author             Christian Jul Jensen <julle@typo3.org>
- * @author             Ingo Renner <ingo@typo3.org>
+ * @author François Suter <francois@typo3.org>
+ * @author Christian Jul Jensen <julle@typo3.org>
+ * @author Ingo Renner <ingo@typo3.org>
  */
 class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClass {
 
        /**
         * Back path to typo3 main dir
         *
-        * @var string $backPath
+        * @var string
         */
        public $backPath;
 
        /**
         * Array containing submitted data when editing or adding a task
         *
-        * @var array $submittedData
+        * @var array
         */
        protected $submittedData = array();
 
@@ -46,7 +47,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
         * Array containing all messages issued by the application logic
         * Contains the error's severity and the message itself
         *
-        * @var array $messages
+        * @var array
         */
        protected $messages = array();
 
@@ -71,7 +72,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
         * @return \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController
         */
        public function __construct() {
-               $GLOBALS['LANG']->includeLLFile('EXT:scheduler/mod1/locallang.xlf');
+               $GLOBALS['LANG']->includeLLFile('EXT:scheduler/Resources/Private/Language/locallang.xlf');
                $GLOBALS['BE_USER']->modAccess($GLOBALS['MCONF'], TRUE);
                $this->backPath = $GLOBALS['BACK_PATH'];
                // Set key for CSH
@@ -87,9 +88,9 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                parent::init();
                // Initialize document
                $this->doc = GeneralUtility::makeInstance('TYPO3\\CMS\\Backend\\Template\\DocumentTemplate');
-               $this->doc->setModuleTemplate(ExtensionManagementUtility::extPath('scheduler') . 'mod1/mod_template.html');
+               $this->doc->setModuleTemplate(ExtensionManagementUtility::extPath('scheduler') . 'Resources/Private/Templates/Module.html');
                $this->pageRenderer = $this->doc->getPageRenderer();
-               $this->pageRenderer->addCssFile(ExtensionManagementUtility::extRelPath('scheduler') . 'res/tx_scheduler_be.css');
+               $this->pageRenderer->addCssFile(ExtensionManagementUtility::extRelPath('scheduler') . 'Resources/Public/StyleSheets/main.css');
                $this->doc->backPath = $this->backPath;
                $this->doc->bodyTagId = 'typo3-mod-php';
                $this->doc->bodyTagAdditions = 'class="tx_scheduler_mod1"';
@@ -121,10 +122,10 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
        public function main() {
                // Access check!
                // The page will show only if user has admin rights
-               if ($GLOBALS['BE_USER']->user['admin']) {
+               if ($GLOBALS['BE_USER']->isAdmin()) {
                        // Set the form
                        $this->doc->form = '<form name="tx_scheduler_form" id="tx_scheduler_form" method="post" action="">';
-                       $this->pageRenderer->addInlineSetting('scheduler', 'runningIcon', ExtensionManagementUtility::extRelPath('scheduler') . 'res/gfx/status_running.png');
+                       $this->pageRenderer->addInlineSetting('scheduler', 'runningIcon', ExtensionManagementUtility::extRelPath('scheduler') . 'Resources/Public/Images/status_running.png');
                        // Prepare main content
                        $this->content = $this->doc->header($GLOBALS['LANG']->getLL('function.' . $this->MOD_SETTINGS['function']));
                        $this->content .= $this->getModuleContent();
@@ -151,17 +152,17 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                $this->submittedData = GeneralUtility::_GPmerged('tx_scheduler');
                $this->submittedData['uid'] = (int)$this->submittedData['uid'];
                // If a save command was submitted, handle saving now
-               if ($this->CMD == 'save' || $this->CMD == 'saveclose') {
+               if ($this->CMD === 'save' || $this->CMD === 'saveclose') {
                        $previousCMD = GeneralUtility::_GP('previousCMD');
                        // First check the submitted data
                        $result = $this->preprocessData();
                        // If result is ok, proceed with saving
                        if ($result) {
                                $this->saveTask();
-                               if ($this->CMD == 'saveclose') {
+                               if ($this->CMD === 'saveclose') {
                                        // Unset command, so that default screen gets displayed
                                        unset($this->CMD);
-                               } elseif ($this->CMD == 'save') {
+                               } elseif ($this->CMD === 'save') {
                                        // After saving a "add form", return to edit
                                        $this->CMD = 'edit';
                                } else {
@@ -180,7 +181,6 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                                // Execute chosen action
                                switch ($this->CMD) {
                                        case 'add':
-
                                        case 'edit':
                                                try {
                                                        // Try adding or editing
@@ -219,7 +219,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                                break;
                }
                // Wrap the content in a section
-               return $this->doc->section($sectionTitle, '<div class="tx_scheduler_mod1">' . $content . '</div>', 0, 1);
+               return $this->doc->section($sectionTitle, '<div class="tx_scheduler_mod1">' . $content . '</div>', FALSE, TRUE);
        }
 
        /**
@@ -236,7 +236,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
         * It will differentiate between a non-existing user and an existing,
         * but disabled user (as per enable fields)
         *
-        * @return integer      -1      if user doesn't exist
+        * @return integer -1 If user doesn't exist, 0 If user exist but not enabled, 1 If user exists and is enabled
         */
        protected function checkSchedulerUser() {
                $schedulerUserStatus = -1;
@@ -246,6 +246,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('1', 'be_users', $where);
                if ($GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
                        $schedulerUserStatus = 0;
+                       $GLOBALS['TYPO3_DB']->sql_free_result($res);
                        // Check if user exists and is enabled
                        $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('1', 'be_users', $where . BackendUtility::BEenableFields('be_users'));
                        if ($GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
@@ -266,7 +267,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                $checkUser = $this->checkSchedulerUser();
                // Prepare default message
                $message = $GLOBALS['LANG']->getLL('msg.userExists');
-               $severity = \TYPO3\CMS\Core\Messaging\FlashMessage::WARNING;
+               $severity = FlashMessage::WARNING;
                // If the user does not exist, try creating it
                if ($checkUser == -1) {
                        // Prepare necessary data for _cli_scheduler user creation
@@ -282,10 +283,10 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                        $numberOfNewIDs = count($tcemain->substNEWwithIDs);
                        if ($numberOfNewIDs == 1) {
                                $message = $GLOBALS['LANG']->getLL('msg.userCreated');
-                               $severity = \TYPO3\CMS\Core\Messaging\FlashMessage::OK;
+                               $severity = FlashMessage::OK;
                        } else {
                                $message = $GLOBALS['LANG']->getLL('msg.userNotCreated');
-                               $severity = \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR;
+                               $severity = FlashMessage::ERROR;
                        }
                }
                $this->addMessage($message, $severity);
@@ -299,9 +300,9 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
         */
        protected function displayCheckScreen() {
                $message = '';
-               $severity = \TYPO3\CMS\Core\Messaging\FlashMessage::OK;
+               $severity = FlashMessage::OK;
                // First, check if _cli_scheduler user creation was requested
-               if ($this->CMD == 'user') {
+               if ($this->CMD === 'user') {
                        $this->createSchedulerUser();
                }
 
@@ -314,26 +315,26 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                $lastRun = $registry->get('tx_scheduler', 'lastRun');
                if (!is_array($lastRun)) {
                        $message = $GLOBALS['LANG']->getLL('msg.noLastRun');
-                       $severity = \TYPO3\CMS\Core\Messaging\FlashMessage::WARNING;
+                       $severity = FlashMessage::WARNING;
                } else {
                        if (empty($lastRun['end']) || empty($lastRun['start']) || empty($lastRun['type'])) {
                                $message = $GLOBALS['LANG']->getLL('msg.incompleteLastRun');
-                               $severity = \TYPO3\CMS\Core\Messaging\FlashMessage::WARNING;
+                               $severity = FlashMessage::WARNING;
                        } else {
                                $startDate = date($GLOBALS['TYPO3_CONF_VARS']['SYS']['ddmmyy'], $lastRun['start']);
                                $startTime = date($GLOBALS['TYPO3_CONF_VARS']['SYS']['hhmm'], $lastRun['start']);
                                $endDate = date($GLOBALS['TYPO3_CONF_VARS']['SYS']['ddmmyy'], $lastRun['end']);
                                $endTime = date($GLOBALS['TYPO3_CONF_VARS']['SYS']['hhmm'], $lastRun['end']);
                                $label = 'automatically';
-                               if ($lastRun['type'] == 'manual') {
+                               if ($lastRun['type'] === 'manual') {
                                        $label = 'manually';
                                }
                                $type = $GLOBALS['LANG']->getLL('label.' . $label);
                                $message = sprintf($GLOBALS['LANG']->getLL('msg.lastRun'), $type, $startDate, $startTime, $endDate, $endTime);
-                               $severity = \TYPO3\CMS\Core\Messaging\FlashMessage::INFO;
+                               $severity = FlashMessage::INFO;
                        }
                }
-               /** @var $flashMessage \TYPO3\CMS\Core\Messaging\FlashMessage */
+               /** @var $flashMessage FlashMessage */
                $flashMessage = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessage', $message, '', $severity);
 
                $content .= '<div class="info-block">';
@@ -349,13 +350,13 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                if ($checkUser == -1) {
                        $link = $GLOBALS['MCONF']['_'] . '&SET[function]=check&CMD=user';
                        $message = sprintf($GLOBALS['LANG']->getLL('msg.schedulerUserMissing'), htmlspecialchars($link));
-                       $severity = \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR;
+                       $severity = FlashMessage::ERROR;
                } elseif ($checkUser == 0) {
                        $message = $GLOBALS['LANG']->getLL('msg.schedulerUserFoundButDisabled');
-                       $severity = \TYPO3\CMS\Core\Messaging\FlashMessage::WARNING;
+                       $severity = FlashMessage::WARNING;
                } else {
                        $message = $GLOBALS['LANG']->getLL('msg.schedulerUserFound');
-                       $severity = \TYPO3\CMS\Core\Messaging\FlashMessage::OK;
+                       $severity = FlashMessage::OK;
                }
                $flashMessage = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessage', $message, '', $severity);
                $content .= $flashMessage->render() . '</div>';
@@ -375,10 +376,10 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                $content .= '<p>' . sprintf($GLOBALS['LANG']->getLL('msg.cliScript'), $script) . '</p>';
                if ($isExecutable) {
                        $message = $GLOBALS['LANG']->getLL('msg.cliScriptExecutable');
-                       $severity = \TYPO3\CMS\Core\Messaging\FlashMessage::OK;
+                       $severity = FlashMessage::OK;
                } else {
                        $message = $GLOBALS['LANG']->getLL('msg.cliScriptNotExecutable');
-                       $severity = \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR;
+                       $severity = FlashMessage::ERROR;
                }
                $flashMessage = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessage', $message, '', $severity);
                $content .= $flashMessage->render() . '</div>';
@@ -395,8 +396,8 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                $registeredClasses = self::getRegisteredClasses();
                // No classes available, display information message
                if (count($registeredClasses) == 0) {
-                       /** @var $flashMessage \TYPO3\CMS\Core\Messaging\FlashMessage */
-                       $flashMessage = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessage', $GLOBALS['LANG']->getLL('msg.noTasksDefined'), '', \TYPO3\CMS\Core\Messaging\FlashMessage::INFO);
+                       /** @var $flashMessage FlashMessage */
+                       $flashMessage = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessage', $GLOBALS['LANG']->getLL('msg.noTasksDefined'), '', FlashMessage::INFO);
                        $content .= $flashMessage->render();
                } else {
                        // Initialise table layout
@@ -460,8 +461,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
         */
        protected function renderTaskProgressBar($progress) {
                $progressText = $GLOBALS['LANG']->getLL('status.progress') . ':&nbsp;' . $progress . '%';
-               $progressBar = '<div class="progress"> <div class="bar" style="width: ' . $progress . '%;">' . $progressText . '</div> </div>';
-               return $progressBar;
+               return '<div class="progress"> <div class="bar" style="width: ' . $progress . '%;">' . $progressText . '</div> </div>';
        }
 
        /**
@@ -475,13 +475,13 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                        $task = $this->scheduler->fetchTask($this->submittedData['uid']);
                        // If the task is currently running, it may not be deleted
                        if ($task->isExecutionRunning()) {
-                               $this->addMessage($GLOBALS['LANG']->getLL('msg.maynotDeleteRunningTask'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                               $this->addMessage($GLOBALS['LANG']->getLL('msg.maynotDeleteRunningTask'), FlashMessage::ERROR);
                        } else {
                                if ($this->scheduler->removeTask($task)) {
                                        $GLOBALS['BE_USER']->writeLog(4, 0, 0, 0, 'Scheduler task "%s" (UID: %s, Class: "%s") was deleted', array($task->getTaskTitle(), $task->getTaskUid(), $task->getTaskClassName()));
                                        $this->addMessage($GLOBALS['LANG']->getLL('msg.deleteSuccess'));
                                } else {
-                                       $this->addMessage($GLOBALS['LANG']->getLL('msg.deleteError'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                                       $this->addMessage($GLOBALS['LANG']->getLL('msg.deleteError'), FlashMessage::ERROR);
                                }
                        }
                } catch (\UnexpectedValueException $e) {
@@ -490,11 +490,11 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                        if ($result) {
                                $this->addMessage($GLOBALS['LANG']->getLL('msg.deleteSuccess'));
                        } else {
-                               $this->addMessage($GLOBALS['LANG']->getLL('msg.deleteError'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                               $this->addMessage($GLOBALS['LANG']->getLL('msg.deleteError'), FlashMessage::ERROR);
                        }
                } catch (\OutOfBoundsException $e) {
                        // The task was not found, for some reason
-                       $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.taskNotFound'), $this->submittedData['uid']), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                       $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.taskNotFound'), $this->submittedData['uid']), FlashMessage::ERROR);
                }
        }
 
@@ -516,15 +516,15 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                                if ($result) {
                                        $this->addMessage($GLOBALS['LANG']->getLL('msg.stopSuccess'));
                                } else {
-                                       $this->addMessage($GLOBALS['LANG']->getLL('msg.stopError'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                                       $this->addMessage($GLOBALS['LANG']->getLL('msg.stopError'), FlashMessage::ERROR);
                                }
                        } else {
                                // The task is not running, nothing to unmark
-                               $this->addMessage($GLOBALS['LANG']->getLL('msg.maynotStopNonRunningTask'), \TYPO3\CMS\Core\Messaging\FlashMessage::WARNING);
+                               $this->addMessage($GLOBALS['LANG']->getLL('msg.maynotStopNonRunningTask'), FlashMessage::WARNING);
                        }
                } catch (\Exception $e) {
                        // The task was not found, for some reason
-                       $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.taskNotFound'), $this->submittedData['uid']), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                       $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.taskNotFound'), $this->submittedData['uid']), FlashMessage::ERROR);
                }
        }
 
@@ -546,7 +546,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                                $taskRecord = $this->scheduler->fetchTaskRecord($this->submittedData['uid']);
                                // If there's a registered execution, the task should not be edited
                                if (!empty($taskRecord['serialized_executions'])) {
-                                       $this->addMessage($GLOBALS['LANG']->getLL('msg.maynotEditRunningTask'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                                       $this->addMessage($GLOBALS['LANG']->getLL('msg.maynotEditRunningTask'), FlashMessage::ERROR);
                                        throw new \LogicException('Runnings tasks cannot not be edited', 1251232849);
                                }
                                // Get the task object
@@ -582,7 +582,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                                } else {
                                        // The task object is not valid
                                        // Issue error message
-                                       $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.invalidTaskClassEdit'), get_class($task)), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                                       $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.invalidTaskClassEdit'), get_class($task)), FlashMessage::ERROR);
                                        // Initialize empty values
                                        $taskInfo['start'] = 0;
                                        $taskInfo['end'] = 0;
@@ -592,7 +592,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                                }
                        } catch (\OutOfBoundsException $e) {
                                // Add a message and continue throwing the exception
-                               $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.taskNotFound'), $this->submittedData['uid']), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                               $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.taskNotFound'), $this->submittedData['uid']), FlashMessage::ERROR);
                                throw $e;
                        }
                } else {
@@ -612,7 +612,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                }
                // Get the extra fields to display for each task that needs some
                $allAdditionalFields = array();
-               if ($process == 'add') {
+               if ($process === 'add') {
                        foreach ($registeredClasses as $class => $registrationInfo) {
                                if (!empty($registrationInfo['provider'])) {
                                        /** @var $providerObject \TYPO3\CMS\Scheduler\AdditionalFieldProviderInterface */
@@ -633,7 +633,8 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                }
                // Load necessary JavaScript
                $this->pageRenderer->loadExtJS();
-               $this->pageRenderer->addJsFile(ExtensionManagementUtility::extRelPath('scheduler') . 'res/tx_scheduler_be.js');
+               $this->pageRenderer->loadJquery();
+               $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Scheduler/Scheduler');
                $this->pageRenderer->addJsFile($this->backPath . 'sysext/backend/Resources/Public/JavaScript/tceforms.js');
                $this->pageRenderer->addJsFile($this->backPath . 'js/extjs/ux/Ext.ux.DateTimePicker.js');
                // Define settings for Date Picker
@@ -678,7 +679,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                        $cell = $registeredClasses[$taskInfo['class']]['title'] . ' (' . $registeredClasses[$taskInfo['class']]['extension'] . ')';
                        $cell .= '<input type="hidden" name="tx_scheduler[class]" id="task_class" value="' . htmlspecialchars($taskInfo['class']) . '" />';
                } else {
-                       $cell = '<select name="tx_scheduler[class]" id="task_class" class="wide" onchange="actOnChangedTaskClass(this)">';
+                       $cell = '<select name="tx_scheduler[class]" id="task_class" class="wide">';
                        // Group registered classes by classname
                        $groupedClasses = array();
                        foreach ($registeredClasses as $class => $classInfo) {
@@ -707,7 +708,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                // Task type selector
                $label = '<label for="task_type">' . $GLOBALS['LANG']->getLL('label.type') . '</label>';
                $table[$tr][] = BackendUtility::wrapInHelp($this->cshKey, 'task_type', $label);
-               $table[$tr][] = '<select name="tx_scheduler[type]" id="task_type" onchange="actOnChangedTaskType(this)">' . '<option value="1"' . ($taskInfo['type'] == 1 ? ' selected="selected"' : '') . '>' . $GLOBALS['LANG']->getLL('label.type.single') . '</option>' . '<option value="2"' . ($taskInfo['type'] == 2 ? ' selected="selected"' : '') . '>' . $GLOBALS['LANG']->getLL('label.type.recurring') . '</option>' . '</select>';
+               $table[$tr][] = '<select name="tx_scheduler[type]" id="task_type">' . '<option value="1"' . ($taskInfo['type'] == 1 ? ' selected="selected"' : '') . '>' . $GLOBALS['LANG']->getLL('label.type.single') . '</option>' . '<option value="2"' . ($taskInfo['type'] == 2 ? ' selected="selected"' : '') . '>' . $GLOBALS['LANG']->getLL('label.type.recurring') . '</option>' . '</select>';
                $tableLayout[$tr] = array(
                        'tr' => array('<tr id="task_type_row">', '</tr>'),
                        'defCol' => $defaultCell,
@@ -854,16 +855,16 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                                                if ($result) {
                                                        $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.executed'), $name));
                                                } else {
-                                                       $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.notExecuted'), $name), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                                                       $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.notExecuted'), $name), FlashMessage::ERROR);
                                                }
                                        } catch (\Exception $e) {
                                                // An exception was thrown, display its message as an error
-                                               $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.executionFailed'), $name, $e->getMessage()), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                                               $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.executionFailed'), $name, $e->getMessage()), FlashMessage::ERROR);
                                        }
                                } catch (\OutOfBoundsException $e) {
-                                       $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.taskNotFound'), $uid), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                                       $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.taskNotFound'), $uid), FlashMessage::ERROR);
                                } catch (\UnexpectedValueException $e) {
-                                       $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.executionFailed'), $uid, $e->getMessage()), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                                       $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.executionFailed'), $uid, $e->getMessage()), FlashMessage::ERROR);
                                }
                        }
                        // Record the run in the system registry
@@ -905,13 +906,12 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
 
                // No tasks defined, display information message
                if ($numRows == 0) {
-                       /** @var $flashMessage \TYPO3\CMS\Core\Messaging\FlashMessage */
-                       $flashMessage = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessage', $GLOBALS['LANG']->getLL('msg.noTasks'), '', \TYPO3\CMS\Core\Messaging\FlashMessage::INFO);
+                       /** @var $flashMessage FlashMessage */
+                       $flashMessage = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessage', $GLOBALS['LANG']->getLL('msg.noTasks'), '', FlashMessage::INFO);
                        $content .= $flashMessage->render();
                } else {
-                       // Load ExtJS framework and specific JS library
-                       $this->pageRenderer->loadExtJS();
-                       $this->pageRenderer->addJsFile(ExtensionManagementUtility::extRelPath('scheduler') . 'res/tx_scheduler_be.js');
+                       $this->pageRenderer->loadJquery();
+                       $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Scheduler/Scheduler');
                        // Initialise table layout
                        $tableLayout = array(
                                'table' => array(
@@ -952,7 +952,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                        $table = array();
                        $tr = 0;
                        // Header row
-                       $table[$tr][] = '<a href="#" onclick="toggleCheckboxes();" title="' . $GLOBALS['LANG']->getLL('label.checkAll', TRUE) . '" class="icon">' . IconUtility::getSpriteIcon('actions-document-select') . '</a>';
+                       $table[$tr][] = '<a href="#" id="checkall" title="' . $GLOBALS['LANG']->getLL('label.checkAll', TRUE) . '" class="icon">' . IconUtility::getSpriteIcon('actions-document-select') . '</a>';
                        $table[$tr][] = '&nbsp;';
                        $table[$tr][] = $GLOBALS['LANG']->getLL('label.id');
                        $table[$tr][] = $GLOBALS['LANG']->getLL('task');
@@ -996,7 +996,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                                        $deleteAction = '<a href="' . $GLOBALS['MCONF']['_'] . '&CMD=delete&tx_scheduler[uid]=' . $schedulerRecord['uid'] . '" onclick="return confirm(\'' . $GLOBALS['LANG']->getLL('msg.delete') . '\');" title="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xlf:delete', TRUE) . '" class="icon">' .
                                                        IconUtility::getSpriteIcon('actions-edit-delete') . '</a>';
                                        $stopAction = '<a href="' . $GLOBALS['MCONF']['_'] . '&CMD=stop&tx_scheduler[uid]=' . $schedulerRecord['uid'] . '" onclick="return confirm(\'' . $GLOBALS['LANG']->getLL('msg.stop') . '\');" title="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xlf:stop', TRUE) . '" class="icon">' .
-                                                       '<img ' . IconUtility::skinImg($this->backPath, (ExtensionManagementUtility::extRelPath('scheduler') . '/res/gfx/stop.png')) . ' alt="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xlf:stop') . '" /></a>';
+                                                       '<img ' . IconUtility::skinImg($this->backPath, (ExtensionManagementUtility::extRelPath('scheduler') . '/Resources/Public/Images/stop.png')) . ' alt="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xlf:stop') . '" /></a>';
                                        $runAction = '<a href="' . $GLOBALS['MCONF']['_'] . '&tx_scheduler[execute][]=' . $schedulerRecord['uid'] . '" title="' . $GLOBALS['LANG']->getLL('action.run_task') . '" class="icon">' .
                                                        IconUtility::getSpriteIcon('extensions-scheduler-run-task') . '</a>';
 
@@ -1111,11 +1111,11 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                                                        } else {
                                                                $failureDetail = sprintf($GLOBALS['LANG']->getLL('msg.executionFailureReport'), $exception->getCode(), $exception->getMessage());
                                                        }
-                                                       $failureOutput = ' <img ' . IconUtility::skinImg(ExtensionManagementUtility::extRelPath('scheduler'), 'res/gfx/status_failure.png') . ' alt="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.failure')) . '" title="' . htmlspecialchars($failureDetail) . '" />';
+                                                       $failureOutput = ' <img ' . IconUtility::skinImg(ExtensionManagementUtility::extRelPath('scheduler'), 'Resources/Public/Images/status_failure.png') . ' alt="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.failure')) . '" title="' . htmlspecialchars($failureDetail) . '" />';
                                                }
                                                // Format the execution status,
                                                // including failure feedback, if any
-                                               $executionStatusOutput = '<img ' . IconUtility::skinImg(ExtensionManagementUtility::extRelPath('scheduler'), ('res/gfx/status_' . $executionStatus . '.png')) . ' id="executionstatus_' . $schedulerRecord['uid'] . '" alt="' . htmlspecialchars($GLOBALS['LANG']->getLL(('status.' . $executionStatus))) . '" title="' . htmlspecialchars($GLOBALS['LANG']->getLL(('status.legend.' . $executionStatus))) . '" />' . $failureOutput;
+                                               $executionStatusOutput = '<img ' . IconUtility::skinImg(ExtensionManagementUtility::extRelPath('scheduler'), ('Resources/Public/Images/status_' . $executionStatus . '.png')) . ' id="executionstatus_' . $schedulerRecord['uid'] . '" alt="' . htmlspecialchars($GLOBALS['LANG']->getLL(('status.' . $executionStatus))) . '" title="' . htmlspecialchars($GLOBALS['LANG']->getLL(('status.legend.' . $executionStatus))) . '" />' . $failureOutput;
                                                $table[$tr][] = $startExecutionElement;
                                                $table[$tr][] = $actions;
                                                $table[$tr][] = $schedulerRecord['uid'];
@@ -1137,8 +1137,8 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                                        } else {
                                                // The task object is not valid
                                                // Prepare to issue an error
-                                               /** @var $flashMessage \TYPO3\CMS\Core\Messaging\FlashMessage */
-                                               $flashMessage = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessage', sprintf($GLOBALS['LANG']->getLL('msg.invalidTaskClass'), $class), '', \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                                               /** @var $flashMessage FlashMessage */
+                                               $flashMessage = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessage', sprintf($GLOBALS['LANG']->getLL('msg.invalidTaskClass'), $class), '', FlashMessage::ERROR);
                                                $executionStatusOutput = $flashMessage->render();
                                                $tableLayout[$tr] = $rowWithSpan;
                                                $table[$tr][] = $startExecutionElement;
@@ -1159,21 +1159,22 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                                        $GLOBALS['LANG']->getLL('label.executeSelected') . '</button>';
                }
                if (!count($registeredClasses) > 0) {
-                       /** @var $flashMessage \TYPO3\CMS\Core\Messaging\FlashMessage */
-                       $flashMessage = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessage', $GLOBALS['LANG']->getLL('msg.noTasksDefined'), '', \TYPO3\CMS\Core\Messaging\FlashMessage::INFO);
+                       /** @var $flashMessage FlashMessage */
+                       $flashMessage = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessage', $GLOBALS['LANG']->getLL('msg.noTasksDefined'), '', FlashMessage::INFO);
                        $content .= $flashMessage->render();
                }
                // Display legend, if there's at least one registered task
                // Also display information about the usage of server time
                if ($numRows > 0) {
                        $content .= $this->doc->spacer(20);
+                       $extensionRelativePath = ExtensionManagementUtility::extRelPath('scheduler');
                        $content .= '<h3>' . $GLOBALS['LANG']->getLL('status.legend') . '</h3>
                        <ul>
-                               <li><img ' . IconUtility::skinImg(ExtensionManagementUtility::extRelPath('scheduler'), 'res/gfx/status_failure.png') . ' alt="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.failure')) . '" title="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.failure')) . '" /> ' . $GLOBALS['LANG']->getLL('status.legend.failure') . '</li>
-                               <li><img ' . IconUtility::skinImg(ExtensionManagementUtility::extRelPath('scheduler'), 'res/gfx/status_late.png') . ' alt="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.late')) . '" title="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.late')) . '" /> ' . $GLOBALS['LANG']->getLL('status.legend.late') . '</li>
-                               <li><img ' . IconUtility::skinImg(ExtensionManagementUtility::extRelPath('scheduler'), 'res/gfx/status_running.png') . ' alt="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.running')) . '" title="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.running')) . '" /> ' . $GLOBALS['LANG']->getLL('status.legend.running') . '</li>
-                               <li><img ' . IconUtility::skinImg(ExtensionManagementUtility::extRelPath('scheduler'), 'res/gfx/status_scheduled.png') . ' alt="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.scheduled')) . '" title="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.scheduled')) . '" /> ' . $GLOBALS['LANG']->getLL('status.legend.scheduled') . '</li>
-                               <li><img ' . IconUtility::skinImg(ExtensionManagementUtility::extRelPath('scheduler'), 'res/gfx/status_disabled.png') . ' alt="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.disabled')) . '" title="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.disabled')) . '" /> ' . $GLOBALS['LANG']->getLL('status.legend.disabled') . '</li>
+                               <li><img ' . IconUtility::skinImg($extensionRelativePath, 'Resources/Public/Images/status_failure.png') . ' alt="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.failure')) . '" title="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.failure')) . '" /> ' . $GLOBALS['LANG']->getLL('status.legend.failure') . '</li>
+                               <li><img ' . IconUtility::skinImg($extensionRelativePath, 'Resources/Public/Images/status_late.png') . ' alt="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.late')) . '" title="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.late')) . '" /> ' . $GLOBALS['LANG']->getLL('status.legend.late') . '</li>
+                               <li><img ' . IconUtility::skinImg($extensionRelativePath, 'Resources/Public/Images/status_running.png') . ' alt="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.running')) . '" title="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.running')) . '" /> ' . $GLOBALS['LANG']->getLL('status.legend.running') . '</li>
+                               <li><img ' . IconUtility::skinImg($extensionRelativePath, 'Resources/Public/Images/status_scheduled.png') . ' alt="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.scheduled')) . '" title="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.scheduled')) . '" /> ' . $GLOBALS['LANG']->getLL('status.legend.scheduled') . '</li>
+                               <li><img ' . IconUtility::skinImg($extensionRelativePath, 'Resources/Public/Images/status_disabled.png') . ' alt="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.disabled')) . '" title="' . htmlspecialchars($GLOBALS['LANG']->getLL('status.disabled')) . '" /> ' . $GLOBALS['LANG']->getLL('status.legend.disabled') . '</li>
                        </ul>';
                        $content .= $this->displayServerTime();
                }
@@ -1195,7 +1196,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                        } catch (\OutOfBoundsException $e) {
                                // If the task could not be fetched, issue an error message
                                // and exit early
-                               $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.taskNotFound'), $this->submittedData['uid']), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                               $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.taskNotFound'), $this->submittedData['uid']), FlashMessage::ERROR);
                                return;
                        }
                        // Register single execution
@@ -1234,7 +1235,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                                $GLOBALS['BE_USER']->writeLog(4, 0, 0, 0, 'Scheduler task "%s" (UID: %s, Class: "%s") was updated', array($task->getTaskTitle(), $task->getTaskUid(), $task->getTaskClassName()));
                                $this->addMessage($GLOBALS['LANG']->getLL('msg.updateSuccess'));
                        } else {
-                               $this->addMessage($GLOBALS['LANG']->getLL('msg.updateError'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                               $this->addMessage($GLOBALS['LANG']->getLL('msg.updateError'), FlashMessage::ERROR);
                        }
                } else {
                        // A new task is being created
@@ -1271,7 +1272,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                                // can continue editing after initial saving
                                $this->submittedData['uid'] = $task->getTaskUid();
                        } else {
-                               $this->addMessage($GLOBALS['LANG']->getLL('msg.addError'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                               $this->addMessage($GLOBALS['LANG']->getLL('msg.addError'), FlashMessage::ERROR);
                        }
                }
        }
@@ -1292,18 +1293,18 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                $this->submittedData['uid'] = empty($this->submittedData['uid']) ? 0 : (int)$this->submittedData['uid'];
                // Validate selected task class
                if (!class_exists($this->submittedData['class'])) {
-                       $this->addMessage($GLOBALS['LANG']->getLL('msg.noTaskClassFound'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                       $this->addMessage($GLOBALS['LANG']->getLL('msg.noTaskClassFound'), FlashMessage::ERROR);
                }
                // Check start date
                if (empty($this->submittedData['start'])) {
-                       $this->addMessage($GLOBALS['LANG']->getLL('msg.noStartDate'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                       $this->addMessage($GLOBALS['LANG']->getLL('msg.noStartDate'), FlashMessage::ERROR);
                        $result = FALSE;
                } else {
                        try {
                                $timestamp = $this->checkDate($this->submittedData['start']);
                                $this->submittedData['start'] = $timestamp;
                        } catch (\Exception $e) {
-                               $this->addMessage($GLOBALS['LANG']->getLL('msg.invalidStartDate'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                               $this->addMessage($GLOBALS['LANG']->getLL('msg.invalidStartDate'), FlashMessage::ERROR);
                                $result = FALSE;
                        }
                }
@@ -1313,11 +1314,11 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                                $timestamp = $this->checkDate($this->submittedData['end']);
                                $this->submittedData['end'] = $timestamp;
                                if ($this->submittedData['end'] < $this->submittedData['start']) {
-                                       $this->addMessage($GLOBALS['LANG']->getLL('msg.endDateSmallerThanStartDate'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                                       $this->addMessage($GLOBALS['LANG']->getLL('msg.endDateSmallerThanStartDate'), FlashMessage::ERROR);
                                        $result = FALSE;
                                }
                        } catch (\Exception $e) {
-                               $this->addMessage($GLOBALS['LANG']->getLL('msg.invalidEndDate'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                               $this->addMessage($GLOBALS['LANG']->getLL('msg.invalidEndDate'), FlashMessage::ERROR);
                                $result = FALSE;
                        }
                }
@@ -1329,7 +1330,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                        $frequency = trim($this->submittedData['frequency']);
                        if (empty($frequency)) {
                                // Empty frequency, not valid
-                               $this->addMessage($GLOBALS['LANG']->getLL('msg.noFrequency'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                               $this->addMessage($GLOBALS['LANG']->getLL('msg.noFrequency'), FlashMessage::ERROR);
                                $result = FALSE;
                        } else {
                                $cronErrorCode = 0;
@@ -1351,7 +1352,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                                }
                                // If there's a cron error code, issue validation error message
                                if (!empty($cronErrorCode)) {
-                                       $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.frequencyError'), $cronErrorMessage, $cronErrorCode), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                                       $this->addMessage(sprintf($GLOBALS['LANG']->getLL('msg.frequencyError'), $cronErrorMessage, $cronErrorCode), FlashMessage::ERROR);
                                        $result = FALSE;
                                }
                        }
@@ -1413,14 +1414,14 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
         * This method is used to add a message to the internal queue
         *
         * @param string $message The message itself
-        * @param integer $severity Message level (according to \TYPO3\CMS\Core\Messaging\FlashMessage class constants)
+        * @param integer $severity Message level (according to FlashMessage class constants)
         * @return void
         */
-       public function addMessage($message, $severity = \TYPO3\CMS\Core\Messaging\FlashMessage::OK) {
+       public function addMessage($message, $severity = FlashMessage::OK) {
                $flashMessage = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessage', $message, '', $severity);
-               /** @var $flashMessageService \TYPO3\CMS\Core\Messaging\FlashMessageService */
+               /** @var $flashMessageService FlashMessageService */
                $flashMessageService = GeneralUtility::makeInstance('TYPO3\\CMS\\Core\\Messaging\\FlashMessageService');
-               /** @var $defaultFlashMessageQueue \TYPO3\CMS\Core\Messaging\FlashMessageQueue */
+               /** @var $defaultFlashMessageQueue FlashMessageQueue */
                $defaultFlashMessageQueue = $flashMessageService->getMessageQueueByIdentifier();
                $defaultFlashMessageQueue->enqueue($flashMessage);
        }
@@ -1467,7 +1468,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                $query = array(
                        'SELECT' => '*',
                        'FROM' => 'tx_scheduler_task_group',
-                       'WHERE' => '1=1' . \TYPO3\CMS\Backend\Utility\BackendUtility::BEenableFields('tx_scheduler_task_group'),
+                       'WHERE' => '1=1' . BackendUtility::BEenableFields('tx_scheduler_task_group'),
                        'ORDERBY' => 'sorting'
                );
                $res = $GLOBALS['TYPO3_DB']->exec_SELECT_queryArray($query);
@@ -1491,13 +1492,12 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
         * @return array The filled marker array
         */
        protected function getTemplateMarkers() {
-               $markers = array(
+               return array(
                        'CSH' => BackendUtility::wrapInHelp('_MOD_system_txschedulerM1', ''),
                        'FUNC_MENU' => $this->getFunctionMenu(),
                        'CONTENT' => $this->content,
                        'TITLE' => $GLOBALS['LANG']->getLL('title')
                );
-               return $markers;
        }
 
        /**
@@ -1506,8 +1506,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
         * @return string The HTML representation of the function menu selector
         */
        protected function getFunctionMenu() {
-               $functionMenu = BackendUtility::getFuncMenu(0, 'SET[function]', $this->MOD_SETTINGS['function'], $this->MOD_MENU['function']);
-               return $functionMenu;
+               return BackendUtility::getFuncMenu(0, 'SET[function]', $this->MOD_SETTINGS['function'], $this->MOD_MENU['function']);
        }
 
        /**
@@ -1525,7 +1524,7 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                        'reload' => '',
                        'shortcut' => $this->getShortcutButton()
                );
-               if (empty($this->CMD) || $this->CMD == 'list' || $this->CMD == 'delete') {
+               if (empty($this->CMD) || $this->CMD === 'list' || $this->CMD === 'delete') {
                        $buttons['reload'] = '<a href="' . $GLOBALS['MCONF']['_'] . '" title="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_core.xlf:labels.reload', TRUE) . '">' . IconUtility::getSpriteIcon('actions-system-refresh') . '</a>';
                        if ($this->MOD_SETTINGS['function'] === 'scheduler' && count(self::getRegisteredClasses())) {
                                $link = $GLOBALS['MCONF']['_'] . '&CMD=add';
index 4600511..b461091 100644 (file)
@@ -13,6 +13,7 @@ namespace TYPO3\CMS\Scheduler\CronCommand;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * This class provides calculations for the cron command format.
  *
@@ -54,7 +55,7 @@ class CronCommand {
         * @return \TYPO3\CMS\Scheduler\CronCommand\CronCommand
         */
        public function __construct($cronCommand, $timestamp = FALSE) {
-               $cronCommand = \TYPO3\CMS\Scheduler\CronCommand\NormalizeCommand::normalize($cronCommand);
+               $cronCommand = NormalizeCommand::normalize($cronCommand);
                // Explode cron command to sections
                $this->cronCommandSections = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(' ', $cronCommand);
                // Initialize the values with the starting time
@@ -72,6 +73,7 @@ class CronCommand {
         *
         * @api
         * @return void
+        * @throws \RuntimeException
         */
        public function calculateNextValue() {
                $newTimestamp = $this->getTimestamp();
@@ -106,7 +108,7 @@ class CronCommand {
                $this->timestamp = $newTimestamp;
        }
 
-       /*
+       /**
         * Get next timestamp
         *
         * @api
index 60b3623..f08b94d 100644 (file)
@@ -13,6 +13,7 @@ namespace TYPO3\CMS\Scheduler\CronCommand;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 use TYPO3\CMS\Core\Utility\MathUtility;
 
 /**
@@ -55,7 +56,6 @@ class NormalizeCommand {
        static protected function convertKeywordsToCronCommand($cronCommand) {
                switch ($cronCommand) {
                        case '@yearly':
-
                        case '@annually':
                                $cronCommand = '0 0 1 1 *';
                                break;
index ae762d6..62dd5fb 100644 (file)
@@ -25,7 +25,7 @@ class SleepTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask {
        /**
         * Number of seconds the task should be sleeping for
         *
-        * @var integer $sleepTime
+        * @var integer
         */
        public $sleepTime = 10;
 
@@ -50,7 +50,7 @@ class SleepTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask {
         * @return string Information to display
         */
        public function getAdditionalInformation() {
-               return $GLOBALS['LANG']->sL('LLL:EXT:scheduler/mod1/locallang.xlf:label.sleepTime') . ': ' . $this->sleepTime;
+               return $GLOBALS['LANG']->sL('LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.sleepTime') . ': ' . $this->sleepTime;
        }
 
 }
index 3ca5724..f1e7477 100644 (file)
@@ -13,10 +13,11 @@ namespace TYPO3\CMS\Scheduler\Example;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * Additional fields provider class for usage with the Scheduler's sleep task
  *
- * @author             François Suter <francois@typo3.org>
+ * @author François Suter <francois@typo3.org>
  */
 class SleepTaskAdditionalFieldProvider implements \TYPO3\CMS\Scheduler\AdditionalFieldProviderInterface {
 
@@ -27,15 +28,15 @@ class SleepTaskAdditionalFieldProvider implements \TYPO3\CMS\Scheduler\Additiona
         * @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
+        * @return array Array containing all the information pertaining to the additional fields
         */
        public function getAdditionalFields(array &$taskInfo, $task, \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject) {
                // Initialize extra field value
                if (empty($taskInfo['sleepTime'])) {
-                       if ($parentObject->CMD == 'add') {
+                       if ($parentObject->CMD === 'add') {
                                // In case of new task and if field is empty, set default sleep time
                                $taskInfo['sleepTime'] = 30;
-                       } elseif ($parentObject->CMD == 'edit') {
+                       } elseif ($parentObject->CMD === 'edit') {
                                // In case of edit, set to internal value if no data was submitted already
                                $taskInfo['sleepTime'] = $task->sleepTime;
                        } else {
@@ -49,7 +50,7 @@ class SleepTaskAdditionalFieldProvider implements \TYPO3\CMS\Scheduler\Additiona
                $additionalFields = array();
                $additionalFields[$fieldID] = array(
                        'code' => $fieldCode,
-                       'label' => 'LLL:EXT:scheduler/mod1/locallang.xlf:label.sleepTime',
+                       'label' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.sleepTime',
                        'cshKey' => '_MOD_system_txschedulerM1',
                        'cshLabel' => $fieldID
                );
@@ -67,7 +68,7 @@ class SleepTaskAdditionalFieldProvider implements \TYPO3\CMS\Scheduler\Additiona
        public function validateAdditionalFields(array &$submittedData, \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject) {
                $submittedData['sleepTime'] = (int)$submittedData['sleepTime'];
                if ($submittedData['sleepTime'] < 0) {
-                       $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:scheduler/mod1/locallang.xlf:msg.invalidSleepTime'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                       $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:msg.invalidSleepTime'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
                        $result = FALSE;
                } else {
                        $result = TRUE;
index d293c54..202fae5 100644 (file)
@@ -13,6 +13,7 @@ namespace TYPO3\CMS\Scheduler\Example;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * Provides testing procedures
  *
@@ -84,7 +85,7 @@ class TestTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask {
         * @return string Information to display
         */
        public function getAdditionalInformation() {
-               return $GLOBALS['LANG']->sL('LLL:EXT:scheduler/mod1/locallang.xlf:label.email') . ': ' . $this->email;
+               return $GLOBALS['LANG']->sL('LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.email') . ': ' . $this->email;
        }
 
 }
index b5bbc37..e8360f2 100644 (file)
@@ -13,10 +13,11 @@ namespace TYPO3\CMS\Scheduler\Example;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * Additional fields provider class for usage with the Scheduler's test task
  *
- * @author             François Suter <francois@typo3.org>
+ * @author François Suter <francois@typo3.org>
  */
 class TestTaskAdditionalFieldProvider implements \TYPO3\CMS\Scheduler\AdditionalFieldProviderInterface {
 
@@ -27,15 +28,15 @@ class TestTaskAdditionalFieldProvider implements \TYPO3\CMS\Scheduler\Additional
         * @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
+        * @return array Array containing all the information pertaining to the additional fields
         */
        public function getAdditionalFields(array &$taskInfo, $task, \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject) {
                // Initialize extra field value
                if (empty($taskInfo['email'])) {
-                       if ($parentObject->CMD == 'add') {
+                       if ($parentObject->CMD === 'add') {
                                // In case of new task and if field is empty, set default email address
                                $taskInfo['email'] = $GLOBALS['BE_USER']->user['email'];
-                       } elseif ($parentObject->CMD == 'edit') {
+                       } elseif ($parentObject->CMD === 'edit') {
                                // In case of edit, and editing a test task, set to internal value if not data was submitted already
                                $taskInfo['email'] = $task->email;
                        } else {
@@ -49,7 +50,7 @@ class TestTaskAdditionalFieldProvider implements \TYPO3\CMS\Scheduler\Additional
                $additionalFields = array();
                $additionalFields[$fieldID] = array(
                        'code' => $fieldCode,
-                       'label' => 'LLL:EXT:scheduler/mod1/locallang.xlf:label.email',
+                       'label' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.email',
                        'cshKey' => '_MOD_system_txschedulerM1',
                        'cshLabel' => $fieldID
                );
@@ -67,7 +68,7 @@ class TestTaskAdditionalFieldProvider implements \TYPO3\CMS\Scheduler\Additional
        public function validateAdditionalFields(array &$submittedData, \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject) {
                $submittedData['email'] = trim($submittedData['email']);
                if (empty($submittedData['email'])) {
-                       $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:scheduler/mod1/locallang.xlf:msg.noEmail'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                       $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:msg.noEmail'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
                        $result = FALSE;
                } else {
                        $result = TRUE;
index c27703a..cf7b4dd 100644 (file)
@@ -13,47 +13,48 @@ namespace TYPO3\CMS\Scheduler;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * This class manages the logic of a particular execution of a task
  *
- * @author     François Suter <francois@typo3.org>
- * @author     Christian Jul Jensen <julle@typo3.org>
- * @author     Markus Friedrich <markus.friedrich@dkd.de>
+ * @author François Suter <francois@typo3.org>
+ * @author Christian Jul Jensen <julle@typo3.org>
+ * @author Markus Friedrich <markus.friedrich@dkd.de>
  */
 class Execution {
 
        /**
         * Start date of a task (timestamp)
         *
-        * @var         integer $start
+        * @var integer
         */
        protected $start;
 
        /**
         * End date of a task (timestamp)
         *
-        * @var         integer $end
+        * @var integer
         */
        protected $end;
 
        /**
         * Interval between executions (in seconds)
         *
-        * @var         integer $interval
+        * @var integer
         */
        protected $interval;
 
        /**
         * Flag for concurrent executions: TRUE if allowed, FALSE otherwise (default)
         *
-        * @var         boolean $multiple
+        * @var boolean
         */
        protected $multiple = FALSE;
 
        /**
         * The cron command string of this task,
         *
-        * @var         string          $cronCmd
+        * @var string
         */
        protected $cronCmd;
 
@@ -61,7 +62,7 @@ class Execution {
         * This flag is used to mark a new single execution
         * See explanations in method setIsNewSingleExecution()
         *
-        * @var         boolean         $isNewSingleExecution
+        * @var boolean
         * @see \TYPO3\CMS\Scheduler\Execution::setIsNewSingleExecution()
         */
        protected $isNewSingleExecution = FALSE;
index b31d4db..0d82cc8 100644 (file)
@@ -13,12 +13,12 @@ namespace TYPO3\CMS\Scheduler;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * Failed execution exception
  *
- * @author     Ingo Renner <ingo@typo3.org>
+ * @author Ingo Renner <ingo@typo3.org>
  */
 class FailedExecutionException extends \RuntimeException {
 
-
 }
index 2c83b98..fa19384 100644 (file)
@@ -13,12 +13,14 @@ namespace TYPO3\CMS\Scheduler;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * Interface for tasks who can provide their progress
  *
  * @author Ingo Renner <ingo@typo3.org>
  */
 interface ProgressProviderInterface {
+
        /**
         * Gets the progress of a task.
         *
index 6adfc45..67fe899 100644 (file)
@@ -13,17 +13,18 @@ namespace TYPO3\CMS\Scheduler;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * TYPO3 Scheduler. This class handles scheduling and execution of tasks.
  * Formerly known as "Gabriel TYPO3 arch angel"
  *
- * @author     François Suter <francois@typo3.org>
- * @author     Christian Jul Jensen <julle@typo3.org>
+ * @author François Suter <francois@typo3.org>
+ * @author Christian Jul Jensen <julle@typo3.org>
  */
 class Scheduler implements \TYPO3\CMS\Core\SingletonInterface {
 
        /**
-        * @var         array           $extConf: settings from the extension manager
+        * @var array $extConf Settings from the extension manager
         * @todo Define visibility
         */
        public $extConf = array();
@@ -245,6 +246,8 @@ class Scheduler implements \TYPO3\CMS\Core\SingletonInterface {
         *
         * @param integer $uid Primary key of a task
         * @return \TYPO3\CMS\Scheduler\Task\AbstractTask The fetched task object
+        * @throws \OutOfBoundsException
+        * @throws \UnexpectedValueException
         */
        public function fetchTask($uid = 0) {
                // Define where clause
@@ -294,7 +297,8 @@ class Scheduler implements \TYPO3\CMS\Core\SingletonInterface {
         *
         * @param integer $uid Primary key of the task to get
         * @return array Database record for the task
-        * @see tx_scheduler::fetchTask()
+        * @see \TYPO3\CMS\Scheduler\Scheduler::fetchTask()
+        * @throws \OutOfBoundsException
         */
        public function fetchTaskRecord($uid) {
                $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'tx_scheduler_task', 'uid = ' . (int)$uid);
index 7b0af8c..01de9b0 100644 (file)
@@ -13,13 +13,14 @@ namespace TYPO3\CMS\Scheduler\Task;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * This is the base class for all Scheduler tasks
  * It's an abstract class, not designed to be instantiated directly
  * All Scheduler tasks should inherit from this class
  *
- * @author     François Suter <francois@typo3.org>
- * @author     Christian Jul Jensen <julle@typo3.org>
+ * @author François Suter <francois@typo3.org>
+ * @author Christian Jul Jensen <julle@typo3.org>
  */
 abstract class AbstractTask {
 
index 968e215..6b658b3 100644 (file)
@@ -13,6 +13,7 @@ namespace TYPO3\CMS\Scheduler\Task;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * Additional BE fields for caching framework garbage collection task.
  * Creates a multi selectbox with all available cache backends to select from.
@@ -33,12 +34,12 @@ class CachingFrameworkGarbageCollectionAdditionalFieldProvider implements \TYPO3
                // Initialize selected fields
                if (empty($taskInfo['scheduler_cachingFrameworkGarbageCollection_selectedBackends'])) {
                        $taskInfo['scheduler_cachingFrameworkGarbageCollection_selectedBackends'] = array();
-                       if ($parentObject->CMD == 'add') {
+                       if ($parentObject->CMD === 'add') {
                                // In case of new task, set to dbBackend if it's available
                                if (in_array('TYPO3\\CMS\\Core\\Cache\\Backend\\Typo3DatabaseBackend', $this->getRegisteredBackends())) {
                                        $taskInfo['scheduler_cachingFrameworkGarbageCollection_selectedBackends'][] = 'TYPO3\\CMS\\Core\\Cache\\Backend\\Typo3DatabaseBackend';
                                }
-                       } elseif ($parentObject->CMD == 'edit') {
+                       } elseif ($parentObject->CMD === 'edit') {
                                // In case of editing the task, set to currently selected value
                                $taskInfo['scheduler_cachingFrameworkGarbageCollection_selectedBackends'] = $task->selectedBackends;
                        }
@@ -49,7 +50,7 @@ class CachingFrameworkGarbageCollectionAdditionalFieldProvider implements \TYPO3
                $fieldHtml = '<select name="' . $fieldName . '" id="' . $fieldId . '" class="wide" size="10" multiple="multiple">' . $fieldOptions . '</select>';
                $additionalFields[$fieldId] = array(
                        'code' => $fieldHtml,
-                       'label' => 'LLL:EXT:scheduler/mod1/locallang.xlf:label.cachingFrameworkGarbageCollection.selectBackends',
+                       'label' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.cachingFrameworkGarbageCollection.selectBackends',
                        'cshKey' => '_MOD_system_txschedulerM1',
                        'cshLabel' => $fieldId
                );
@@ -69,11 +70,11 @@ class CachingFrameworkGarbageCollectionAdditionalFieldProvider implements \TYPO3
                if (is_array($submittedData['scheduler_cachingFrameworkGarbageCollection_selectedBackends'])) {
                        $invalidBackends = array_diff($submittedData['scheduler_cachingFrameworkGarbageCollection_selectedBackends'], $availableBackends);
                        if (!empty($invalidBackends)) {
-                               $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:scheduler/mod1/locallang.xlf:msg.selectionOfNonExistingCacheBackends'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                               $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:msg.selectionOfNonExistingCacheBackends'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
                                $validData = FALSE;
                        }
                } else {
-                       $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:scheduler/mod1/locallang.xlf:msg.noCacheBackendSelected'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                       $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:msg.noCacheBackendSelected'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
                        $validData = FALSE;
                }
                return $validData;
index e488a38..54f57b2 100644 (file)
@@ -13,6 +13,7 @@ namespace TYPO3\CMS\Scheduler\Task;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * Garbage collection of caching framework cache backends.
  *
index dca6b98..a21ce75 100644 (file)
@@ -13,6 +13,7 @@ namespace TYPO3\CMS\Scheduler\Task;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * This class provides Scheduler plugin implementation
  *
index eeb9d54..967bdbf 100644 (file)
@@ -64,7 +64,7 @@ class FileStorageExtractionAdditionalFieldProvider implements \TYPO3\CMS\Schedul
 
                $fieldConfiguration = array(
                        'code' => $fieldHtml,
-                       'label' => 'LLL:EXT:scheduler/mod1/locallang.xlf:label.fileStorageIndexing.storage',
+                       'label' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.fileStorageIndexing.storage',
                        'cshKey' => '_MOD_system_txschedulerM1',
                        'cshLabel' => $fieldId
                );
@@ -85,7 +85,7 @@ class FileStorageExtractionAdditionalFieldProvider implements \TYPO3\CMS\Schedul
 
                $fieldConfiguration = array(
                        'code' => $fieldHtml,
-                       'label' => 'LLL:EXT:scheduler/mod1/locallang.xlf:label.fileStorageExtraction.fileCount',
+                       'label' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.fileStorageExtraction.fileCount',
                        'cshKey' => '_MOD_system_txschedulerM1',
                        'cshLabel' => $fieldId
                );
@@ -100,8 +100,10 @@ class FileStorageExtractionAdditionalFieldProvider implements \TYPO3\CMS\Schedul
         * @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'])) {
+               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;
index 6d5c842..3481933 100644 (file)
@@ -16,7 +16,6 @@ namespace TYPO3\CMS\Scheduler\Task;
 
 /**
  * This task which indexes files in storage
- *
  */
 class FileStorageExtractionTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask {
 
@@ -29,6 +28,7 @@ class FileStorageExtractionTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask {
 
        /**
         * FileCount
+        *
         * @var integer
         */
        public $maxFileCount = 100;
index 777e16e..25a7bb9 100644 (file)
@@ -16,7 +16,6 @@ namespace TYPO3\CMS\Scheduler\Task;
 
 /**
  * Additional BE fields for tasks which indexes files in a storage
- *
  */
 class FileStorageIndexingAdditionalFieldProvider implements \TYPO3\CMS\Scheduler\AdditionalFieldProviderInterface {
 
@@ -61,7 +60,7 @@ class FileStorageIndexingAdditionalFieldProvider implements \TYPO3\CMS\Scheduler
 
                $fieldConfiguration = array(
                        'code' => $fieldHtml,
-                       'label' => 'LLL:EXT:scheduler/mod1/locallang.xlf:label.fileStorageIndexing.storage',
+                       'label' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.fileStorageIndexing.storage',
                        'cshKey' => '_MOD_system_txschedulerM1',
                        'cshLabel' => $fieldId
                );
index 7e94aa4..34780b0 100644 (file)
@@ -13,9 +13,9 @@ namespace TYPO3\CMS\Scheduler\Task;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * This task tries to find changes in storage and writes them back to DB
- *
  */
 class FileStorageIndexingTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask {
 
index ca56e5d..955c95d 100644 (file)
@@ -13,13 +13,14 @@ namespace TYPO3\CMS\Scheduler\Task;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * Additional BE fields for recycler garbage collection task.
  *
  * Creates an integer input field for difference between scheduler run time
  * and file modification time in days to select from.
  *
- * @author 2011 Kai Vogel <kai.vogel@speedprogs.de>
+ * @author Kai Vogel <kai.vogel@speedprogs.de>
  */
 class RecyclerGarbageCollectionAdditionalFieldProvider implements \TYPO3\CMS\Scheduler\AdditionalFieldProviderInterface {
 
@@ -53,7 +54,7 @@ class RecyclerGarbageCollectionAdditionalFieldProvider implements \TYPO3\CMS\Sch
                $fieldHtml = '<input type="text" name="' . $fieldName . '" id="' . $fieldId . '" value="' . htmlspecialchars($fieldValue) . '" />';
                $additionalFields[$fieldId] = array(
                        'code' => $fieldHtml,
-                       'label' => 'LLL:EXT:scheduler/mod1/locallang.xlf:label.recyclerGarbageCollection.numberOfDays',
+                       'label' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.recyclerGarbageCollection.numberOfDays',
                        'cshKey' => '_MOD_system_txschedulerM1',
                        'cshLabel' => $fieldId
                );
@@ -73,7 +74,7 @@ class RecyclerGarbageCollectionAdditionalFieldProvider implements \TYPO3\CMS\Sch
                // If not, fail validation and issue error message
                if (!is_numeric($submittedData['scheduler_recyclerGarbageCollection_numberOfDays']) || (int)$submittedData['scheduler_recyclerGarbageCollection_numberOfDays'] < 0) {
                        $result = FALSE;
-                       $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:scheduler/mod1/locallang.xlf:msg.invalidNumberOfDays'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                       $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:msg.invalidNumberOfDays'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
                }
                return $result;
        }
index 9a9fc73..c8f209e 100644 (file)
@@ -13,6 +13,7 @@ namespace TYPO3\CMS\Scheduler\Task;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * Recycler folder garbage collection task
  *
@@ -43,10 +44,11 @@ class RecyclerGarbageCollectionTask extends \TYPO3\CMS\Scheduler\Task\AbstractTa
         * Cleanup recycled files, called by scheduler.
         *
         * @return boolean TRUE if task run was successful
+        * @throws \BadMethodCallException
         */
        public function execute() {
                // There is no file ctime on windows, so this task disables itself if OS = win
-               if (TYPO3_OS == 'WIN') {
+               if (TYPO3_OS === 'WIN') {
                        throw new \BadMethodCallException('This task is not reliable for Windows OS', 1308270454);
                }
                $seconds = 60 * 60 * 24 * (int)$this->numberOfDays;
index 85a7982..8b62c35 100644 (file)
@@ -13,6 +13,7 @@ namespace TYPO3\CMS\Scheduler\Task;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * Additional BE fields for sys log table garbage collection task.
  *
@@ -35,6 +36,7 @@ class TableGarbageCollectionAdditionalFieldProvider implements \TYPO3\CMS\Schedu
         */
        public function getAdditionalFields(array &$taskInfo, $task, \TYPO3\CMS\Scheduler\Controller\SchedulerModuleController $parentObject) {
                $this->initDefaultNumberOfDays();
+               $additionalFields = array();
                $additionalFields['task_tableGarbageCollection_allTables'] = $this->getAllTablesAdditionalField($taskInfo, $task, $parentObject);
                $additionalFields['task_tableGarbageCollection_table'] = $this->getTableAdditionalField($taskInfo, $task, $parentObject);
                $additionalFields['task_tableGarbageCollection_numberOfDays'] = $this->getNumberOfDaysAdditionalField($taskInfo, $task, $parentObject);
@@ -71,10 +73,10 @@ class TableGarbageCollectionAdditionalFieldProvider implements \TYPO3\CMS\Schedu
                }
                $fieldName = 'tx_scheduler[scheduler_tableGarbageCollection_allTables]';
                $fieldId = 'task_tableGarbageCollection_allTables';
-               $fieldHtml = '<input type="checkbox" ' . $checked . 'onChange="actOnChangeSchedulerTableGarbageCollectionAllTables(this)" ' . 'name="' . $fieldName . '" ' . 'id="' . $fieldId . '" />';
+               $fieldHtml = '<input type="checkbox" ' . $checked . ' name="' . $fieldName . '" ' . 'id="' . $fieldId . '" />';
                $fieldConfiguration = array(
                        'code' => $fieldHtml,
-                       'label' => 'LLL:EXT:scheduler/mod1/locallang.xlf:label.tableGarbageCollection.allTables',
+                       'label' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.tableGarbageCollection.allTables',
                        'cshKey' => '_MOD_system_txschedulerM1',
                        'cshLabel' => $fieldId
                );
@@ -113,14 +115,14 @@ class TableGarbageCollectionAdditionalFieldProvider implements \TYPO3\CMS\Schedu
                $fieldId = 'task_tableGarbageCollection_table';
                $fieldHtml = array();
                // Add table drop down html
-               $fieldHtml[] = '<select ' . 'name="' . $fieldName . '" ' . $disabled . 'onChange="actOnChangeSchedulerTableGarbageCollectionTable(this)"' . 'id="' . $fieldId . '">' . implode(LF, $options) . '</select>';
+               $fieldHtml[] = '<select ' . 'name="' . $fieldName . '" ' . $disabled . ' id="' . $fieldId . '">' . implode(LF, $options) . '</select>';
                // Add js array for default 'number of days' values
                $fieldHtml[] = '<script type="text/javascript">/*<![CDATA[*/<!--';
                $fieldHtml[] = 'var defaultNumberOfDays = ' . json_encode($this->defaultNumberOfDays) . ';';
                $fieldHtml[] = '// -->/*]]>*/</script>';
                $fieldConfiguration = array(
                        'code' => implode(LF, $fieldHtml),
-                       'label' => 'LLL:EXT:scheduler/mod1/locallang.xlf:label.tableGarbageCollection.table',
+                       'label' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.tableGarbageCollection.table',
                        'cshKey' => '_MOD_system_txschedulerM1',
                        'cshLabel' => $fieldId
                );
@@ -158,7 +160,7 @@ class TableGarbageCollectionAdditionalFieldProvider implements \TYPO3\CMS\Schedu
                $fieldHtml = '<input type="text" ' . 'name="' . $fieldName . '" ' . 'id="' . $fieldId . '" ' . $disabled . 'value="' . (int)$taskInfo['scheduler_tableGarbageCollection_numberOfDays'] . '" ' . 'size="4" />';
                $fieldConfiguration = array(
                        'code' => $fieldHtml,
-                       'label' => 'LLL:EXT:scheduler/mod1/locallang.xlf:label.tableGarbageCollection.numberOfDays',
+                       'label' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.tableGarbageCollection.numberOfDays',
                        'cshKey' => '_MOD_system_txschedulerM1',
                        'cshLabel' => $fieldId
                );
@@ -229,7 +231,7 @@ class TableGarbageCollectionAdditionalFieldProvider implements \TYPO3\CMS\Schedu
                        $validData = TRUE;
                } else {
                        // Issue error message
-                       $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:scheduler/mod1/locallang.xlf:msg.invalidNumberOfDays'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
+                       $parentObject->addMessage($GLOBALS['LANG']->sL('LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:msg.invalidNumberOfDays'), \TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
                }
                return $validData;
        }
@@ -242,7 +244,7 @@ class TableGarbageCollectionAdditionalFieldProvider implements \TYPO3\CMS\Schedu
         * @return void
         */
        public function saveAdditionalFields(array $submittedData, \TYPO3\CMS\Scheduler\Task\AbstractTask $task) {
-               $task->allTables = $submittedData['scheduler_tableGarbageCollection_allTables'] === 'on' ? TRUE : FALSE;
+               $task->allTables = $submittedData['scheduler_tableGarbageCollection_allTables'] === 'on';
                $task->table = $submittedData['scheduler_tableGarbageCollection_table'];
                $task->numberOfDays = (int)$submittedData['scheduler_tableGarbageCollection_numberOfDays'];
        }
index 20e073c..306aeec 100644 (file)
@@ -45,7 +45,7 @@ class TableGarbageCollectionTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask
        /**
         * Execute garbage collection, called by scheduler.
         *
-        * @throws \RuntimeException if configured table was not cleaned up
+        * @throws \RuntimeException If configured table was not cleaned up
         * @return boolean TRUE if task run was successful
         */
        public function execute() {
@@ -106,9 +106,9 @@ class TableGarbageCollectionTask extends \TYPO3\CMS\Scheduler\Task\AbstractTask
         */
        public function getAdditionalInformation() {
                if ($this->allTables) {
-                       $message = $GLOBALS['LANG']->sL('LLL:EXT:scheduler/mod1/locallang.xlf:label.tableGarbageCollection.additionalInformationAllTables');
+                       $message = $GLOBALS['LANG']->sL('LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.tableGarbageCollection.additionalInformationAllTables');
                } else {
-                       $message = sprintf($GLOBALS['LANG']->sL('LLL:EXT:scheduler/mod1/locallang.xlf:label.tableGarbageCollection.additionalInformationTable'), $this->table);
+                       $message = sprintf($GLOBALS['LANG']->sL('LLL:EXT:scheduler/Resources/Private/Language/locallang.xlf:label.tableGarbageCollection.additionalInformationTable'), $this->table);
                }
                return $message;
        }
index 79de433..a6c50af 100644 (file)
@@ -3,7 +3,7 @@ return array(
        'ctrl' => array(
                'label' => 'groupName',
                'tstamp' => 'tstamp',
-               'title' => 'LLL:EXT:scheduler/locallang_tca.xlf:tx_scheduler_task_group',
+               'title' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang_tca.xlf:tx_scheduler_task_group',
                'crdate' => 'crdate',
                'cruser_id' => 'cruser_id',
                'delete' => 'deleted',
@@ -21,7 +21,7 @@ return array(
        ),
        'columns' => array(
                'groupName' => array(
-                       'label' => 'LLL:EXT:scheduler/locallang_tca.xlf:tx_scheduler_task_group.groupName',
+                       'label' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang_tca.xlf:tx_scheduler_task_group.groupName',
                        'config' => array(
                                'type' => 'input',
                                'size' => '35',
@@ -31,7 +31,7 @@ return array(
                        )
                ),
                'description' => array(
-                       'label' => 'LLL:EXT:scheduler/locallang_tca.xlf:tx_scheduler_task_group.description',
+                       'label' => 'LLL:EXT:scheduler/Resources/Private/Language/locallang_tca.xlf:tx_scheduler_task_group.description',
                        'config' => array(
                                'type' => 'text'
                        ),
diff --git a/typo3/sysext/scheduler/Resources/Private/Language/locallang.xlf b/typo3/sysext/scheduler/Resources/Private/Language/locallang.xlf
new file mode 100644 (file)
index 0000000..db5b708
--- /dev/null
@@ -0,0 +1,407 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xliff version="1.0">
+       <file source-language="en" datatype="plaintext" original="messages" date="2011-10-17T20:22:37Z" product-name="scheduler">
+               <header/>
+               <body>
+                       <trans-unit id="action.add" xml:space="preserve">
+                               <source>Add task</source>
+                       </trans-unit>
+                       <trans-unit id="action.edit" xml:space="preserve">
+                               <source>Edit task</source>
+                       </trans-unit>
+                       <trans-unit id="button.cancel" xml:space="preserve">
+                               <source>Cancel</source>
+                       </trans-unit>
+                       <trans-unit id="function.scheduler" xml:space="preserve">
+                               <source>Scheduled tasks</source>
+                       </trans-unit>
+                       <trans-unit id="function.check" xml:space="preserve">
+                               <source>Setup check</source>
+                       </trans-unit>
+                       <trans-unit id="function.info" xml:space="preserve">
+                               <source>Information</source>
+                       </trans-unit>
+                       <trans-unit id="hdg.cliScript" xml:space="preserve">
+                               <source>CLI script</source>
+                       </trans-unit>
+                       <trans-unit id="hdg.lastRun" xml:space="preserve">
+                               <source>Last run</source>
+                       </trans-unit>
+                       <trans-unit id="hdg.schedulerUser" xml:space="preserve">
+                               <source>TYPO3 Scheduler backend user</source>
+                       </trans-unit>
+                       <trans-unit id="label.automatically" xml:space="preserve">
+                               <source>automatically</source>
+                       </trans-unit>
+                       <trans-unit id="label.cachingFrameworkGarbageCollection.selectBackends" xml:space="preserve">
+                               <source>Backend types</source>
+                       </trans-unit>
+                       <trans-unit id="label.recyclerGarbageCollection.numberOfDays" xml:space="preserve">
+                               <source>Number of days until removing files</source>
+                       </trans-unit>
+                       <trans-unit id="label.checkAll" xml:space="preserve">
+                               <source>Check/uncheck all</source>
+                       </trans-unit>
+                       <trans-unit id="label.class" xml:space="preserve">
+                               <source>Class</source>
+                       </trans-unit>
+                       <trans-unit id="label.cron" xml:space="preserve">
+                               <source>Cron</source>
+                       </trans-unit>
+                       <trans-unit id="label.defType" xml:space="preserve">
+                               <source>Definition type</source>
+                       </trans-unit>
+                       <trans-unit id="label.defType.interval" xml:space="preserve">
+                               <source>Interval</source>
+                       </trans-unit>
+                       <trans-unit id="label.defType.cron" xml:space="preserve">
+                               <source>Cron command</source>
+                       </trans-unit>
+                       <trans-unit id="label.description" xml:space="preserve">
+                               <source>Description</source>
+                       </trans-unit>
+                       <trans-unit id="label.email" xml:space="preserve">
+                               <source>Email</source>
+                       </trans-unit>
+                       <trans-unit id="label.end" xml:space="preserve">
+                               <source>End (HH:MM DD-MM-YYYY)</source>
+                       </trans-unit>
+                       <trans-unit id="label.executeSelected" xml:space="preserve">
+                               <source>Execute selected tasks</source>
+                       </trans-unit>
+                       <trans-unit id="label.extension" xml:space="preserve">
+                               <source>Extension</source>
+                       </trans-unit>
+                       <trans-unit id="label.frequency" xml:space="preserve">
+                               <source>Frequency</source>
+                       </trans-unit>
+                       <trans-unit id="label.frequency.long" xml:space="preserve">
+                               <source>Frequency (seconds or cron command)</source>
+                       </trans-unit>
+                       <trans-unit id="label.id" xml:space="preserve">
+                               <source>ID</source>
+                       </trans-unit>
+                       <trans-unit id="label.lastExecution" xml:space="preserve">
+                               <source>Last Execution</source>
+                       </trans-unit>
+                       <trans-unit id="label.manual" xml:space="preserve">
+                               <source>Manual</source>
+                       </trans-unit>
+                       <trans-unit id="label.manually" xml:space="preserve">
+                               <source>manually</source>
+                       </trans-unit>
+                       <trans-unit id="label.name" xml:space="preserve">
+                               <source>Name</source>
+                       </trans-unit>
+                       <trans-unit id="label.nextExecution" xml:space="preserve">
+                               <source>Next Execution</source>
+                       </trans-unit>
+                       <trans-unit id="label.parallel" xml:space="preserve">
+                               <source>Parallel Execution</source>
+                       </trans-unit>
+                       <trans-unit id="label.parallel.long" xml:space="preserve">
+                               <source>Allow Parallel Execution</source>
+                       </trans-unit>
+                       <trans-unit id="label.serverTime" xml:space="preserve">
+                               <source>Server time</source>
+                       </trans-unit>
+                       <trans-unit id="label.sleepTime" xml:space="preserve">
+                               <source>Sleep time</source>
+                       </trans-unit>
+                       <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>
+                       <trans-unit id="label.tableGarbageCollection.table" xml:space="preserve">
+                               <source>Table to clean up</source>
+                       </trans-unit>
+                       <trans-unit id="label.tableGarbageCollection.additionalInformationTable" xml:space="preserve">
+                               <source>Table: %s</source>
+                       </trans-unit>
+                       <trans-unit id="label.tableGarbageCollection.additionalInformationAllTables" xml:space="preserve">
+                               <source>All tables</source>
+                       </trans-unit>
+                       <trans-unit id="label.tableGarbageCollection.numberOfDays" xml:space="preserve">
+                               <source>Delete entries older than given number of days</source>
+                       </trans-unit>
+                       <trans-unit id="label.type" xml:space="preserve">
+                               <source>Type</source>
+                       </trans-unit>
+                       <trans-unit id="label.type.recurring" xml:space="preserve">
+                               <source>Recurring</source>
+                       </trans-unit>
+                       <trans-unit id="label.type.single" xml:space="preserve">
+                               <source>Single</source>
+                       </trans-unit>
+                       <trans-unit id="label.group" xml:space="preserve">
+                               <source>Task group</source>
+                       </trans-unit>
+                       <trans-unit id="msg.addError" xml:space="preserve">
+                               <source>The task could not be added.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.addSuccess" xml:space="preserve">
+                               <source>The task was added successfully.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.cliScript" xml:space="preserve">
+                               <source>The script to execute the Scheduler from the command line is: &lt;strong&gt;"%s scheduler"&lt;/strong&gt;.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.cliScriptExecutable" xml:space="preserve">
+                               <source>The webserver user is allowed execute this script.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.cliScriptNotExecutable" xml:space="preserve">
+                               <source>The webserver user is not allowed to execute this script.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.delete" xml:space="preserve">
+                               <source>Are you sure you want to delete this task?</source>
+                       </trans-unit>
+                       <trans-unit id="msg.deleteError" xml:space="preserve">
+                               <source>The task could not be deleted.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.deleteSuccess" xml:space="preserve">
+                               <source>The task was successfully deleted.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.endDateSmallerThanStartDate" xml:space="preserve">
+                               <source>The end date is before the start date.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.executed" xml:space="preserve">
+                               <source>Executed: %s</source>
+                       </trans-unit>
+                       <trans-unit id="msg.frequencyError" xml:space="preserve">
+                               <source>Invalid frequency. Please enter either a number of seconds or a valid cron command. The cron parser said: %1$s [code: %2$d].</source>
+                       </trans-unit>
+                       <trans-unit id="msg.incompleteLastRun" xml:space="preserve">
+                               <source>The information about the last execution of the Scheduler is incomplete.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.infoScreenIntro" xml:space="preserve">
+                               <source>This is the list of all available tasks in this TYPO3 installation. Click on the icon at the far right to directly create a new scheduled task of the chosen type.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.invalidFrequency" xml:space="preserve">
+                               <source>Invalid frequency. Please enter either a number of seconds or a valid cron command.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.invalidSleepTime" xml:space="preserve">
+                               <source>Please enter a sleep time greater or equal to 0 (zero).</source>
+                       </trans-unit>
+                       <trans-unit id="msg.lastRun" xml:space="preserve">
+                               <source>The Scheduler was last started (%1$s) on %2$s at %3$s and ended on %4$s at %5$s.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.maynotDeleteRunningTask" xml:space="preserve">
+                               <source>A running task may not be deleted.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.maynotEditRunningTask" xml:space="preserve">
+                               <source>A running task may not be edited.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.maynotStopNonRunningTask" xml:space="preserve">
+                               <source>The task is not running. There are no executions to unmark.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.noEmail" xml:space="preserve">
+                               <source>Please enter an email address.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.noFrequency" xml:space="preserve">
+                               <source>No frequency was defined, either as an interval or as a cron command.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.noLastRun" xml:space="preserve">
+                               <source>The Scheduler has never yet run or the information about the last run has been lost.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.noTasksDefined" xml:space="preserve">
+                               <source>There are currently no task classes available at all. To be able to create new tasks, you must either enable the samples provided by the Scheduler or install some other extension that relies on the Scheduler.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.noTaskClassFound" xml:space="preserve">
+                               <source>The selected task class could not be found. You should probably contact the task's developers.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.noTasks" xml:space="preserve">
+                               <source>No tasks defined yet.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.notExecuted" xml:space="preserve">
+                               <source>Not executed: %s</source>
+                       </trans-unit>
+                       <trans-unit id="msg.executionFailed" xml:space="preserve">
+                               <source>Execution of task "%1$s" failed with the following message: %2$s</source>
+                       </trans-unit>
+                       <trans-unit id="msg.executionFailureDefault" xml:space="preserve">
+                               <source>The execution failed, but the error message could not be retrieved (it was probably too large). Sorry.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.executionFailureReport" xml:space="preserve">
+                               <source>Execution failed: %1$d, %2$s</source>
+                       </trans-unit>
+                       <trans-unit id="msg.noStartDate" xml:space="preserve">
+                               <source>Please define a start date.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.invalidStartDate" xml:space="preserve">
+                               <source>Start date is invalid.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.invalidEndDate" xml:space="preserve">
+                               <source>End date is invalid.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.invalidNumberOfDays" xml:space="preserve">
+                               <source>Number of days is invalid.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.selectionOfNonExistingCacheBackends" xml:space="preserve">
+                               <source>Some of the selected cache backends do not exist. Please select valid backends only.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.noCacheBackendSelected" xml:space="preserve">
+                               <source>Please select at least one cache backend.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.invalidTaskClass" xml:space="preserve">
+                               <source>Class %s of the registered task could not be found. You should re-install the extension that provided it or simply delete this task.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.invalidTaskClassEdit" xml:space="preserve">
+                               <source>The current class (%s) could not be found. Change it below or consider deleting this task altogether.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.schedulerSetupCheck" xml:space="preserve">
+                               <source>This screen checks if the requisites for running the Scheduler as a cron job are fulfilled. It also displays information about the last run of the Scheduler.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.schedulerUser" xml:space="preserve">
+                               <source>The backend user "_cli_scheduler" is used by the CLI-script to log into TYPO3. This user may not have administrator privileges. The user's password is not important but should be set to a secure value for security reasons.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.schedulerUserFound" xml:space="preserve">
+                               <source>The backend user "_cli_scheduler" was found.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.schedulerUserFoundButDisabled" xml:space="preserve">
+                               <source>The backend user "_cli_scheduler" exists but is currently disabled.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.schedulerUserMissing" xml:space="preserve">
+                               <source>The backend user "_cli_scheduler" was not found. &lt;a href="%s" title="Click to create the missing user"&gt;Create the user now&lt;/a&gt;.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.serverTime" xml:space="preserve">
+                               <source>Current server time is %s.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.serverTimeHelp" xml:space="preserve">
+                               <source>All dates and times in the Scheduler are measured according to the server's time, as the Scheduler is run purely on the server-side.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.stop" xml:space="preserve">
+                               <source>Are you sure you want to mark this task as not running? Note that this will not stop the actual script (if unsure please refer to the manual).</source>
+                       </trans-unit>
+                       <trans-unit id="msg.stopError" xml:space="preserve">
+                               <source>The task could not be marked as non-running.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.stopSuccess" xml:space="preserve">
+                               <source>The task was successfully marked as non-running.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.taskNotFound" xml:space="preserve">
+                               <source>The requested task (UID: %d) was not found.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.updateSuccess" xml:space="preserve">
+                               <source>The task was updated successfully.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.updateError" xml:space="preserve">
+                               <source>The task could not be updated.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.userCreated" xml:space="preserve">
+                               <source>The "_cli_scheduler" user was created successfully.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.userExists" xml:space="preserve">
+                               <source>The "_cli_scheduler" user already exists. It was not created.</source>
+                       </trans-unit>
+                       <trans-unit id="msg.userNotCreated" xml:space="preserve">
+                               <source>The creation of the "_cli_scheduler" user failed.</source>
+                       </trans-unit>
+                       <trans-unit id="none" xml:space="preserve">
+                               <source>None</source>
+                       </trans-unit>
+                       <trans-unit id="status" xml:space="preserve">
+                               <source>Status</source>
+                       </trans-unit>
+                       <trans-unit id="status.progress" xml:space="preserve">
+                               <source>Progress</source>
+                       </trans-unit>
+                       <trans-unit id="status.legend" xml:space="preserve">
+                               <source>Status Legend</source>
+                       </trans-unit>
+                       <trans-unit id="status.legend.disabled" xml:space="preserve">
+                               <source>Disabled, will not be executed, except manually</source>
+                       </trans-unit>
+                       <trans-unit id="status.legend.failure" xml:space="preserve">
+                               <source>Failure! An error occurred during the last execution (move over bullet for more details)</source>
+                       </trans-unit>
+                       <trans-unit id="status.legend.late" xml:space="preserve">
+                               <source>Late, will run with next execution</source>
+                       </trans-unit>
+                       <trans-unit id="status.legend.running" xml:space="preserve">
+                               <source>Currently running</source>
+                       </trans-unit>
+                       <trans-unit id="status.legend.scheduled" xml:space="preserve">
+                               <source>Scheduled, will run on next possible execution</source>
+                       </trans-unit>
+                       <trans-unit id="status.disabled" xml:space="preserve">
+                               <source>disabled</source>
+                       </trans-unit>
+                       <trans-unit id="status.failure" xml:space="preserve">
+                               <source>failure</source>
+                       </trans-unit>
+                       <trans-unit id="status.late" xml:space="preserve">
+                               <source>late</source>
+                       </trans-unit>
+                       <trans-unit id="status.running" xml:space="preserve">
+                               <source>running</source>
+                       </trans-unit>
+                       <trans-unit id="status.scheduled" xml:space="preserve">
+                               <source>scheduled</source>
+                       </trans-unit>
+                       <trans-unit id="task" xml:space="preserve">
+                               <source>Task</source>
+                       </trans-unit>
+                       <trans-unit id="title" xml:space="preserve">
+                               <source>TYPO3 Scheduler administration module</source>
+                       </trans-unit>
+                       <trans-unit id="action.run_task" xml:space="preserve">
+                               <source>Run task</source>
+                       </trans-unit>
+                       <trans-unit id="testTask.name" xml:space="preserve">
+                               <source>Scheduler test task</source>
+                       </trans-unit>
+                       <trans-unit id="testTask.description" xml:space="preserve">
+                               <source>The Scheduler test task just sends a mail to a given email address. It is designed to be used for testing purposes.</source>
+                       </trans-unit>
+                       <trans-unit id="sleepTask.name" xml:space="preserve">
+                               <source>Scheduler sleep task</source>
+                       </trans-unit>
+                       <trans-unit id="sleepTask.description" xml:space="preserve">
+                               <source>This task does nothing but put PHP to sleep for a number of seconds. It is designed to test multiple executions.</source>
+                       </trans-unit>
+                       <trans-unit id="cachingFrameworkGarbageCollection.name" xml:space="preserve">
+                               <source>Caching framework garbage collection</source>
+                       </trans-unit>
+                       <trans-unit id="cachingFrameworkGarbageCollection.description" xml:space="preserve">
+                               <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>[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>
+                       <trans-unit id="tableGarbageCollection.description" xml:space="preserve">
+                               <source>Task to delete old entries from specific tables like sys_log. Use $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['tx_scheduler_TableGarbageCollection']['options']['tables'] to configure tables. Refer to the manual for more details.</source>
+                       </trans-unit>
+                       <trans-unit id="recyclerGarbageCollection.name" xml:space="preserve">
+                               <source>Fileadmin garbage collection</source>
+                       </trans-unit>
+                       <trans-unit id="recyclerGarbageCollection.description" xml:space="preserve">
+                               <source>This task empties all "_recycler_" folders below fileadmin. This helps free some space in the file system.</source>
+                       </trans-unit>
+               </body>
+       </file>
+</xliff>
diff --git a/typo3/sysext/scheduler/Resources/Private/Language/locallang_csh_scheduler.xlf b/typo3/sysext/scheduler/Resources/Private/Language/locallang_csh_scheduler.xlf
new file mode 100644 (file)
index 0000000..7f2afe4
--- /dev/null
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xliff version="1.0">
+       <file source-language="en" datatype="plaintext" original="messages" date="2011-10-17T20:22:37Z" product-name="scheduler">
+               <header/>
+               <body>
+                       <trans-unit id=".alttitle" xml:space="preserve">
+                               <source>Scheduler</source>
+                       </trans-unit>
+                       <trans-unit id=".description" xml:space="preserve">
+                               <source>The Scheduler provides an interface to register and manage recurring or one-time tasks.</source>
+                       </trans-unit>
+                       <trans-unit id=".syntax" xml:space="preserve">
+                               <source>The Scheduler uses a single cron job to handle all registered tasks. It is thus very convenient as only one cron job needs to be set up and all task frequencies can be managed from the BE module.</source>
+                       </trans-unit>
+                       <trans-unit id="task_class.alttitle" xml:space="preserve">
+                               <source>Class of the task</source>
+                       </trans-unit>
+                       <trans-unit id="task_class.description" xml:space="preserve">
+                               <source>Choose a class from the list of available tasks</source>
+                       </trans-unit>
+                       <trans-unit id="task_class.details" xml:space="preserve">
+                               <source>Some tasks are provided by the TYPO3 Core itself. Others come from extensions. See the manual to learn how to create your own tasks and register them with the Scheduler.</source>
+                       </trans-unit>
+                       <trans-unit id="task_disable.alttitle" xml:space="preserve">
+                               <source>Disable task</source>
+                       </trans-unit>
+                       <trans-unit id="task_disable.description" xml:space="preserve">
+                               <source>Check this box to disable the automatic, scheduled execution of this task. It can still be launched manually from the BE module.</source>
+                       </trans-unit>
+                       <trans-unit id="task_type.alttitle" xml:space="preserve">
+                               <source>Type of task</source>
+                       </trans-unit>
+                       <trans-unit id="task_type.description" xml:space="preserve">
+                               <source>Choose whether the task must happen a single time or will be repeated</source>
+                       </trans-unit>
+                       <trans-unit id="task_start.alttitle" xml:space="preserve">
+                               <source>Start of task</source>
+                       </trans-unit>
+                       <trans-unit id="task_start.description" xml:space="preserve">
+                               <source>Enter a start date and time for the task</source>
+                       </trans-unit>
+                       <trans-unit id="task_start.details" xml:space="preserve">
+                               <source>Date must be entered in a standard format like HH:mm dd-mm-YYYY or YYYY-mm-dd HH:mm. Natural keywords can also be used, like "now" or "tomorrow".
+Date and time must correspond to the server's time zone.</source>
+                       </trans-unit>
+                       <trans-unit id="task_end.alttitle" xml:space="preserve">
+                               <source>End of task</source>
+                       </trans-unit>
+                       <trans-unit id="task_end.description" xml:space="preserve">
+                               <source>Enter an end date and time for the task, can be blank</source>
+                       </trans-unit>
+                       <trans-unit id="task_end.details" xml:space="preserve">
+                               <source>Date must be entered in a standard format like HH:mm dd-mm-YYYY or YYYY-mm-dd HH:mm. Natural keywords can also be used, like "now" or "tomorrow".
+Date and time must correspond to the server's time zone.
+
+Can be left blank, if task is not supposed to end at any point.</source>
+                       </trans-unit>
+                       <trans-unit id="task_frequency.alttitle" xml:space="preserve">
+                               <source>Frequency of task</source>
+                       </trans-unit>
+                       <trans-unit id="task_frequency.description" xml:space="preserve">
+                               <source>Enter a frequency, either in seconds or using a cron-like syntax (minutes, hours, day of month, months and day of week)</source>
+                       </trans-unit>
+                       <trans-unit id="task_frequency.details" xml:space="preserve">
+                               <source>The frequency of the task can be simply entered as a number of seconds.
+
+Alternatively it is possible to use the same syntax as for cron jobs. This is simply a list of five numbers or the wildcard "*", separated by blanks. The five numbers are (in order) minutes, hours, day of month, months and day of week. Examples:
+
+*/5 * * * * means every 5 minutes
+30 22 * * * means every day at 22:30
+
+The Scheduler supports the full cron syntax.</source>
+                       </trans-unit>
+                       <trans-unit id="task_frequency.seeAlso" xml:space="preserve">
+                               <source>Wikipedia reference|http://en.wikipedia.org/wiki/Cron</source>
+                       </trans-unit>
+                       <trans-unit id="task_multiple.alttitle" xml:space="preserve">
+                               <source>Multiple executions</source>
+                       </trans-unit>
+                       <trans-unit id="task_multiple.description" xml:space="preserve">
+                               <source>Choose whether a task can be running several times simultaneously or not</source>
+                       </trans-unit>
+                       <trans-unit id="task_email.alttitle" xml:space="preserve">
+                               <source>Email address</source>
+                       </trans-unit>
+                       <trans-unit id="task_email.description" xml:space="preserve">
+                               <source>Enter a recipient for the mails sent by the test task</source>
+                       </trans-unit>
+                       <trans-unit id="task_sleepTime.alttitle" xml:space="preserve">
+                               <source>Sleep time</source>
+                       </trans-unit>
+                       <trans-unit id="task_sleepTime.description" xml:space="preserve">
+                               <source>Enter a number of seconds during which the task will just sleep.</source>
+                       </trans-unit>
+                       <trans-unit id="task_cachingFrameworkGarbageCollection_selectedBackends.alttitle" xml:space="preserve">
+                               <source>Select backends</source>
+                       </trans-unit>
+                       <trans-unit id="task_cachingFrameworkGarbageCollection_selectedBackends.description" xml:space="preserve">
+                               <source>If a cache uses one of the selected backends, the garbage collection will be called for this cache.</source>
+                       </trans-unit>
+                       <trans-unit id="task_tableGarbageCollection_numberOfDays.alttitle" xml:space="preserve">
+                               <source>Number of days</source>
+                       </trans-unit>
+                       <trans-unit id="task_tableGarbageCollection_numberOfDays.description" xml:space="preserve">
+                               <source>Delete rows from selected table that are older than given number of days.</source>
+                       </trans-unit>
+                       <trans-unit id="task_tableGarbageCollection_table.alttitle" xml:space="preserve">
+                               <source>Select table</source>
+                       </trans-unit>
+                       <trans-unit id="task_tableGarbageCollection_table.description" xml:space="preserve">
+                               <source>Select one of the registered tables to be cleaned up with this task.</source>
+                       </trans-unit>
+                       <trans-unit id="task_tableGarbageCollection_allTables.alttitle" xml:space="preserve">
+                               <source>Clean up all tables</source>
+                       </trans-unit>
+                       <trans-unit id="task_tableGarbageCollection_allTables.description" xml:space="preserve">
+                               <source>If selected, all configured tables are cleaned. The selection below is ignored.</source>
+                       </trans-unit>
+                       <trans-unit id="task_recyclerGarbageCollection_numberOfDays.alttitle" xml:space="preserve">
+                               <source>Number of days</source>
+                       </trans-unit>
+                       <trans-unit id="task_recyclerGarbageCollection_numberOfDays.description" xml:space="preserve">
+                               <source>Delete files in _recycler_ folders that are older than the given number of days.</source>
+                       </trans-unit>
+               </body>
+       </file>
+</xliff>
diff --git a/typo3/sysext/scheduler/Resources/Private/Language/locallang_mod.xlf b/typo3/sysext/scheduler/Resources/Private/Language/locallang_mod.xlf
new file mode 100644 (file)
index 0000000..361fb64
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xliff version="1.0">
+       <file source-language="en" datatype="plaintext" original="messages" date="2011-10-17T20:22:37Z" product-name="scheduler">
+               <header/>
+               <body>
+                       <trans-unit id="mlang_tabs_tab" xml:space="preserve">
+                               <source>Scheduler</source>
+                       </trans-unit>
+                       <trans-unit id="mlang_labels_tabdescr" xml:space="preserve">
+                               <source>Scheduler administration module. Check all registered tasks. Add, modify or delete tasks.&lt;br /&gt;&lt;em&gt;Access for 'admin' users only!&lt;/em&gt;</source>
+                       </trans-unit>
+                       <trans-unit id="mlang_labels_tablabel" xml:space="preserve">
+                               <source>TYPO3 Scheduler</source>
+                       </trans-unit>
+               </body>
+       </file>
+</xliff>
diff --git a/typo3/sysext/scheduler/Resources/Private/Language/locallang_tca.xlf b/typo3/sysext/scheduler/Resources/Private/Language/locallang_tca.xlf
new file mode 100644 (file)
index 0000000..86be6c8
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xliff version="1.0">
+       <file source-language="en" datatype="plaintext" original="messages" date="2011-10-17T20:22:37Z" product-name="scheduler">
+               <header/>
+               <body>
+                       <trans-unit id="tx_scheduler_task_group" xml:space="preserve">
+                               <source>Scheduler task group</source>
+                       </trans-unit>
+                       <trans-unit id="tx_scheduler_task_group.groupName" xml:space="preserve">
+                               <source>Group name</source>
+                       </trans-unit>
+               </body>
+       </file>
+</xliff>
diff --git a/typo3/sysext/scheduler/Resources/Private/Templates/Module.html b/typo3/sysext/scheduler/Resources/Private/Templates/Module.html
new file mode 100644 (file)
index 0000000..33d0548
--- /dev/null
@@ -0,0 +1,36 @@
+<!-- ###FULLDOC### begin -->
+<div class="typo3-fullDoc">
+       <div id="typo3-docheader">
+               <div class="typo3-docheader-functions">
+                       <div class="left">###CSH######FUNC_MENU###</div>
+                       <div class="right"></div>
+               </div>
+               <div class="typo3-docheader-buttons">
+                       <div class="left">###BUTTONLIST_LEFT###</div>
+                       <div class="right">###BUTTONLIST_RIGHT###</div>
+               </div>
+       </div>
+
+       <div id="typo3-docbody">
+               <div id="typo3-inner-docbody">
+                       ###CONTENT###
+               </div>
+       </div>
+</div>
+<!-- ###FULLDOC### end -->
+
+<!-- Grouping the icons on top -->
+
+<!-- ###BUTTON_GROUP_WRAP### -->
+<div class="buttongroup">###BUTTONS###</div>
+<!-- ###BUTTON_GROUP_WRAP### -->
+
+<!-- ###BUTTON_GROUPS_LEFT### -->
+<!-- ###BUTTON_GROUP1### -->###ADDTASK######CLOSE###<!-- ###BUTTON_GROUP1### -->
+<!-- ###BUTTON_GROUP2### -->###SAVE######SAVECLOSE###<!-- ###BUTTON_GROUP2### -->
+<!-- ###BUTTON_GROUP3### -->###DELETE###<!-- ###BUTTON_GROUP3### -->
+<!-- ###BUTTON_GROUPS_LEFT### -->
+
+<!-- ###BUTTON_GROUPS_RIGHT### -->
+<!-- ###BUTTON_GROUP1### -->###RELOAD######SHORTCUT###<!-- ###BUTTON_GROUP1### -->
+<!-- ###BUTTON_GROUPS_RIGHT### -->
diff --git a/typo3/sysext/scheduler/Resources/Public/Images/status_disabled.png b/typo3/sysext/scheduler/Resources/Public/Images/status_disabled.png
new file mode 100644 (file)
index 0000000..38efedd
Binary files /dev/null and b/typo3/sysext/scheduler/Resources/Public/Images/status_disabled.png differ
diff --git a/typo3/sysext/scheduler/Resources/Public/Images/status_failure.png b/typo3/sysext/scheduler/Resources/Public/Images/status_failure.png
new file mode 100644 (file)
index 0000000..d683838
Binary files /dev/null and b/typo3/sysext/scheduler/Resources/Public/Images/status_failure.png differ
diff --git a/typo3/sysext/scheduler/Resources/Public/Images/status_late.png b/typo3/sysext/scheduler/Resources/Public/Images/status_late.png
new file mode 100644 (file)
index 0000000..815495f
Binary files /dev/null and b/typo3/sysext/scheduler/Resources/Public/Images/status_late.png differ
diff --git a/typo3/sysext/scheduler/Resources/Public/Images/status_running.png b/typo3/sysext/scheduler/Resources/Public/Images/status_running.png
new file mode 100644 (file)
index 0000000..4491843
Binary files /dev/null and b/typo3/sysext/scheduler/Resources/Public/Images/status_running.png differ
diff --git a/typo3/sysext/scheduler/Resources/Public/Images/status_scheduled.png b/typo3/sysext/scheduler/Resources/Public/Images/status_scheduled.png
new file mode 100644 (file)
index 0000000..b02b2aa
Binary files /dev/null and b/typo3/sysext/scheduler/Resources/Public/Images/status_scheduled.png differ
diff --git a/typo3/sysext/scheduler/Resources/Public/Images/stop.png b/typo3/sysext/scheduler/Resources/Public/Images/stop.png
new file mode 100644 (file)
index 0000000..55224b2
Binary files /dev/null and b/typo3/sysext/scheduler/Resources/Public/Images/stop.png differ
diff --git a/typo3/sysext/scheduler/Resources/Public/JavaScript/Scheduler.js b/typo3/sysext/scheduler/Resources/Public/JavaScript/Scheduler.js
new file mode 100644 (file)
index 0000000..8436330
--- /dev/null
@@ -0,0 +1,176 @@
+/**
+ * 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!
+ */
+
+define('TYPO3/CMS/Scheduler/Scheduler', ['jquery'], function($) {
+
+       var Scheduler = {};
+
+       var allCheckedStatus = false;
+
+       /**
+        * This method reacts on changes to the task class
+        * It switches on or off the relevant extra fields
+        */
+       Scheduler.actOnChangedTaskClass = function(theSelector) {
+               var taskClass = theSelector.val();
+               taskClass = taskClass.toLowerCase().replace(/\\/g, '-');
+
+               // Hide all extra fields
+               $('.extraFields').hide();
+               // Show only relevant extra fields
+               $('.extra_fields_' + taskClass).show();
+       };
+
+       /**
+        * This method reacts on changes to the type of a task, i.e. single or recurring,
+        * by showing or hiding the relevant form fields
+        */
+       Scheduler.actOnChangedTaskType = function(theSelector) {
+               // Get task type from selected value, or set default value
+               // Single taskType = 1, Recurring task = 0
+               var taskType = parseInt(theSelector.val()) == 1 ? 0 : 1;
+               $('#task_end_row').toggle(taskType);
+               $('#task_frequency_row').toggle(taskType);
+               $('#task_multiple_row').toggle(taskType);
+       };
+
+       /**
+        * This method reacts on field changes of all table field for table garbage collection task
+        */
+       Scheduler.actOnChangeSchedulerTableGarbageCollectionAllTables = function(theCheckbox) {
+               var $numberOfDays = $('#task_tableGarbageCollection_numberOfDays');
+               if (theCheckbox.prop('checked')) {
+                       $('#task_tableGarbageCollection_table').prop('disabled', true);
+               $numberOfDays.prop('disabled', true);
+               } else {
+                       // Get number of days for selected table
+                       var numberOfDays = parseInt($numberOfDays.val());
+                       if (numberOfDays < 1) {
+                               var selectedTable = $('#task_tableGarbageCollection_table').val();
+                               if (typeof(defaultNumberOfDays[selectedTable]) != 'undefined') {
+                                       numberOfDays = defaultNumberOfDays[selectedTable];
+                               }
+                       }
+
+                       $('#task_tableGarbageCollection_table').prop('disabled', false);
+                       if (numberOfDays > 0) {
+                               $numberOfDays.prop('disabled', false);
+                       }
+               }
+       };
+
+       /**
+        * This methods set the 'number of days' field to the default expire period
+        * of the selected table
+        */
+       Scheduler.actOnChangeSchedulerTableGarbageCollectionTable = function(theSelector) {
+               var $numberOfDays = $('#task_tableGarbageCollection_numberOfDays');
+               if (defaultNumberOfDays[theSelector.val()] > 0) {
+                       $numberOfDays.prop('disabled', false);
+                       $numberOfDays.val(defaultNumberOfDays[theSelector.val()]);
+               } else {
+                       $numberOfDays.prop('disabled', true);
+                       $numberOfDays.val(0);
+               }
+       };
+
+       /**
+        * Check or uncheck all checkboxes
+        */
+       Scheduler.checkOrUncheckAllCheckboxes = function(theSelector) {
+               theSelector.parent().parent().parent().parent().find(':checkbox').prop('checked', !allCheckedStatus);
+               allCheckedStatus = !allCheckedStatus;
+               return false;
+       };
+
+       /**
+        * Change icon when running a single task
+        */
+       Scheduler.runSingleTask = function(theSelector) {
+               var checkbox = theSelector.parent().parent().parent().find(':checkbox');
+               var idParts = checkbox.attr('id').split('_');
+               $('#executionstatus_' + idParts[1]).attr('src', TYPO3.settings.scheduler.runningIcon);
+       }
+
+       /**
+        * Handle click event on a table row
+        */
+       Scheduler.handleTableRowClick = function(theSelector, event) {
+               var checkbox = theSelector.find('input.checkboxes');
+               if (!$(event.target).is('input')) {
+                       if (checkbox.prop('checked')) {
+                               checkbox.prop('checked', false);
+                       } else {
+                               checkbox.prop('checked', true);
+                       }
+               }
+       }
+
+       /**
+        * Execute selected task(s)
+        */
+       Scheduler.executeSelected = function() {
+               // Set the status icon all to same status: running
+               $('.checkboxes:checked').each(function(index) {
+                       var idParts = $(this).attr('id').split('_');
+                       $('#executionstatus_' + idParts[1]).attr('src', TYPO3.settings.scheduler.runningIcon);
+               });
+       }
+
+       /**
+        * Registers listeners
+        */
+       Scheduler.initializeEvents = function() {
+               $('#scheduler_executeselected').on('click', function() {
+                       Scheduler.executeSelected();
+               });
+
+               $('.tx_scheduler_mod1 tr.db_list_normal').on('click', function(event) {
+                       Scheduler.handleTableRowClick($(this), event);
+               });
+
+               $('.t3-icon-scheduler-run-task').on('click', function() {
+                       Scheduler.runSingleTask($(this));
+               });
+
+               $('#checkall').on('click', function() {
+                       Scheduler.checkOrUncheckAllCheckboxes($(this));
+               });
+
+               $('#task_class').change(function() {
+                       Scheduler.actOnChangedTaskClass($(this));
+               });
+
+               $('#task_type').change(function() {
+                       Scheduler.actOnChangedTaskType($(this));
+               });
+
+               $('#task_tableGarbageCollection_allTables').change(function() {
+                       Scheduler.actOnChangeSchedulerTableGarbageCollectionAllTables($(this));
+               });
+
+               $('#task_tableGarbageCollection_table').change(function() {
+                       Scheduler.actOnChangeSchedulerTableGarbageCollectionTable($(this));
+               });
+       };
+
+       // intialize and return the Scheduler object
+       return function() {
+               $(document).ready(function() {
+                       Scheduler.initializeEvents();
+               });
+
+               TYPO3.Scheduler = Scheduler;
+               return Scheduler;
+       }();
+});
\ No newline at end of file
diff --git a/typo3/sysext/scheduler/Resources/Public/StyleSheets/main.css b/typo3/sysext/scheduler/Resources/Public/StyleSheets/main.css
new file mode 100644 (file)
index 0000000..d51a63f
--- /dev/null
@@ -0,0 +1,91 @@
+/* Scheduler BE-Styles */
+
+.tx_scheduler_mod1 a {
+       text-decoration: underline;
+}
+
+.tx_scheduler_mod1 #typo3-inner-docbody {
+       padding-right: 10px;
+}
+
+.tx_scheduler_mod1 a.icon,
+.tx_scheduler_mod1 a.typo3-csh-link,
+.tx_scheduler_mod1 #typo3-docheader a {
+       text-decoration: none;
+}
+
+.tx_scheduler_mod1 td.right {
+       text-align: right;
+}
+
+.tx_scheduler_mod1 tr.disabled td {
+       color: #666;
+}
+
+.tx_scheduler_mod1 .late {
+       color: #f00;
+       font-weight: bold;
+}
+
+.tx_scheduler_mod1 label {
+       width: 200px;
+}
+
+.tx_scheduler_mod1 table.typo3-usersettings td {
+       padding-top: 2px;
+       padding-bottom: 2px;
+}
+
+.tx_scheduler_mod1 table.typo3-usersettings td.td-input {
+       width: 400px;
+}
+
+.tx_scheduler_mod1 select {
+       margin-bottom: 1.2em;
+       width: 200px;
+}
+
+.tx_scheduler_mod1 input.wide,
+.tx_scheduler_mod1 select.wide {
+       width: 350px;
+}
+.tx_scheduler_mod1 input.checkboxes {
+       width: auto;
+}
+
+.tx_scheduler_mod1 .status-legend {
+       padding-top: 10px;
+       padding-bottom: 5px;
+       font-weight: bold;
+}
+
+.tx_scheduler_mod1 .progress {
+       overflow: hidden;
+       height: 14px;
+       background-color: #DADADA;
+       border-radius: 2px;
+       box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset;
+       margin: 3px 0px;
+}
+
+.tx_scheduler_mod1 .progress .bar {
+       width: 0%;
+       height: 14px;
+       background-color: #5b5b5b;
+       background-image: linear-gradient(top,  #7f7f7f 10%,#5b5b5b 100%);
+       background-repeat: repeat-x;
+       text-align: left;
+       color: #fff;
+       font-size: 8px;
+       vertical-align: top;
+       padding-left: 3px;
+       padding-top: -1px;
+}
+
+/* Definition for BE function "Setup check" */
+.info-block {
+       margin: 25px 0px 0px 0px;
+}
+.info-block p {
+       margin: 8px 5px 8px 5px;
+}
\ No newline at end of file
index c9a1adb..dd64140 100644 (file)
@@ -72,14 +72,13 @@ class SchedulerModuleControllerTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         * @test
         * @see http://de.php.net/manual/de/function.strtotime.php
         * @param string $strToTimeValue Test value which will be passed to $this->testObject->checkDate
-        * @param integer $expectedTimestamp Expected value to compare with result from operation
         */
        public function checkDateWithStrtotimeValues($strToTimeValue) {
                $expectedTimestamp = strtotime($strToTimeValue);
                $checkDateResult = $this->testObject->checkDate($strToTimeValue);
-                       // We use assertLessThan here, because we test with relative values (eg. next Thursday, now, ..)
-                       // If this tests runs over 1 seconds the test will fail if we use assertSame / assertEquals
-                       // With assertLessThan the tests could run 0 till 3 seconds ($delta = 4)
+               // We use assertLessThan here, because we test with relative values (eg. next Thursday, now, ..)
+               // If this tests runs over 1 seconds the test will fail if we use assertSame / assertEquals
+               // With assertLessThan the tests could run 0 till 3 seconds ($delta = 4)
                $delta = 4;
                $this->assertLessThan($delta, $checkDateResult - $expectedTimestamp, 'assertLessThan fails with value "' . $strToTimeValue . '"');
                $this->assertInternalType(\PHPUnit_Framework_Constraint_IsType::TYPE_INT, $checkDateResult, 'assertType fails with value "' . $strToTimeValue . '"');
@@ -89,7 +88,7 @@ class SchedulerModuleControllerTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         * Provides dates in TYPO3 date field formats (non-US), i.e. H:i Y-m-d
         *
         * @see checkDateWithTypo3DateSyntax
-        * @return      array   Testdata for "checkDateWithTypo3DateSyntax".
+        * @return array Test data for "checkDateWithTypo3DateSyntax".
         */
        public function checkDateWithTypo3DateSyntaxDataProvider() {
                return array(
@@ -146,7 +145,7 @@ class SchedulerModuleControllerTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         * Provides some invalid dates
         *
         * @see checkDateWithInvalidDateValues
-        * @return      array   Test data for "checkDateWithInvalidDateValues".
+        * @return array Test data for "checkDateWithInvalidDateValues".
         */
        public function checkDateWithInvalidDateValuesDataProvider() {
                return array(
index fca761d..f70f694 100644 (file)
@@ -13,6 +13,9 @@ namespace TYPO3\CMS\Scheduler\Tests\Unit\CronCommand;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
+use TYPO3\CMS\Scheduler\CronCommand\CronCommand;
+
 /**
  * Test case
  *
@@ -50,7 +53,7 @@ class CronCommandTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         * @test
         */
        public function constructorSetsNormalizedCronCommandSections() {
-               $instance = new \TYPO3\CMS\Scheduler\CronCommand\CronCommand('2-3 * * * *');
+               $instance = new CronCommand('2-3 * * * *');
                $this->assertSame(array('2,3', '*', '*', '*', '*'), $instance->getCronCommandSections());
        }
 
@@ -59,14 +62,14 @@ class CronCommandTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         * @expectedException \InvalidArgumentException
         */
        public function constructorThrowsExceptionForInvalidCronCommand() {
-               new \TYPO3\CMS\Scheduler\CronCommand\CronCommand('61 * * * *');
+               new CronCommand('61 * * * *');
        }
 
        /**
         * @test
         */
        public function constructorSetsTimestampToNowPlusOneMinuteRoundedDownToSixtySeconds() {
-               $instance = new \TYPO3\CMS\Scheduler\CronCommand\CronCommand('* * * * *');
+               $instance = new CronCommand('* * * * *');
                $currentTime = time();
                $expectedTime = $currentTime - ($currentTime % 60) + 60;
                $this->assertSame($expectedTime, $instance->getTimestamp());
@@ -76,7 +79,7 @@ class CronCommandTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         * @test
         */
        public function constructorSetsTimestampToGivenTimestampPlusSixtySeconds() {
-               $instance = new \TYPO3\CMS\Scheduler\CronCommand\CronCommand('* * * * *', self::TIMESTAMP);
+               $instance = new CronCommand('* * * * *', self::TIMESTAMP);
                $this->assertSame(self::TIMESTAMP + 60, $instance->getTimestamp());
        }
 
@@ -84,7 +87,7 @@ class CronCommandTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         * @test
         */
        public function constructorSetsTimestampToGiveTimestampRoundedDownToSixtySeconds() {
-               $instance = new \TYPO3\CMS\Scheduler\CronCommand\CronCommand('* * * * *', self::TIMESTAMP + 1);
+               $instance = new CronCommand('* * * * *', self::TIMESTAMP + 1);
                $this->assertSame(self::TIMESTAMP + 60, $instance->getTimestamp());
        }
 
@@ -232,7 +235,7 @@ class CronCommandTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         * @param integer $expectedTimestamp Expected result (next time of execution)
         */
        public function calculateNextValueDeterminesCorrectNextTimestamp($cronCommand, $startTimestamp, $expectedTimestamp) {
-               $instance = new \TYPO3\CMS\Scheduler\CronCommand\CronCommand($cronCommand, $startTimestamp);
+               $instance = new CronCommand($cronCommand, $startTimestamp);
                $instance->calculateNextValue();
                $this->assertSame($expectedTimestamp, $instance->getTimestamp());
        }
@@ -245,7 +248,7 @@ class CronCommandTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         * @param string $expectedTimestamp Expected result (next time of execution), to be feeded to strtotime
         */
        public function calculateNextValueDeterminesCorrectNextCalculatedTimestamp($cronCommand, $startTimestamp, $expectedTimestamp) {
-               $instance = new \TYPO3\CMS\Scheduler\CronCommand\CronCommand($cronCommand, $startTimestamp);
+               $instance = new CronCommand($cronCommand, $startTimestamp);
                $instance->calculateNextValue();
                $this->assertSame(strtotime($expectedTimestamp), $instance->getTimestamp());
        }
@@ -259,7 +262,7 @@ class CronCommandTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         * @param integer $secondTimestamp Timestamp of the further execution
         */
        public function calculateNextValueDeterminesCorrectNextTimestampOnConsecutiveCall($cronCommand, $startTimestamp, $firstTimestamp, $secondTimestamp) {
-               $instance = new \TYPO3\CMS\Scheduler\CronCommand\CronCommand($cronCommand, $firstTimestamp);
+               $instance = new CronCommand($cronCommand, $firstTimestamp);
                $instance->calculateNextValue();
                $this->assertSame($secondTimestamp, $instance->getTimestamp());
        }
@@ -273,7 +276,7 @@ class CronCommandTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         * @param string $secondTimestamp Timestamp of the further execution, to be fed to strtotime
         */
        public function calculateNextValueDeterminesCorrectNextCalculatedTimestampOnConsecutiveCall($cronCommand, $startTimestamp, $firstTimestamp, $secondTimestamp) {
-               $instance = new \TYPO3\CMS\Scheduler\CronCommand\CronCommand($cronCommand, strtotime($firstTimestamp));
+               $instance = new CronCommand($cronCommand, strtotime($firstTimestamp));
                $instance->calculateNextValue();
                $this->assertSame(strtotime($secondTimestamp), $instance->getTimestamp());
        }
@@ -284,7 +287,7 @@ class CronCommandTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
        public function calculateNextValueDeterminesCorrectNextTimestampOnChangeToSummertime() {
                $backupTimezone = date_default_timezone_get();
                date_default_timezone_set('Europe/Berlin');
-               $instance = new \TYPO3\CMS\Scheduler\CronCommand\CronCommand('* 3 28 mar *', self::TIMESTAMP);
+               $instance = new CronCommand('* 3 28 mar *', self::TIMESTAMP);
                $instance->calculateNextValue();
                date_default_timezone_set($backupTimezone);
                $this->assertSame(1269741600, $instance->getTimestamp());
@@ -295,7 +298,7 @@ class CronCommandTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         * @expectedException \RuntimeException
         */
        public function calculateNextValueThrowsExceptionWithImpossibleCronCommand() {
-               $instance = new \TYPO3\CMS\Scheduler\CronCommand\CronCommand('* * 31 apr *', self::TIMESTAMP);
+               $instance = new CronCommand('* * 31 apr *', self::TIMESTAMP);
                $instance->calculateNextValue();
        }
 
@@ -303,7 +306,7 @@ class CronCommandTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         * @test
         */
        public function getTimestampReturnsInteger() {
-               $instance = new \TYPO3\CMS\Scheduler\CronCommand\CronCommand('* * * * *');
+               $instance = new CronCommand('* * * * *');
                $this->assertInternalType(\PHPUnit_Framework_Constraint_IsType::TYPE_INT, $instance->getTimestamp());
        }
 
@@ -311,7 +314,7 @@ class CronCommandTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
         * @test
         */
        public function getCronCommandSectionsReturnsArray() {
-               $instance = new \TYPO3\CMS\Scheduler\CronCommand\CronCommand('* * * * *');
+               $instance = new CronCommand('* * * * *');
                $this->assertInternalType(\PHPUnit_Framework_Constraint_IsType::TYPE_ARRAY, $instance->getCronCommandSections());
        }
 
index edfdbed..a14faed 100644 (file)
@@ -13,6 +13,7 @@ namespace TYPO3\CMS\Scheduler\Tests\Unit\CronCommand;
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * Test case
  *
index 6662250..b761d95 100644 (file)
  *
  * The TYPO3 project - inspiring people to share!
  */
+
 /**
  * Starts all due tasks, used by the command line interface
  * This script must be included by the "CLI module dispatcher"
  *
- * @author             Markus Friedrich <markus.friedrich@dkd.de>
+ * @author Markus Friedrich <markus.friedrich@dkd.de>
  */
-if (TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_CLI && basename(PATH_thisScript) == 'cli_dispatch.phpsh') {
+if (TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_CLI && basename(PATH_thisScript) === 'cli_dispatch.phpsh') {
        $hasTask = TRUE;
        // Create an instance of the scheduler object
        /** @var $scheduler \TYPO3\CMS\Scheduler\Scheduler */
index 09f27a6..797c1e4 100644 (file)
@@ -13,44 +13,46 @@ $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['scheduler'
 if (!empty($extConf['showSampleTasks'])) {
        $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Example\\TestTask'] = array(
                'extension' => $_EXTKEY,
-               'title' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:testTask.name',
-               'description' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:testTask.description',
+               'title' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang.xlf:testTask.name',
+               'description' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang.xlf:testTask.description',
                'additionalFields' => 'TYPO3\\CMS\\Scheduler\\Example\\TestTaskAdditionalFieldProvider'
        );
        $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Example\\SleepTask'] = array(
                'extension' => $_EXTKEY,
-               'title' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:sleepTask.name',
-               'description' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:sleepTask.description',
+               'title' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang.xlf:sleepTask.name',
+               'description' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang.xlf:sleepTask.description',
                'additionalFields' => 'TYPO3\\CMS\\Scheduler\\Example\\SleepTaskAdditionalFieldProvider'
        );
 }
+
 // Add caching framework garbage collection task
 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\CachingFrameworkGarbageCollectionTask'] = array(
        'extension' => $_EXTKEY,
-       'title' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:cachingFrameworkGarbageCollection.name',
-       'description' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:cachingFrameworkGarbageCollection.description',
+       'title' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang.xlf:cachingFrameworkGarbageCollection.name',
+       'description' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang.xlf:cachingFrameworkGarbageCollection.description',
        'additionalFields' => 'TYPO3\\CMS\\Scheduler\\Task\\CachingFrameworkGarbageCollectionAdditionalFieldProvider'
 );
+
 // Add file indexing task
 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\FileIndexingTask'] = array(
        'extension' => $_EXTKEY,
-       'title' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:fileIndexing.name',
-       'description' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:fileIndexing.description'
+       'title' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang.xlf:fileIndexing.name',
+       'description' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/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',
+       'title' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang.xlf:fileStorageIndexing.name',
+       'description' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/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',
+       'title' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang.xlf:fileStorageExtraction.name',
+       'description' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang.xlf:fileStorageExtraction.description',
        'additionalFields' => 'TYPO3\\CMS\\Scheduler\\Task\\FileStorageExtractionAdditionalFieldProvider'
 
 );
@@ -60,8 +62,8 @@ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Sch
 if (TYPO3_OS !== 'WIN') {
        $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\RecyclerGarbageCollectionTask'] = array(
                'extension' => $_EXTKEY,
-               'title' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:recyclerGarbageCollection.name',
-               'description' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:recyclerGarbageCollection.description',
+               'title' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang.xlf:recyclerGarbageCollection.name',
+               'description' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang.xlf:recyclerGarbageCollection.description',
                'additionalFields' => 'TYPO3\\CMS\\Scheduler\\Task\\RecyclerGarbageCollectionAdditionalFieldProvider'
        );
 }
@@ -69,17 +71,20 @@ if (TYPO3_OS !== 'WIN') {
 // Add table garbage collection task
 $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\TableGarbageCollectionTask'] = array(
        'extension' => $_EXTKEY,
-       'title' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:tableGarbageCollection.name',
-       'description' => 'LLL:EXT:' . $_EXTKEY . '/locallang.xlf:tableGarbageCollection.description',
+       'title' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang.xlf:tableGarbageCollection.name',
+       'description' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang.xlf:tableGarbageCollection.description',
        'additionalFields' => 'TYPO3\\CMS\\Scheduler\\Task\\TableGarbageCollectionAdditionalFieldProvider'
 );
+
 // Initialize option array of table garbage collection task if not already done by some other extension or localconf.php
 if (!is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\TableGarbageCollectionTask']['options'])) {
        $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\TableGarbageCollectionTask']['options'] = array();
 }
+
 if (!is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\TableGarbageCollectionTask']['options']['tables'])) {
        $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\TableGarbageCollectionTask']['options']['tables'] = array();
 }
+
 // Register sys_log and sys_history table in table garbage collection task
 if (!is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\TableGarbageCollectionTask']['options']['tables']['sys_log'])) {
        $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\TableGarbageCollectionTask']['options']['tables']['sys_log'] = array(
@@ -87,9 +92,10 @@ if (!is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['T
                'expirePeriod' => 180
        );
 }
+
 if (!is_array($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\TableGarbageCollectionTask']['options']['tables']['sys_history'])) {
        $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['TYPO3\\CMS\\Scheduler\\Task\\TableGarbageCollectionTask']['options']['tables']['sys_history'] = array(
                'dateField' => 'tstamp',
                'expirePeriod' => 30
        );
-}
+}
\ No newline at end of file
index fe20213..3fba46e 100644 (file)
@@ -13,7 +13,7 @@ if (TYPO3_MODE === 'BE') {
        // Add context sensitive help (csh) to the backend module
        \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr(
                '_MOD_system_txschedulerM1',
-               'EXT:' . $_EXTKEY . '/mod1/locallang_csh_scheduler.xlf'
+               'EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang_csh_scheduler.xlf'
        );
 }
 
diff --git a/typo3/sysext/scheduler/locallang.xlf b/typo3/sysext/scheduler/locallang.xlf
deleted file mode 100644 (file)
index e07e61f..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff version="1.0">
-       <file source-language="en" datatype="plaintext" original="messages" date="2011-10-17T20:22:37Z" product-name="scheduler">
-               <header/>
-               <body>
-                       <trans-unit id="testTask.name" xml:space="preserve">
-                               <source>Scheduler test task</source>
-                       </trans-unit>
-                       <trans-unit id="testTask.description" xml:space="preserve">
-                               <source>The Scheduler test task just sends a mail to a given email address. It is designed to be used for testing purposes.</source>
-                       </trans-unit>
-                       <trans-unit id="sleepTask.name" xml:space="preserve">
-                               <source>Scheduler sleep task</source>
-                       </trans-unit>
-                       <trans-unit id="sleepTask.description" xml:space="preserve">
-                               <source>This task does nothing but put PHP to sleep for a number of seconds. It is designed to test multiple executions.</source>
-                       </trans-unit>
-                       <trans-unit id="cachingFrameworkGarbageCollection.name" xml:space="preserve">
-                               <source>Caching framework garbage collection</source>
-                       </trans-unit>
-                       <trans-unit id="cachingFrameworkGarbageCollection.description" xml:space="preserve">
-                               <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>[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>
-                       <trans-unit id="tableGarbageCollection.description" xml:space="preserve">
-                               <source>Task to delete old entries from specific tables like sys_log. Use $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['scheduler']['tasks']['tx_scheduler_TableGarbageCollection']['options']['tables'] to configure tables. Refer to the manual for more details.</source>
-                       </trans-unit>
-                       <trans-unit id="recyclerGarbageCollection.name" xml:space="preserve">
-                               <source>Fileadmin garbage collection</source>
-                       </trans-unit>
-                       <trans-unit id="recyclerGarbageCollection.description" xml:space="preserve">
-                               <source>This task empties all "_recycler_" folders below fileadmin. This helps free some space in the file system.</source>
-                       </trans-unit>
-               </body>
-       </file>
-</xliff>
diff --git a/typo3/sysext/scheduler/locallang_tca.xlf b/typo3/sysext/scheduler/locallang_tca.xlf
deleted file mode 100644 (file)
index 86be6c8..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff version="1.0">
-       <file source-language="en" datatype="plaintext" original="messages" date="2011-10-17T20:22:37Z" product-name="scheduler">
-               <header/>
-               <body>
-                       <trans-unit id="tx_scheduler_task_group" xml:space="preserve">
-                               <source>Scheduler task group</source>
-                       </trans-unit>
-                       <trans-unit id="tx_scheduler_task_group.groupName" xml:space="preserve">
-                               <source>Group name</source>
-                       </trans-unit>
-               </body>
-       </file>
-</xliff>
index f0132e6..bbddf5d 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 $MLANG['default']['tabs_images']['tab'] = 'moduleicon.gif';
-$MLANG['default']['ll_ref'] = 'LLL:EXT:scheduler/mod1/locallang_mod.xlf';
+$MLANG['default']['ll_ref'] = 'LLL:EXT:scheduler/Resources/Private/Language/locallang_mod.xlf';
 $MCONF['access'] = 'admin';
 $MCONF['script'] = '_DISPATCH';
 $MCONF['name'] = 'system_txschedulerM1';
diff --git a/typo3/sysext/scheduler/mod1/locallang.xlf b/typo3/sysext/scheduler/mod1/locallang.xlf
deleted file mode 100644 (file)
index fe27b9f..0000000
+++ /dev/null
@@ -1,359 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff version="1.0">
-       <file source-language="en" datatype="plaintext" original="messages" date="2011-10-17T20:22:37Z" product-name="scheduler">
-               <header/>
-               <body>
-                       <trans-unit id="action.add" xml:space="preserve">
-                               <source>Add task</source>
-                       </trans-unit>
-                       <trans-unit id="action.edit" xml:space="preserve">
-                               <source>Edit task</source>
-                       </trans-unit>
-                       <trans-unit id="button.cancel" xml:space="preserve">
-                               <source>Cancel</source>
-                       </trans-unit>
-                       <trans-unit id="function.scheduler" xml:space="preserve">
-                               <source>Scheduled tasks</source>
-                       </trans-unit>
-                       <trans-unit id="function.check" xml:space="preserve">
-                               <source>Setup check</source>
-                       </trans-unit>
-                       <trans-unit id="function.info" xml:space="preserve">
-                               <source>Information</source>
-                       </trans-unit>
-                       <trans-unit id="hdg.cliScript" xml:space="preserve">
-                               <source>CLI script</source>
-                       </trans-unit>
-                       <trans-unit id="hdg.lastRun" xml:space="preserve">
-                               <source>Last run</source>
-                       </trans-unit>
-                       <trans-unit id="hdg.schedulerUser" xml:space="preserve">
-                               <source>TYPO3 Scheduler backend user</source>
-                       </trans-unit>
-                       <trans-unit id="label.automatically" xml:space="preserve">
-                               <source>automatically</source>
-                       </trans-unit>
-                       <trans-unit id="label.cachingFrameworkGarbageCollection.selectBackends" xml:space="preserve">
-                               <source>Backend types</source>
-                       </trans-unit>
-                       <trans-unit id="label.recyclerGarbageCollection.numberOfDays" xml:space="preserve">
-                               <source>Number of days until removing files</source>
-                       </trans-unit>
-                       <trans-unit id="label.checkAll" xml:space="preserve">
-                               <source>Check/uncheck all</source>
-                       </trans-unit>
-                       <trans-unit id="label.class" xml:space="preserve">
-                               <source>Class</source>
-                       </trans-unit>
-                       <trans-unit id="label.cron" xml:space="preserve">
-                               <source>Cron</source>
-                       </trans-unit>
-                       <trans-unit id="label.defType" xml:space="preserve">
-                               <source>Definition type</source>
-                       </trans-unit>
-                       <trans-unit id="label.defType.interval" xml:space="preserve">
-                               <source>Interval</source>
-                       </trans-unit>
-                       <trans-unit id="label.defType.cron" xml:space="preserve">
-                               <source>Cron command</source>
-                       </trans-unit>
-                       <trans-unit id="label.description" xml:space="preserve">
-                               <source>Description</source>
-                       </trans-unit>
-                       <trans-unit id="label.email" xml:space="preserve">
-                               <source>Email</source>
-                       </trans-unit>
-                       <trans-unit id="label.end" xml:space="preserve">
-                               <source>End (HH:MM DD-MM-YYYY)</source>
-                       </trans-unit>
-                       <trans-unit id="label.executeSelected" xml:space="preserve">
-                               <source>Execute selected tasks</source>
-                       </trans-unit>
-                       <trans-unit id="label.extension" xml:space="preserve">
-                               <source>Extension</source>
-                       </trans-unit>
-                       <trans-unit id="label.frequency" xml:space="preserve">
-                               <source>Frequency</source>
-                       </trans-unit>
-                       <trans-unit id="label.frequency.long" xml:space="preserve">
-                               <source>Frequency (seconds or cron command)</source>
-                       </trans-unit>
-                       <trans-unit id="label.id" xml:space="preserve">
-                               <source>ID</source>
-                       </trans-unit>
-                       <trans-unit id="label.lastExecution" xml:space="preserve">
-                               <source>Last Execution</source>
-                       </trans-unit>
-                       <trans-unit id="label.manual" xml:space="preserve">
-                               <source>Manual</source>
-                       </trans-unit>
-                       <trans-unit id="label.manually" xml:space="preserve">
-                               <source>manually</source>
-                       </trans-unit>
-                       <trans-unit id="label.name" xml:space="preserve">
-                               <source>Name</source>
-                       </trans-unit>
-                       <trans-unit id="label.nextExecution" xml:space="preserve">
-                               <source>Next Execution</source>
-                       </trans-unit>
-                       <trans-unit id="label.parallel" xml:space="preserve">
-                               <source>Parallel Execution</source>
-                       </trans-unit>
-                       <trans-unit id="label.parallel.long" xml:space="preserve">
-                               <source>Allow Parallel Execution</source>
-                       </trans-unit>
-                       <trans-unit id="label.serverTime" xml:space="preserve">
-                               <source>Server time</source>
-                       </trans-unit>
-                       <trans-unit id="label.sleepTime" xml:space="preserve">
-                               <source>Sleep time</source>
-                       </trans-unit>
-                       <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>
-                       <trans-unit id="label.tableGarbageCollection.table" xml:space="preserve">
-                               <source>Table to clean up</source>
-                       </trans-unit>
-                       <trans-unit id="label.tableGarbageCollection.additionalInformationTable" xml:space="preserve">
-                               <source>Table: %s</source>
-                       </trans-unit>
-                       <trans-unit id="label.tableGarbageCollection.additionalInformationAllTables" xml:space="preserve">
-                               <source>All tables</source>
-                       </trans-unit>
-                       <trans-unit id="label.tableGarbageCollection.numberOfDays" xml:space="preserve">
-                               <source>Delete entries older than given number of days</source>
-                       </trans-unit>
-                       <trans-unit id="label.type" xml:space="preserve">
-                               <source>Type</source>
-                       </trans-unit>
-                       <trans-unit id="label.type.recurring" xml:space="preserve">
-                               <source>Recurring</source>
-                       </trans-unit>
-                       <trans-unit id="label.type.single" xml:space="preserve">
-                               <source>Single</source>
-                       </trans-unit>
-                       <trans-unit id="label.group" xml:space="preserve">
-                               <source>Task group</source>
-                       </trans-unit>
-                       <trans-unit id="msg.addError" xml:space="preserve">
-                               <source>The task could not be added.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.addSuccess" xml:space="preserve">
-                               <source>The task was added successfully.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.cliScript" xml:space="preserve">
-                               <source>The script to execute the Scheduler from the command line is: &lt;strong&gt;"%s scheduler"&lt;/strong&gt;.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.cliScriptExecutable" xml:space="preserve">
-                               <source>The webserver user is allowed execute this script.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.cliScriptNotExecutable" xml:space="preserve">
-                               <source>The webserver user is not allowed to execute this script.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.delete" xml:space="preserve">
-                               <source>Are you sure you want to delete this task?</source>
-                       </trans-unit>
-                       <trans-unit id="msg.deleteError" xml:space="preserve">
-                               <source>The task could not be deleted.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.deleteSuccess" xml:space="preserve">
-                               <source>The task was successfully deleted.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.endDateSmallerThanStartDate" xml:space="preserve">
-                               <source>The end date is before the start date.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.executed" xml:space="preserve">
-                               <source>Executed: %s</source>
-                       </trans-unit>
-                       <trans-unit id="msg.frequencyError" xml:space="preserve">
-                               <source>Invalid frequency. Please enter either a number of seconds or a valid cron command. The cron parser said: %1$s [code: %2$d].</source>
-                       </trans-unit>
-                       <trans-unit id="msg.incompleteLastRun" xml:space="preserve">
-                               <source>The information about the last execution of the Scheduler is incomplete.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.infoScreenIntro" xml:space="preserve">
-                               <source>This is the list of all available tasks in this TYPO3 installation. Click on the icon at the far right to directly create a new scheduled task of the chosen type.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.invalidFrequency" xml:space="preserve">
-                               <source>Invalid frequency. Please enter either a number of seconds or a valid cron command.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.invalidSleepTime" xml:space="preserve">
-                               <source>Please enter a sleep time greater or equal to 0 (zero).</source>
-                       </trans-unit>
-                       <trans-unit id="msg.lastRun" xml:space="preserve">
-                               <source>The Scheduler was last started (%1$s) on %2$s at %3$s and ended on %4$s at %5$s.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.maynotDeleteRunningTask" xml:space="preserve">
-                               <source>A running task may not be deleted.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.maynotEditRunningTask" xml:space="preserve">
-                               <source>A running task may not be edited.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.maynotStopNonRunningTask" xml:space="preserve">
-                               <source>The task is not running. There are no executions to unmark.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.noEmail" xml:space="preserve">
-                               <source>Please enter an email address.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.noFrequency" xml:space="preserve">
-                               <source>No frequency was defined, either as an interval or as a cron command.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.noLastRun" xml:space="preserve">
-                               <source>The Scheduler has never yet run or the information about the last run has been lost.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.noTasksDefined" xml:space="preserve">
-                               <source>There are currently no task classes available at all. To be able to create new tasks, you must either enable the samples provided by the Scheduler or install some other extension that relies on the Scheduler.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.noTaskClassFound" xml:space="preserve">
-                               <source>The selected task class could not be found. You should probably contact the task's developers.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.noTasks" xml:space="preserve">
-                               <source>No tasks defined yet.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.notExecuted" xml:space="preserve">
-                               <source>Not executed: %s</source>
-                       </trans-unit>
-                       <trans-unit id="msg.executionFailed" xml:space="preserve">
-                               <source>Execution of task "%1$s" failed with the following message: %2$s</source>
-                       </trans-unit>
-                       <trans-unit id="msg.executionFailureDefault" xml:space="preserve">
-                               <source>The execution failed, but the error message could not be retrieved (it was probably too large). Sorry.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.executionFailureReport" xml:space="preserve">
-                               <source>Execution failed: %1$d, %2$s</source>
-                       </trans-unit>
-                       <trans-unit id="msg.noStartDate" xml:space="preserve">
-                               <source>Please define a start date.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.invalidStartDate" xml:space="preserve">
-                               <source>Start date is invalid.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.invalidEndDate" xml:space="preserve">
-                               <source>End date is invalid.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.invalidNumberOfDays" xml:space="preserve">
-                               <source>Number of days is invalid.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.selectionOfNonExistingCacheBackends" xml:space="preserve">
-                               <source>Some of the selected cache backends do not exist. Please select valid backends only.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.noCacheBackendSelected" xml:space="preserve">
-                               <source>Please select at least one cache backend.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.invalidTaskClass" xml:space="preserve">
-                               <source>Class %s of the registered task could not be found. You should re-install the extension that provided it or simply delete this task.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.invalidTaskClassEdit" xml:space="preserve">
-                               <source>The current class (%s) could not be found. Change it below or consider deleting this task altogether.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.schedulerSetupCheck" xml:space="preserve">
-                               <source>This screen checks if the requisites for running the Scheduler as a cron job are fulfilled. It also displays information about the last run of the Scheduler.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.schedulerUser" xml:space="preserve">
-                               <source>The backend user "_cli_scheduler" is used by the CLI-script to log into TYPO3. This user may not have administrator privileges. The user's password is not important but should be set to a secure value for security reasons.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.schedulerUserFound" xml:space="preserve">
-                               <source>The backend user "_cli_scheduler" was found.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.schedulerUserFoundButDisabled" xml:space="preserve">
-                               <source>The backend user "_cli_scheduler" exists but is currently disabled.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.schedulerUserMissing" xml:space="preserve">
-                               <source>The backend user "_cli_scheduler" was not found. &lt;a href="%s" title="Click to create the missing user"&gt;Create the user now&lt;/a&gt;.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.serverTime" xml:space="preserve">
-                               <source>Current server time is %s.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.serverTimeHelp" xml:space="preserve">
-                               <source>All dates and times in the Scheduler are measured according to the server's time, as the Scheduler is run purely on the server-side.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.stop" xml:space="preserve">
-                               <source>Are you sure you want to mark this task as not running? Note that this will not stop the actual script (if unsure please refer to the manual).</source>
-                       </trans-unit>
-                       <trans-unit id="msg.stopError" xml:space="preserve">
-                               <source>The task could not be marked as non-running.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.stopSuccess" xml:space="preserve">
-                               <source>The task was successfully marked as non-running.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.taskNotFound" xml:space="preserve">
-                               <source>The requested task (UID: %d) was not found.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.updateSuccess" xml:space="preserve">
-                               <source>The task was updated successfully.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.updateError" xml:space="preserve">
-                               <source>The task could not be updated.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.userCreated" xml:space="preserve">
-                               <source>The "_cli_scheduler" user was created successfully.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.userExists" xml:space="preserve">
-                               <source>The "_cli_scheduler" user already exists. It was not created.</source>
-                       </trans-unit>
-                       <trans-unit id="msg.userNotCreated" xml:space="preserve">
-                               <source>The creation of the "_cli_scheduler" user failed.</source>
-                       </trans-unit>
-                       <trans-unit id="none" xml:space="preserve">
-                               <source>None</source>
-                       </trans-unit>
-                       <trans-unit id="status" xml:space="preserve">
-                               <source>Status</source>
-                       </trans-unit>
-                       <trans-unit id="status.progress" xml:space="preserve">
-                               <source>Progress</source>
-                       </trans-unit>
-                       <trans-unit id="status.legend" xml:space="preserve">
-                               <source>Status Legend</source>
-                       </trans-unit>
-                       <trans-unit id="status.legend.disabled" xml:space="preserve">
-                               <source>Disabled, will not be executed, except manually</source>
-                       </trans-unit>
-                       <trans-unit id="status.legend.failure" xml:space="preserve">
-                               <source>Failure! An error occurred during the last execution (move over bullet for more details)</source>
-                       </trans-unit>
-                       <trans-unit id="status.legend.late" xml:space="preserve">
-                               <source>Late, will run with next execution</source>
-                       </trans-unit>
-                       <trans-unit id="status.legend.running" xml:space="preserve">
-                               <source>Currently running</source>
-                       </trans-unit>
-                       <trans-unit id="status.legend.scheduled" xml:space="preserve">
-                               <source>Scheduled, will run on next possible execution</source>
-                       </trans-unit>
-                       <trans-unit id="status.disabled" xml:space="preserve">
-                               <source>disabled</source>
-                       </trans-unit>
-                       <trans-unit id="status.failure" xml:space="preserve">
-                               <source>failure</source>
-                       </trans-unit>
-                       <trans-unit id="status.late" xml:space="preserve">
-                               <source>late</source>
-                       </trans-unit>
-                       <trans-unit id="status.running" xml:space="preserve">
-                               <source>running</source>
-                       </trans-unit>
-                       <trans-unit id="status.scheduled" xml:space="preserve">
-                               <source>scheduled</source>
-                       </trans-unit>
-                       <trans-unit id="task" xml:space="preserve">
-                               <source>Task</source>
-                       </trans-unit>
-                       <trans-unit id="title" xml:space="preserve">
-                               <source>TYPO3 Scheduler administration module</source>
-                       </trans-unit>
-                       <trans-unit id="action.run_task" xml:space="preserve">
-                               <source>Run task</source>
-                       </trans-unit>
-               </body>
-       </file>
-</xliff>
diff --git a/typo3/sysext/scheduler/mod1/locallang_csh_scheduler.xlf b/typo3/sysext/scheduler/mod1/locallang_csh_scheduler.xlf
deleted file mode 100644 (file)
index 7f2afe4..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff version="1.0">
-       <file source-language="en" datatype="plaintext" original="messages" date="2011-10-17T20:22:37Z" product-name="scheduler">
-               <header/>
-               <body>
-                       <trans-unit id=".alttitle" xml:space="preserve">
-                               <source>Scheduler</source>
-                       </trans-unit>
-                       <trans-unit id=".description" xml:space="preserve">
-                               <source>The Scheduler provides an interface to register and manage recurring or one-time tasks.</source>
-                       </trans-unit>
-                       <trans-unit id=".syntax" xml:space="preserve">
-                               <source>The Scheduler uses a single cron job to handle all registered tasks. It is thus very convenient as only one cron job needs to be set up and all task frequencies can be managed from the BE module.</source>
-                       </trans-unit>
-                       <trans-unit id="task_class.alttitle" xml:space="preserve">
-                               <source>Class of the task</source>
-                       </trans-unit>
-                       <trans-unit id="task_class.description" xml:space="preserve">
-                               <source>Choose a class from the list of available tasks</source>
-                       </trans-unit>
-                       <trans-unit id="task_class.details" xml:space="preserve">
-                               <source>Some tasks are provided by the TYPO3 Core itself. Others come from extensions. See the manual to learn how to create your own tasks and register them with the Scheduler.</source>
-                       </trans-unit>
-                       <trans-unit id="task_disable.alttitle" xml:space="preserve">
-                               <source>Disable task</source>
-                       </trans-unit>
-                       <trans-unit id="task_disable.description" xml:space="preserve">
-                               <source>Check this box to disable the automatic, scheduled execution of this task. It can still be launched manually from the BE module.</source>
-                       </trans-unit>
-                       <trans-unit id="task_type.alttitle" xml:space="preserve">
-                               <source>Type of task</source>
-                       </trans-unit>
-                       <trans-unit id="task_type.description" xml:space="preserve">
-                               <source>Choose whether the task must happen a single time or will be repeated</source>
-                       </trans-unit>
-                       <trans-unit id="task_start.alttitle" xml:space="preserve">
-                               <source>Start of task</source>
-                       </trans-unit>
-                       <trans-unit id="task_start.description" xml:space="preserve">
-                               <source>Enter a start date and time for the task</source>
-                       </trans-unit>
-                       <trans-unit id="task_start.details" xml:space="preserve">
-                               <source>Date must be entered in a standard format like HH:mm dd-mm-YYYY or YYYY-mm-dd HH:mm. Natural keywords can also be used, like "now" or "tomorrow".
-Date and time must correspond to the server's time zone.</source>
-                       </trans-unit>
-                       <trans-unit id="task_end.alttitle" xml:space="preserve">
-                               <source>End of task</source>
-                       </trans-unit>
-                       <trans-unit id="task_end.description" xml:space="preserve">
-                               <source>Enter an end date and time for the task, can be blank</source>
-                       </trans-unit>
-                       <trans-unit id="task_end.details" xml:space="preserve">
-                               <source>Date must be entered in a standard format like HH:mm dd-mm-YYYY or YYYY-mm-dd HH:mm. Natural keywords can also be used, like "now" or "tomorrow".
-Date and time must correspond to the server's time zone.
-
-Can be left blank, if task is not supposed to end at any point.</source>
-                       </trans-unit>
-                       <trans-unit id="task_frequency.alttitle" xml:space="preserve">
-                               <source>Frequency of task</source>
-                       </trans-unit>
-                       <trans-unit id="task_frequency.description" xml:space="preserve">
-                               <source>Enter a frequency, either in seconds or using a cron-like syntax (minutes, hours, day of month, months and day of week)</source>
-                       </trans-unit>
-                       <trans-unit id="task_frequency.details" xml:space="preserve">
-                               <source>The frequency of the task can be simply entered as a number of seconds.
-
-Alternatively it is possible to use the same syntax as for cron jobs. This is simply a list of five numbers or the wildcard "*", separated by blanks. The five numbers are (in order) minutes, hours, day of month, months and day of week. Examples:
-
-*/5 * * * * means every 5 minutes
-30 22 * * * means every day at 22:30
-
-The Scheduler supports the full cron syntax.</source>
-                       </trans-unit>
-                       <trans-unit id="task_frequency.seeAlso" xml:space="preserve">
-                               <source>Wikipedia reference|http://en.wikipedia.org/wiki/Cron</source>
-                       </trans-unit>
-                       <trans-unit id="task_multiple.alttitle" xml:space="preserve">
-                               <source>Multiple executions</source>
-                       </trans-unit>
-                       <trans-unit id="task_multiple.description" xml:space="preserve">
-                               <source>Choose whether a task can be running several times simultaneously or not</source>
-                       </trans-unit>
-                       <trans-unit id="task_email.alttitle" xml:space="preserve">
-                               <source>Email address</source>
-                       </trans-unit>
-                       <trans-unit id="task_email.description" xml:space="preserve">
-                               <source>Enter a recipient for the mails sent by the test task</source>
-                       </trans-unit>
-                       <trans-unit id="task_sleepTime.alttitle" xml:space="preserve">
-                               <source>Sleep time</source>
-                       </trans-unit>
-                       <trans-unit id="task_sleepTime.description" xml:space="preserve">
-                               <source>Enter a number of seconds during which the task will just sleep.</source>
-                       </trans-unit>
-                       <trans-unit id="task_cachingFrameworkGarbageCollection_selectedBackends.alttitle" xml:space="preserve">
-                               <source>Select backends</source>
-                       </trans-unit>
-                       <trans-unit id="task_cachingFrameworkGarbageCollection_selectedBackends.description" xml:space="preserve">
-                               <source>If a cache uses one of the selected backends, the garbage collection will be called for this cache.</source>
-                       </trans-unit>
-                       <trans-unit id="task_tableGarbageCollection_numberOfDays.alttitle" xml:space="preserve">
-                               <source>Number of days</source>
-                       </trans-unit>
-                       <trans-unit id="task_tableGarbageCollection_numberOfDays.description" xml:space="preserve">
-                               <source>Delete rows from selected table that are older than given number of days.</source>
-                       </trans-unit>
-                       <trans-unit id="task_tableGarbageCollection_table.alttitle" xml:space="preserve">
-                               <source>Select table</source>
-                       </trans-unit>
-                       <trans-unit id="task_tableGarbageCollection_table.description" xml:space="preserve">
-                               <source>Select one of the registered tables to be cleaned up with this task.</source>
-                       </trans-unit>
-                       <trans-unit id="task_tableGarbageCollection_allTables.alttitle" xml:space="preserve">
-                               <source>Clean up all tables</source>
-                       </trans-unit>
-                       <trans-unit id="task_tableGarbageCollection_allTables.description" xml:space="preserve">
-                               <source>If selected, all configured tables are cleaned. The selection below is ignored.</source>
-                       </trans-unit>
-                       <trans-unit id="task_recyclerGarbageCollection_numberOfDays.alttitle" xml:space="preserve">
-                               <source>Number of days</source>
-                       </trans-unit>
-                       <trans-unit id="task_recyclerGarbageCollection_numberOfDays.description" xml:space="preserve">
-                               <source>Delete files in _recycler_ folders that are older than the given number of days.</source>
-                       </trans-unit>
-               </body>
-       </file>
-</xliff>
diff --git a/typo3/sysext/scheduler/mod1/locallang_mod.xlf b/typo3/sysext/scheduler/mod1/locallang_mod.xlf
deleted file mode 100644 (file)
index 361fb64..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xliff version="1.0">
-       <file source-language="en" datatype="plaintext" original="messages" date="2011-10-17T20:22:37Z" product-name="scheduler">
-               <header/>
-               <body>
-                       <trans-unit id="mlang_tabs_tab" xml:space="preserve">
-                               <source>Scheduler</source>
-                       </trans-unit>
-                       <trans-unit id="mlang_labels_tabdescr" xml:space="preserve">
-                               <source>Scheduler administration module. Check all registered tasks. Add, modify or delete tasks.&lt;br /&gt;&lt;em&gt;Access for 'admin' users only!&lt;/em&gt;</source>
-                       </trans-unit>
-                       <trans-unit id="mlang_labels_tablabel" xml:space="preserve">
-                               <source>TYPO3 Scheduler</source>
-                       </trans-unit>
-               </body>
-       </file>
-</xliff>
diff --git a/typo3/sysext/scheduler/mod1/mod_template.html b/typo3/sysext/scheduler/mod1/mod_template.html
deleted file mode 100644 (file)
index 33d0548..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-<!-- ###FULLDOC### begin -->
-<div class="typo3-fullDoc">
-       <div id="typo3-docheader">
-               <div class="typo3-docheader-functions">
-                       <div class="left">###CSH######FUNC_MENU###</div>
-                       <div class="right"></div>
-               </div>
-               <div class="typo3-docheader-buttons">
-                       <div class="left">###BUTTONLIST_LEFT###</div>
-                       <div class="right">###BUTTONLIST_RIGHT###</div>
-               </div>
-       </div>
-
-       <div id="typo3-docbody">
-               <div id="typo3-inner-docbody">
-                       ###CONTENT###
-               </div>
-       </div>
-</div>
-<!-- ###FULLDOC### end -->
-
-<!-- Grouping the icons on top -->
-
-<!-- ###BUTTON_GROUP_WRAP### -->
-<div class="buttongroup">###BUTTONS###</div>
-<!-- ###BUTTON_GROUP_WRAP### -->
-
-<!-- ###BUTTON_GROUPS_LEFT### -->
-<!-- ###BUTTON_GROUP1### -->###ADDTASK######CLOSE###<!-- ###BUTTON_GROUP1### -->
-<!-- ###BUTTON_GROUP2### -->###SAVE######SAVECLOSE###<!-- ###BUTTON_GROUP2### -->
-<!-- ###BUTTON_GROUP3### -->###DELETE###<!-- ###BUTTON_GROUP3### -->
-<!-- ###BUTTON_GROUPS_LEFT### -->
-
-<!-- ###BUTTON_GROUPS_RIGHT### -->
-<!-- ###BUTTON_GROUP1### -->###RELOAD######SHORTCUT###<!-- ###BUTTON_GROUP1### -->
-<!-- ###BUTTON_GROUPS_RIGHT### -->
diff --git a/typo3/sysext/scheduler/res/gfx/status_disabled.png b/typo3/sysext/scheduler/res/gfx/status_disabled.png
deleted file mode 100644 (file)
index 38efedd..0000000
Binary files a/typo3/sysext/scheduler/res/gfx/status_disabled.png and /dev/null differ
diff --git a/typo3/sysext/scheduler/res/gfx/status_failure.png b/typo3/sysext/scheduler/res/gfx/status_failure.png
deleted file mode 100644 (file)
index d683838..0000000
Binary files a/typo3/sysext/scheduler/res/gfx/status_failure.png and /dev/null differ
diff --git a/typo3/sysext/scheduler/res/gfx/status_late.png b/typo3/sysext/scheduler/res/gfx/status_late.png
deleted file mode 100644 (file)
index 815495f..0000000
Binary files a/typo3/sysext/scheduler/res/gfx/status_late.png and /dev/null differ
diff --git a/typo3/sysext/scheduler/res/gfx/status_running.png b/typo3/sysext/scheduler/res/gfx/status_running.png
deleted file mode 100644 (file)
index 4491843..0000000
Binary files a/typo3/sysext/scheduler/res/gfx/status_running.png and /dev/null differ
diff --git a/typo3/sysext/scheduler/res/gfx/status_scheduled.png b/typo3/sysext/scheduler/res/gfx/status_scheduled.png
deleted file mode 100644 (file)
index b02b2aa..0000000
Binary files a/typo3/sysext/scheduler/res/gfx/status_scheduled.png and /dev/null differ
diff --git a/typo3/sysext/scheduler/res/gfx/stop.png b/typo3/sysext/scheduler/res/gfx/stop.png
deleted file mode 100644 (file)
index 55224b2..0000000
Binary files a/typo3/sysext/scheduler/res/gfx/stop.png and /dev/null differ
diff --git a/typo3/sysext/scheduler/res/tx_scheduler_be.css b/typo3/sysext/scheduler/res/tx_scheduler_be.css
deleted file mode 100644 (file)
index 7b5cf23..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Scheduler BE-Styles */
-
-.tx_scheduler_mod1 a {
-       text-decoration: underline;
-}
-
-.tx_scheduler_mod1 #typo3-inner-docbody {
-       padding-right: 10px;
-}
-
-.tx_scheduler_mod1 a.icon,
-.tx_scheduler_mod1 a.typo3-csh-link,
-.tx_scheduler_mod1 #typo3-docheader a {
-       text-decoration: none;
-}
-
-.tx_scheduler_mod1 td.right {
-       text-align: right;
-}
-.tx_scheduler_mod1 tr.disabled td {
-       color: #666;
-}
-.tx_scheduler_mod1 .late {
-       color: #f00;
-       font-weight: bold;
-}
-.tx_scheduler_mod1 label {
-       width: 200px;
-}
-.tx_scheduler_mod1 table.typo3-usersettings td {
-       padding-top: 2px;
-       padding-bottom: 2px;
-}
-.tx_scheduler_mod1 table.typo3-usersettings td.td-input {
-       width: 400px;
-}
-.tx_scheduler_mod1 select {
-       margin-bottom: 1.2em;
-       width: 200px;
-}
-.tx_scheduler_mod1 input.wide,
-.tx_scheduler_mod1 select.wide {
-       width: 350px;
-}
-.tx_scheduler_mod1 input.checkboxes {
-       width: auto;
-}
-
-.tx_scheduler_mod1 .status-legend {
-       padding-top: 10px;
-       padding-bottom: 5px;
-       font-weight: bold;
-}
-
-.tx_scheduler_mod1 .progress {
-       overflow: hidden;
-       height: 14px;
-       background-color: #DADADA;
-       border-radius: 2px;
-       box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1) inset;
-       margin: 3px 0px;
-}
-
-.tx_scheduler_mod1 .progress .bar {
-       width: 0%;
-       height: 14px;
-
-       background-color: #5b5b5b;
-       background-image: linear-gradient(top,  #7f7f7f 10%,#5b5b5b 100%);
-       background-repeat: repeat-x;
-
-
-       text-align: left;
-       color: #fff;
-       font-size: 8px;
-       vertical-align: top;
-       padding-left: 3px;
-       padding-top: -1px;
-}
-
-
-/* Definition for BE function "Setup check" */
-.info-block {
-       margin: 25px 0px 0px 0px;
-}
-.info-block p {
-       margin: 8px 5px 8px 5px;
-}
diff --git a/typo3/sysext/scheduler/res/tx_scheduler_be.js b/typo3/sysext/scheduler/res/tx_scheduler_be.js
deleted file mode 100644 (file)
index df1da26..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-/**
- * 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!
- */
-/**
- * This javascript file is used in the Scheduler's backend module
- * It relies on ExtJS core being loaded
- *
- * @author     Francois Suter <francois@typo3.org>
- */
-
-/**
- * Global variable to keep track of checked/unchecked status of all
- * checkboxes for execution selection
- *
- * @var        boolean
- */
-var allCheckedStatus = false;
-
-/**
- * This method reacts on changes to the task class
- * It switches on or off the relevant extra fields
- *
- * @param      theSelector: select form item where the selection was made
- * @return     void
- */
-function actOnChangedTaskClass(theSelector) {
-       var taskClass = theSelector.options[theSelector.selectedIndex].value.toLowerCase().replace(/\\/g, '-');
-               // Hide all extra fields
-               // Show only relevant extra fields
-       Ext.select('.extraFields').setDisplayed(false);
-       Ext.select('.extra_fields_' + taskClass).setDisplayed(true);
-}
-
-/**
- * This method reacts on changes to the type of a task, i.e. single or recurring,
- * by showing or hiding the relevant form fields
- *
- * @param      theSelector: select form item where the selection was made
- * @return     void
- */
-function actOnChangedTaskType(theSelector) {
-               // Get task type from selected value, or set default value
-       var taskType;
-       if (theSelector.selectedIndex) {
-               taskType = theSelector.options[theSelector.selectedIndex].value;
-       } else {
-               taskType = 1;
-       }
-               // Single task
-               // Hide all fields related to recurring tasks
-       if (taskType == 1) {
-               Ext.fly('task_end_row').setDisplayed(false);
-               Ext.fly('task_frequency_row').setDisplayed(false);
-               Ext.fly('task_multiple_row').setDisplayed(false);
-
-               // Recurring task
-               // Show all fields related to recurring tasks
-       } else {
-               Ext.fly('task_end_row').setDisplayed(true);
-               Ext.fly('task_frequency_row').setDisplayed(true);
-               Ext.fly('task_multiple_row').setDisplayed(true);
-       }
-}
-
-/**
- * This method reacts on field changes of all table field for
- * table garbage collection task
- *
- * @param theCheckbox: The selected checkbox
- * @return void
- */
-function actOnChangeSchedulerTableGarbageCollectionAllTables(theCheckbox) {
-       if (theCheckbox.checked) {
-               Ext.fly('task_tableGarbageCollection_table').set({disabled: 'disabled'});
-               Ext.fly('task_tableGarbageCollection_numberOfDays').set({disabled: 'disabled'});
-       } else {
-                       // Get number of days for selected table
-               var numberOfDays = Ext.fly('task_tableGarbageCollection_numberOfDays').getValue();
-               if (numberOfDays < 1) {
-                       var selectedTable = Ext.fly('task_tableGarbageCollection_table').getValue();
-                       if (typeof(defaultNumberOfDays[selectedTable]) != 'undefined') {
-                               numberOfDays = defaultNumberOfDays[selectedTable];
-                       }
-               }
-
-               Ext.fly('task_tableGarbageCollection_table').dom.removeAttribute('disabled');
-               if (numberOfDays > 0) {
-                       Ext.fly('task_tableGarbageCollection_numberOfDays').dom.removeAttribute('disabled');
-               }
-       }
-}
-
-/**
- * This methods set the 'number of days' field to the default expire period
- * of the selected table
- *
- * @param theSelector: select form item where the table selection was made
- * @return void
- */
-function actOnChangeSchedulerTableGarbageCollectionTable(theSelector) {
-       if (defaultNumberOfDays[theSelector.options[theSelector.selectedIndex].value] > 0) {
-               Ext.fly('task_tableGarbageCollection_numberOfDays').dom.removeAttribute('disabled');
-               Ext.fly('task_tableGarbageCollection_numberOfDays').set({value: defaultNumberOfDays[theSelector.options[theSelector.selectedIndex].value]});
-       } else {
-               Ext.fly('task_tableGarbageCollection_numberOfDays').set({disabled: 'disabled'});
-               Ext.fly('task_tableGarbageCollection_numberOfDays').set({value: 0});
-       }
-}
-
-/**
- * This method reacts on the checking of a toggle,
- * activating or not the check of all other checkboxes
- *
- * @return     void
- */
-function toggleCheckboxes() {
-               // Toggle status of global variable
-       allCheckedStatus = !allCheckedStatus;
-               // Get all checkboxes with proper class
-       var checkboxes = Ext.select('.checkboxes');
-       var count = checkboxes.getCount();
-               // Set them all to same status as main checkbox
-       for (var i = 0; i < count; i++) {
-               checkboxes.item(i).dom.checked = allCheckedStatus;
-       }
-}
-
-/**
- * Ext.onReader functions
- *
- * onClick event for scheduler task execution from backend module
- */
-Ext.onReady(function(){
-       Ext.addBehaviors({
-                       // Add a listener for click on scheduler execute button
-               '#scheduler_executeselected@click' : function(e, t){
-                               // Get all active checkboxes with proper class
-                       var checkboxes = Ext.select('.checkboxes:checked');
-                       var count = checkboxes.getCount();
-                       var idParts;
-
-                               // Set the status icon all to same status: running
-                       for (var i = 0; i < count; i++) {
-                               idParts = checkboxes.item(i).id.split('_');
-                               Ext.select('#executionstatus_' + idParts[1]).item(0).set({src: TYPO3.settings.scheduler.runningIcon});
-                       }
-               },
-                       // Add a listener for click on a row to check/uncheck the checkbox
-               '.tx_scheduler_mod1 tr.db_list_normal@click' : function(e, t) {
-                       if (t.tagName == 'SPAN' || t.tagName == 'A') {
-                               return;
-                       }
-
-                       var checkboxes = Ext.select(t.up('tr').select('input.checkboxes'));
-                       if (t.type != 'checkbox') {
-                               if (checkboxes.item(0).dom.checked == true) {
-                                       checkboxes.item(0).dom.checked = false;
-                               } else {
-                                       checkboxes.item(0).dom.checked = true;
-                               }
-                       }
-                       if (Ext.query('input.checkboxes:checked').length == checkboxes.getCount()) {
-                               allCheckedStatus = !allCheckedStatus;
-                       }
-               },
-
-                       // Add a listener for click on run single task
-               '.t3-icon-scheduler-run-task@click' : function(event, element) {
-                       var checkbox = Ext.get(element).parent('tr').child('input[type="checkbox"]');
-                       var idParts = checkbox.id.split('_');
-                       Ext.select('#executionstatus_' + idParts[1]).item(0).set({src: TYPO3.settings.scheduler.runningIcon});
-               }
-       })
-});
\ No newline at end of file