Merged revisions 53150,53681,53700,53820,54200,54459 via svnmerge from
svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/roa
........
r53150 | ischommer | 2008-04-22 11:12:43 +1200 (Tue, 22 Apr 2008) | 1 line
FEATURE Added a "test mode" for /db/build which allows mock-DataObject-subclasses which are just built in a test run
........
r53681 | mrickerby | 2008-04-29 15:26:52 +1200 (Tue, 29 Apr 2008) | 1 line
adding default wrapping header and footer methods, and configurable reporting to the TestRunner
........
r53700 | mrickerby | 2008-04-29 16:41:57 +1200 (Tue, 29 Apr 2008) | 1 line
FEATURE: adding support for /dev/tests --> DevelopmentAdmin-->tests() --> TestRunner, /dev/tasks --> DevelopmentAdmin-->tasks() --> TaskRunner
........
r53820 | mrickerby | 2008-04-30 19:27:52 +1200 (Wed, 30 Apr 2008) | 1 line
BUGFIX fixing up BuildTask interface and task runner action
........
r54200 | sminnee | 2008-05-09 00:28:44 +1200 (Fri, 09 May 2008) | 1 line
Added TestSession object to help with the testing of forms
........
r54459 | sminnee | 2008-05-13 17:28:25 +1200 (Tue, 13 May 2008) | 1 line
Added a basic menu of options to /dev
........
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@54456 467b73ca-7a2a-4603-9d3b-597d59a354a9
2008-05-13 07:57:09 +02:00
|
|
|
<?php
|
2008-06-15 15:33:53 +02:00
|
|
|
/**
|
2012-04-12 08:02:46 +02:00
|
|
|
* @package framework
|
2008-06-15 15:33:53 +02:00
|
|
|
* @subpackage dev
|
|
|
|
*/
|
Merged revisions 53150,53681,53700,53820,54200,54459 via svnmerge from
svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/roa
........
r53150 | ischommer | 2008-04-22 11:12:43 +1200 (Tue, 22 Apr 2008) | 1 line
FEATURE Added a "test mode" for /db/build which allows mock-DataObject-subclasses which are just built in a test run
........
r53681 | mrickerby | 2008-04-29 15:26:52 +1200 (Tue, 29 Apr 2008) | 1 line
adding default wrapping header and footer methods, and configurable reporting to the TestRunner
........
r53700 | mrickerby | 2008-04-29 16:41:57 +1200 (Tue, 29 Apr 2008) | 1 line
FEATURE: adding support for /dev/tests --> DevelopmentAdmin-->tests() --> TestRunner, /dev/tasks --> DevelopmentAdmin-->tasks() --> TaskRunner
........
r53820 | mrickerby | 2008-04-30 19:27:52 +1200 (Wed, 30 Apr 2008) | 1 line
BUGFIX fixing up BuildTask interface and task runner action
........
r54200 | sminnee | 2008-05-09 00:28:44 +1200 (Fri, 09 May 2008) | 1 line
Added TestSession object to help with the testing of forms
........
r54459 | sminnee | 2008-05-13 17:28:25 +1200 (Tue, 13 May 2008) | 1 line
Added a basic menu of options to /dev
........
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@54456 467b73ca-7a2a-4603-9d3b-597d59a354a9
2008-05-13 07:57:09 +02:00
|
|
|
class TaskRunner extends Controller {
|
|
|
|
|
|
|
|
static $url_handlers = array(
|
|
|
|
'' => 'index',
|
|
|
|
'$TaskName' => 'runTask'
|
|
|
|
);
|
|
|
|
|
2011-02-13 23:14:51 +01:00
|
|
|
static $allowed_actions = array(
|
2011-08-12 16:19:16 +02:00
|
|
|
'index',
|
|
|
|
'runTask',
|
2011-02-13 23:14:51 +01:00
|
|
|
);
|
|
|
|
|
2012-09-19 12:07:39 +02:00
|
|
|
public function init() {
|
2009-09-10 03:49:56 +02:00
|
|
|
parent::init();
|
2010-11-30 06:13:09 +01:00
|
|
|
|
|
|
|
$isRunningTests = (class_exists('SapphireTest', false) && SapphireTest::is_running_test());
|
2010-10-15 05:43:30 +02:00
|
|
|
$canAccess = (
|
|
|
|
Director::isDev()
|
|
|
|
// We need to ensure that DevelopmentAdminTest can simulate permission failures when running
|
|
|
|
// "dev/tasks" from CLI.
|
2010-11-30 06:13:09 +01:00
|
|
|
|| (Director::is_cli() && !$isRunningTests)
|
2010-10-15 05:43:30 +02:00
|
|
|
|| Permission::check("ADMIN")
|
|
|
|
);
|
2009-09-10 03:49:56 +02:00
|
|
|
if(!$canAccess) return Security::permissionFailure($this);
|
|
|
|
}
|
|
|
|
|
2012-09-19 12:07:39 +02:00
|
|
|
public function index() {
|
2008-10-16 22:40:24 +02:00
|
|
|
$tasks = $this->getTasks();
|
|
|
|
|
|
|
|
// Web mode
|
|
|
|
if(!Director::is_cli()) {
|
|
|
|
$renderer = new DebugView();
|
|
|
|
$renderer->writeHeader();
|
2012-03-24 04:38:57 +01:00
|
|
|
$renderer->writeInfo("SilverStripe Development Tools: Tasks", Director::absoluteBaseURL());
|
2009-04-06 01:53:25 +02:00
|
|
|
$base = Director::absoluteBaseURL();
|
2009-01-05 07:19:48 +01:00
|
|
|
|
2012-06-29 06:52:29 +02:00
|
|
|
echo "<div class=\"options\">";
|
2008-08-11 02:03:57 +02:00
|
|
|
echo "<ul>";
|
|
|
|
foreach($tasks as $task) {
|
2012-06-29 06:52:29 +02:00
|
|
|
echo "<li><p>";
|
2009-01-05 07:19:48 +01:00
|
|
|
echo "<a href=\"{$base}dev/tasks/" . $task['class'] . "\">" . $task['title'] . "</a><br />";
|
2008-10-16 22:40:24 +02:00
|
|
|
echo "<span class=\"description\">" . $task['description'] . "</span>";
|
2012-06-29 06:52:29 +02:00
|
|
|
echo "</p></li>\n";
|
2008-08-11 02:03:57 +02:00
|
|
|
}
|
2012-06-29 06:52:29 +02:00
|
|
|
echo "</ul></div>";
|
2008-10-16 22:40:24 +02:00
|
|
|
|
|
|
|
$renderer->writeFooter();
|
|
|
|
// CLI mode
|
|
|
|
} else {
|
2012-03-24 04:38:57 +01:00
|
|
|
echo "SILVERSTRIPE DEVELOPMENT TOOLS: Tasks\n--------------------------\n\n";
|
2008-10-16 22:40:24 +02:00
|
|
|
foreach($tasks as $task) {
|
2012-09-24 03:37:48 +02:00
|
|
|
echo " * $task[title]: sake dev/tasks/" . $task['class'] . "\n";
|
2008-10-16 22:40:24 +02:00
|
|
|
}
|
Merged revisions 53150,53681,53700,53820,54200,54459 via svnmerge from
svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/roa
........
r53150 | ischommer | 2008-04-22 11:12:43 +1200 (Tue, 22 Apr 2008) | 1 line
FEATURE Added a "test mode" for /db/build which allows mock-DataObject-subclasses which are just built in a test run
........
r53681 | mrickerby | 2008-04-29 15:26:52 +1200 (Tue, 29 Apr 2008) | 1 line
adding default wrapping header and footer methods, and configurable reporting to the TestRunner
........
r53700 | mrickerby | 2008-04-29 16:41:57 +1200 (Tue, 29 Apr 2008) | 1 line
FEATURE: adding support for /dev/tests --> DevelopmentAdmin-->tests() --> TestRunner, /dev/tasks --> DevelopmentAdmin-->tasks() --> TaskRunner
........
r53820 | mrickerby | 2008-04-30 19:27:52 +1200 (Wed, 30 Apr 2008) | 1 line
BUGFIX fixing up BuildTask interface and task runner action
........
r54200 | sminnee | 2008-05-09 00:28:44 +1200 (Fri, 09 May 2008) | 1 line
Added TestSession object to help with the testing of forms
........
r54459 | sminnee | 2008-05-13 17:28:25 +1200 (Tue, 13 May 2008) | 1 line
Added a basic menu of options to /dev
........
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@54456 467b73ca-7a2a-4603-9d3b-597d59a354a9
2008-05-13 07:57:09 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2012-09-19 12:07:39 +02:00
|
|
|
public function runTask($request) {
|
2008-10-16 22:40:24 +02:00
|
|
|
$taskName = $request->param('TaskName');
|
|
|
|
if (class_exists($taskName) && is_subclass_of($taskName, 'BuildTask')) {
|
|
|
|
$title = singleton($taskName)->getTitle();
|
|
|
|
if(Director::is_cli()) echo "Running task '$title'...\n\n";
|
2009-12-16 06:49:23 +01:00
|
|
|
elseif(!Director::is_ajax()) echo "<h1>Running task '$title'...</h1>\n";
|
2008-08-11 01:29:30 +02:00
|
|
|
|
2013-02-07 14:32:16 +01:00
|
|
|
$task = Injector::inst()->create($taskName);
|
2008-10-16 22:40:24 +02:00
|
|
|
if ($task->isEnabled()) $task->run($request);
|
2009-01-05 07:19:48 +01:00
|
|
|
else echo "<p>{$title} is disabled</p>";
|
2008-08-11 01:29:30 +02:00
|
|
|
} else {
|
2008-10-16 22:40:24 +02:00
|
|
|
echo "Build task '$taskName' not found.";
|
|
|
|
if(class_exists($taskName)) echo " It isn't a subclass of BuildTask.";
|
2008-08-11 02:03:57 +02:00
|
|
|
echo "\n";
|
Merged revisions 53150,53681,53700,53820,54200,54459 via svnmerge from
svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/roa
........
r53150 | ischommer | 2008-04-22 11:12:43 +1200 (Tue, 22 Apr 2008) | 1 line
FEATURE Added a "test mode" for /db/build which allows mock-DataObject-subclasses which are just built in a test run
........
r53681 | mrickerby | 2008-04-29 15:26:52 +1200 (Tue, 29 Apr 2008) | 1 line
adding default wrapping header and footer methods, and configurable reporting to the TestRunner
........
r53700 | mrickerby | 2008-04-29 16:41:57 +1200 (Tue, 29 Apr 2008) | 1 line
FEATURE: adding support for /dev/tests --> DevelopmentAdmin-->tests() --> TestRunner, /dev/tasks --> DevelopmentAdmin-->tasks() --> TaskRunner
........
r53820 | mrickerby | 2008-04-30 19:27:52 +1200 (Wed, 30 Apr 2008) | 1 line
BUGFIX fixing up BuildTask interface and task runner action
........
r54200 | sminnee | 2008-05-09 00:28:44 +1200 (Fri, 09 May 2008) | 1 line
Added TestSession object to help with the testing of forms
........
r54459 | sminnee | 2008-05-13 17:28:25 +1200 (Tue, 13 May 2008) | 1 line
Added a basic menu of options to /dev
........
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@54456 467b73ca-7a2a-4603-9d3b-597d59a354a9
2008-05-13 07:57:09 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2008-10-16 22:40:24 +02:00
|
|
|
/**
|
|
|
|
* @return array Array of associative arrays for each task (Keys: 'class', 'title', 'description')
|
|
|
|
*/
|
|
|
|
protected function getTasks() {
|
|
|
|
$availableTasks = array();
|
|
|
|
|
|
|
|
$taskClasses = ClassInfo::subclassesFor('BuildTask');
|
|
|
|
// remove the base class
|
|
|
|
array_shift($taskClasses);
|
|
|
|
|
|
|
|
if($taskClasses) foreach($taskClasses as $class) {
|
|
|
|
if(!singleton($class)->isEnabled()) continue;
|
2012-09-26 23:34:00 +02:00
|
|
|
$desc = (Director::is_cli())
|
|
|
|
? Convert::html2raw(singleton($class)->getDescription())
|
|
|
|
: singleton($class)->getDescription();
|
|
|
|
|
2008-10-16 22:40:24 +02:00
|
|
|
$availableTasks[] = array(
|
|
|
|
'class' => $class,
|
|
|
|
'title' => singleton($class)->getTitle(),
|
|
|
|
'description' => $desc,
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
return $availableTasks;
|
|
|
|
}
|
|
|
|
|
Merged revisions 53150,53681,53700,53820,54200,54459 via svnmerge from
svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/branches/roa
........
r53150 | ischommer | 2008-04-22 11:12:43 +1200 (Tue, 22 Apr 2008) | 1 line
FEATURE Added a "test mode" for /db/build which allows mock-DataObject-subclasses which are just built in a test run
........
r53681 | mrickerby | 2008-04-29 15:26:52 +1200 (Tue, 29 Apr 2008) | 1 line
adding default wrapping header and footer methods, and configurable reporting to the TestRunner
........
r53700 | mrickerby | 2008-04-29 16:41:57 +1200 (Tue, 29 Apr 2008) | 1 line
FEATURE: adding support for /dev/tests --> DevelopmentAdmin-->tests() --> TestRunner, /dev/tasks --> DevelopmentAdmin-->tasks() --> TaskRunner
........
r53820 | mrickerby | 2008-04-30 19:27:52 +1200 (Wed, 30 Apr 2008) | 1 line
BUGFIX fixing up BuildTask interface and task runner action
........
r54200 | sminnee | 2008-05-09 00:28:44 +1200 (Fri, 09 May 2008) | 1 line
Added TestSession object to help with the testing of forms
........
r54459 | sminnee | 2008-05-13 17:28:25 +1200 (Tue, 13 May 2008) | 1 line
Added a basic menu of options to /dev
........
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@54456 467b73ca-7a2a-4603-9d3b-597d59a354a9
2008-05-13 07:57:09 +02:00
|
|
|
}
|
|
|
|
|
2012-02-12 21:22:11 +01:00
|
|
|
|