mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 08:05:56 +02:00
FEATURE batch actions for setting/resetting embargo/expiry (from r85397)
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@89221 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
2294857460
commit
a7c07369e0
@ -38,10 +38,11 @@ abstract class CMSBatchAction extends Object {
|
|||||||
* @param $helperMethod The method to call on each of those objects.
|
* @param $helperMethod The method to call on each of those objects.
|
||||||
* @para
|
* @para
|
||||||
*/
|
*/
|
||||||
public function batchaction(DataObjectSet $pages, $helperMethod, $successMessage) {
|
public function batchaction(DataObjectSet $pages, $helperMethod, $successMessage, $arguments = array()) {
|
||||||
foreach($pages as $page) {
|
foreach($pages as $page) {
|
||||||
|
|
||||||
// Perform the action
|
// Perform the action
|
||||||
$page->$helperMethod();
|
call_user_func_array(array($page, $helperMethod), $arguments);
|
||||||
|
|
||||||
// Now make sure the tree title is appropriately updated
|
// Now make sure the tree title is appropriately updated
|
||||||
$publishedRecord = DataObject::get_by_id('SiteTree', $page->ID);
|
$publishedRecord = DataObject::get_by_id('SiteTree', $page->ID);
|
||||||
@ -59,6 +60,10 @@ abstract class CMSBatchAction extends Object {
|
|||||||
return FormResponse::respond();
|
return FormResponse::respond();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if your batchaction has parameters, return a fieldset here
|
||||||
|
function getParameterFields() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1022,18 +1022,18 @@ JS;
|
|||||||
$batchActions = CMSBatchActionHandler::$batch_actions;
|
$batchActions = CMSBatchActionHandler::$batch_actions;
|
||||||
|
|
||||||
$forms = array();
|
$forms = array();
|
||||||
foreach($batchActions as $batchAction) {
|
foreach($batchActions as $urlSegment => $batchAction) {
|
||||||
if ($fieldset = singleton($batchAction)->getParameterFields()) {
|
if ($fieldset = singleton($batchAction)->getParameterFields()) {
|
||||||
$formHtml = '';
|
$formHtml = '';
|
||||||
foreach($fieldset as $field) {
|
foreach($fieldset as $field) {
|
||||||
$formHtml .= $field->Field();
|
$formHtml .= $field->Field();
|
||||||
}
|
}
|
||||||
$forms[$batchAction] = $formHtml;
|
$forms[$urlSegment] = $formHtml;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$pageHtml = '';
|
$pageHtml = '';
|
||||||
foreach($forms as $class => $html) {
|
foreach($forms as $urlSegment => $html) {
|
||||||
$pageHtml .= "<div id=\"BatchActionParameters_$class\" style=\"display:none\">$html</div>\n\n";
|
$pageHtml .= "<div class=\"params\" id=\"BatchActionParameters_$urlSegment\">$html</div>\n\n";
|
||||||
}
|
}
|
||||||
return new LiteralField("BatchActionParameters", '<div id="BatchActionParameters" style="display:none">'.$pageHtml.'</div>');
|
return new LiteralField("BatchActionParameters", '<div id="BatchActionParameters" style="display:none">'.$pageHtml.'</div>');
|
||||||
}
|
}
|
||||||
|
@ -258,6 +258,19 @@ batchactionsclass.prototype = {
|
|||||||
return false;
|
return false;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
actionChanged: function() {
|
||||||
|
var urlSegment = $('choose_batch_action').value.split('/').pop()
|
||||||
|
if ($('BatchActionParameters_'+urlSegment)) {
|
||||||
|
jQuery('#actionParams').empty();
|
||||||
|
jQuery('#BatchActionParameters_'+urlSegment).appendTo('#actionParams');
|
||||||
|
$('actionParams').style.display = 'block';
|
||||||
|
$('actionParams').style.padding = '4px';
|
||||||
|
} else {
|
||||||
|
$('actionParams').innerHTML = '';
|
||||||
|
$('actionParams').style.display = 'none';
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
multiselectTransform : function() {
|
multiselectTransform : function() {
|
||||||
batchActionGlobals.o1 = $('sitetree').observeMethod('SelectionChanged', batchActionGlobals.treeSelectionChanged);
|
batchActionGlobals.o1 = $('sitetree').observeMethod('SelectionChanged', batchActionGlobals.treeSelectionChanged);
|
||||||
batchActionGlobals.o2 = $(_HANDLER_FORMS.batchactions).observeMethod('Close', batchActionGlobals.popupClosed);
|
batchActionGlobals.o2 = $(_HANDLER_FORMS.batchactions).observeMethod('Close', batchActionGlobals.popupClosed);
|
||||||
@ -388,6 +401,17 @@ batchActionGlobals = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Behaviour.register({
|
||||||
|
'#choose_batch_action' : {
|
||||||
|
onchange : function() {
|
||||||
|
$('batchactions').actionChanged();
|
||||||
|
},
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Publish selected pages action
|
* Publish selected pages action
|
||||||
*/
|
*/
|
||||||
|
@ -71,7 +71,7 @@
|
|||||||
<p><% _t('SELECTPAGESACTIONS','Select the pages that you want to change & then click an action:') %></p>
|
<p><% _t('SELECTPAGESACTIONS','Select the pages that you want to change & then click an action:') %></p>
|
||||||
|
|
||||||
<input type="hidden" name="csvIDs" />
|
<input type="hidden" name="csvIDs" />
|
||||||
|
<div id="actionParams"></div>
|
||||||
<div>
|
<div>
|
||||||
<select id="choose_batch_action">
|
<select id="choose_batch_action">
|
||||||
<% control BatchActionList %>
|
<% control BatchActionList %>
|
||||||
|
Loading…
Reference in New Issue
Block a user