[8.8] [Enterprise Search][Search Application] Add documentation tab in Connect (#157417) (#157750)

# Backport

This will backport the following commits from `main` to `8.8`:
- [[Enterprise Search][Search Application] Add documentation tab in
Connect (#157417)](https://github.com/elastic/kibana/pull/157417)

<!--- Backport version: 8.9.7 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sqren/backport)

<!--BACKPORT [{"author":{"name":"Saarika
Bhasi","email":"55930906+saarikabhasi@users.noreply.github.com"},"sourceCommit":{"committedDate":"2023-05-15T13:37:11Z","message":"[Enterprise
Search][Search Application] Add documentation tab in Connect
(#157417)\n\n## Summary\r\n\r\nAdds Documentation page in
Connect\r\n\r\n<img width=\"1727\" alt=\"Documentation page in
connect\"\r\nsrc=\"135462f2-f245-4c51-ba81-2b7224dbc0f7\">\r\n\r\n[Edit]
Updated screen after adding review suggestion\r\n\r\n\r\n\r\n<img
width=\"1727\" alt=\"Documentation page in connect-after
edit\"\r\nsrc=\"427ba17f-40d0-41da-8eba-2d9770d4f16e\">","sha":"8c3b61045abaefe9b4672292e4f5e4588b628c3c","branchLabelMapping":{"^v8.9.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:EnterpriseSearch","v8.8.0","v8.9.0"],"number":157417,"url":"https://github.com/elastic/kibana/pull/157417","mergeCommit":{"message":"[Enterprise
Search][Search Application] Add documentation tab in Connect
(#157417)\n\n## Summary\r\n\r\nAdds Documentation page in
Connect\r\n\r\n<img width=\"1727\" alt=\"Documentation page in
connect\"\r\nsrc=\"135462f2-f245-4c51-ba81-2b7224dbc0f7\">\r\n\r\n[Edit]
Updated screen after adding review suggestion\r\n\r\n\r\n\r\n<img
width=\"1727\" alt=\"Documentation page in connect-after
edit\"\r\nsrc=\"427ba17f-40d0-41da-8eba-2d9770d4f16e\">","sha":"8c3b61045abaefe9b4672292e4f5e4588b628c3c"}},"sourceBranch":"main","suggestedTargetBranches":["8.8"],"targetPullRequestStates":[{"branch":"8.8","label":"v8.8.0","labelRegex":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v8.9.0","labelRegex":"^v8.9.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/157417","number":157417,"mergeCommit":{"message":"[Enterprise
Search][Search Application] Add documentation tab in Connect
(#157417)\n\n## Summary\r\n\r\nAdds Documentation page in
Connect\r\n\r\n<img width=\"1727\" alt=\"Documentation page in
connect\"\r\nsrc=\"135462f2-f245-4c51-ba81-2b7224dbc0f7\">\r\n\r\n[Edit]
Updated screen after adding review suggestion\r\n\r\n\r\n\r\n<img
width=\"1727\" alt=\"Documentation page in connect-after
edit\"\r\nsrc=\"427ba17f-40d0-41da-8eba-2d9770d4f16e\">","sha":"8c3b61045abaefe9b4672292e4f5e4588b628c3c"}}]}]
BACKPORT-->
This commit is contained in:
Saarika Bhasi 2023-05-15 12:29:52 -04:00 committed by GitHub
parent f2529c838e
commit 38ad70ebe9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 235 additions and 3 deletions

View file

@ -15,9 +15,9 @@ import { i18n } from '@kbn/i18n';
import { generateEncodedPath } from '../../../../shared/encode_path_params';
import { KibanaLogic } from '../../../../shared/kibana';
import {
SEARCH_APPLICATION_CONTENT_PATH,
EngineViewTabs,
SearchApplicationConnectTabs,
SEARCH_APPLICATION_CONNECT_PATH,
} from '../../../routes';
import { EnterpriseSearchEnginesPageTemplate } from '../../layout/engines_page_template';
@ -27,6 +27,7 @@ import { EngineViewLogic } from '../engine_view_logic';
import { SearchApplicationAPI } from './search_application_api';
import '../search_application_layout.scss';
import { SearchApplicationDocumentation } from './search_application_documentation';
const pageTitle = i18n.translate(
'xpack.enterpriseSearch.content.searchApplications.connect.pageTitle',
@ -40,11 +41,19 @@ const API_TAB_TITLE = i18n.translate(
defaultMessage: 'API',
}
);
const DOCUMENTATION_TAB_TITLE = i18n.translate(
'xpack.enterpriseSearch.content.searchApplications.connect.documentationTabTitle',
{
defaultMessage: 'Documentation',
}
);
const ConnectTabs: string[] = Object.values(SearchApplicationConnectTabs);
const getTabBreadCrumb = (tabId: string) => {
switch (tabId) {
case SearchApplicationConnectTabs.API:
return API_TAB_TITLE;
case SearchApplicationConnectTabs.DOCUMENTATION:
return DOCUMENTATION_TAB_TITLE;
default:
return tabId;
}
@ -55,14 +64,16 @@ export const EngineConnect: React.FC = () => {
const { connectTabId = SearchApplicationConnectTabs.API } = useParams<{
connectTabId?: string;
}>();
const onTabClick = (tab: SearchApplicationConnectTabs) => () => {
KibanaLogic.values.navigateToUrl(
generateEncodedPath(SEARCH_APPLICATION_CONTENT_PATH, {
engineName,
generateEncodedPath(SEARCH_APPLICATION_CONNECT_PATH, {
connectTabId: tab,
engineName,
})
);
};
if (!ConnectTabs.includes(connectTabId)) {
return (
<EnterpriseSearchEnginesPageTemplate
@ -98,11 +109,19 @@ export const EngineConnect: React.FC = () => {
label: API_TAB_TITLE,
onClick: onTabClick(SearchApplicationConnectTabs.API),
},
{
isSelected: connectTabId === SearchApplicationConnectTabs.DOCUMENTATION,
label: DOCUMENTATION_TAB_TITLE,
onClick: onTabClick(SearchApplicationConnectTabs.DOCUMENTATION),
},
],
}}
engineName={engineName}
>
{connectTabId === SearchApplicationConnectTabs.API && <SearchApplicationAPI />}
{connectTabId === SearchApplicationConnectTabs.DOCUMENTATION && (
<SearchApplicationDocumentation />
)}
</EnterpriseSearchEnginesPageTemplate>
);
};

View file

@ -0,0 +1,212 @@
/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import React from 'react';
import {
EuiFlexGroup,
EuiFlexItem,
EuiIcon,
EuiImage,
EuiLink,
EuiPanel,
EuiSpacer,
EuiText,
EuiTitle,
} from '@elastic/eui';
import { i18n } from '@kbn/i18n';
import welcomeGraphicLight from '../../../../../assets/images/welcome_light.svg';
import { docLinks } from '../../../../shared/doc_links';
export const SearchApplicationDocumentation = () => {
return (
<EuiPanel color="transparent">
<EuiFlexGroup justifyContent="spaceBetween" direction="row">
<EuiFlexGroup direction="column">
<EuiImage size="l" float="left" src={welcomeGraphicLight} alt="" />
<EuiText>
<h2>
{i18n.translate(
'xpack.enterpriseSearch.content.searchApplication.documentation.searchApplication.title',
{
defaultMessage: 'Learn more about Search Applications',
}
)}
</h2>
</EuiText>
<EuiText>
<p>
{i18n.translate(
'xpack.enterpriseSearch.content.searchApplication.documentation.searchApplication.description',
{
defaultMessage:
'Search Applications help make your Elasticsearch data easily searchable for end users.',
}
)}
</p>
</EuiText>
<EuiLink href={docLinks.searchApplications} external>
{i18n.translate(
'xpack.enterpriseSearch.content.searchApplication.documentation.searchApplication.readDocumentation',
{
defaultMessage: 'Read our documentation',
}
)}
</EuiLink>
</EuiFlexGroup>
<EuiFlexGroup justifyContent="spaceBetween" direction="column">
<EuiFlexItem grow>
<EuiPanel grow paddingSize="l">
<EuiFlexGroup direction="row">
<EuiFlexItem grow={false}>
<EuiIcon type="lock" size="l" />
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiTitle size="s">
<EuiText>
{i18n.translate(
'xpack.enterpriseSearch.content.searchApplication.documentation.manageAPIKeys.title',
{ defaultMessage: 'Manage API Keys' }
)}
</EuiText>
</EuiTitle>
</EuiFlexItem>
</EuiFlexGroup>
<EuiSpacer />
<EuiFlexGroup direction="column" justifyContent="spaceBetween" gutterSize="m">
<EuiFlexItem grow={false}>
<EuiText>
<p>
{i18n.translate(
'xpack.enterpriseSearch.content.searchApplication.documentation.manageAPIKeys.description',
{
defaultMessage:
'API keys provide a secure way to control access to Elasticsearch data and functionalities, and to limit access to specific indices or actions.',
}
)}
</p>
</EuiText>
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiText>
<EuiLink href={docLinks.apiKeys} external>
{i18n.translate(
'xpack.enterpriseSearch.content.searchApplication.documentation.manageAPIKeys.learnMore',
{
defaultMessage: 'Learn more',
}
)}
</EuiLink>
</EuiText>
</EuiFlexItem>
</EuiFlexGroup>
</EuiPanel>
</EuiFlexItem>
<EuiFlexItem grow>
<EuiPanel grow paddingSize="l">
<EuiFlexGroup direction="row">
<EuiFlexItem grow={false}>
<EuiIcon type="keyboard" size="l" />
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiTitle size="s">
<EuiText>
{i18n.translate(
'xpack.enterpriseSearch.content.searchApplication.documentation.languageClients.title',
{ defaultMessage: 'Build with language clients' }
)}
</EuiText>
</EuiTitle>
</EuiFlexItem>
</EuiFlexGroup>
<EuiSpacer />
<EuiFlexGroup direction="column" justifyContent="spaceBetween" gutterSize="m">
<EuiFlexItem grow={false}>
<EuiText>
<p>
{i18n.translate(
'xpack.enterpriseSearch.content.searchApplication.documentation.languageClients.description',
{
defaultMessage:
'Develop for Elasticsearch in your preferred programming languages through our first and third-party supported clients.',
}
)}
</p>
</EuiText>
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiText>
<EuiLink href={docLinks.clientsGuide} external>
{i18n.translate(
'xpack.enterpriseSearch.content.searchApplication.documentation.languageClients.learnMore',
{
defaultMessage: 'Learn more',
}
)}
</EuiLink>
</EuiText>
</EuiFlexItem>
</EuiFlexGroup>
</EuiPanel>
</EuiFlexItem>
<EuiFlexItem grow>
<EuiPanel grow paddingSize="l">
<EuiFlexGroup direction="row">
<EuiFlexItem grow={false}>
<EuiIcon type="securitySignal" size="l" />
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiTitle size="s">
<EuiText>
{i18n.translate(
'xpack.enterpriseSearch.content.searchApplication.documentation.searchInsights.title',
{ defaultMessage: 'Search insights' }
)}
</EuiText>
</EuiTitle>
</EuiFlexItem>
</EuiFlexGroup>
<EuiSpacer />
<EuiFlexGroup direction="column" justifyContent="spaceBetween" gutterSize="m">
<EuiFlexItem grow={false}>
<EuiText>
<p>
{i18n.translate(
'xpack.enterpriseSearch.content.searchApplication.documentation.searchInsights.description',
{
defaultMessage:
'Gain insights into the performance of your search application with Behavioral Analytics.',
}
)}
</p>
</EuiText>
</EuiFlexItem>
<EuiFlexItem grow={false}>
<EuiText>
<EuiLink href={docLinks.behavioralAnalytics} external>
{i18n.translate(
'xpack.enterpriseSearch.content.searchApplication.documentation.searchInsights.learnMore',
{
defaultMessage: 'Learn more',
}
)}
</EuiLink>
</EuiText>
</EuiFlexItem>
</EuiFlexGroup>
</EuiPanel>
</EuiFlexItem>
</EuiFlexGroup>
</EuiFlexGroup>
</EuiPanel>
);
};

View file

@ -20,6 +20,7 @@ export const ENGINE_TAB_PATH = `${ENGINE_PATH}/:tabId`;
export const SEARCH_APPLICATION_CONNECT_PATH = `${ENGINE_PATH}/${EngineViewTabs.CONNECT}/:connectTabId`;
export enum SearchApplicationConnectTabs {
API = 'api',
DOCUMENTATION = 'documentation',
}
export const SEARCH_APPLICATION_CONTENT_PATH = `${ENGINE_PATH}/${EngineViewTabs.CONTENT}/:contentTabId`;
export enum SearchApplicationContentTabs {