2007-07-19 10:40:05 +00:00
|
|
|
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';
|
|
|
|
|
2009-08-04 03:09:26 +00:00
|
|
|
SiteTreeFilter = Class.create();
|
|
|
|
SiteTreeFilter.applyTo('#siteTreeFilterList');
|
|
|
|
SiteTreeFilter.prototype = {
|
2009-04-30 22:47:28 +00:00
|
|
|
initialize: function () {
|
|
|
|
},
|
2009-08-04 03:09:26 +00:00
|
|
|
onchange : function() {
|
|
|
|
var value = this.options[this.selectedIndex].value;
|
|
|
|
|
|
|
|
if(value != 'all') {
|
|
|
|
$('sitetree').setCustomURL(SiteTreeHandlers.controller_url+'/getfilteredsubtree?filter='+escape(value));
|
2009-04-30 22:47:28 +00:00
|
|
|
} else {
|
2009-05-14 06:11:18 +00:00
|
|
|
$('sitetree').clearCustomURL();
|
2009-04-30 22:47:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// We can't update the tree while it's draggable; it gets b0rked.
|
|
|
|
var __makeDraggableAfterUpdate = false;
|
|
|
|
if($('sitetree').isDraggable) {
|
|
|
|
$('sitetree').stopBeingDraggable();
|
|
|
|
__makeDraggableAfterUpdate = true;
|
|
|
|
}
|
2009-08-04 03:09:26 +00:00
|
|
|
|
|
|
|
var indicator = $('siteTreeFilterActionIndicator');
|
|
|
|
indicator.style.display = 'inline';
|
|
|
|
|
2009-05-14 06:11:18 +00:00
|
|
|
$('sitetree').reload({
|
|
|
|
onSuccess: function() {
|
2009-05-06 06:22:00 +00:00
|
|
|
indicator.style.display = 'none';
|
2009-08-04 03:09:26 +00:00
|
|
|
if(__makeDraggableAfterUpdate) $('sitetree').makeDraggable();
|
2009-04-30 22:47:28 +00:00
|
|
|
},
|
|
|
|
onFailure: function(response) {
|
|
|
|
errorMessage('Could not update tree', response);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
2009-05-14 06:11:18 +00:00
|
|
|
|
2007-07-19 10:40:05 +00:00
|
|
|
/**
|
|
|
|
* Tree context menu
|
|
|
|
*/
|
|
|
|
TreeContextMenu = {
|
|
|
|
'Edit this page' : function(treeNode) {
|
|
|
|
treeNode.selectTreeNode();
|
|
|
|
},
|
2008-02-25 02:10:37 +00:00
|
|
|
'Duplicate page and children' : function(treeNode) {
|
|
|
|
// First save the page silently (without confirmation) and then duplicate the page.
|
2009-11-21 03:14:08 +00:00
|
|
|
jQuery('#Form_EditForm').concrete('ss').ajaxSubmit(null, treeNode.duplicatePageWithChildren.bind(treeNode));
|
2008-02-25 02:10:37 +00:00
|
|
|
},
|
|
|
|
'Duplicate just this page' : function(treeNode) {
|
2007-09-15 21:56:40 +00:00
|
|
|
// First save the page silently (without confirmation) and then duplicate the page.
|
2009-11-21 03:14:08 +00:00
|
|
|
jQuery('#Form_EditForm').concrete('ss').ajaxSubmit(null, treeNode.duplicatePageWithChildren.bind(treeNode));
|
2007-07-19 10:40:05 +00:00
|
|
|
},
|
|
|
|
'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);
|
|
|
|
}
|
|
|
|
|
2007-10-02 05:10:35 +00:00
|
|
|
treeNode.onOrderChanged(sortedChildren,treeNode);
|
2007-07-19 10:40:05 +00:00
|
|
|
}
|
2009-05-14 06:11:18 +00:00
|
|
|
};
|