TopNav: Support for deeper nesting in section nav (#52562)

This commit is contained in:
Torkel Ödegaard
2022-07-22 10:42:41 +02:00
committed by GitHub
parent 8d938175f5
commit 5b275ca3f5
7 changed files with 111 additions and 27 deletions
+30 -3
View File
@@ -234,7 +234,21 @@ func (hs *HTTPServer) getNavTree(c *models.ReqContext, hasEditPerm bool, prefs *
if err != nil {
return nil, err
}
navTree = append(navTree, appLinks...)
// When topnav is enabled we can test new information architecture where plugins live in Apps category
if hs.Features.IsEnabled(featuremgmt.FlagTopnav) {
navTree = append(navTree, &dtos.NavLink{
Text: "Apps",
Icon: "apps",
Description: "App plugins",
Id: "apps",
Children: appLinks,
Section: dtos.NavSectionCore,
Url: hs.Cfg.AppSubURL + "/apps",
})
} else {
navTree = append(navTree, appLinks...)
}
configNodes := []*dtos.NavLink{}
@@ -335,8 +349,11 @@ func (hs *HTTPServer) getNavTree(c *models.ReqContext, hasEditPerm bool, prefs *
})
}
var configNode *dtos.NavLink
var serverAdminNode *dtos.NavLink
if len(configNodes) > 0 {
configNode := &dtos.NavLink{
configNode = &dtos.NavLink{
Id: dtos.NavIDCfg,
Text: "Configuration",
SubTitle: "Organization: " + c.OrgName,
@@ -352,10 +369,20 @@ func (hs *HTTPServer) getNavTree(c *models.ReqContext, hasEditPerm bool, prefs *
adminNavLinks := hs.buildAdminNavLinks(c)
if len(adminNavLinks) > 0 {
serverAdminNode := navlinks.GetServerAdminNode(adminNavLinks)
serverAdminNode = navlinks.GetServerAdminNode(adminNavLinks)
navTree = append(navTree, serverAdminNode)
}
if hs.Features.IsEnabled(featuremgmt.FlagTopnav) {
// Move server admin into Configuration and rename to administration
if configNode != nil && serverAdminNode != nil {
configNode.Text = "Administration"
configNode.Children = append(configNode.Children, serverAdminNode)
adminNodeIndex := len(navTree) - 1
navTree = navTree[:adminNodeIndex]
}
}
navTree = hs.addHelpLinks(navTree, c)
return navTree, nil
+1 -1
View File
@@ -8,7 +8,7 @@ func GetServerAdminNode(children []*dtos.NavLink) *dtos.NavLink {
url = children[0].Url
}
return &dtos.NavLink{
Text: "Server Admin",
Text: "Server admin",
SubTitle: "Manage all users and orgs",
HideFromTabs: true,
Id: "admin",