mirror of
https://github.com/elastic/kibana.git
synced 2025-06-27 10:40:07 -04:00
Reorganize footer items for Solutions (#218050)
## Summary Epic: https://github.com/elastic/kibana-team/issues/1439 ~Depends on https://github.com/elastic/kibana/pull/218156~ Addresses footer issues and a few content issues https://github.com/user-attachments/assets/07063aa7-8a49-4cb5-9fd2-a6e1cbd674b7 1. Footer item texts should not be bold 2. We should have the spacing of regular nav sub-items in the footer Other fixes: 1. Fix text casing in "Machine Learning" (Note: [other casing issues exist](https://github.com/elastic/kibana/issues/217352)) 2. Remove `recentlyAccessed` sections ### Checklist Check the PR satisfies following conditions. Reviewers should verify this PR satisfies this list as well. - [x] Any text added follows [EUI's writing guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses sentence case text and includes [i18n support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md) - [x] [Unit or functional tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html) were updated or added to match the most common scenarios
This commit is contained in:
parent
c89c1ee30d
commit
ee74bb4e65
24 changed files with 779 additions and 657 deletions
|
@ -42,14 +42,19 @@ const sectionStyles = {
|
|||
paddingBlock: euiTheme.size.xs,
|
||||
paddingInline: euiTheme.size.s,
|
||||
}),
|
||||
euiCollapsibleNavItem: ({ euiTheme }: Theme) => css`
|
||||
.euiAccordion__childWrapper {
|
||||
transition: none; // Remove the transition as it does not play well with dynamic links added to the accordion
|
||||
euiCollapsibleNavSection: ({ euiTheme }: Theme) => css`
|
||||
.euiCollapsibleNavAccordion.isSelected {
|
||||
.euiAccordion__triggerWrapper,
|
||||
.euiCollapsibleNavLink {
|
||||
background-color: ${euiTheme.colors.backgroundLightPrimary};
|
||||
}
|
||||
}
|
||||
|
||||
.euiAccordion__children .euiCollapsibleNavItem__items {
|
||||
padding-inline-start: ${euiTheme.size.m};
|
||||
margin-inline-start: ${euiTheme.size.m};
|
||||
}
|
||||
|
||||
&:only-child .euiCollapsibleNavItem__icon {
|
||||
transform: scale(1.33);
|
||||
}
|
||||
|
@ -60,15 +65,19 @@ const sectionStyles = {
|
|||
:hover {
|
||||
background-color: ${euiTheme.colors.backgroundBaseInteractiveHover};
|
||||
}
|
||||
|
||||
&.isSelected {
|
||||
background-color: ${euiTheme.colors.backgroundLightPrimary};
|
||||
:hover {
|
||||
background-color: ${euiTheme.colors.backgroundLightPrimary};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
`,
|
||||
euiAccordionChildWrapper: ({ euiTheme }: Theme) => css`
|
||||
.euiAccordion__childWrapper {
|
||||
background-color: ${euiTheme.colors.backgroundBasePlain};
|
||||
transition: none; // Remove the transition as it does not play well with dynamic links added to the accordion
|
||||
}
|
||||
`,
|
||||
};
|
||||
|
@ -461,7 +470,8 @@ function nodeToEuiCollapsibleNavProps(
|
|||
path,
|
||||
isSelected,
|
||||
onClick,
|
||||
css: sectionStyles.euiCollapsibleNavSubItem,
|
||||
css: [sectionStyles.euiCollapsibleNavSubItem, sectionStyles.euiAccordionChildWrapper],
|
||||
className: classnames([isSelected ? 'isSelected' : undefined]),
|
||||
icon: navNode.icon,
|
||||
// @ts-expect-error title accepts JSX elements and they render correctly but the type definition expects a string
|
||||
title: navNode.withBadge ? <SubItemTitle item={navNode} /> : navNode.title,
|
||||
|
@ -609,12 +619,12 @@ export const NavigationSectionUI: FC<Props> = React.memo(({ navNode: _navNode })
|
|||
{items ? (
|
||||
<EuiCollapsibleNavItem
|
||||
{...rest}
|
||||
css={sectionStyles.euiCollapsibleNavItem}
|
||||
css={[sectionStyles.euiCollapsibleNavSection, sectionStyles.euiAccordionChildWrapper]}
|
||||
items={items}
|
||||
accordionProps={getAccordionProps(navNode.path)}
|
||||
/>
|
||||
) : (
|
||||
<EuiCollapsibleNavItem {...props} css={sectionStyles.euiCollapsibleNavItem} />
|
||||
<EuiCollapsibleNavItem {...props} css={sectionStyles.euiCollapsibleNavSection} />
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
|
|
|
@ -87,7 +87,15 @@ const NavigationWrapper: FC<Props & Omit<Partial<EuiCollapsibleNavBetaProps>, 'c
|
|||
{props.clickActionText ?? 'Click me'}
|
||||
</EuiButton>
|
||||
) : (
|
||||
<p>Hello world</p>
|
||||
<>
|
||||
<h1>Solution side nav</h1>
|
||||
<br />
|
||||
<p>There should be multiple "selected" nodes in the side nav:</p>
|
||||
<ul>
|
||||
<li>* Item 03 » Item 22</li>
|
||||
<li>* Footer parent 1 » Item 35</li>
|
||||
</ul>
|
||||
</>
|
||||
)}
|
||||
</EuiPageTemplate.Section>
|
||||
</EuiPageTemplate>
|
||||
|
@ -455,9 +463,49 @@ const generalLayoutNavTree: NavigationTreeDefinitionUI = {
|
|||
id: 'example_project_footer',
|
||||
path: '',
|
||||
children: [
|
||||
{
|
||||
id: 'footer-section6',
|
||||
title: 'Footer parent 1',
|
||||
path: '',
|
||||
renderAs: 'accordion',
|
||||
spaceBefore: null,
|
||||
icon: 'iInCircle',
|
||||
defaultIsCollapsed: false,
|
||||
children: [
|
||||
{
|
||||
id: 'item33',
|
||||
path: '',
|
||||
title: 'Item 33',
|
||||
href: '/app/kibana',
|
||||
icon: 'iInCircle',
|
||||
},
|
||||
{
|
||||
id: 'item34',
|
||||
path: '',
|
||||
title: 'Item 34',
|
||||
href: '/app/kibana',
|
||||
icon: 'iInCircle',
|
||||
},
|
||||
{
|
||||
id: 'item35',
|
||||
path: '',
|
||||
title: 'Item 35',
|
||||
href: '/app/kibana',
|
||||
icon: 'iInCircle',
|
||||
openInNewTab: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'item10',
|
||||
path: '',
|
||||
title: 'Item 10',
|
||||
icon: 'iInCircle',
|
||||
href: '/app/kibana',
|
||||
},
|
||||
{
|
||||
id: 'footer-section5',
|
||||
title: 'Parent item, closed',
|
||||
title: 'Footer parent 2',
|
||||
path: '',
|
||||
renderAs: 'accordion',
|
||||
spaceBefore: null,
|
||||
|
@ -502,46 +550,6 @@ const generalLayoutNavTree: NavigationTreeDefinitionUI = {
|
|||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'item10',
|
||||
path: '',
|
||||
title: 'Item 10',
|
||||
icon: 'iInCircle',
|
||||
href: '/app/kibana',
|
||||
},
|
||||
{
|
||||
id: 'footer-section6',
|
||||
title: 'Parent item, opened',
|
||||
path: '',
|
||||
renderAs: 'accordion',
|
||||
spaceBefore: null,
|
||||
icon: 'iInCircle',
|
||||
defaultIsCollapsed: false,
|
||||
children: [
|
||||
{
|
||||
id: 'item33',
|
||||
path: '',
|
||||
title: 'Item 33',
|
||||
href: '/app/kibana',
|
||||
icon: 'iInCircle',
|
||||
},
|
||||
{
|
||||
id: 'item34',
|
||||
path: '',
|
||||
title: 'Item 34',
|
||||
href: '/app/kibana',
|
||||
icon: 'iInCircle',
|
||||
},
|
||||
{
|
||||
id: 'item35',
|
||||
path: '',
|
||||
title: 'Item 35',
|
||||
href: '/app/kibana',
|
||||
icon: 'iInCircle',
|
||||
openInNewTab: true,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
@ -585,6 +593,11 @@ export const GeneralLayoutStructure = (args: NavigationServices) => {
|
|||
{ id: '', path: 'example_project.root-section1.item03.child-section4' },
|
||||
{ id: '', path: 'example_project.root-section1.item03.child-section4.sub3' },
|
||||
],
|
||||
[
|
||||
{ id: '', path: 'example_project_footer' },
|
||||
{ id: '', path: 'example_project_footer.footer-section6' },
|
||||
{ id: '', path: 'example_project_footer.footer-section6.item35' },
|
||||
],
|
||||
]);
|
||||
|
||||
return (
|
||||
|
|
|
@ -11,7 +11,6 @@ import type { NavigationTreeDefinition } from '@kbn/core-chrome-browser';
|
|||
export const createNavigationTree = (): NavigationTreeDefinition => {
|
||||
return {
|
||||
body: [
|
||||
{ type: 'recentlyAccessed' },
|
||||
{
|
||||
type: 'navGroup',
|
||||
id: 'workchat_project_nav',
|
||||
|
@ -35,101 +34,109 @@ export const createNavigationTree = (): NavigationTreeDefinition => {
|
|||
},
|
||||
],
|
||||
footer: [
|
||||
{
|
||||
type: 'navItem',
|
||||
id: 'devTools',
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.devTools', {
|
||||
defaultMessage: 'Developer tools',
|
||||
}),
|
||||
link: 'dev_tools',
|
||||
icon: 'editorCodeBlock',
|
||||
},
|
||||
{
|
||||
type: 'navGroup',
|
||||
id: 'project_settings_project_nav',
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.projectSettings', {
|
||||
defaultMessage: 'Project settings',
|
||||
}),
|
||||
icon: 'gear',
|
||||
breadcrumbStatus: 'hidden',
|
||||
id: 'workchat_project_nav_footer',
|
||||
children: [
|
||||
{
|
||||
id: 'management',
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt', {
|
||||
defaultMessage: 'Management',
|
||||
id: 'devTools',
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.devTools', {
|
||||
defaultMessage: 'Developer tools',
|
||||
}),
|
||||
link: 'dev_tools',
|
||||
icon: 'editorCodeBlock',
|
||||
},
|
||||
{
|
||||
id: 'project_settings_project_nav',
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.projectSettings', {
|
||||
defaultMessage: 'Project settings',
|
||||
}),
|
||||
icon: 'gear',
|
||||
breadcrumbStatus: 'hidden',
|
||||
renderAs: 'accordion',
|
||||
spaceBefore: null,
|
||||
renderAs: 'panelOpener',
|
||||
children: [
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.data', {
|
||||
defaultMessage: 'Data',
|
||||
id: 'management',
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt', {
|
||||
defaultMessage: 'Management',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
renderAs: 'panelOpener',
|
||||
children: [
|
||||
{ link: 'management:index_management', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:transform', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:ingest_pipelines', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:dataViews', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:jobsListLink', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:pipelines', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:data_quality', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:data_usage', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.access', {
|
||||
defaultMessage: 'Access',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [{ link: 'management:api_keys', breadcrumbStatus: 'hidden' }],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.alertsAndInsights', {
|
||||
defaultMessage: 'Alerts and insights',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:triggersActionsConnectors', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:maintenanceWindows', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.content', {
|
||||
defaultMessage: 'Content',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:spaces', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:objects', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:filesManagement', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:reporting', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:tags', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.other', {
|
||||
defaultMessage: 'Other',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:settings', breadcrumbStatus: 'hidden' },
|
||||
{
|
||||
link: 'management:observabilityAiAssistantManagement',
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.data', {
|
||||
defaultMessage: 'Data',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:index_management', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:transform', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:ingest_pipelines', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:dataViews', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:jobsListLink', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:pipelines', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:data_quality', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:data_usage', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.access', {
|
||||
defaultMessage: 'Access',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [{ link: 'management:api_keys', breadcrumbStatus: 'hidden' }],
|
||||
},
|
||||
{
|
||||
title: i18n.translate(
|
||||
'xpack.serverlessObservability.nav.mngt.alertsAndInsights',
|
||||
{
|
||||
defaultMessage: 'Alerts and insights',
|
||||
}
|
||||
),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:triggersActionsConnectors', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:maintenanceWindows', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.content', {
|
||||
defaultMessage: 'Content',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:spaces', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:objects', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:filesManagement', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:reporting', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:tags', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.other', {
|
||||
defaultMessage: 'Other',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:settings', breadcrumbStatus: 'hidden' },
|
||||
{
|
||||
link: 'management:observabilityAiAssistantManagement',
|
||||
breadcrumbStatus: 'hidden',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'cloudLinkUserAndRoles',
|
||||
cloudLink: 'userAndRoles',
|
||||
},
|
||||
{
|
||||
id: 'cloudLinkBilling',
|
||||
cloudLink: 'billingAndSub',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'cloudLinkUserAndRoles',
|
||||
cloudLink: 'userAndRoles',
|
||||
},
|
||||
{
|
||||
id: 'cloudLinkBilling',
|
||||
cloudLink: 'billingAndSub',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
|
|
@ -210,7 +210,7 @@ function createNavTree({ streamsAvailable }: { streamsAvailable?: boolean }) {
|
|||
id: 'machine_learning-landing',
|
||||
renderAs: 'panelOpener',
|
||||
title: i18n.translate('xpack.observability.obltNav.machineLearning', {
|
||||
defaultMessage: 'Machine learning',
|
||||
defaultMessage: 'Machine Learning',
|
||||
}),
|
||||
children: [
|
||||
{
|
||||
|
@ -325,133 +325,137 @@ function createNavTree({ streamsAvailable }: { streamsAvailable?: boolean }) {
|
|||
},
|
||||
],
|
||||
footer: [
|
||||
{ type: 'recentlyAccessed' },
|
||||
{
|
||||
type: 'navItem',
|
||||
title: i18n.translate('xpack.observability.obltNav.addData', {
|
||||
defaultMessage: 'Add data',
|
||||
}),
|
||||
link: 'observabilityOnboarding',
|
||||
icon: 'launch',
|
||||
},
|
||||
{
|
||||
type: 'navItem',
|
||||
id: 'devTools',
|
||||
title: i18n.translate('xpack.observability.obltNav.devTools', {
|
||||
defaultMessage: 'Developer tools',
|
||||
}),
|
||||
link: 'dev_tools',
|
||||
icon: 'editorCodeBlock',
|
||||
},
|
||||
{
|
||||
type: 'navGroup',
|
||||
id: 'project_settings_project_nav',
|
||||
title: i18n.translate('xpack.observability.obltNav.management', {
|
||||
defaultMessage: 'Management',
|
||||
}),
|
||||
icon: 'gear',
|
||||
breadcrumbStatus: 'hidden',
|
||||
id: 'observability_project_nav_footer',
|
||||
children: [
|
||||
{
|
||||
id: 'stack_management', // This id can't be changed as we use it to open the panel programmatically
|
||||
title: i18n.translate('xpack.observability.obltNav.stackManagement', {
|
||||
defaultMessage: 'Stack Management',
|
||||
title: i18n.translate('xpack.observability.obltNav.addData', {
|
||||
defaultMessage: 'Add data',
|
||||
}),
|
||||
renderAs: 'panelOpener',
|
||||
link: 'observabilityOnboarding',
|
||||
icon: 'launch',
|
||||
},
|
||||
{
|
||||
id: 'devTools',
|
||||
title: i18n.translate('xpack.observability.obltNav.devTools', {
|
||||
defaultMessage: 'Developer tools',
|
||||
}),
|
||||
link: 'dev_tools',
|
||||
icon: 'editorCodeBlock',
|
||||
},
|
||||
{
|
||||
id: 'project_settings_project_nav',
|
||||
title: i18n.translate('xpack.observability.obltNav.management', {
|
||||
defaultMessage: 'Management',
|
||||
}),
|
||||
icon: 'gear',
|
||||
breadcrumbStatus: 'hidden',
|
||||
renderAs: 'accordion',
|
||||
spaceBefore: null,
|
||||
children: [
|
||||
{
|
||||
title: 'Ingest',
|
||||
id: 'stack_management', // This id can't be changed as we use it to open the panel programmatically
|
||||
title: i18n.translate('xpack.observability.obltNav.stackManagement', {
|
||||
defaultMessage: 'Stack Management',
|
||||
}),
|
||||
renderAs: 'panelOpener',
|
||||
spaceBefore: null,
|
||||
children: [
|
||||
{ link: 'management:ingest_pipelines' },
|
||||
{ link: 'management:pipelines' },
|
||||
{
|
||||
title: 'Ingest',
|
||||
children: [
|
||||
{ link: 'management:ingest_pipelines' },
|
||||
{ link: 'management:pipelines' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Data',
|
||||
children: [
|
||||
{ link: 'management:index_management' },
|
||||
{ link: 'management:data_quality' },
|
||||
{ link: 'management:index_lifecycle_management' },
|
||||
{ link: 'management:snapshot_restore' },
|
||||
{ link: 'management:rollup_jobs' },
|
||||
{ link: 'management:transform' },
|
||||
{ link: 'management:cross_cluster_replication' },
|
||||
{ link: 'management:remote_clusters' },
|
||||
{ link: 'management:migrate_data' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Alerts and Insights',
|
||||
children: [
|
||||
{ link: 'management:triggersActions' },
|
||||
{ link: 'management:cases' },
|
||||
{ link: 'management:triggersActionsConnectors' },
|
||||
{ link: 'management:reporting' },
|
||||
{ link: 'management:jobsListLink' },
|
||||
{ link: 'management:watcher' },
|
||||
{ link: 'management:maintenanceWindows' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Machine Learning',
|
||||
children: [
|
||||
{ link: 'management:overview' },
|
||||
{ link: 'management:anomaly_detection' },
|
||||
{ link: 'management:analytics' },
|
||||
{ link: 'management:trained_models' },
|
||||
{ link: 'management:supplied_configurations' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Security',
|
||||
children: [
|
||||
{ link: 'management:users' },
|
||||
{ link: 'management:roles' },
|
||||
{ link: 'management:api_keys' },
|
||||
{ link: 'management:role_mappings' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Kibana',
|
||||
children: [
|
||||
{ link: 'management:dataViews' },
|
||||
{ link: 'management:filesManagement' },
|
||||
{ link: 'management:objects' },
|
||||
{ link: 'management:tags' },
|
||||
{ link: 'management:search_sessions' },
|
||||
{ link: 'management:aiAssistantManagementSelection' },
|
||||
{ link: 'management:spaces' },
|
||||
{ link: 'management:settings' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Stack',
|
||||
children: [
|
||||
{ link: 'management:license_management' },
|
||||
{ link: 'management:upgrade_assistant' },
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Data',
|
||||
children: [
|
||||
{ link: 'management:index_management' },
|
||||
{ link: 'management:data_quality' },
|
||||
{ link: 'management:index_lifecycle_management' },
|
||||
{ link: 'management:snapshot_restore' },
|
||||
{ link: 'management:rollup_jobs' },
|
||||
{ link: 'management:transform' },
|
||||
{ link: 'management:cross_cluster_replication' },
|
||||
{ link: 'management:remote_clusters' },
|
||||
{ link: 'management:migrate_data' },
|
||||
],
|
||||
id: 'monitoring',
|
||||
link: 'monitoring',
|
||||
},
|
||||
{
|
||||
title: 'Alerts and Insights',
|
||||
children: [
|
||||
{ link: 'management:triggersActions' },
|
||||
{ link: 'management:cases' },
|
||||
{ link: 'management:triggersActionsConnectors' },
|
||||
{ link: 'management:reporting' },
|
||||
{ link: 'management:jobsListLink' },
|
||||
{ link: 'management:watcher' },
|
||||
{ link: 'management:maintenanceWindows' },
|
||||
],
|
||||
link: 'integrations',
|
||||
},
|
||||
{
|
||||
title: 'Machine Learning',
|
||||
children: [
|
||||
{ link: 'management:overview' },
|
||||
{ link: 'management:anomaly_detection' },
|
||||
{ link: 'management:analytics' },
|
||||
{ link: 'management:trained_models' },
|
||||
{ link: 'management:supplied_configurations' },
|
||||
],
|
||||
link: 'fleet',
|
||||
},
|
||||
{
|
||||
title: 'Security',
|
||||
children: [
|
||||
{ link: 'management:users' },
|
||||
{ link: 'management:roles' },
|
||||
{ link: 'management:api_keys' },
|
||||
{ link: 'management:role_mappings' },
|
||||
],
|
||||
id: 'cloudLinkUserAndRoles',
|
||||
cloudLink: 'userAndRoles',
|
||||
},
|
||||
{
|
||||
title: 'Kibana',
|
||||
children: [
|
||||
{ link: 'management:dataViews' },
|
||||
{ link: 'management:filesManagement' },
|
||||
{ link: 'management:objects' },
|
||||
{ link: 'management:tags' },
|
||||
{ link: 'management:search_sessions' },
|
||||
{ link: 'management:aiAssistantManagementSelection' },
|
||||
{ link: 'management:spaces' },
|
||||
{ link: 'management:settings' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Stack',
|
||||
children: [
|
||||
{ link: 'management:license_management' },
|
||||
{ link: 'management:upgrade_assistant' },
|
||||
],
|
||||
id: 'cloudLinkBilling',
|
||||
cloudLink: 'billingAndSub',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'monitoring',
|
||||
link: 'monitoring',
|
||||
},
|
||||
{
|
||||
link: 'integrations',
|
||||
},
|
||||
{
|
||||
link: 'fleet',
|
||||
},
|
||||
{
|
||||
id: 'cloudLinkUserAndRoles',
|
||||
cloudLink: 'userAndRoles',
|
||||
},
|
||||
{
|
||||
id: 'cloudLinkBilling',
|
||||
cloudLink: 'billingAndSub',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
|
|
@ -15,7 +15,6 @@ export const createNavigationTree = ({
|
|||
}): NavigationTreeDefinition => {
|
||||
return {
|
||||
body: [
|
||||
{ type: 'recentlyAccessed' },
|
||||
{
|
||||
type: 'navGroup',
|
||||
id: 'observability_project_nav',
|
||||
|
@ -173,7 +172,7 @@ export const createNavigationTree = ({
|
|||
id: 'machine_learning-landing',
|
||||
renderAs: 'panelOpener',
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.machineLearning', {
|
||||
defaultMessage: 'Machine learning',
|
||||
defaultMessage: 'Machine Learning',
|
||||
}),
|
||||
children: [
|
||||
{
|
||||
|
@ -258,126 +257,134 @@ export const createNavigationTree = ({
|
|||
},
|
||||
],
|
||||
footer: [
|
||||
{
|
||||
type: 'navItem',
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.getStarted', {
|
||||
defaultMessage: 'Add data',
|
||||
}),
|
||||
link: 'observabilityOnboarding',
|
||||
icon: 'launch',
|
||||
},
|
||||
{
|
||||
type: 'navItem',
|
||||
id: 'devTools',
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.devTools', {
|
||||
defaultMessage: 'Developer tools',
|
||||
}),
|
||||
link: 'dev_tools',
|
||||
icon: 'editorCodeBlock',
|
||||
},
|
||||
{
|
||||
type: 'navGroup',
|
||||
id: 'project_settings_project_nav',
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.projectSettings', {
|
||||
defaultMessage: 'Project settings',
|
||||
}),
|
||||
icon: 'gear',
|
||||
breadcrumbStatus: 'hidden',
|
||||
id: 'observability_project_nav_footer',
|
||||
children: [
|
||||
{
|
||||
id: 'management',
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt', {
|
||||
defaultMessage: 'Management',
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.getStarted', {
|
||||
defaultMessage: 'Add data',
|
||||
}),
|
||||
link: 'observabilityOnboarding',
|
||||
icon: 'launch',
|
||||
},
|
||||
{
|
||||
id: 'devTools',
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.devTools', {
|
||||
defaultMessage: 'Developer tools',
|
||||
}),
|
||||
link: 'dev_tools',
|
||||
icon: 'editorCodeBlock',
|
||||
},
|
||||
{
|
||||
id: 'project_settings_project_nav',
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.projectSettings', {
|
||||
defaultMessage: 'Project settings',
|
||||
}),
|
||||
icon: 'gear',
|
||||
breadcrumbStatus: 'hidden',
|
||||
renderAs: 'accordion',
|
||||
spaceBefore: null,
|
||||
renderAs: 'panelOpener',
|
||||
children: [
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.data', {
|
||||
defaultMessage: 'Data',
|
||||
id: 'management',
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt', {
|
||||
defaultMessage: 'Management',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
spaceBefore: null,
|
||||
renderAs: 'panelOpener',
|
||||
children: [
|
||||
{ link: 'management:index_management', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:transform', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:ingest_pipelines', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:dataViews', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:jobsListLink', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:pipelines', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:data_quality', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:data_usage', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:content_connectors', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.access', {
|
||||
defaultMessage: 'Access',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [{ link: 'management:api_keys', breadcrumbStatus: 'hidden' }],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.alertsAndInsights', {
|
||||
defaultMessage: 'Alerts and insights',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:triggersActionsConnectors', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:maintenanceWindows', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Machine Learning',
|
||||
children: [
|
||||
{ link: 'management:overview' },
|
||||
{ link: 'management:anomaly_detection' },
|
||||
{ link: 'management:analytics' },
|
||||
{ link: 'management:trained_models' },
|
||||
{ link: 'management:supplied_configurations' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.content', {
|
||||
defaultMessage: 'Content',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:spaces', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:objects', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:filesManagement', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:reporting', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:tags', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.other', {
|
||||
defaultMessage: 'Other',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:settings', breadcrumbStatus: 'hidden' },
|
||||
{
|
||||
link: 'management:observabilityAiAssistantManagement',
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.data', {
|
||||
defaultMessage: 'Data',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:index_management', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:transform', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:ingest_pipelines', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:dataViews', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:jobsListLink', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:pipelines', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:data_quality', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:data_usage', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:content_connectors', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.access', {
|
||||
defaultMessage: 'Access',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [{ link: 'management:api_keys', breadcrumbStatus: 'hidden' }],
|
||||
},
|
||||
{
|
||||
title: i18n.translate(
|
||||
'xpack.serverlessObservability.nav.mngt.alertsAndInsights',
|
||||
{
|
||||
defaultMessage: 'Alerts and insights',
|
||||
}
|
||||
),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:triggersActionsConnectors', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:maintenanceWindows', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Machine Learning',
|
||||
children: [
|
||||
{ link: 'management:overview' },
|
||||
{ link: 'management:anomaly_detection' },
|
||||
{ link: 'management:analytics' },
|
||||
{ link: 'management:trained_models' },
|
||||
{ link: 'management:supplied_configurations' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.content', {
|
||||
defaultMessage: 'Content',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:spaces', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:objects', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:filesManagement', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:reporting', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:tags', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessObservability.nav.mngt.other', {
|
||||
defaultMessage: 'Other',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:settings', breadcrumbStatus: 'hidden' },
|
||||
{
|
||||
link: 'management:observabilityAiAssistantManagement',
|
||||
breadcrumbStatus: 'hidden',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
link: 'integrations',
|
||||
},
|
||||
{
|
||||
link: 'fleet',
|
||||
},
|
||||
{
|
||||
id: 'cloudLinkUserAndRoles',
|
||||
cloudLink: 'userAndRoles',
|
||||
},
|
||||
{
|
||||
id: 'cloudLinkBilling',
|
||||
cloudLink: 'billingAndSub',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
link: 'integrations',
|
||||
},
|
||||
{
|
||||
link: 'fleet',
|
||||
},
|
||||
{
|
||||
id: 'cloudLinkUserAndRoles',
|
||||
cloudLink: 'userAndRoles',
|
||||
},
|
||||
{
|
||||
id: 'cloudLinkBilling',
|
||||
cloudLink: 'billingAndSub',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
|
|
@ -234,104 +234,110 @@ export const getNavigationTreeDefinition = ({
|
|||
},
|
||||
],
|
||||
footer: [
|
||||
{ type: 'recentlyAccessed' },
|
||||
{
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{
|
||||
link: 'management:trained_models',
|
||||
title: i18n.translate(
|
||||
'xpack.enterpriseSearch.searchNav.management.trainedModels',
|
||||
{
|
||||
defaultMessage: 'Trained Models',
|
||||
}
|
||||
),
|
||||
},
|
||||
{
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{
|
||||
children: [
|
||||
{ link: 'management:ingest_pipelines' },
|
||||
{ link: 'management:pipelines' },
|
||||
],
|
||||
title: 'Ingest',
|
||||
link: 'management:trained_models',
|
||||
title: i18n.translate(
|
||||
'xpack.enterpriseSearch.searchNav.management.trainedModels',
|
||||
{
|
||||
defaultMessage: 'Trained Models',
|
||||
}
|
||||
),
|
||||
},
|
||||
{
|
||||
children: [
|
||||
{ link: 'management:index_management' },
|
||||
{ link: 'management:index_lifecycle_management' },
|
||||
{ link: 'management:snapshot_restore' },
|
||||
{ link: 'management:rollup_jobs' },
|
||||
{ link: 'management:transform' },
|
||||
{ link: 'management:cross_cluster_replication' },
|
||||
{ link: 'management:remote_clusters' },
|
||||
{ link: 'management:migrate_data' },
|
||||
{
|
||||
children: [
|
||||
{ link: 'management:ingest_pipelines' },
|
||||
{ link: 'management:pipelines' },
|
||||
],
|
||||
title: 'Ingest',
|
||||
},
|
||||
{
|
||||
children: [
|
||||
{ link: 'management:index_management' },
|
||||
{ link: 'management:index_lifecycle_management' },
|
||||
{ link: 'management:snapshot_restore' },
|
||||
{ link: 'management:rollup_jobs' },
|
||||
{ link: 'management:transform' },
|
||||
{ link: 'management:cross_cluster_replication' },
|
||||
{ link: 'management:remote_clusters' },
|
||||
{ link: 'management:migrate_data' },
|
||||
],
|
||||
title: 'Data',
|
||||
},
|
||||
{
|
||||
children: [
|
||||
{ link: 'management:triggersActions' },
|
||||
{ link: 'management:cases' },
|
||||
{ link: 'management:triggersActionsConnectors' },
|
||||
{ link: 'management:reporting' },
|
||||
{ link: 'management:jobsListLink' },
|
||||
{ link: 'management:watcher' },
|
||||
{ link: 'management:maintenanceWindows' },
|
||||
],
|
||||
title: 'Alerts and Insights',
|
||||
},
|
||||
{
|
||||
children: [{ link: 'management:trained_models' }],
|
||||
title: 'Machine Learning',
|
||||
},
|
||||
{
|
||||
children: [
|
||||
{ link: 'management:users' },
|
||||
{ link: 'management:roles' },
|
||||
{ link: 'management:api_keys' },
|
||||
{ link: 'management:role_mappings' },
|
||||
],
|
||||
title: 'Security',
|
||||
},
|
||||
{
|
||||
children: [
|
||||
{ link: 'management:dataViews' },
|
||||
{ link: 'management:filesManagement' },
|
||||
{ link: 'management:objects' },
|
||||
{ link: 'management:tags' },
|
||||
{ link: 'management:search_sessions' },
|
||||
{ link: 'management:aiAssistantManagementSelection' },
|
||||
{ link: 'management:spaces' },
|
||||
{ link: 'management:settings' },
|
||||
],
|
||||
title: 'Kibana',
|
||||
},
|
||||
{
|
||||
children: [
|
||||
{ link: 'management:license_management' },
|
||||
{ link: 'management:upgrade_assistant' },
|
||||
],
|
||||
title: 'Stack',
|
||||
},
|
||||
],
|
||||
title: 'Data',
|
||||
id: 'stack_management', // This id can't be changed as we use it to open the panel programmatically
|
||||
renderAs: 'panelOpener',
|
||||
spaceBefore: null,
|
||||
title: i18n.translate('xpack.enterpriseSearch.searchNav.mngt', {
|
||||
defaultMessage: 'Stack Management',
|
||||
}),
|
||||
},
|
||||
{
|
||||
children: [
|
||||
{ link: 'management:triggersActions' },
|
||||
{ link: 'management:cases' },
|
||||
{ link: 'management:triggersActionsConnectors' },
|
||||
{ link: 'management:reporting' },
|
||||
{ link: 'management:jobsListLink' },
|
||||
{ link: 'management:watcher' },
|
||||
{ link: 'management:maintenanceWindows' },
|
||||
],
|
||||
title: 'Alerts and Insights',
|
||||
},
|
||||
{
|
||||
children: [{ link: 'management:trained_models' }],
|
||||
title: 'Machine Learning',
|
||||
},
|
||||
{
|
||||
children: [
|
||||
{ link: 'management:users' },
|
||||
{ link: 'management:roles' },
|
||||
{ link: 'management:api_keys' },
|
||||
{ link: 'management:role_mappings' },
|
||||
],
|
||||
title: 'Security',
|
||||
},
|
||||
{
|
||||
children: [
|
||||
{ link: 'management:dataViews' },
|
||||
{ link: 'management:filesManagement' },
|
||||
{ link: 'management:objects' },
|
||||
{ link: 'management:tags' },
|
||||
{ link: 'management:search_sessions' },
|
||||
{ link: 'management:aiAssistantManagementSelection' },
|
||||
{ link: 'management:spaces' },
|
||||
{ link: 'management:settings' },
|
||||
],
|
||||
title: 'Kibana',
|
||||
},
|
||||
{
|
||||
children: [
|
||||
{ link: 'management:license_management' },
|
||||
{ link: 'management:upgrade_assistant' },
|
||||
],
|
||||
title: 'Stack',
|
||||
id: 'monitoring',
|
||||
link: 'monitoring',
|
||||
},
|
||||
],
|
||||
id: 'stack_management', // This id can't be changed as we use it to open the panel programmatically
|
||||
renderAs: 'panelOpener',
|
||||
icon: 'gear',
|
||||
id: 'project_settings_project_nav',
|
||||
renderAs: 'accordion',
|
||||
spaceBefore: null,
|
||||
title: i18n.translate('xpack.enterpriseSearch.searchNav.mngt', {
|
||||
defaultMessage: 'Stack Management',
|
||||
title: i18n.translate('xpack.enterpriseSearch.searchNav.management', {
|
||||
defaultMessage: 'Management',
|
||||
}),
|
||||
},
|
||||
{
|
||||
id: 'monitoring',
|
||||
link: 'monitoring',
|
||||
},
|
||||
],
|
||||
icon: 'gear',
|
||||
id: 'project_settings_project_nav',
|
||||
title: i18n.translate('xpack.enterpriseSearch.searchNav.management', {
|
||||
defaultMessage: 'Management',
|
||||
}),
|
||||
id: 'search_project_nav_footer',
|
||||
type: 'navGroup',
|
||||
},
|
||||
],
|
||||
|
|
|
@ -149,127 +149,136 @@ export const navigationTree = ({ isAppRegistered }: ApplicationStart): Navigatio
|
|||
},
|
||||
],
|
||||
footer: [
|
||||
{
|
||||
id: 'gettingStarted',
|
||||
type: 'navItem',
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.gettingStarted', {
|
||||
defaultMessage: 'Getting Started',
|
||||
}),
|
||||
link: 'serverlessElasticsearch',
|
||||
icon: 'launch',
|
||||
},
|
||||
{
|
||||
type: 'navGroup',
|
||||
id: 'project_settings_project_nav',
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.projectSettings', {
|
||||
defaultMessage: 'Project settings',
|
||||
}),
|
||||
icon: 'gear',
|
||||
breadcrumbStatus: 'hidden',
|
||||
id: 'search_project_nav_footer',
|
||||
children: [
|
||||
{
|
||||
link: 'management:trained_models',
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.trainedModels', {
|
||||
defaultMessage: 'Trained Models',
|
||||
id: 'gettingStarted',
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.gettingStarted', {
|
||||
defaultMessage: 'Getting Started',
|
||||
}),
|
||||
link: 'serverlessElasticsearch',
|
||||
icon: 'launch',
|
||||
},
|
||||
{
|
||||
id: 'management',
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.mngt', {
|
||||
defaultMessage: 'Management',
|
||||
id: 'project_settings_project_nav',
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.projectSettings', {
|
||||
defaultMessage: 'Project settings',
|
||||
}),
|
||||
icon: 'gear',
|
||||
breadcrumbStatus: 'hidden',
|
||||
renderAs: 'accordion',
|
||||
spaceBefore: null,
|
||||
renderAs: 'panelOpener',
|
||||
children: [
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.mngt.data', {
|
||||
defaultMessage: 'Data',
|
||||
link: 'management:trained_models',
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.trainedModels', {
|
||||
defaultMessage: 'Trained Models',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:index_management', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:transform', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:ingest_pipelines', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:dataViews', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:jobsListLink', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:pipelines', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:data_quality', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:data_usage', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.mngt.access', {
|
||||
defaultMessage: 'Access',
|
||||
id: 'management',
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.mngt', {
|
||||
defaultMessage: 'Management',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
spaceBefore: null,
|
||||
renderAs: 'panelOpener',
|
||||
children: [
|
||||
{ link: 'management:api_keys', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:roles', breadcrumbStatus: 'hidden' },
|
||||
{
|
||||
cloudLink: 'userAndRoles',
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.mngt.access.userAndRoles', {
|
||||
defaultMessage: 'Manage Organization Members',
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.mngt.data', {
|
||||
defaultMessage: 'Data',
|
||||
}),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.mngt.alertsAndInsights', {
|
||||
defaultMessage: 'Alerts and insights',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:triggersActions', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:triggersActionsConnectors', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Machine Learning',
|
||||
children: [{ link: 'management:trained_models', breadcrumbStatus: 'hidden' }],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.mngt.content', {
|
||||
defaultMessage: 'Content',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:spaces', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:objects', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:filesManagement', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:reporting', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:tags', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.mngt.other', {
|
||||
defaultMessage: 'Other',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:settings', breadcrumbStatus: 'hidden' },
|
||||
{
|
||||
link: 'management:observabilityAiAssistantManagement',
|
||||
breadcrumbStatus: 'hidden',
|
||||
title: i18n.translate(
|
||||
'xpack.serverlessSearch.nav.mngt.other.aiAssistantSettings',
|
||||
{ defaultMessage: 'AI Assistant Settings' }
|
||||
),
|
||||
children: [
|
||||
{ link: 'management:index_management', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:transform', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:ingest_pipelines', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:dataViews', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:jobsListLink', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:pipelines', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:data_quality', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:data_usage', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.mngt.access', {
|
||||
defaultMessage: 'Access',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:api_keys', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:roles', breadcrumbStatus: 'hidden' },
|
||||
{
|
||||
cloudLink: 'userAndRoles',
|
||||
title: i18n.translate(
|
||||
'xpack.serverlessSearch.nav.mngt.access.userAndRoles',
|
||||
{
|
||||
defaultMessage: 'Manage Organization Members',
|
||||
}
|
||||
),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.mngt.alertsAndInsights', {
|
||||
defaultMessage: 'Alerts and insights',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:triggersActions', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:triggersActionsConnectors', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: 'Machine Learning',
|
||||
children: [{ link: 'management:trained_models', breadcrumbStatus: 'hidden' }],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.mngt.content', {
|
||||
defaultMessage: 'Content',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:spaces', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:objects', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:filesManagement', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:reporting', breadcrumbStatus: 'hidden' },
|
||||
{ link: 'management:tags', breadcrumbStatus: 'hidden' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.mngt.other', {
|
||||
defaultMessage: 'Other',
|
||||
}),
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{ link: 'management:settings', breadcrumbStatus: 'hidden' },
|
||||
{
|
||||
link: 'management:observabilityAiAssistantManagement',
|
||||
breadcrumbStatus: 'hidden',
|
||||
title: i18n.translate(
|
||||
'xpack.serverlessSearch.nav.mngt.other.aiAssistantSettings',
|
||||
{ defaultMessage: 'AI Assistant Settings' }
|
||||
),
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'cloudLinkDeployment',
|
||||
cloudLink: 'deployment',
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.performance', {
|
||||
defaultMessage: 'Performance',
|
||||
}),
|
||||
},
|
||||
{
|
||||
id: 'cloudLinkBilling',
|
||||
cloudLink: 'billingAndSub',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'cloudLinkDeployment',
|
||||
cloudLink: 'deployment',
|
||||
title: i18n.translate('xpack.serverlessSearch.nav.performance', {
|
||||
defaultMessage: 'Performance',
|
||||
}),
|
||||
},
|
||||
{
|
||||
id: 'cloudLinkBilling',
|
||||
cloudLink: 'billingAndSub',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
|
|
@ -63,7 +63,7 @@ export const i18nStrings = {
|
|||
},
|
||||
ml: {
|
||||
title: i18n.translate('securitySolutionPackages.navLinks.ml', {
|
||||
defaultMessage: 'Machine learning',
|
||||
defaultMessage: 'Machine Learning',
|
||||
}),
|
||||
overview: i18n.translate('securitySolutionPackages.navLinks.ml.overview', {
|
||||
defaultMessage: 'Overview',
|
||||
|
|
|
@ -75,117 +75,125 @@ export const createNavigationTree = (services: Services): NavigationTreeDefiniti
|
|||
],
|
||||
footer: [
|
||||
{
|
||||
id: SecurityPageName.landing,
|
||||
link: securityLink(SecurityPageName.landing),
|
||||
type: 'navItem',
|
||||
icon: 'launch',
|
||||
},
|
||||
{
|
||||
type: 'navItem',
|
||||
link: 'dev_tools',
|
||||
title: i18nStrings.devTools,
|
||||
icon: 'editorCodeBlock',
|
||||
},
|
||||
{
|
||||
id: 'security_solution_nav_footer',
|
||||
type: 'navGroup',
|
||||
title: i18nStrings.management.title,
|
||||
icon: 'gear',
|
||||
breadcrumbStatus: 'hidden',
|
||||
children: [
|
||||
{
|
||||
id: 'stack_management', // This id can't be changed as we use it to open the panel programmatically
|
||||
title: i18nStrings.stackManagement.title,
|
||||
renderAs: 'panelOpener',
|
||||
id: SecurityPageName.landing,
|
||||
link: securityLink(SecurityPageName.landing),
|
||||
icon: 'launch',
|
||||
},
|
||||
{
|
||||
link: 'dev_tools',
|
||||
title: i18nStrings.devTools,
|
||||
icon: 'editorCodeBlock',
|
||||
},
|
||||
{
|
||||
title: i18nStrings.management.title,
|
||||
icon: 'gear',
|
||||
breadcrumbStatus: 'hidden',
|
||||
renderAs: 'accordion',
|
||||
spaceBefore: null,
|
||||
children: [
|
||||
{
|
||||
title: i18nStrings.stackManagement.ingest.title,
|
||||
children: [{ link: 'management:ingest_pipelines' }, { link: 'management:pipelines' }],
|
||||
},
|
||||
{
|
||||
title: i18nStrings.stackManagement.data.title,
|
||||
id: 'stack_management',
|
||||
title: i18nStrings.stackManagement.title,
|
||||
renderAs: 'panelOpener',
|
||||
spaceBefore: null,
|
||||
children: [
|
||||
{ link: 'management:index_management' },
|
||||
{ link: 'management:index_lifecycle_management' },
|
||||
{ link: 'management:snapshot_restore' },
|
||||
{ link: 'management:rollup_jobs' },
|
||||
{ link: 'management:transform' },
|
||||
{ link: 'management:cross_cluster_replication' },
|
||||
{ link: 'management:remote_clusters' },
|
||||
{ link: 'management:migrate_data' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18nStrings.stackManagement.alertsAndInsights.title,
|
||||
children: [
|
||||
{ link: 'management:triggersActions' },
|
||||
{ link: 'management:cases' },
|
||||
{ link: 'management:triggersActionsConnectors' },
|
||||
{ link: 'management:reporting' },
|
||||
{ link: 'management:jobsListLink' },
|
||||
{ link: 'management:watcher' },
|
||||
{ link: 'management:maintenanceWindows' },
|
||||
{
|
||||
id: SecurityPageName.entityAnalyticsManagement,
|
||||
link: securityLink(SecurityPageName.entityAnalyticsManagement),
|
||||
title: i18nStrings.stackManagement.ingest.title,
|
||||
children: [
|
||||
{ link: 'management:ingest_pipelines' },
|
||||
{ link: 'management:pipelines' },
|
||||
],
|
||||
},
|
||||
{
|
||||
id: SecurityPageName.entityAnalyticsEntityStoreManagement,
|
||||
link: securityLink(SecurityPageName.entityAnalyticsEntityStoreManagement),
|
||||
title: i18nStrings.stackManagement.data.title,
|
||||
children: [
|
||||
{ link: 'management:index_management' },
|
||||
{ link: 'management:index_lifecycle_management' },
|
||||
{ link: 'management:snapshot_restore' },
|
||||
{ link: 'management:rollup_jobs' },
|
||||
{ link: 'management:transform' },
|
||||
{ link: 'management:cross_cluster_replication' },
|
||||
{ link: 'management:remote_clusters' },
|
||||
{ link: 'management:migrate_data' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18nStrings.stackManagement.alertsAndInsights.title,
|
||||
children: [
|
||||
{ link: 'management:triggersActions' },
|
||||
{ link: 'management:cases' },
|
||||
{ link: 'management:triggersActionsConnectors' },
|
||||
{ link: 'management:reporting' },
|
||||
{ link: 'management:jobsListLink' },
|
||||
{ link: 'management:watcher' },
|
||||
{ link: 'management:maintenanceWindows' },
|
||||
{
|
||||
id: SecurityPageName.entityAnalyticsManagement,
|
||||
link: securityLink(SecurityPageName.entityAnalyticsManagement),
|
||||
},
|
||||
{
|
||||
id: SecurityPageName.entityAnalyticsEntityStoreManagement,
|
||||
link: securityLink(SecurityPageName.entityAnalyticsEntityStoreManagement),
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18nStrings.ml.title,
|
||||
children: [
|
||||
{ link: 'management:overview' },
|
||||
{ link: 'management:anomaly_detection' },
|
||||
{ link: 'management:analytics' },
|
||||
{ link: 'management:trained_models' },
|
||||
{ link: 'management:supplied_configurations' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18nStrings.stackManagement.security.title,
|
||||
children: [
|
||||
{ link: 'management:users' },
|
||||
{ link: 'management:roles' },
|
||||
{ link: 'management:api_keys' },
|
||||
{ link: 'management:role_mappings' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18nStrings.stackManagement.kibana.title,
|
||||
children: [
|
||||
{ link: 'management:dataViews' },
|
||||
{ link: 'management:filesManagement' },
|
||||
{ link: 'management:objects' },
|
||||
{ link: 'management:tags' },
|
||||
{ link: 'management:search_sessions' },
|
||||
{ link: 'management:aiAssistantManagementSelection' },
|
||||
{ link: 'management:spaces' },
|
||||
{ link: 'maps' },
|
||||
{ link: 'visualize' },
|
||||
{ link: 'graph' },
|
||||
{ link: 'canvas' },
|
||||
{ link: 'management:settings' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18nStrings.stackManagement.stack.title,
|
||||
children: [
|
||||
{ link: 'management:license_management' },
|
||||
{ link: 'management:upgrade_assistant' },
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18nStrings.ml.title,
|
||||
children: [
|
||||
{ link: 'management:overview' },
|
||||
{ link: 'management:anomaly_detection' },
|
||||
{ link: 'management:analytics' },
|
||||
{ link: 'management:trained_models' },
|
||||
{ link: 'management:supplied_configurations' },
|
||||
],
|
||||
link: 'monitoring',
|
||||
},
|
||||
{
|
||||
title: i18nStrings.stackManagement.security.title,
|
||||
children: [
|
||||
{ link: 'management:users' },
|
||||
{ link: 'management:roles' },
|
||||
{ link: 'management:api_keys' },
|
||||
{ link: 'management:role_mappings' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18nStrings.stackManagement.kibana.title,
|
||||
children: [
|
||||
{ link: 'management:dataViews' },
|
||||
{ link: 'management:filesManagement' },
|
||||
{ link: 'management:objects' },
|
||||
{ link: 'management:tags' },
|
||||
{ link: 'management:search_sessions' },
|
||||
{ link: 'management:aiAssistantManagementSelection' },
|
||||
{ link: 'management:spaces' },
|
||||
{ link: 'maps' },
|
||||
{ link: 'visualize' },
|
||||
{ link: 'graph' },
|
||||
{ link: 'canvas' },
|
||||
{ link: 'management:settings' },
|
||||
],
|
||||
},
|
||||
{
|
||||
title: i18nStrings.stackManagement.stack.title,
|
||||
children: [
|
||||
{ link: 'management:license_management' },
|
||||
{ link: 'management:upgrade_assistant' },
|
||||
],
|
||||
link: 'integrations',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
link: 'monitoring',
|
||||
},
|
||||
{
|
||||
link: 'integrations',
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
|
|
|
@ -96,17 +96,21 @@ export const createAiNavigationTree = (): NavigationTreeDefinition => ({
|
|||
],
|
||||
footer: [
|
||||
{
|
||||
type: 'navItem',
|
||||
id: SecurityPageName.landing,
|
||||
link: securityLink(SecurityPageName.landing),
|
||||
icon: 'launch',
|
||||
id: 'security_solution_ai_nav_footer',
|
||||
type: 'navGroup',
|
||||
children: [
|
||||
{
|
||||
id: SecurityPageName.landing,
|
||||
link: securityLink(SecurityPageName.landing),
|
||||
icon: 'launch',
|
||||
},
|
||||
{
|
||||
link: 'dev_tools',
|
||||
title: i18nStrings.devTools,
|
||||
icon: 'editorCodeBlock',
|
||||
},
|
||||
createStackManagementNavigationTree(),
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'navItem',
|
||||
link: 'dev_tools',
|
||||
title: i18nStrings.devTools,
|
||||
icon: 'editorCodeBlock',
|
||||
},
|
||||
createStackManagementNavigationTree(),
|
||||
],
|
||||
});
|
||||
|
|
|
@ -82,17 +82,21 @@ export const createNavigationTree = (services: Services): NavigationTreeDefiniti
|
|||
],
|
||||
footer: [
|
||||
{
|
||||
type: 'navItem',
|
||||
id: SecurityPageName.landing,
|
||||
link: securityLink(SecurityPageName.landing),
|
||||
icon: 'launch',
|
||||
id: 'security_solution_nav_footer',
|
||||
type: 'navGroup',
|
||||
children: [
|
||||
{
|
||||
id: SecurityPageName.landing,
|
||||
link: securityLink(SecurityPageName.landing),
|
||||
icon: 'launch',
|
||||
},
|
||||
{
|
||||
link: 'dev_tools',
|
||||
title: i18nStrings.devTools,
|
||||
icon: 'editorCodeBlock',
|
||||
},
|
||||
createStackManagementNavigationTree(),
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'navItem',
|
||||
link: 'dev_tools',
|
||||
title: i18nStrings.devTools,
|
||||
icon: 'editorCodeBlock',
|
||||
},
|
||||
createStackManagementNavigationTree(),
|
||||
],
|
||||
});
|
||||
|
|
|
@ -5,16 +5,17 @@
|
|||
* 2.0.
|
||||
*/
|
||||
|
||||
import type { GroupDefinition } from '@kbn/core-chrome-browser';
|
||||
import type { NodeDefinition } from '@kbn/core-chrome-browser';
|
||||
import { SecurityPageName } from '@kbn/security-solution-navigation';
|
||||
import { i18nStrings, securityLink } from '@kbn/security-solution-navigation/links';
|
||||
|
||||
export const createStackManagementNavigationTree = (): GroupDefinition => ({
|
||||
type: 'navGroup',
|
||||
export const createStackManagementNavigationTree = (): NodeDefinition => ({
|
||||
id: 'category-management',
|
||||
title: i18nStrings.projectSettings.title,
|
||||
icon: 'gear',
|
||||
breadcrumbStatus: 'hidden',
|
||||
renderAs: 'accordion',
|
||||
spaceBefore: null,
|
||||
children: [
|
||||
{
|
||||
id: 'stack_management', // This id can't be changed as we use it to open the panel programmatically
|
||||
|
|
|
@ -241,9 +241,14 @@ export default function searchSolutionNavigation({
|
|||
|
||||
it('renders only expected items', async () => {
|
||||
await solutionNavigation.sidenav.openSection('search_project_nav.otherTools');
|
||||
await solutionNavigation.sidenav.openSection('project_settings_project_nav');
|
||||
await solutionNavigation.sidenav.expectSectionOpen('search_project_nav.otherTools');
|
||||
await solutionNavigation.sidenav.expectSectionOpen('project_settings_project_nav');
|
||||
|
||||
await solutionNavigation.sidenav.openSection(
|
||||
'search_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
await solutionNavigation.sidenav.expectSectionOpen(
|
||||
'search_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
|
||||
await solutionNavigation.sidenav.expectOnlyDefinedLinks([
|
||||
'search_project_nav',
|
||||
|
@ -265,6 +270,7 @@ export default function searchSolutionNavigation({
|
|||
'otherTools',
|
||||
'maps',
|
||||
'graph',
|
||||
'search_project_nav_footer',
|
||||
'project_settings_project_nav',
|
||||
'management:trained_models',
|
||||
'stack_management',
|
||||
|
|
|
@ -79,7 +79,9 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
}
|
||||
|
||||
// navigate to a different section
|
||||
await solutionNavigation.sidenav.openSection('project_settings_project_nav');
|
||||
await solutionNavigation.sidenav.openSection(
|
||||
'observability_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
await solutionNavigation.sidenav.clickLink({ navId: 'stack_management' });
|
||||
await solutionNavigation.sidenav.expectLinkActive({ navId: 'stack_management' });
|
||||
await solutionNavigation.sidenav.clickPanelLink('management:tags');
|
||||
|
|
|
@ -60,7 +60,9 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
});
|
||||
|
||||
// navigate to a different section
|
||||
await solutionNavigation.sidenav.openSection('project_settings_project_nav');
|
||||
await solutionNavigation.sidenav.openSection(
|
||||
'search_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
await solutionNavigation.sidenav.clickLink({ navId: 'stack_management' });
|
||||
await solutionNavigation.sidenav.expectLinkActive({ navId: 'stack_management' });
|
||||
await solutionNavigation.breadcrumbs.expectBreadcrumbExists({ text: 'Data' });
|
||||
|
|
|
@ -76,7 +76,9 @@ export default function ({ getPageObjects, getService }: FtrProviderContext) {
|
|||
});
|
||||
|
||||
// Supplied configurations is under Management -> Anomaly Detection Jobs -> Click button mlSuppliedConfigurationsButton
|
||||
await solutionNavigation.sidenav.openSection('project_settings_project_nav');
|
||||
await solutionNavigation.sidenav.openSection(
|
||||
'observability_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
await solutionNavigation.sidenav.clickLink({ navId: 'stack_management' });
|
||||
await solutionNavigation.sidenav.expectLinkActive({ navId: 'stack_management' });
|
||||
await solutionNavigation.sidenav.clickPanelLink('management:anomaly_detection');
|
||||
|
|
|
@ -16,7 +16,9 @@ export function MachineLearningNavigationProviderObservability({
|
|||
const svlCommonNavigation = getPageObject('svlCommonNavigation');
|
||||
|
||||
async function navigateToArea(id: string, expectedTestSubject: string) {
|
||||
await svlCommonNavigation.sidenav.openSection('project_settings_project_nav');
|
||||
await svlCommonNavigation.sidenav.openSection(
|
||||
'observability_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
await retry.tryForTime(5 * 1000, async () => {
|
||||
await svlCommonNavigation.sidenav.clickLink({ navId: 'management' });
|
||||
await svlCommonNavigation.sidenav.clickPanelLink(id);
|
||||
|
|
|
@ -16,7 +16,9 @@ export function MachineLearningNavigationProviderSecurity({
|
|||
const retry = getService('retry');
|
||||
|
||||
async function navigateToArea(id: string, expectedTestSubject: string) {
|
||||
await svlCommonNavigation.sidenav.openSection('category-management');
|
||||
await svlCommonNavigation.sidenav.openSection(
|
||||
'security_solution_nav_footer.category-management'
|
||||
);
|
||||
await retry.tryForTime(5 * 1000, async () => {
|
||||
await svlCommonNavigation.sidenav.clickLink({ navId: 'stack_management' });
|
||||
await svlCommonNavigation.sidenav.clickPanelLink(id);
|
||||
|
|
|
@ -32,7 +32,9 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
|
|||
await svlCommonNavigation.breadcrumbs.expectBreadcrumbExists({
|
||||
deepLinkId: 'observabilityOnboarding',
|
||||
});
|
||||
await svlCommonNavigation.sidenav.expectSectionClosed('project_settings_project_nav');
|
||||
await svlCommonNavigation.sidenav.expectSectionClosed(
|
||||
'observability_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
|
||||
// navigate to the logs explorer tab by default
|
||||
await svlCommonNavigation.sidenav.clickLink({ deepLinkId: 'discover' });
|
||||
|
@ -48,7 +50,9 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
|
|||
await svlCommonNavigation.sidenav.clickLink({ navId: 'observabilityAIAssistant' }); // click on AI Assistant link
|
||||
await svlCommonNavigation.breadcrumbs.expectBreadcrumbExists({ text: 'AI Assistant' });
|
||||
// navigate to a different section
|
||||
await svlCommonNavigation.sidenav.openSection('project_settings_project_nav');
|
||||
await svlCommonNavigation.sidenav.openSection(
|
||||
'observability_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
await svlCommonNavigation.sidenav.clickLink({ navId: 'management' });
|
||||
await svlCommonNavigation.sidenav.expectLinkActive({ navId: 'management' });
|
||||
await svlCommonNavigation.sidenav.clickPanelLink('management:tags');
|
||||
|
@ -59,18 +63,24 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
|
|||
await svlCommonNavigation.breadcrumbs.expectBreadcrumbExists({
|
||||
deepLinkId: 'observabilityOnboarding',
|
||||
});
|
||||
await svlCommonNavigation.sidenav.expectSectionOpen(`project_settings_project_nav`); // remains open
|
||||
await svlCommonNavigation.sidenav.expectSectionOpen(
|
||||
'observability_project_nav_footer.project_settings_project_nav'
|
||||
); // remains open
|
||||
|
||||
await expectNoPageReload();
|
||||
});
|
||||
|
||||
it('active sidenav section is auto opened on load', async () => {
|
||||
await svlCommonNavigation.sidenav.openSection('project_settings_project_nav');
|
||||
await svlCommonNavigation.sidenav.openSection(
|
||||
'observability_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
await svlCommonNavigation.sidenav.clickLink({ navId: 'management' });
|
||||
await svlCommonNavigation.sidenav.clickPanelLink('management:tags');
|
||||
await browser.refresh();
|
||||
await svlCommonNavigation.expectExists();
|
||||
await svlCommonNavigation.sidenav.expectSectionOpen('project_settings_project_nav');
|
||||
await svlCommonNavigation.sidenav.expectSectionOpen(
|
||||
'observability_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
});
|
||||
|
||||
it('shows cases in sidebar navigation', async () => {
|
||||
|
@ -120,7 +130,9 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
|
|||
});
|
||||
|
||||
it('navigates to integrations', async () => {
|
||||
await svlCommonNavigation.sidenav.openSection('project_settings_project_nav');
|
||||
await svlCommonNavigation.sidenav.openSection(
|
||||
'observability_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
await svlCommonNavigation.sidenav.clickLink({ deepLinkId: 'integrations' });
|
||||
await svlCommonNavigation.breadcrumbs.expectBreadcrumbTexts([
|
||||
'Integrations',
|
||||
|
@ -129,13 +141,17 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
|
|||
});
|
||||
|
||||
it('navigates to fleet', async () => {
|
||||
await svlCommonNavigation.sidenav.openSection('project_settings_project_nav');
|
||||
await svlCommonNavigation.sidenav.openSection(
|
||||
'observability_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
await svlCommonNavigation.sidenav.clickLink({ deepLinkId: 'fleet' });
|
||||
await svlCommonNavigation.breadcrumbs.expectBreadcrumbTexts(['Fleet', 'Agents']);
|
||||
});
|
||||
|
||||
it('navigates to maintenance windows', async () => {
|
||||
await svlCommonNavigation.sidenav.openSection('project_settings_project_nav');
|
||||
await svlCommonNavigation.sidenav.openSection(
|
||||
'observability_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
await svlCommonNavigation.sidenav.clickLink({ navId: 'management' });
|
||||
await svlCommonNavigation.sidenav.clickPanelLink('management:maintenanceWindows');
|
||||
await svlCommonNavigation.breadcrumbs.expectBreadcrumbTexts([
|
||||
|
|
|
@ -29,7 +29,9 @@ export default function ({ getService, getPageObjects, getPageObject }: FtrProvi
|
|||
|
||||
describe('page navigation', () => {
|
||||
it('renders trained models list', async () => {
|
||||
await svlCommonNavigation.sidenav.openSection('project_settings_project_nav');
|
||||
await svlCommonNavigation.sidenav.openSection(
|
||||
'search_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
await svlCommonNavigation.sidenav.clickLink({ deepLinkId: 'management:trained_models' });
|
||||
await svlCommonNavigation.sidenav.expectLinkActive({
|
||||
deepLinkId: 'management:trained_models',
|
||||
|
|
|
@ -127,7 +127,9 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
|
|||
}
|
||||
|
||||
// Open Project Settings
|
||||
await solutionNavigation.sidenav.openSection('project_settings_project_nav');
|
||||
await solutionNavigation.sidenav.openSection(
|
||||
'search_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
// check Project Settings
|
||||
// > Trained Models
|
||||
await solutionNavigation.sidenav.clickLink({
|
||||
|
@ -172,7 +174,9 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
|
|||
});
|
||||
|
||||
it('navigate management', async () => {
|
||||
await svlCommonNavigation.sidenav.openSection('project_settings_project_nav');
|
||||
await svlCommonNavigation.sidenav.openSection(
|
||||
'search_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
await svlCommonNavigation.sidenav.clickLink({ navId: 'management' });
|
||||
await svlCommonNavigation.sidenav.clickPanelLink('management:tags');
|
||||
await svlCommonNavigation.breadcrumbs.expectBreadcrumbTexts(['Management', 'Tags']);
|
||||
|
@ -206,7 +210,9 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
|
|||
});
|
||||
|
||||
it('renders expected side navigation items', async () => {
|
||||
await solutionNavigation.sidenav.openSection('project_settings_project_nav');
|
||||
await solutionNavigation.sidenav.openSection(
|
||||
'search_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
// Verify all expected top-level links exist
|
||||
await solutionNavigation.sidenav.expectLinkExists({ text: 'Data' });
|
||||
await solutionNavigation.sidenav.expectLinkExists({ text: 'Index Management' });
|
||||
|
@ -230,7 +236,9 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
|
|||
await solutionNavigation.sidenav.expectLinkExists({ text: 'Performance' });
|
||||
await solutionNavigation.sidenav.expectLinkExists({ text: 'Billing and subscription' });
|
||||
|
||||
await solutionNavigation.sidenav.openSection('project_settings_project_nav');
|
||||
await solutionNavigation.sidenav.openSection(
|
||||
'search_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
await solutionNavigation.sidenav.expectOnlyDefinedLinks([
|
||||
'search_project_nav',
|
||||
'data',
|
||||
|
@ -249,6 +257,7 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
|
|||
'otherTools',
|
||||
'maps',
|
||||
'gettingStarted',
|
||||
'search_project_nav_footer',
|
||||
'project_settings_project_nav',
|
||||
'management:trained_models',
|
||||
'management',
|
||||
|
|
|
@ -19,7 +19,9 @@ export default function ({ getPageObjects }: FtrProviderContext) {
|
|||
describe('ingest pipelines', function () {
|
||||
before(async () => {
|
||||
await pageObjects.svlCommonPage.loginWithRole('developer');
|
||||
await pageObjects.svlCommonNavigation.sidenav.openSection('project_settings_project_nav');
|
||||
await pageObjects.svlCommonNavigation.sidenav.openSection(
|
||||
'search_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
await pageObjects.svlCommonNavigation.sidenav.clickLink({ navId: 'management' });
|
||||
await pageObjects.svlCommonNavigation.sidenav.clickPanelLink('management:ingest_pipelines');
|
||||
});
|
||||
|
|
|
@ -43,7 +43,9 @@ export default ({ getPageObject, getService }: FtrProviderContext) => {
|
|||
|
||||
const navigateToConnectors = async () => {
|
||||
await svlSearchNavigation.navigateToLandingPage();
|
||||
await svlCommonNavigation.sidenav.openSection('project_settings_project_nav');
|
||||
await svlCommonNavigation.sidenav.openSection(
|
||||
'search_project_nav_footer.project_settings_project_nav'
|
||||
);
|
||||
await svlCommonNavigation.sidenav.clickLink({ deepLinkId: 'management' });
|
||||
await testSubjects.click('app-card-triggersActionsConnectors');
|
||||
};
|
||||
|
|
|
@ -78,7 +78,9 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
|
|||
it('navigates to maintenance windows', async () => {
|
||||
await svlCommonPage.loginAsAdmin();
|
||||
await svlSecNavigation.navigateToLandingPage();
|
||||
await svlCommonNavigation.sidenav.openSection('category-management');
|
||||
await svlCommonNavigation.sidenav.openSection(
|
||||
'security_solution_nav_footer.category-management'
|
||||
);
|
||||
await svlCommonNavigation.sidenav.clickLink({ navId: 'stack_management' });
|
||||
await svlCommonNavigation.sidenav.clickPanelLink('management:maintenanceWindows');
|
||||
await svlCommonNavigation.breadcrumbs.expectBreadcrumbTexts([
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue