ngx-admin/src/app/theme/sidebar/sidebar.service.ts

86 lines
1.7 KiB
TypeScript
Raw Normal View History

2016-04-27 16:02:27 +03:00
import {Injectable} from 'angular2/core';
@Injectable()
export class SidebarService {
staticMenuItems = [
{
title: 'Pages',
icon: 'ion-document',
selected: false,
expanded: false,
subMenu: [
{
title: 'Sign In',
// name: 'SignIn',
blank: true
},
{
title: 'Sign Up',
// name: 'SignUp',
blank: true
},
{
title: 'User Profile',
// name: 'UserProfile'
},
{
title: '404 Page',
// name: 'NotFound',
blank: true
}
]
},
{
title: 'Menu Level 1',
icon: 'ion-ios-more',
selected: false,
expanded: false,
subMenu: [
{
title: 'Menu Level 1.1',
2016-04-28 16:37:07 +03:00
disabled: true,
selected: false,
expanded: false
},
{
title: 'Menu Level 1.2',
subMenu: [{
title: 'Menu Level 1.2.1',
2016-04-28 16:37:07 +03:00
disabled: true,
selected: false,
expanded: false
}]
}
]
2016-04-29 17:08:05 +03:00
}];
2016-04-27 16:02:27 +03:00
2016-04-29 17:08:05 +03:00
constructor() { }
2016-04-29 17:08:05 +03:00
getMenuItems(routes) {
2016-04-29 17:08:05 +03:00
let menuItems = routes.configs
.filter(function(s) {
2016-04-29 17:08:05 +03:00
return s.data.sidebarMeta != null;
})
.map(function(s) {
2016-04-29 17:08:05 +03:00
var meta = s.data.sidebarMeta;
return {
2016-04-29 17:08:05 +03:00
title: s.data.title,
name: s.name,
2016-04-29 17:08:05 +03:00
level: 0,
order: meta.order,
icon: meta.icon
};
})
.sort(function(a, b) {
return (a.level - b.level) * 100 + a.order - b.order;
2016-04-29 17:08:05 +03:00
})
.filter(function(item) {
return item.level == 0;
});
2016-04-29 17:08:05 +03:00
return menuItems.concat(this.staticMenuItems);
2016-04-27 16:02:27 +03:00
}
}