From 15af2e5053d78ed0061f74953979e7e2b93811f9 Mon Sep 17 00:00:00 2001 From: Ashley Harrison Date: Mon, 15 Jan 2024 11:30:55 +0000 Subject: [PATCH] Connections: Pass keywords from the backend to CommandPalette (#80276) * pass keywords from the backend to CommandPalette * add csv and json to keywords --- packages/grafana-data/src/types/navModel.ts | 2 ++ pkg/services/navtree/models.go | 1 + pkg/services/navtree/navtreeimpl/navtree.go | 1 + public/app/features/commandPalette/actions/staticActions.ts | 3 ++- 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/grafana-data/src/types/navModel.ts b/packages/grafana-data/src/types/navModel.ts index 0f6acfe430a..066d879df3d 100644 --- a/packages/grafana-data/src/types/navModel.ts +++ b/packages/grafana-data/src/types/navModel.ts @@ -26,6 +26,8 @@ export interface NavLinkDTO { pluginId?: string; // Whether the page is used to create a new resource. We may place these in a different position in the UI. isCreateAction?: boolean; + // Optional keywords to match on when searching (e.g. in the CommandPalette) + keywords?: string[]; } export interface NavModelItem extends NavLinkDTO { diff --git a/pkg/services/navtree/models.go b/pkg/services/navtree/models.go index 17ec7ed67fa..22e0e412558 100644 --- a/pkg/services/navtree/models.go +++ b/pkg/services/navtree/models.go @@ -67,6 +67,7 @@ type NavLink struct { EmptyMessageId string `json:"emptyMessageId,omitempty"` PluginID string `json:"pluginId,omitempty"` // (Optional) The ID of the plugin that registered nav link (e.g. as a standalone plugin page) IsCreateAction bool `json:"isCreateAction,omitempty"` + Keywords []string `json:"keywords,omitempty"` } func (node *NavLink) Sort() { diff --git a/pkg/services/navtree/navtreeimpl/navtree.go b/pkg/services/navtree/navtreeimpl/navtree.go index 20e56c7865d..ef5c52f7ba1 100644 --- a/pkg/services/navtree/navtreeimpl/navtree.go +++ b/pkg/services/navtree/navtreeimpl/navtree.go @@ -500,6 +500,7 @@ func (s *ServiceImpl) buildDataConnectionsNavLink(c *contextmodel.ReqContext) *n SubTitle: "Browse and create new connections", Url: baseUrl + "/add-new-connection", Children: []*navtree.NavLink{}, + Keywords: []string{"csv", "graphite", "json", "loki", "prometheus", "sql", "tempo"}, }) // Data sources diff --git a/public/app/features/commandPalette/actions/staticActions.ts b/public/app/features/commandPalette/actions/staticActions.ts index 9d4e9dbd4ff..ed93b54d5e9 100644 --- a/public/app/features/commandPalette/actions/staticActions.ts +++ b/public/app/features/commandPalette/actions/staticActions.ts @@ -22,7 +22,7 @@ function navTreeToActions(navTree: NavModelItem[], parents: NavModelItem[] = []) navItem = enrichHelpItem({ ...navItem }); delete navItem.url; } - const { url, target, text, isCreateAction, children, onClick } = navItem; + const { url, target, text, isCreateAction, children, onClick, keywords } = navItem; const hasChildren = Boolean(children?.length); if (!(url || onClick || hasChildren)) { @@ -44,6 +44,7 @@ function navTreeToActions(navTree: NavModelItem[], parents: NavModelItem[] = []) target, parent: parents.length > 0 && !isCreateAction ? idForNavItem(parents[parents.length - 1]) : undefined, perform: onClick, + keywords: keywords?.join(' '), priority: priority, subtitle: isCreateAction ? undefined : subtitle, };