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