if(typeof SiteTreeHandlers == 'undefined') SiteTreeHandlers = {}; SiteTreeHandlers.parentChanged_url = 'admin/ajaxupdateparent'; SiteTreeHandlers.orderChanged_url = 'admin/ajaxupdatesort'; SiteTreeHandlers.loadPage_url = 'admin/getitem'; SiteTreeHandlers.loadTree_url = 'admin/getsubtree'; SiteTreeFilter = Class.create(); SiteTreeFilter.applyTo('#siteTreeFilterList'); SiteTreeFilter.prototype = { initialize: function () { }, onchange : function() { var value = this.options[this.selectedIndex].value; if(value != 'all') { $('sitetree').setCustomURL(SiteTreeHandlers.controller_url+'/getfilteredsubtree?filter='+escape(value)); } else { $('sitetree').clearCustomURL(); } // We can't update the tree while it's draggable; it gets b0rked. var __makeDraggableAfterUpdate = false; if($('sitetree').isDraggable) { $('sitetree').stopBeingDraggable(); __makeDraggableAfterUpdate = true; } var indicator = $('siteTreeFilterActionIndicator'); indicator.style.display = 'inline'; $('sitetree').reload({ onSuccess: function() { indicator.style.display = 'none'; if(__makeDraggableAfterUpdate) $('sitetree').makeDraggable(); }, onFailure: function(response) { errorMessage('Could not update tree', response); } }); } } /** * Batch Actions button click action */ batchactionsclass = Class.create(); batchactionsclass.applyTo('#batchactions'); batchactionsclass.prototype = { initialize : function() { Observable.applyTo($(_HANDLER_FORMS.batchactions)); }, onclick : function() { if(treeactions.toggleSelection(this)) { this.multiselectTransform(); } 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() { batchActionGlobals.o1 = $('sitetree').observeMethod('SelectionChanged', batchActionGlobals.treeSelectionChanged); batchActionGlobals.o2 = $(_HANDLER_FORMS.batchactions).observeMethod('Close', batchActionGlobals.popupClosed); jQuery('#sitetree').addClass('multiselect'); batchActionGlobals.selectedNodes = { }; var selectedNode = $('sitetree').firstSelected(); if(selectedNode && selectedNode.className.indexOf('nodelete') == -1) { var selIdx = $('sitetree').getIdxOf(selectedNode); batchActionGlobals.selectedNodes[selIdx] = true; selectedNode.removeNodeClass('current'); selectedNode.addNodeClass('selected'); selectedNode.open(); // Open all existing children, which might trigger further // ajaxExansion calls to ensure all nodes are selectable var children = selectedNode.getElementsByTagName('li'); for(var i=0; i 0) { batchActionGlobals.count += batchActionGlobals.newNodes.length; if(confirm(ss.i18n.sprintf( ss.i18n._t('CMSMAIN.REALLYDELETEPAGES'), batchActionGlobals.count ))) { this.elements.csvIDs.value = csvIDs; statusMessage(ss.i18n._t('CMSMAIN.DELETINGPAGES')); // TODO: Remove 'new-' code http://open.silverstripe.com/ticket/875 for( var idx = 0; idx < batchActionGlobals.newNodes.length; idx++ ) { var newNode = $('sitetree').getTreeNodeByIdx( batchActionGlobals.newNodes[idx] ); if( newNode.parentTreeNode ) newNode.parentTreeNode.removeTreeNode( newNode ); else alert( newNode.id + ' has no parent node'); $('Form_EditForm').reloadIfSetTo(idx); } batchActionGlobals.newNodes = new Array(); // Put an AJAXY loading icon on the button $('Form_DeleteItemsForm_action_deleteitems').className = 'loading'; Ajax.SubmitForm(this, null, { onSuccess : function(response) { Ajax.Evaluator(response); $('Form_DeleteItemsForm_action_deleteitems').className = ''; treeactions.closeSelection($('batchactions')); }, onFailure : function(response) { errorMessage(ss.i18n._t('CMSMAIN.ERRORDELETINGPAGES'), response); } }); } } else { alert(ss.i18n._t('CMSMAIN.SELECTONEPAGE')); } return false; } } /** * Tree context menu */ TreeContextMenu = { 'Edit this page' : function(treeNode) { treeNode.selectTreeNode(); }, 'Duplicate page and children' : function(treeNode) { // First save the page silently (without confirmation) and then duplicate the page. jQuery('#Form_EditForm').concrete('ss').ajaxSubmit(null, treeNode.duplicatePageWithChildren.bind(treeNode)); }, 'Duplicate just this page' : function(treeNode) { // First save the page silently (without confirmation) and then duplicate the page. jQuery('#Form_EditForm').concrete('ss').ajaxSubmit(null, treeNode.duplicatePageWithChildren.bind(treeNode)); }, 'Sort sub-pages' : function(treeNode) { var children = treeNode.treeNodeHolder().childTreeNodes(); var sortedChildren = children.sort(function(a, b) { var titleA = a.aTag.innerHTML.replace(/<[^>]*>/g,''); var titleB = b.aTag.innerHTML.replace(/<[^>]*>/g,''); return titleA < titleB ? -1 : (titleA > titleB ? 1 : 0); }); var i,child; for(i=0;child=sortedChildren[i];i++) { treeNode.appendTreeNode(child); } treeNode.onOrderChanged(sortedChildren,treeNode); } };