| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- // Libraries
- import _ from 'lodash';
- // Utils & Services
- import config from 'app/core/config';
- // Types
- import { NavModel, PluginMeta, DataSourceSettings } from '@grafana/ui';
- export function buildNavModel(ds: DataSourceSettings, plugin: PluginMeta, currentPage: string): NavModel {
- let title = 'New';
- const subTitle = `Type: ${plugin.name}`;
- if (ds.id) {
- title = ds.name;
- }
- const main = {
- img: plugin.info.logos.large,
- id: 'ds-edit-' + plugin.id,
- subTitle: subTitle,
- url: '',
- text: title,
- breadcrumbs: [{ title: 'Data Sources', url: 'datasources' }],
- children: [
- {
- active: currentPage === 'datasource-settings',
- icon: 'fa fa-fw fa-sliders',
- id: 'datasource-settings',
- text: 'Settings',
- url: `datasources/edit/${ds.id}`,
- },
- ],
- };
- const hasDashboards: any = _.find(plugin.includes, { type: 'dashboard' }) !== undefined;
- if (hasDashboards && ds.id) {
- main.children.push({
- active: currentPage === 'datasource-dashboards',
- icon: 'fa fa-fw fa-th-large',
- id: 'datasource-dashboards',
- text: 'Dashboards',
- url: `datasources/edit/${ds.id}/dashboards`,
- });
- }
- if (config.buildInfo.isEnterprise) {
- main.children.push({
- active: currentPage === 'datasource-permissions',
- icon: 'fa fa-fw fa-lock',
- id: 'datasource-permissions',
- text: 'Permissions',
- url: `datasources/edit/${ds.id}/permissions`,
- });
- }
- return {
- main: main,
- node: _.find(main.children, { active: true }),
- };
- }
|