|
|
|
@ -6,6 +6,8 @@ import { AccessControlAction } from 'app/types'; |
|
|
|
|
import { ProBadge } from 'app/core/components/Upgrade/ProBadge'; |
|
|
|
|
import { GenericDataSourcePlugin } from '../settings/PluginSettings'; |
|
|
|
|
|
|
|
|
|
const loadingDSType = 'Loading'; |
|
|
|
|
|
|
|
|
|
export function buildNavModel(dataSource: DataSourceSettings, plugin: GenericDataSourcePlugin): NavModelItem { |
|
|
|
|
const pluginMeta = plugin.meta; |
|
|
|
|
const highlightsEnabled = config.featureToggles.featureHighlights; |
|
|
|
@ -49,6 +51,8 @@ export function buildNavModel(dataSource: DataSourceSettings, plugin: GenericDat |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
const isLoadingNav = dataSource.type === loadingDSType; |
|
|
|
|
|
|
|
|
|
const dsPermissions = { |
|
|
|
|
active: false, |
|
|
|
|
icon: 'lock', |
|
|
|
@ -61,11 +65,11 @@ export function buildNavModel(dataSource: DataSourceSettings, plugin: GenericDat |
|
|
|
|
if (contextSrv.hasPermission(AccessControlAction.DataSourcesPermissionsRead)) { |
|
|
|
|
navModel.children!.push(dsPermissions); |
|
|
|
|
} |
|
|
|
|
} else if (highlightsEnabled) { |
|
|
|
|
} else if (highlightsEnabled && !isLoadingNav) { |
|
|
|
|
navModel.children!.push({ |
|
|
|
|
...dsPermissions, |
|
|
|
|
url: dsPermissions.url + '/upgrade', |
|
|
|
|
tabSuffix: ProBadge, |
|
|
|
|
tabSuffix: () => ProBadge({ experimentId: 'feature-highlights-data-source-permissions-badge' }), |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -79,11 +83,11 @@ export function buildNavModel(dataSource: DataSourceSettings, plugin: GenericDat |
|
|
|
|
|
|
|
|
|
if (featureEnabled('analytics')) { |
|
|
|
|
navModel.children!.push(analytics); |
|
|
|
|
} else if (highlightsEnabled) { |
|
|
|
|
} else if (highlightsEnabled && !isLoadingNav) { |
|
|
|
|
navModel.children!.push({ |
|
|
|
|
...analytics, |
|
|
|
|
url: analytics.url + '/upgrade', |
|
|
|
|
tabSuffix: ProBadge, |
|
|
|
|
tabSuffix: () => ProBadge({ experimentId: 'feature-highlights-data-source-insights-badge' }), |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -98,11 +102,11 @@ export function buildNavModel(dataSource: DataSourceSettings, plugin: GenericDat |
|
|
|
|
|
|
|
|
|
if (featureEnabled('caching')) { |
|
|
|
|
navModel.children!.push(caching); |
|
|
|
|
} else if (highlightsEnabled) { |
|
|
|
|
} else if (highlightsEnabled && !isLoadingNav) { |
|
|
|
|
navModel.children!.push({ |
|
|
|
|
...caching, |
|
|
|
|
url: caching.url + '/upgrade', |
|
|
|
|
tabSuffix: ProBadge, |
|
|
|
|
tabSuffix: () => ProBadge({ experimentId: 'feature-highlights-data-source-caching-badge' }), |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -143,8 +147,8 @@ export function getDataSourceLoadingNav(pageName: string): NavModel { |
|
|
|
|
orgId: 1, |
|
|
|
|
password: '', |
|
|
|
|
readOnly: false, |
|
|
|
|
type: 'Loading', |
|
|
|
|
typeName: 'Loading', |
|
|
|
|
type: loadingDSType, |
|
|
|
|
typeName: loadingDSType, |
|
|
|
|
typeLogoUrl: 'public/img/icn-datasource.svg', |
|
|
|
|
url: '', |
|
|
|
|
user: '', |
|
|
|
|