Connections: Support standalone plugin pages (#57772)

* feat(Connections): create sub-pages wrapped by `<Page>`

* feat(Connections): rename the Connections page and update routes

* feat(Connections): use new url for editing datasources

* refactor(Connections): remove unused tab components

* feat(Connections): update routes and nav titles

* tests: fix tests for Connections

* tests: fix typo in backend tests
This commit is contained in:
Levente Balogh
2022-11-10 11:14:23 +01:00
committed by GitHub
parent c5ae1bcfe0
commit 181640b080
18 changed files with 1072 additions and 2254 deletions

View File

@ -264,8 +264,8 @@ func TestAddAppLinks(t *testing.T) {
treeRoot.AddSection(service.buildDataConnectionsNavLink(reqCtx))
connectionsNode := treeRoot.FindById("connections")
require.Equal(t, "Connections", connectionsNode.Text)
require.Equal(t, "Connect Data", connectionsNode.Children[1].Text)
require.Equal(t, "connections-connect-data", connectionsNode.Children[1].Id) // Original "Connect Data" page
require.Equal(t, "Connect data", connectionsNode.Children[1].Text)
require.Equal(t, "connections-connect-data", connectionsNode.Children[1].Id) // Original "Connect data" page
require.Equal(t, "", connectionsNode.Children[1].PluginID)
err := service.addAppLinks(&treeRoot, reqCtx)
@ -273,8 +273,8 @@ func TestAddAppLinks(t *testing.T) {
// Check if the standalone plugin page appears under the section where we registered it
require.NoError(t, err)
require.Equal(t, "Connections", connectionsNode.Text)
require.Equal(t, "Connect Data", connectionsNode.Children[1].Text)
require.Equal(t, "standalone-plugin-page-/connections/connect-data", connectionsNode.Children[1].Id) // Overridden "Connect Data" page
require.Equal(t, "Connect data", connectionsNode.Children[1].Text)
require.Equal(t, "standalone-plugin-page-/connections/connect-data", connectionsNode.Children[1].Id) // Overridden "Connect data" page
require.Equal(t, "test-app3", connectionsNode.Children[1].PluginID)
// Check if the standalone plugin page does not appear under the app section anymore

View File

@ -534,29 +534,37 @@ func (s *ServiceImpl) buildDataConnectionsNavLink(c *models.ReqContext) *navtree
var children []*navtree.NavLink
var navLink *navtree.NavLink
baseId := "connections"
baseUrl := s.cfg.AppSubURL + "/" + baseId
baseUrl := s.cfg.AppSubURL + "/connections"
// Your connections
children = append(children, &navtree.NavLink{
Id: baseId + "-datasources",
Text: "Data sources",
Icon: "database",
SubTitle: "Add and configure data sources",
Url: baseUrl + "/datasources",
Id: "connections-your-connections",
Text: "Your connections",
SubTitle: "Manage your existing connections",
Url: baseUrl + "/your-connections",
// Datasources
Children: []*navtree.NavLink{{
Id: "connections-your-connections-datasources",
Text: "Datasources",
SubTitle: "Manage your existing datasource connections",
Url: baseUrl + "/your-connections/datasources",
}},
})
// Connect data
children = append(children, &navtree.NavLink{
Id: baseId + "-connect-data",
Text: "Connect Data",
Icon: "plug",
SubTitle: "Manage data sources",
Url: baseUrl + "/connect-data",
Id: "connections-connect-data",
Text: "Connect data",
SubTitle: "Browse and create new connections",
Url: s.cfg.AppSubURL + "/connections/connect-data",
Children: []*navtree.NavLink{},
})
// Connections (main)
navLink = &navtree.NavLink{
Text: "Connections",
Icon: "link",
Id: baseId,
Id: "connections",
Url: baseUrl,
Children: children,
Section: navtree.NavSectionCore,