mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 08:05:56 +02:00
59 lines
1.7 KiB
JavaScript
59 lines
1.7 KiB
JavaScript
(function($) {
|
|
|
|
$.entwine('ss', function($){
|
|
$('.cms-tree').entwine({
|
|
getTreeConfig: function() {
|
|
var self = this, config = this._super(), hints = this.getHints();
|
|
config.plugins.push('contextmenu');
|
|
config.contextmenu = {
|
|
'items': function(node) {
|
|
// Build a list for allowed children as submenu entries
|
|
var ssclass = node.data('ssclass');
|
|
var id = node.data('id');
|
|
|
|
var allowedChildren = new Object;
|
|
$(hints[ssclass].allowedChildren).each(
|
|
function(key, val){
|
|
allowedChildren["allowedchildren-" + key ] = {
|
|
'label': '<span class="jstree-pageicon"></span>' + val.ssname,
|
|
'_class': 'class-' + val.ssclass,
|
|
'action': function(obj) {
|
|
$('.cms-container').loadPanel(ss.i18n.sprintf(
|
|
self.data('urlAddpage'), id, val.ssclass
|
|
));
|
|
}
|
|
};
|
|
}
|
|
);
|
|
var menuitems =
|
|
{
|
|
'edit': {
|
|
'label': ss.i18n._t('Tree.EditPage'),
|
|
'action': function(obj) {
|
|
$('.cms-container').loadPanel(ss.i18n.sprintf(
|
|
self.data('urlEditpage'), obj.data('id')
|
|
));
|
|
}
|
|
}
|
|
};
|
|
// Test if there are any allowed Children and thus the possibility of adding some
|
|
if(allowedChildren.hasOwnProperty('allowedchildren-0')) {
|
|
menuitems['addsubpage'] = {
|
|
'label': ss.i18n._t('Tree.AddSubPage'),
|
|
'action': function(obj) {
|
|
$('.cms-container').loadPanel(ss.i18n.sprintf(
|
|
self.data('urlAddpage'), id, 'Page'
|
|
));
|
|
},
|
|
'submenu': allowedChildren
|
|
};
|
|
}
|
|
return menuitems;
|
|
}
|
|
};
|
|
return config;
|
|
}
|
|
});
|
|
});
|
|
|
|
}(jQuery)); |