Skip to content

Commit

Permalink
Showing Web Crawler card pointing out to GH repo when no ent-search n…
Browse files Browse the repository at this point in the history
…ode detected
  • Loading branch information
JoseLuisGJ committed Oct 2, 2024
1 parent 67f3043 commit b7bf13c
Show file tree
Hide file tree
Showing 4 changed files with 97 additions and 22 deletions.
4 changes: 4 additions & 0 deletions x-pack/plugins/enterprise_search/common/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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'];
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,16 @@ import {
IconType,
} from '@elastic/eui';

import { i18n } from '@kbn/i18n';

import { EuiLinkTo } from '../../../../shared/react_router_helpers';

interface IngestionCardProps {
buttonIcon: IconType;
buttonLabel: string;
description: string;
href?: string;
isBeta?: boolean;
isDisabled?: boolean;
logo: IconType;
onClick?: () => void;
Expand All @@ -37,13 +40,23 @@ export const IngestionCard: React.FC<IngestionCardProps> = ({
description,
href,
isDisabled,
isBeta,
logo,
onClick,
title,
}) => {
return (
<EuiCard
hasBorder
betaBadgeProps={
isBeta
? {
label: i18n.translate('xpack.enterpriseSearch.ingestionCard.betaBadgeLabel', {
defaultMessage: 'Beta',
}),
}
: undefined
}
isDisabled={isDisabled}
textAlign="left"
titleElement="h3"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import { i18n } from '@kbn/i18n';
import {
ENTERPRISE_SEARCH_CONTENT_PLUGIN,
ENTERPRISE_SEARCH_ELASTICSEARCH_URL,
CRAWLER,
} from '../../../../../common/constants';

import apiLogo from '../../../../assets/images/api_image.png';
Expand All @@ -37,6 +38,7 @@ import { HttpLogic } from '../../../shared/http/http_logic';

import { ConnectorIcon } from '../../../shared/icons/connector';
import { CrawlerIcon } from '../../../shared/icons/crawler';
import { GithubIcon } from '../../../shared/icons/github_icon';
import { KibanaLogic } from '../../../shared/kibana';

export const IngestionSelector: React.FC = () => {
Expand Down Expand Up @@ -75,28 +77,52 @@ export const IngestionSelector: React.FC = () => {
</EuiFlexItem>
{productFeatures.hasWebCrawler && (
<EuiFlexItem>
<IngestionCard
buttonLabel={i18n.translate(
'xpack.enterpriseSearch.ingestSelector.method.crawlerButtonLabel',
{
defaultMessage: 'Crawl URL',
}
)}
buttonIcon={CrawlerIcon}
description={i18n.translate(
'xpack.enterpriseSearch.ingestSelector.method.crawler.description',
{
defaultMessage:
'Discover, extract, and index searchable content from websites and knowledge bases.',
}
)}
href={generatePath(ENTERPRISE_SEARCH_CONTENT_PLUGIN.URL + NEW_CRAWLER_PATH)}
isDisabled={crawlerDisabled}
logo={crawlerLogo}
title={i18n.translate('xpack.enterpriseSearch.ingestSelector.method.crawler', {
defaultMessage: 'Web Crawler',
})}
/>
{crawlerDisabled ? (
<IngestionCard
buttonLabel={i18n.translate(
'xpack.enterpriseSearch.ingestSelector.method.sourceCodeButtonLabel',
{
defaultMessage: 'Source code',
}
)}
buttonIcon={GithubIcon}
description={i18n.translate(
'xpack.enterpriseSearch.ingestSelector.method.crawler.description',
{
defaultMessage:
'Discover, extract, and index searchable content from websites and knowledge bases.',
}
)}
href={CRAWLER.github_repo}
isBeta
logo={crawlerLogo}
title={i18n.translate('xpack.enterpriseSearch.ingestSelector.method.crawler', {
defaultMessage: 'Web Crawler',
})}
/>
) : (
<IngestionCard
buttonLabel={i18n.translate(
'xpack.enterpriseSearch.ingestSelector.method.crawlerButtonLabel',
{
defaultMessage: 'Crawl URL',
}
)}
buttonIcon={CrawlerIcon}
description={i18n.translate(
'xpack.enterpriseSearch.ingestSelector.method.crawler.description',
{
defaultMessage:
'Discover, extract, and index searchable content from websites and knowledge bases.',
}
)}
href={generatePath(ENTERPRISE_SEARCH_CONTENT_PLUGIN.URL + NEW_CRAWLER_PATH)}
logo={crawlerLogo}
title={i18n.translate('xpack.enterpriseSearch.ingestSelector.method.crawler', {
defaultMessage: 'Web Crawler',
})}
/>
)}
</EuiFlexItem>
)}
{productFeatures.hasConnectors && (
Expand Down
Original file line number Diff line number Diff line change
@@ -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 (
<svg
xmlns="http://www.w3.org/2000/svg"
width="16"
height="16"
fill="currentColor"
viewBox="0 0 16 16"
>
<g clipPath="url(#a)">
<path
fill="currentColor"
d="M8 0C3.582 0 0 3.672 0 8.2c0 3.624 2.292 6.697 5.471 7.781.4.075.546-.178.546-.394 0-.196-.007-.842-.011-1.527-2.225.495-2.695-.967-2.695-.967-.364-.947-.888-1.2-.888-1.2-.727-.508.055-.498.055-.498.803.057 1.226.845 1.226.845.714 1.253 1.873.891 2.328.68.073-.528.28-.89.508-1.094-1.776-.207-3.644-.911-3.644-4.053 0-.896.312-1.627.823-2.2-.082-.21-.357-1.043.079-2.172 0 0 .67-.22 2.2.84A7.441 7.441 0 0 1 8 3.967c.68.003 1.364.094 2.003.277 1.526-1.062 2.198-.841 2.198-.841.438 1.13.162 1.963.08 2.17.513.574.822 1.305.822 2.2 0 3.15-1.87 3.845-3.653 4.048.288.254.543.753.543 1.517 0 1.096-.01 1.98-.01 2.25 0 .219.145.474.55.394C13.71 14.895 16 11.821 16 8.201 16 3.67 12.418 0 8 0Z"
/>
</g>
<defs>
<clipPath id="a">
<path fill="currentColor" d="M0 0h16v16H0z" />
</clipPath>
</defs>
</svg>
);
};

0 comments on commit b7bf13c

Please sign in to comment.