You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
921 B
JavaScript
27 lines
921 B
JavaScript
import _Navigation from './_Navigation.js';
|
|
import _User from './_User.js';
|
|
|
|
var MenuItem = function(){
|
|
return { view: function(vnode){
|
|
var menuitem = vnode.attrs.menuitem;
|
|
var attrs = {}
|
|
if(menuitem.component !== null || menuitem.run !== null){ // note to self for continuation: make a proper onclick handler to both navigateTo and run the 'run', or either one if only one is provided
|
|
attrs.onclick = function(){
|
|
if(menuitem.component !== null){ _Navigation.navigateTo(menuitem.component,menuitem.attrs); }
|
|
if(menuitem.run !== null){ menuitem.run(); }
|
|
}
|
|
}
|
|
return m("a.btn.btn-link", attrs, [
|
|
menuitem.label,
|
|
m('.list',
|
|
menuitem.children.map(function(mi){
|
|
if(!menuitem.restricted || _User.isLoggedIn()){
|
|
return m(MenuItem, {menuitem: mi});
|
|
}
|
|
}))
|
|
]);
|
|
}
|
|
};
|
|
};
|
|
|
|
export default MenuItem; |