mirror of
https://github.com/silverstripe/silverstripe-reports
synced 2024-10-22 11:05:53 +02:00
BUGFIX: Preserve selection of LHS multiselect tree when switching between filters. (from r90290)
git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/branches/2.4@96806 467b73ca-7a2a-4603-9d3b-597d59a354a9
This commit is contained in:
parent
a53967b266
commit
ae10403240
@ -148,6 +148,7 @@ SiteTreeFilter.prototype = {
|
||||
onSuccess: function() {
|
||||
indicator.style.display = 'none';
|
||||
if(__makeDraggableAfterUpdate) $('sitetree').makeDraggable();
|
||||
batchActionGlobals.refreshSelected();
|
||||
},
|
||||
onFailure: function(response) {
|
||||
errorMessage('Could not update tree', response);
|
||||
@ -301,7 +302,9 @@ batchactionsclass.prototype = {
|
||||
batchActionGlobals = {
|
||||
selectedNodes: { },
|
||||
// count Int - The number of nodes selected
|
||||
count: { },
|
||||
count: function() {
|
||||
return batchActionGlobals.getIds().length;
|
||||
},
|
||||
// TODO: Remove 'new-' code http://open.silverstripe.com/ticket/875
|
||||
newNodes: { },
|
||||
treeSelectionChanged : function(selectedNode) {
|
||||
@ -337,6 +340,7 @@ batchActionGlobals = {
|
||||
|
||||
popupClosed : function() {
|
||||
removeClass($('sitetree'),'multiselect');
|
||||
|
||||
$('sitetree').stopObserving(batchActionGlobals.o1);
|
||||
$(_HANDLER_FORMS.batchactions).stopObserving(batchActionGlobals.o2);
|
||||
|
||||
@ -352,7 +356,7 @@ batchActionGlobals = {
|
||||
batchActionGlobals.selectedNodes = { };
|
||||
},
|
||||
|
||||
getCsvIds : function() {
|
||||
getIds: function() {
|
||||
var csvIDs = new Array();
|
||||
var st = $('sitetree');
|
||||
batchActionGlobals.newNodes = new Array();
|
||||
@ -375,8 +379,17 @@ batchActionGlobals = {
|
||||
}
|
||||
}
|
||||
}
|
||||
batchActionGlobals.count=csvIDs.length;
|
||||
return (csvIDs.toString());
|
||||
return csvIDs;
|
||||
},
|
||||
getCsvIds : function() {
|
||||
return (batchActionGlobals.getIds().toString());
|
||||
},
|
||||
refreshSelected : function() {
|
||||
var st = $('sitetree');
|
||||
for(var idx in batchActionGlobals.selectedNodes) {
|
||||
st.getTreeNodeByIdx(idx).addNodeClass('selected');
|
||||
st.getTreeNodeByIdx(idx).selected = true;
|
||||
}
|
||||
},
|
||||
unfilterSiteTree : function() {
|
||||
// Reload the site tree if it has been filtered
|
||||
@ -427,7 +440,7 @@ publishpage.prototype = {
|
||||
var ingText = optionParams.doingText;
|
||||
|
||||
// Confirmation
|
||||
if(!confirm("You have " + batchActionGlobals.count + " pages selected.\n\nDo your really want to " + actionText.toLowerCase() + "?")) {
|
||||
if(!confirm("You have " + batchActionGlobals.count() + " pages selected.\n\nDo your really want to " + actionText.toLowerCase() + "?")) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -470,11 +483,10 @@ deletepage.prototype = {
|
||||
onsubmit : function() {
|
||||
csvIDs = batchActionGlobals.getCsvIds();
|
||||
if(csvIDs || batchActionGlobals.newNodes.length > 0) {
|
||||
batchActionGlobals.count += batchActionGlobals.newNodes.length;
|
||||
|
||||
if(confirm(ss.i18n.sprintf(
|
||||
ss.i18n._t('CMSMAIN.REALLYDELETEPAGES'),
|
||||
batchActionGlobals.count
|
||||
batchActionGlobals.count()
|
||||
))) {
|
||||
this.elements.csvIDs.value = csvIDs;
|
||||
|
||||
|
@ -231,10 +231,18 @@ TreeNodeAPI.prototype = {
|
||||
url = this.tree.url(args);
|
||||
|
||||
new Ajax.Request(url, {
|
||||
onSuccess : this.installSubtree.bind(this),
|
||||
onSuccess : this.installSubtreeAndRefresh.bind(this),
|
||||
onFailure : this.showSubtreeLoadingError
|
||||
});
|
||||
},
|
||||
|
||||
installSubtreeAndRefresh : function(response){
|
||||
this.installSubtree(response);
|
||||
if(this.tree.className.indexOf('multiselect') != -1) {
|
||||
batchActionGlobals.refreshSelected();
|
||||
}
|
||||
},
|
||||
|
||||
showSubtreeLoadingError: function(response) {
|
||||
errorMessage('error loading subtree', response);
|
||||
},
|
||||
|
Loading…
Reference in New Issue
Block a user