|
|
|
|
@@ -120,122 +120,98 @@ func Sort(nodes []*NavLink) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (root *NavTreeRoot) ApplyAdminIA(navAdminSubsectionsEnabled bool) {
|
|
|
|
|
func (root *NavTreeRoot) ApplyAdminIA() {
|
|
|
|
|
orgAdminNode := root.FindById(NavIDCfg)
|
|
|
|
|
|
|
|
|
|
if orgAdminNode != nil {
|
|
|
|
|
adminNodeLinks := []*NavLink{}
|
|
|
|
|
|
|
|
|
|
if navAdminSubsectionsEnabled {
|
|
|
|
|
generalNodeLinks := []*NavLink{}
|
|
|
|
|
generalNodeLinks = AppendIfNotNil(generalNodeLinks, root.FindById("upgrading")) // TODO does this even exist
|
|
|
|
|
generalNodeLinks = AppendIfNotNil(generalNodeLinks, root.FindById("licensing"))
|
|
|
|
|
generalNodeLinks = AppendIfNotNil(generalNodeLinks, root.FindById("org-settings"))
|
|
|
|
|
generalNodeLinks = AppendIfNotNil(generalNodeLinks, root.FindById("server-settings"))
|
|
|
|
|
generalNodeLinks = AppendIfNotNil(generalNodeLinks, root.FindById("global-orgs"))
|
|
|
|
|
generalNodeLinks = AppendIfNotNil(generalNodeLinks, root.FindById("feature-toggles"))
|
|
|
|
|
generalNodeLinks = AppendIfNotNil(generalNodeLinks, root.FindById("storage"))
|
|
|
|
|
generalNodeLinks := []*NavLink{}
|
|
|
|
|
generalNodeLinks = AppendIfNotNil(generalNodeLinks, root.FindById("upgrading")) // TODO does this even exist
|
|
|
|
|
generalNodeLinks = AppendIfNotNil(generalNodeLinks, root.FindById("licensing"))
|
|
|
|
|
generalNodeLinks = AppendIfNotNil(generalNodeLinks, root.FindById("org-settings"))
|
|
|
|
|
generalNodeLinks = AppendIfNotNil(generalNodeLinks, root.FindById("server-settings"))
|
|
|
|
|
generalNodeLinks = AppendIfNotNil(generalNodeLinks, root.FindById("global-orgs"))
|
|
|
|
|
generalNodeLinks = AppendIfNotNil(generalNodeLinks, root.FindById("feature-toggles"))
|
|
|
|
|
generalNodeLinks = AppendIfNotNil(generalNodeLinks, root.FindById("storage"))
|
|
|
|
|
|
|
|
|
|
generalNode := &NavLink{
|
|
|
|
|
Text: "General",
|
|
|
|
|
SubTitle: "Manage default preferences and settings across Grafana",
|
|
|
|
|
Id: NavIDCfgGeneral,
|
|
|
|
|
Url: "/admin/general",
|
|
|
|
|
Icon: "shield",
|
|
|
|
|
Children: generalNodeLinks,
|
|
|
|
|
}
|
|
|
|
|
generalNode := &NavLink{
|
|
|
|
|
Text: "General",
|
|
|
|
|
SubTitle: "Manage default preferences and settings across Grafana",
|
|
|
|
|
Id: NavIDCfgGeneral,
|
|
|
|
|
Url: "/admin/general",
|
|
|
|
|
Icon: "shield",
|
|
|
|
|
Children: generalNodeLinks,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pluginsNodeLinks := []*NavLink{}
|
|
|
|
|
pluginsNodeLinks = AppendIfNotNil(pluginsNodeLinks, root.FindById("plugins"))
|
|
|
|
|
pluginsNodeLinks = AppendIfNotNil(pluginsNodeLinks, root.FindById("datasources"))
|
|
|
|
|
pluginsNodeLinks = AppendIfNotNil(pluginsNodeLinks, root.FindById("recordedQueries"))
|
|
|
|
|
pluginsNodeLinks = AppendIfNotNil(pluginsNodeLinks, root.FindById("correlations"))
|
|
|
|
|
pluginsNodeLinks = AppendIfNotNil(pluginsNodeLinks, root.FindById("plugin-page-grafana-cloud-link-app"))
|
|
|
|
|
pluginsNodeLinks := []*NavLink{}
|
|
|
|
|
pluginsNodeLinks = AppendIfNotNil(pluginsNodeLinks, root.FindById("plugins"))
|
|
|
|
|
pluginsNodeLinks = AppendIfNotNil(pluginsNodeLinks, root.FindById("datasources"))
|
|
|
|
|
pluginsNodeLinks = AppendIfNotNil(pluginsNodeLinks, root.FindById("recordedQueries"))
|
|
|
|
|
pluginsNodeLinks = AppendIfNotNil(pluginsNodeLinks, root.FindById("correlations"))
|
|
|
|
|
pluginsNodeLinks = AppendIfNotNil(pluginsNodeLinks, root.FindById("plugin-page-grafana-cloud-link-app"))
|
|
|
|
|
|
|
|
|
|
pluginsNode := &NavLink{
|
|
|
|
|
Text: "Plugins and data",
|
|
|
|
|
SubTitle: "Install plugins and define the relationships between data",
|
|
|
|
|
Id: NavIDCfgPlugins,
|
|
|
|
|
Url: "/admin/plugins",
|
|
|
|
|
Icon: "shield",
|
|
|
|
|
Children: pluginsNodeLinks,
|
|
|
|
|
}
|
|
|
|
|
pluginsNode := &NavLink{
|
|
|
|
|
Text: "Plugins and data",
|
|
|
|
|
SubTitle: "Install plugins and define the relationships between data",
|
|
|
|
|
Id: NavIDCfgPlugins,
|
|
|
|
|
Url: "/admin/plugins",
|
|
|
|
|
Icon: "shield",
|
|
|
|
|
Children: pluginsNodeLinks,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
accessNodeLinks := []*NavLink{}
|
|
|
|
|
accessNodeLinks = AppendIfNotNil(accessNodeLinks, root.FindById("global-users"))
|
|
|
|
|
accessNodeLinks = AppendIfNotNil(accessNodeLinks, root.FindById("teams"))
|
|
|
|
|
accessNodeLinks = AppendIfNotNil(accessNodeLinks, root.FindById("standalone-plugin-page-/a/grafana-auth-app"))
|
|
|
|
|
accessNodeLinks = AppendIfNotNil(accessNodeLinks, root.FindById("serviceaccounts"))
|
|
|
|
|
accessNodeLinks = AppendIfNotNil(accessNodeLinks, root.FindById("apikeys"))
|
|
|
|
|
accessNodeLinks := []*NavLink{}
|
|
|
|
|
accessNodeLinks = AppendIfNotNil(accessNodeLinks, root.FindById("global-users"))
|
|
|
|
|
accessNodeLinks = AppendIfNotNil(accessNodeLinks, root.FindById("teams"))
|
|
|
|
|
accessNodeLinks = AppendIfNotNil(accessNodeLinks, root.FindById("standalone-plugin-page-/a/grafana-auth-app"))
|
|
|
|
|
accessNodeLinks = AppendIfNotNil(accessNodeLinks, root.FindById("serviceaccounts"))
|
|
|
|
|
accessNodeLinks = AppendIfNotNil(accessNodeLinks, root.FindById("apikeys"))
|
|
|
|
|
|
|
|
|
|
usersNode := &NavLink{
|
|
|
|
|
Text: "Users and access",
|
|
|
|
|
SubTitle: "Configure access for individual users, teams, and service accounts",
|
|
|
|
|
Id: NavIDCfgAccess,
|
|
|
|
|
Url: "/admin/access",
|
|
|
|
|
Icon: "shield",
|
|
|
|
|
Children: accessNodeLinks,
|
|
|
|
|
}
|
|
|
|
|
usersNode := &NavLink{
|
|
|
|
|
Text: "Users and access",
|
|
|
|
|
SubTitle: "Configure access for individual users, teams, and service accounts",
|
|
|
|
|
Id: NavIDCfgAccess,
|
|
|
|
|
Url: "/admin/access",
|
|
|
|
|
Icon: "shield",
|
|
|
|
|
Children: accessNodeLinks,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if len(generalNode.Children) > 0 {
|
|
|
|
|
adminNodeLinks = append(adminNodeLinks, generalNode)
|
|
|
|
|
}
|
|
|
|
|
if len(generalNode.Children) > 0 {
|
|
|
|
|
adminNodeLinks = append(adminNodeLinks, generalNode)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if len(pluginsNode.Children) > 0 {
|
|
|
|
|
adminNodeLinks = append(adminNodeLinks, pluginsNode)
|
|
|
|
|
}
|
|
|
|
|
if len(pluginsNode.Children) > 0 {
|
|
|
|
|
adminNodeLinks = append(adminNodeLinks, pluginsNode)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if len(usersNode.Children) > 0 {
|
|
|
|
|
adminNodeLinks = append(adminNodeLinks, usersNode)
|
|
|
|
|
}
|
|
|
|
|
if len(usersNode.Children) > 0 {
|
|
|
|
|
adminNodeLinks = append(adminNodeLinks, usersNode)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
authenticationNode := root.FindById("authentication")
|
|
|
|
|
if authenticationNode != nil {
|
|
|
|
|
authenticationNode.IsSection = true
|
|
|
|
|
adminNodeLinks = append(adminNodeLinks, authenticationNode)
|
|
|
|
|
}
|
|
|
|
|
authenticationNode := root.FindById("authentication")
|
|
|
|
|
if authenticationNode != nil {
|
|
|
|
|
authenticationNode.IsSection = true
|
|
|
|
|
adminNodeLinks = append(adminNodeLinks, authenticationNode)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
costManagementNode := root.FindById("plugin-page-grafana-costmanagementui-app")
|
|
|
|
|
costManagementNode := root.FindById("plugin-page-grafana-costmanagementui-app")
|
|
|
|
|
|
|
|
|
|
if costManagementNode != nil {
|
|
|
|
|
adminNodeLinks = append(adminNodeLinks, costManagementNode)
|
|
|
|
|
}
|
|
|
|
|
if costManagementNode != nil {
|
|
|
|
|
adminNodeLinks = append(adminNodeLinks, costManagementNode)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
costManagementMetricsNode := root.FindByURL("/a/grafana-costmanagementui-app/metrics")
|
|
|
|
|
adaptiveMetricsNode := root.FindById("plugin-page-grafana-adaptive-metrics-app")
|
|
|
|
|
costManagementMetricsNode := root.FindByURL("/a/grafana-costmanagementui-app/metrics")
|
|
|
|
|
adaptiveMetricsNode := root.FindById("plugin-page-grafana-adaptive-metrics-app")
|
|
|
|
|
|
|
|
|
|
if costManagementMetricsNode != nil && adaptiveMetricsNode != nil {
|
|
|
|
|
costManagementMetricsNode.Children = append(costManagementMetricsNode.Children, adaptiveMetricsNode)
|
|
|
|
|
}
|
|
|
|
|
if costManagementMetricsNode != nil && adaptiveMetricsNode != nil {
|
|
|
|
|
costManagementMetricsNode.Children = append(costManagementMetricsNode.Children, adaptiveMetricsNode)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
costManagementLogsNode := root.FindByURL("/a/grafana-costmanagementui-app/logs")
|
|
|
|
|
logVolumeExplorerNode := root.FindById("plugin-page-grafana-logvolumeexplorer-app")
|
|
|
|
|
costManagementLogsNode := root.FindByURL("/a/grafana-costmanagementui-app/logs")
|
|
|
|
|
logVolumeExplorerNode := root.FindById("plugin-page-grafana-logvolumeexplorer-app")
|
|
|
|
|
|
|
|
|
|
if costManagementLogsNode != nil && logVolumeExplorerNode != nil {
|
|
|
|
|
costManagementLogsNode.Children = append(costManagementLogsNode.Children, logVolumeExplorerNode)
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("datasources"))
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("plugins"))
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("global-users"))
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("teams"))
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("serviceaccounts"))
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("apikeys"))
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("org-settings"))
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("authentication"))
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("server-settings"))
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("global-orgs"))
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("feature-toggles"))
|
|
|
|
|
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("upgrading"))
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("licensing"))
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("recordedQueries")) // enterprise only
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("correlations"))
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("plugin-page-grafana-cloud-link-app"))
|
|
|
|
|
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("ldap"))
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("standalone-plugin-page-/a/grafana-auth-app")) // Cloud Access Policies
|
|
|
|
|
adminNodeLinks = AppendIfNotNil(adminNodeLinks, root.FindById("storage"))
|
|
|
|
|
if costManagementLogsNode != nil && logVolumeExplorerNode != nil {
|
|
|
|
|
costManagementLogsNode.Children = append(costManagementLogsNode.Children, logVolumeExplorerNode)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if len(adminNodeLinks) > 0 {
|
|
|
|
|
|