diff --git a/x-pack/plugins/enterprise_search/common/constants.ts b/x-pack/plugins/enterprise_search/common/constants.ts index 10b472b1efca1..795237ef9b427 100644 --- a/x-pack/plugins/enterprise_search/common/constants.ts +++ b/x-pack/plugins/enterprise_search/common/constants.ts @@ -281,5 +281,9 @@ export const PLUGIN_ID = 'enterpriseSearch'; export const CONNECTOR_NATIVE_TYPE = 'native'; export const CONNECTOR_CLIENTS_TYPE = 'connector_clients'; +export const CRAWLER = { + github_repo: 'https://github.com/elastic/crawler', +}; + // TODO remove this once the connector service types are no longer in "example" state export const EXAMPLE_CONNECTOR_SERVICE_TYPES = ['opentext_documentum']; diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/crawler_empty_state.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/crawler_empty_state.tsx index 8e5b91b94e39b..5a03d0560dfbf 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/crawler_empty_state.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/connectors/crawler_empty_state.tsx @@ -11,7 +11,9 @@ import { useValues } from 'kea'; import { EuiButton, EuiEmptyPrompt, EuiPanel } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; +import { CRAWLER } from '../../../../../common/constants'; import { HttpLogic } from '../../../shared/http'; +import { GithubIcon } from '../../../shared/icons/github_icon'; import { KibanaLogic } from '../../../shared/kibana'; import { NEW_CRAWLER_PATH } from '../../routes'; @@ -40,19 +42,36 @@ export const CrawlerEmptyState: React.FC = () => {

} actions={ - KibanaLogic.values.navigateToUrl(NEW_CRAWLER_PATH)} - > - {i18n.translate('xpack.enterpriseSearch.crawlerEmptyState.newWebCrawlerButtonLabel', { - defaultMessage: 'New web crawler', - })} - + Boolean(errorConnectingMessage) ? ( + + {i18n.translate( + 'xpack.enterpriseSearch.crawlerEmptyState.openSourceCrawlerButtonLabel', + { + defaultMessage: 'Source code', + } + )} + + ) : ( + KibanaLogic.values.navigateToUrl(NEW_CRAWLER_PATH)} + > + {i18n.translate('xpack.enterpriseSearch.crawlerEmptyState.newWebCrawlerButtonLabel', { + defaultMessage: 'New web crawler', + })} + + ) } /> diff --git a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/ingestion_card/ingestion_card.tsx b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/ingestion_card/ingestion_card.tsx index 0d01eea4e6787..94bbc515f92bd 100644 --- a/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/ingestion_card/ingestion_card.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/enterprise_search_content/components/shared/ingestion_card/ingestion_card.tsx @@ -18,6 +18,8 @@ import { IconType, } from '@elastic/eui'; +import { i18n } from '@kbn/i18n'; + import { EuiLinkTo } from '../../../../shared/react_router_helpers'; interface IngestionCardProps { @@ -25,6 +27,7 @@ interface IngestionCardProps { buttonLabel: string; description: string; href?: string; + isBeta?: boolean; isDisabled?: boolean; logo: IconType; onClick?: () => void; @@ -37,6 +40,7 @@ export const IngestionCard: React.FC = ({ description, href, isDisabled, + isBeta, logo, onClick, title, @@ -44,6 +48,15 @@ export const IngestionCard: React.FC = ({ return ( { @@ -76,13 +78,23 @@ export const IngestionSelector: React.FC = () => { {productFeatures.hasWebCrawler && ( { 'Discover, extract, and index searchable content from websites and knowledge bases.', } )} - href={generatePath(ENTERPRISE_SEARCH_CONTENT_PLUGIN.URL + NEW_CRAWLER_PATH)} - isDisabled={crawlerDisabled} + href={ + crawlerDisabled + ? CRAWLER.github_repo + : generatePath(ENTERPRISE_SEARCH_CONTENT_PLUGIN.URL + NEW_CRAWLER_PATH) + } + isBeta={crawlerDisabled} logo={crawlerLogo} title={i18n.translate('xpack.enterpriseSearch.ingestSelector.method.crawler', { defaultMessage: 'Web Crawler', diff --git a/x-pack/plugins/enterprise_search/public/applications/shared/icons/github_icon.tsx b/x-pack/plugins/enterprise_search/public/applications/shared/icons/github_icon.tsx new file mode 100644 index 0000000000000..0fc9160272838 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/shared/icons/github_icon.tsx @@ -0,0 +1,32 @@ +/* + * 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'; + +export const GithubIcon = () => { + return ( + + + + + + + + + + + ); +}; diff --git a/x-pack/plugins/translations/translations/fr-FR.json b/x-pack/plugins/translations/translations/fr-FR.json index 0031fbbb5666f..05f3ec249b7a2 100644 --- a/x-pack/plugins/translations/translations/fr-FR.json +++ b/x-pack/plugins/translations/translations/fr-FR.json @@ -17393,7 +17393,6 @@ "xpack.enterpriseSearch.ingestSelector.method.connectors.description": "Extraire, transformer, indexer et synchroniser des données issues d'une source de données tiers.", "xpack.enterpriseSearch.ingestSelector.method.crawler": "Robot d'indexation", "xpack.enterpriseSearch.ingestSelector.method.crawler.description": "Découvrir, extraire et indexer du contenu interrogeable provenant de sites web et de bases de connaissances.", - "xpack.enterpriseSearch.ingestSelector.method.crawlerButtonLabel": "Indexer l'URL", "xpack.enterpriseSearch.ingestSelector.method.fileUpload": "Charger un fichier", "xpack.enterpriseSearch.ingestSelector.method.fileUpload.description": "Fichiers texte délimités, tels que CSV et TSV, JSON délimité par une nouvelle ligne.", "xpack.enterpriseSearch.ingestSelector.method.fileUploadLabel": "Choisir un fichier", diff --git a/x-pack/plugins/translations/translations/ja-JP.json b/x-pack/plugins/translations/translations/ja-JP.json index 801f3aed69cd6..57f187a585285 100644 --- a/x-pack/plugins/translations/translations/ja-JP.json +++ b/x-pack/plugins/translations/translations/ja-JP.json @@ -17139,7 +17139,6 @@ "xpack.enterpriseSearch.ingestSelector.method.connectors.description": "サードパーティのデータソースからデータを抽出、変換、インデックス化、同期します。", "xpack.enterpriseSearch.ingestSelector.method.crawler": "Webクローラー", "xpack.enterpriseSearch.ingestSelector.method.crawler.description": "Webサイトやナレッジベースから検索可能なコンテンツを検出、抽出、インデックス化します。", - "xpack.enterpriseSearch.ingestSelector.method.crawlerButtonLabel": "クロールURL", "xpack.enterpriseSearch.ingestSelector.method.fileUpload": "ファイルをアップロード", "xpack.enterpriseSearch.ingestSelector.method.fileUpload.description": "CSVやTSV、改行区切りのJSONなどの区切られたテキストファイル。", "xpack.enterpriseSearch.ingestSelector.method.fileUploadLabel": "ファイルを選択", diff --git a/x-pack/plugins/translations/translations/zh-CN.json b/x-pack/plugins/translations/translations/zh-CN.json index 312eb075003c8..90a1a4a0f22ed 100644 --- a/x-pack/plugins/translations/translations/zh-CN.json +++ b/x-pack/plugins/translations/translations/zh-CN.json @@ -17168,7 +17168,6 @@ "xpack.enterpriseSearch.ingestSelector.method.connectors.description": "提取、转换、索引和同步来自第三方数据源的数据。", "xpack.enterpriseSearch.ingestSelector.method.crawler": "网络爬虫", "xpack.enterpriseSearch.ingestSelector.method.crawler.description": "发现、提取和索引网站和知识库中的可搜索内容。", - "xpack.enterpriseSearch.ingestSelector.method.crawlerButtonLabel": "爬网 URL", "xpack.enterpriseSearch.ingestSelector.method.fileUpload": "上传文件", "xpack.enterpriseSearch.ingestSelector.method.fileUpload.description": "分隔的文本文件,例如 CSV 和 TSV、换行符分隔的 JSON。", "xpack.enterpriseSearch.ingestSelector.method.fileUploadLabel": "选择文件",