ENHANCEMENT batchactions can now implement confirmationDialog() to provide a custom confirmation dialog to the front end.

MINOR added above confiration to batch setting expiry (from r97215) (from r98211)

git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@111603 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
Sam Minnee 2010-10-04 05:25:44 +00:00
parent 81a6ebfed0
commit 201e6a5d7c

View File

@ -10,6 +10,7 @@ class CMSBatchActionHandler extends RequestHandler {
static $url_handlers = array( static $url_handlers = array(
'$BatchAction/applicablepages' => 'handleApplicablePages', '$BatchAction/applicablepages' => 'handleApplicablePages',
'$BatchAction/confirmation' => 'handleConfirmation',
'$BatchAction' => 'handleAction', '$BatchAction' => 'handleAction',
); );
@ -134,6 +135,27 @@ class CMSBatchActionHandler extends RequestHandler {
return $response; return $response;
} }
function handleConfirmation($request) {
// Find the action handler
$actions = Object::get_static($this->class, 'batch_actions');
$actionClass = $actions[$request->param('BatchAction')];
$actionHandler = new $actionClass();
// Sanitise ID list and query the database for apges
$ids = split(' *, *', trim($request->requestVar('csvIDs')));
foreach($ids as $k => $id) $ids[$k] = (int)$id;
$ids = array_filter($ids);
if($actionHandler->hasMethod('confirmationDialog')) {
$response = new HTTPResponse(json_encode($actionHandler->confirmationDialog($ids)));
} else {
$response = new HTTPResponse(json_encode(array('alert' => false)));
}
$response->addHeader("Content-type", "application/json");
return $response;
}
/** /**
* Return a DataObjectSet of ArrayData objects containing the following pieces of info * Return a DataObjectSet of ArrayData objects containing the following pieces of info
* about each batch action: * about each batch action: