Skip to content

Commit

Permalink
ENHANCEMENT batchactions can now implement confirmationDialog() to pr…
Browse files Browse the repository at this point in the history
…ovide 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
  • Loading branch information
Sam Minnee committed Oct 4, 2010
1 parent 81a6ebf commit 201e6a5
Showing 1 changed file with 22 additions and 0 deletions.
22 changes: 22 additions & 0 deletions code/CMSBatchActionHandler.php
Expand Up @@ -10,6 +10,7 @@ class CMSBatchActionHandler extends RequestHandler {

static $url_handlers = array(
'$BatchAction/applicablepages' => 'handleApplicablePages',
'$BatchAction/confirmation' => 'handleConfirmation',
'$BatchAction' => 'handleAction',
);

Expand Down Expand Up @@ -134,6 +135,27 @@ function handleApplicablePages($request) {
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
* about each batch action:
Expand Down

0 comments on commit 201e6a5

Please sign in to comment.