mirror of
https://github.com/grafana/grafana.git
synced 2025-02-13 00:55:47 -06:00
* Replace icons in dashboard and settings * Replace icons in alerting * Update batch of icons * Implement icons accross various files * Style updates * Search: Fix recent and starred icons * Update styling and details * Replace new icon created by unicons * Fix e2e test, styling * Minor styling updates Co-authored-by: Clarity-89 <homes89@ukr.net>
74 lines
1.5 KiB
TypeScript
74 lines
1.5 KiB
TypeScript
import coreModule from 'app/core/core_module';
|
|
import config from 'app/core/config';
|
|
import _ from 'lodash';
|
|
import { NavModel } from '@grafana/data';
|
|
|
|
export class NavModelSrv {
|
|
navItems: any;
|
|
|
|
/** @ngInject */
|
|
constructor() {
|
|
this.navItems = config.bootData.navTree;
|
|
}
|
|
|
|
getCfgNode() {
|
|
return _.find(this.navItems, { id: 'cfg' });
|
|
}
|
|
|
|
getNav(...args: Array<string | number>) {
|
|
let children = this.navItems;
|
|
const nav = {
|
|
breadcrumbs: [],
|
|
} as NavModel;
|
|
|
|
for (const id of args) {
|
|
// if its a number then it's the index to use for main
|
|
if (_.isNumber(id)) {
|
|
nav.main = nav.breadcrumbs[id];
|
|
break;
|
|
}
|
|
|
|
const node: any = _.find(children, { id: id });
|
|
nav.breadcrumbs.push(node);
|
|
nav.node = node;
|
|
nav.main = node;
|
|
children = node.children;
|
|
}
|
|
|
|
if (nav.main.children) {
|
|
for (const item of nav.main.children) {
|
|
item.active = false;
|
|
|
|
if (item.url === nav.node.url) {
|
|
item.active = true;
|
|
}
|
|
}
|
|
}
|
|
|
|
return nav;
|
|
}
|
|
|
|
getNotFoundNav() {
|
|
return getNotFoundNav(); // the exported function
|
|
}
|
|
}
|
|
|
|
export function getNotFoundNav(): NavModel {
|
|
return getWarningNav('Page not found', '404 Error');
|
|
}
|
|
|
|
export function getWarningNav(text: string, subTitle?: string): NavModel {
|
|
const node = {
|
|
text,
|
|
subTitle,
|
|
icon: 'exclamation-triangle',
|
|
};
|
|
return {
|
|
breadcrumbs: [node],
|
|
node: node,
|
|
main: node,
|
|
};
|
|
}
|
|
|
|
coreModule.service('navModelSrv', NavModelSrv);
|