mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 09:48:58 -04:00
[ResponseOps][Serverless]Maintenance window page displays dead breadcrumb for management (#201147)
Closes https://github.com/elastic/kibana/issues/189318 ## Summary - the issue was resolved by using useKibana.services.serverless.setBreadcrumbs instead of chrome.setBreadcrumbs, this ensures that breadcrumb functionality is correctly handled within serverless observability. https://github.com/user-attachments/assets/d805b54f-74b4-424f-8304-dced09718ebb
This commit is contained in:
parent
1c6b356fc5
commit
5a67a033a3
5 changed files with 45 additions and 20 deletions
|
@ -1,19 +1,14 @@
|
|||
{
|
||||
"type": "plugin",
|
||||
"id": "@kbn/alerting-plugin",
|
||||
"owner": [
|
||||
"@elastic/response-ops"
|
||||
],
|
||||
"owner": ["@elastic/response-ops"],
|
||||
"group": "platform",
|
||||
"visibility": "shared",
|
||||
"plugin": {
|
||||
"id": "alerting",
|
||||
"browser": true,
|
||||
"server": true,
|
||||
"configPath": [
|
||||
"xpack",
|
||||
"alerting"
|
||||
],
|
||||
"configPath": ["xpack", "alerting"],
|
||||
"requiredPlugins": [
|
||||
"actions",
|
||||
"data",
|
||||
|
@ -35,11 +30,9 @@
|
|||
"usageCollection",
|
||||
"security",
|
||||
"monitoringCollection",
|
||||
"spaces"
|
||||
"spaces",
|
||||
"serverless"
|
||||
],
|
||||
"extraPublicDirs": [
|
||||
"common",
|
||||
"common/parse_duration"
|
||||
]
|
||||
"extraPublicDirs": ["common", "common/parse_duration"]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -72,19 +72,25 @@ export const useBreadcrumbs = (pageDeepLink: MaintenanceWindowDeepLinkIds) => {
|
|||
services: {
|
||||
chrome: { docTitle, setBreadcrumbs },
|
||||
application: { navigateToUrl },
|
||||
serverless,
|
||||
},
|
||||
} = useKibana();
|
||||
|
||||
const setTitle = docTitle.change;
|
||||
const { getAppUrl } = useNavigation(MANAGEMENT_APP_ID);
|
||||
|
||||
useEffect(() => {
|
||||
const breadcrumbs = [
|
||||
{
|
||||
text: i18n.translate('xpack.alerting.breadcrumbs.stackManagementLinkText', {
|
||||
defaultMessage: 'Stack Management',
|
||||
}),
|
||||
href: getAppUrl(),
|
||||
},
|
||||
...(!serverless
|
||||
? [
|
||||
{
|
||||
text: i18n.translate('xpack.alerting.breadcrumbs.stackManagementLinkText', {
|
||||
defaultMessage: 'Stack Management',
|
||||
}),
|
||||
href: getAppUrl(),
|
||||
},
|
||||
]
|
||||
: []),
|
||||
...(topLevelBreadcrumb[pageDeepLink]
|
||||
? [
|
||||
{
|
||||
|
@ -98,11 +104,14 @@ export const useBreadcrumbs = (pageDeepLink: MaintenanceWindowDeepLinkIds) => {
|
|||
},
|
||||
];
|
||||
|
||||
if (setBreadcrumbs) {
|
||||
if (serverless?.setBreadcrumbs) {
|
||||
serverless.setBreadcrumbs(breadcrumbs);
|
||||
} else {
|
||||
setBreadcrumbs(addClickHandlers(breadcrumbs, navigateToUrl));
|
||||
}
|
||||
|
||||
if (setTitle) {
|
||||
setTitle(getTitleFromBreadCrumbs(breadcrumbs));
|
||||
}
|
||||
}, [pageDeepLink, getAppUrl, navigateToUrl, setBreadcrumbs, setTitle]);
|
||||
}, [pageDeepLink, getAppUrl, navigateToUrl, setBreadcrumbs, setTitle, serverless]);
|
||||
};
|
||||
|
|
|
@ -12,6 +12,7 @@ import { SpacesPluginStart } from '@kbn/spaces-plugin/public';
|
|||
import { LicensingPluginStart } from '@kbn/licensing-plugin/public';
|
||||
import type { DataPublicPluginStart } from '@kbn/data-plugin/public';
|
||||
import type { UnifiedSearchPublicPluginStart } from '@kbn/unified-search-plugin/public';
|
||||
import type { ServerlessPluginStart } from '@kbn/serverless/public';
|
||||
|
||||
import { AlertNavigationRegistry, AlertNavigationHandler } from './alert_navigation_registry';
|
||||
import { loadRule, loadRuleType } from './services/rule_api';
|
||||
|
@ -68,6 +69,7 @@ export interface AlertingPluginStart {
|
|||
spaces: SpacesPluginStart;
|
||||
unifiedSearch: UnifiedSearchPublicPluginStart;
|
||||
data: DataPublicPluginStart;
|
||||
serverless?: ServerlessPluginStart;
|
||||
}
|
||||
|
||||
export interface AlertingUIConfig {
|
||||
|
|
|
@ -132,5 +132,15 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
|
|||
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.clickLink({ deepLinkId: 'management' });
|
||||
await testSubjects.click('app-card-maintenanceWindows');
|
||||
await svlCommonNavigation.breadcrumbs.expectBreadcrumbTexts([
|
||||
'Management',
|
||||
'Maintenance Windows',
|
||||
]);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
|
@ -74,5 +74,16 @@ export default function ({ getPageObject, getService }: FtrProviderContext) {
|
|||
await testSubjects.existOrFail('cases-all-title');
|
||||
});
|
||||
});
|
||||
it('navigates to maintenance windows', async () => {
|
||||
await svlCommonPage.loginAsAdmin();
|
||||
await svlSecNavigation.navigateToLandingPage();
|
||||
await svlCommonNavigation.sidenav.openSection('category-management');
|
||||
await svlCommonNavigation.sidenav.clickLink({ deepLinkId: 'management' });
|
||||
await testSubjects.click('app-card-maintenanceWindows');
|
||||
await svlCommonNavigation.breadcrumbs.expectBreadcrumbTexts([
|
||||
'Stack Management',
|
||||
'Maintenance Windows',
|
||||
]);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue