From 6c5e07aa4fc78d6df267d8b8a32b972b80e5902a Mon Sep 17 00:00:00 2001 From: Byron Hulcher Date: Wed, 24 Nov 2021 17:34:55 -0500 Subject: [PATCH 01/16] New AccordionList component --- .../accordion_list.test.tsx | 53 ++++++++++++++++ .../crawl_details_flyout/accordion_list.tsx | 63 +++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.test.tsx create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.test.tsx new file mode 100644 index 0000000000000..55f48c4a7e5e4 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.test.tsx @@ -0,0 +1,53 @@ +/* + * 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 '../../../../__mocks__/engine_logic.mock'; + +import React from 'react'; + +import { shallow, ShallowWrapper } from 'enzyme'; + +import { EuiAccordion, EuiIcon, EuiTitle, EuiInMemoryTable } from '@elastic/eui'; + +import { AccordionList } from './accordion_list'; + +const MOCK_PROPS = { + title: 'Test Items', + iconType: 'globe', + items: ['first item', 'second item'], +}; + +describe('AccordionList', () => { + let wrapper: ShallowWrapper; + + beforeAll(() => { + wrapper = shallow(); + }); + + it('renders as an accordion with the passed in title and icon', () => { + expect(wrapper.is(EuiAccordion)).toBe(true); + + const buttonContent = shallow(wrapper.prop('buttonContent')); + + expect(buttonContent.find(EuiIcon).prop('type')).toEqual('globe'); + expect(buttonContent.find(EuiTitle).children().text()).toEqual('Test Items'); + }); + + it('shows the item count', () => { + const extraActionContent = shallow(wrapper.prop('extraAction')); + + expect(extraActionContent.text()).toEqual('2'); + }); + + it('contains an table displaying the items', () => { + const table = wrapper.find(EuiInMemoryTable); + + expect(table.prop('items')).toEqual([{ item: 'first item' }, { item: 'second item' }]); + + expect(table.prop('columns')[0].render({ item: 'first item' })).toEqual('first item'); + }); +}); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx new file mode 100644 index 0000000000000..305ff6a4ecf20 --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx @@ -0,0 +1,63 @@ +/* + * 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 { + EuiAccordion, + EuiFlexGroup, + EuiFlexItem, + EuiIcon, + EuiInMemoryTable, + EuiNotificationBadge, + EuiTitle, + IconType, + useGeneratedHtmlId, +} from '@elastic/eui'; + +interface Props { + iconType: IconType; + items: string[]; + title: string; +} + +export const AccordionList: React.FC = ({ iconType, items, title }) => { + const accordionId = useGeneratedHtmlId({ + prefix: 'accordionList', + }); + + return ( + + + + + + +

{title}

+
+
+ + } + id={accordionId} + extraAction={{items.length}} + > + ({ item }))} + columns={[ + { + render: ({ item }: { item: string }) => item, + }, + ]} + pagination={{ + hidePerPageOptions: true, + }} + /> +
+ ); +}; From a6734de4ba4bc63422fe0eef719f231317aa9118 Mon Sep 17 00:00:00 2001 From: Byron Hulcher Date: Wed, 24 Nov 2021 17:41:51 -0500 Subject: [PATCH 02/16] Add a domains accordion list to the CrawlDetailsPreview --- .../crawl_details_preview.test.tsx | 44 +++++++++++++++++-- .../crawl_details_preview.tsx | 31 ++++++++++++- 2 files changed, 71 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx index d7c69e5445167..6f2abe27334ce 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx @@ -4,17 +4,55 @@ * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ +import { setMockValues } from '../../../../../__mocks__/kea_logic'; import React from 'react'; -import { shallow } from 'enzyme'; +import { shallow, ShallowWrapper } from 'enzyme'; +import { CrawlerStatus, CrawlType } from '../../types'; + +import { AccordionList } from './accordion_list'; import { CrawlDetailsPreview } from './crawl_details_preview'; +const MOCK_VALUES = { + crawlRequest: { + id: '507f1f77bcf86cd799439011', + status: CrawlerStatus.Pending, + createdAt: 'Mon, 31 Aug 2020 17:00:00 +0000', + beganAt: null, + completedAt: null, + type: CrawlType.Full, + crawlConfig: { + domainAllowlist: ['https://www.elastic.co', 'https://www.swiftype.com'], + }, + }, +}; + describe('CrawlDetailsPreview', () => { - it('is empty', () => { - const wrapper = shallow(); + it('is empty when a crawl request has not been loaded', () => { + setMockValues({ + crawlRequest: null, + }); + const wrapper = shallow(); expect(wrapper.isEmptyRender()).toBe(true); }); + + describe('when a crawl request has been loaded', () => { + let wrapper: ShallowWrapper; + + beforeAll(() => { + setMockValues(MOCK_VALUES); + wrapper = shallow(); + }); + + it('contains a list of domains', () => { + const domainList = wrapper.find(AccordionList).at(0); + + expect(domainList.prop('items')).toEqual( + MOCK_VALUES.crawlRequest.crawlConfig.domainAllowlist + ); + }); + }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx index 7fa95d920c17b..9fe44793cb028 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx @@ -7,4 +7,33 @@ import React from 'react'; -export const CrawlDetailsPreview: React.FC = () => null; +import { useValues } from 'kea'; + +import { i18n } from '@kbn/i18n'; + +import { CrawlDetailLogic } from '../../crawl_detail_logic'; + +import { AccordionList } from './accordion_list'; + +export const CrawlDetailsPreview: React.FC = () => { + const { crawlRequest } = useValues(CrawlDetailLogic); + + if (crawlRequest === null) { + return null; + } + + return ( + <> + + + ); +}; From 28af3ae56a7e1469fbed2ecb9f848734f8118d4c Mon Sep 17 00:00:00 2001 From: Byron Hulcher Date: Wed, 24 Nov 2021 17:49:50 -0500 Subject: [PATCH 03/16] Add seedUrls to CrawlConfig --- .../crawl_details_preview.test.tsx | 11 +++++++---- .../components/crawl_event_type_badge.test.tsx | 1 + .../crawler/components/crawl_requests_table.test.tsx | 2 ++ .../components/crawler/crawl_detail_logic.test.ts | 1 + .../components/crawler/crawler_logic.test.ts | 1 + .../components/crawler/crawler_overview.test.tsx | 2 ++ .../app_search/components/crawler/types.ts | 2 ++ .../app_search/components/crawler/utils.test.ts | 6 ++++++ .../app_search/components/crawler/utils.ts | 3 ++- 9 files changed, 24 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx index 6f2abe27334ce..8e6e2c279a4dc 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx @@ -10,12 +10,13 @@ import React from 'react'; import { shallow, ShallowWrapper } from 'enzyme'; +import { CrawlDetailValues } from '../../crawl_detail_logic'; import { CrawlerStatus, CrawlType } from '../../types'; import { AccordionList } from './accordion_list'; import { CrawlDetailsPreview } from './crawl_details_preview'; -const MOCK_VALUES = { +const MOCK_VALUES: Partial = { crawlRequest: { id: '507f1f77bcf86cd799439011', status: CrawlerStatus.Pending, @@ -25,6 +26,7 @@ const MOCK_VALUES = { type: CrawlType.Full, crawlConfig: { domainAllowlist: ['https://www.elastic.co', 'https://www.swiftype.com'], + seedUrls: [], }, }, }; @@ -50,9 +52,10 @@ describe('CrawlDetailsPreview', () => { it('contains a list of domains', () => { const domainList = wrapper.find(AccordionList).at(0); - expect(domainList.prop('items')).toEqual( - MOCK_VALUES.crawlRequest.crawlConfig.domainAllowlist - ); + expect(domainList.prop('items')).toEqual([ + 'https://www.elastic.co', + 'https://www.swiftype.com', + ]); }); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_event_type_badge.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_event_type_badge.test.tsx index b0ff75e73e86c..919dbb98182f4 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_event_type_badge.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_event_type_badge.test.tsx @@ -29,6 +29,7 @@ const MOCK_EVENT: CrawlEvent = { type: CrawlType.Full, crawlConfig: { domainAllowlist: ['https://www.elastic.co'], + seedUrls: [], }, }; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_requests_table.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_requests_table.test.tsx index bc5f8bf87e100..8e9e73f13abde 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_requests_table.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_requests_table.test.tsx @@ -33,6 +33,7 @@ const values: { events: CrawlEvent[] } = { type: CrawlType.Full, crawlConfig: { domainAllowlist: ['https://www.elastic.co'], + seedUrls: [], }, }, { @@ -45,6 +46,7 @@ const values: { events: CrawlEvent[] } = { type: CrawlType.Full, crawlConfig: { domainAllowlist: ['https://www.elastic.co'], + seedUrls: [], }, }, ], diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawl_detail_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawl_detail_logic.test.ts index 57816db01b58c..9be7cc7ea54fa 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawl_detail_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawl_detail_logic.test.ts @@ -33,6 +33,7 @@ const crawlRequestResponse: CrawlRequestWithDetailsFromServer = { type: CrawlType.Full, crawl_config: { domain_allowlist: [], + seed_urls: [], }, }; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_logic.test.ts index f1e8dc6a6efa4..6441d7ad75c78 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_logic.test.ts @@ -136,6 +136,7 @@ describe('CrawlerLogic', () => { type: CrawlType.Full, crawlConfig: { domainAllowlist: ['elastic.co'], + seedUrls: [], }, }, ], diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_overview.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_overview.test.tsx index 7c5510519d202..713a73af05b80 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_overview.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_overview.test.tsx @@ -78,6 +78,7 @@ const events: CrawlEventFromServer[] = [ type: CrawlType.Full, crawl_config: { domain_allowlist: ['moviedatabase.com', 'swiftype.com'], + seed_urls: [], }, }, { @@ -90,6 +91,7 @@ const events: CrawlEventFromServer[] = [ type: CrawlType.Partial, crawl_config: { domain_allowlist: ['swiftype.com'], + seed_urls: [], }, }, ]; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/types.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/types.ts index 6cdccfdc78633..9f3be6707c57a 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/types.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/types.ts @@ -201,10 +201,12 @@ export interface CrawlRequest { export interface CrawlConfig { domainAllowlist: string[]; + seedUrls: string[]; } export interface CrawlConfigFromServer { domain_allowlist: string[]; + seed_urls: string[]; } export type CrawlRequestWithDetailsFromServer = CrawlRequestFromServer & { diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.test.ts index c104312f19edc..29e53e1c2b428 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.test.ts @@ -139,6 +139,7 @@ describe('crawlRequestWithDetailsServerToClient', () => { type: CrawlType.Full, crawl_config: { domain_allowlist: [], + seed_urls: [], }, }; @@ -151,6 +152,7 @@ describe('crawlRequestWithDetailsServerToClient', () => { type: CrawlType.Full, crawlConfig: { domainAllowlist: [], + seedUrls: [], }, }; @@ -185,6 +187,7 @@ describe('crawlEventServerToClient', () => { type: CrawlType.Full, crawl_config: { domain_allowlist: [], + seed_urls: [], }, stage: 'crawl', }; @@ -198,6 +201,7 @@ describe('crawlEventServerToClient', () => { type: CrawlType.Full, crawlConfig: { domainAllowlist: [], + seedUrls: [], }, stage: 'crawl', }; @@ -264,6 +268,7 @@ describe('crawlerDataServerToClient', () => { type: CrawlType.Full, crawl_config: { domain_allowlist: ['https://www.elastic.co'], + seed_urls: [], }, }, ], @@ -317,6 +322,7 @@ describe('crawlerDataServerToClient', () => { type: 'full', crawlConfig: { domainAllowlist: ['https://www.elastic.co'], + seedUrls: [], }, }, ]); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.ts index 16e3dad5f46e9..fc21d36740011 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.ts @@ -85,10 +85,11 @@ export function crawlRequestServerToClient(crawlRequest: CrawlRequestFromServer) } export function crawlConfigServerToClient(crawlConfig: CrawlConfigFromServer): CrawlConfig { - const { domain_allowlist: domainAllowlist } = crawlConfig; + const { domain_allowlist: domainAllowlist, seed_urls: seedUrls } = crawlConfig; return { domainAllowlist, + seedUrls, }; } From 20950785a7c221aa72f3fe1020f4f291b4479d12 Mon Sep 17 00:00:00 2001 From: Byron Hulcher Date: Wed, 24 Nov 2021 17:54:06 -0500 Subject: [PATCH 04/16] Add a seed urls accordion list to the CrawlDetailsPreview --- .../crawl_details_preview.test.tsx | 11 ++++++++++- .../crawl_details_flyout/crawl_details_preview.tsx | 10 ++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx index 8e6e2c279a4dc..a28ee0d7409ac 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx @@ -26,7 +26,7 @@ const MOCK_VALUES: Partial = { type: CrawlType.Full, crawlConfig: { domainAllowlist: ['https://www.elastic.co', 'https://www.swiftype.com'], - seedUrls: [], + seedUrls: ['https://www.elastic.co/docs', 'https://www.swiftype.com/documentation'], }, }, }; @@ -57,5 +57,14 @@ describe('CrawlDetailsPreview', () => { 'https://www.swiftype.com', ]); }); + + it('contains a list of seed urls', () => { + const domainList = wrapper.find(AccordionList).at(1); + + expect(domainList.prop('items')).toEqual([ + 'https://www.elastic.co/docs', + 'https://www.swiftype.com/documentation', + ]); + }); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx index 9fe44793cb028..a44a6fd6b33a6 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx @@ -34,6 +34,16 @@ export const CrawlDetailsPreview: React.FC = () => { iconType="globe" items={crawlRequest.crawlConfig.domainAllowlist} /> + ); }; From 37d82e9da528774cb0990c66767f898e6a6ff363 Mon Sep 17 00:00:00 2001 From: Byron Hulcher Date: Wed, 24 Nov 2021 18:00:44 -0500 Subject: [PATCH 05/16] Add sitemapUrls to CrawlConfig --- .../crawl_details_flyout/crawl_details_preview.test.tsx | 1 + .../crawler/components/crawl_event_type_badge.test.tsx | 1 + .../crawler/components/crawl_requests_table.test.tsx | 2 ++ .../components/crawler/crawl_detail_logic.test.ts | 1 + .../components/crawler/crawler_overview.test.tsx | 2 ++ .../applications/app_search/components/crawler/types.ts | 2 ++ .../app_search/components/crawler/utils.test.ts | 6 ++++++ .../applications/app_search/components/crawler/utils.ts | 7 ++++++- 8 files changed, 21 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx index a28ee0d7409ac..39a95a6b9ab17 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx @@ -27,6 +27,7 @@ const MOCK_VALUES: Partial = { crawlConfig: { domainAllowlist: ['https://www.elastic.co', 'https://www.swiftype.com'], seedUrls: ['https://www.elastic.co/docs', 'https://www.swiftype.com/documentation'], + sitemapUrls: ['https://www.elastic.co/sitemap.xml', 'https://www.swiftype.com/sitemap.xml'], }, }, }; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_event_type_badge.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_event_type_badge.test.tsx index 919dbb98182f4..fd1f03c586f12 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_event_type_badge.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_event_type_badge.test.tsx @@ -30,6 +30,7 @@ const MOCK_EVENT: CrawlEvent = { crawlConfig: { domainAllowlist: ['https://www.elastic.co'], seedUrls: [], + sitemapUrls: [], }, }; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_requests_table.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_requests_table.test.tsx index 8e9e73f13abde..e11661e4a942e 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_requests_table.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_requests_table.test.tsx @@ -34,6 +34,7 @@ const values: { events: CrawlEvent[] } = { crawlConfig: { domainAllowlist: ['https://www.elastic.co'], seedUrls: [], + sitemapUrls: [], }, }, { @@ -47,6 +48,7 @@ const values: { events: CrawlEvent[] } = { crawlConfig: { domainAllowlist: ['https://www.elastic.co'], seedUrls: [], + sitemapUrls: [], }, }, ], diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawl_detail_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawl_detail_logic.test.ts index 9be7cc7ea54fa..a7d795c93e0a7 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawl_detail_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawl_detail_logic.test.ts @@ -34,6 +34,7 @@ const crawlRequestResponse: CrawlRequestWithDetailsFromServer = { crawl_config: { domain_allowlist: [], seed_urls: [], + sitemap_urls: [], }, }; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_overview.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_overview.test.tsx index 713a73af05b80..0d2c2e60abfa9 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_overview.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_overview.test.tsx @@ -79,6 +79,7 @@ const events: CrawlEventFromServer[] = [ crawl_config: { domain_allowlist: ['moviedatabase.com', 'swiftype.com'], seed_urls: [], + sitemap_urls: [], }, }, { @@ -92,6 +93,7 @@ const events: CrawlEventFromServer[] = [ crawl_config: { domain_allowlist: ['swiftype.com'], seed_urls: [], + sitemap_urls: [], }, }, ]; diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/types.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/types.ts index 9f3be6707c57a..85ebb0032971d 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/types.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/types.ts @@ -202,11 +202,13 @@ export interface CrawlRequest { export interface CrawlConfig { domainAllowlist: string[]; seedUrls: string[]; + sitemapUrls: string[]; } export interface CrawlConfigFromServer { domain_allowlist: string[]; seed_urls: string[]; + sitemap_urls: string[]; } export type CrawlRequestWithDetailsFromServer = CrawlRequestFromServer & { diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.test.ts index 29e53e1c2b428..0df1f57eaefa0 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.test.ts @@ -140,6 +140,7 @@ describe('crawlRequestWithDetailsServerToClient', () => { crawl_config: { domain_allowlist: [], seed_urls: [], + sitemap_urls: [], }, }; @@ -153,6 +154,7 @@ describe('crawlRequestWithDetailsServerToClient', () => { crawlConfig: { domainAllowlist: [], seedUrls: [], + sitemapUrls: [], }, }; @@ -188,6 +190,7 @@ describe('crawlEventServerToClient', () => { crawl_config: { domain_allowlist: [], seed_urls: [], + sitemap_urls: [], }, stage: 'crawl', }; @@ -202,6 +205,7 @@ describe('crawlEventServerToClient', () => { crawlConfig: { domainAllowlist: [], seedUrls: [], + sitemapUrls: [], }, stage: 'crawl', }; @@ -269,6 +273,7 @@ describe('crawlerDataServerToClient', () => { crawl_config: { domain_allowlist: ['https://www.elastic.co'], seed_urls: [], + sitemap_urls: [], }, }, ], @@ -323,6 +328,7 @@ describe('crawlerDataServerToClient', () => { crawlConfig: { domainAllowlist: ['https://www.elastic.co'], seedUrls: [], + sitemapUrls: [], }, }, ]); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.ts index fc21d36740011..d1203e19c0208 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/utils.ts @@ -85,11 +85,16 @@ export function crawlRequestServerToClient(crawlRequest: CrawlRequestFromServer) } export function crawlConfigServerToClient(crawlConfig: CrawlConfigFromServer): CrawlConfig { - const { domain_allowlist: domainAllowlist, seed_urls: seedUrls } = crawlConfig; + const { + domain_allowlist: domainAllowlist, + seed_urls: seedUrls, + sitemap_urls: sitemapUrls, + } = crawlConfig; return { domainAllowlist, seedUrls, + sitemapUrls, }; } From 052086cd3567b4f97032bcb84f697b47005c4c3d Mon Sep 17 00:00:00 2001 From: Byron Hulcher Date: Wed, 24 Nov 2021 18:07:51 -0500 Subject: [PATCH 06/16] Add a sitemap urls accordion list to the CrawlDetailsPreview --- .../crawl_details_preview.test.tsx | 9 +++++++++ .../crawl_details_flyout/crawl_details_preview.tsx | 10 ++++++++++ 2 files changed, 19 insertions(+) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx index 39a95a6b9ab17..90f8e5db09331 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx @@ -67,5 +67,14 @@ describe('CrawlDetailsPreview', () => { 'https://www.swiftype.com/documentation', ]); }); + + it('contains a list of sitemap urls', () => { + const domainList = wrapper.find(AccordionList).at(2); + + expect(domainList.prop('items')).toEqual([ + 'https://www.elastic.co/sitemap.xml', + 'https://www.swiftype.com/sitemap.xml', + ]); + }); }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx index a44a6fd6b33a6..84adaa42ee42b 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx @@ -44,6 +44,16 @@ export const CrawlDetailsPreview: React.FC = () => { iconType="crosshairs" items={crawlRequest.crawlConfig.seedUrls} /> + ); }; From c6da38259b6066940cfc0fd4709bb13e9449f1ae Mon Sep 17 00:00:00 2001 From: Byron Hulcher Date: Wed, 24 Nov 2021 18:08:39 -0500 Subject: [PATCH 07/16] Disable arrow in AccordionList when items are empty --- .../components/crawl_details_flyout/accordion_list.test.tsx | 6 ++++++ .../components/crawl_details_flyout/accordion_list.tsx | 3 +++ 2 files changed, 9 insertions(+) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.test.tsx index 55f48c4a7e5e4..2219a50a5e7f3 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.test.tsx @@ -50,4 +50,10 @@ describe('AccordionList', () => { expect(table.prop('columns')[0].render({ item: 'first item' })).toEqual('first item'); }); + + it('is disabled when there are no items', () => { + const disabledWrapper = shallow(); + + expect(disabledWrapper.prop('arrowProps').isDisabled).toEqual(true); + }); }); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx index 305ff6a4ecf20..f3681c61c6470 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx @@ -32,6 +32,9 @@ export const AccordionList: React.FC = ({ iconType, items, title }) => { return ( From da9d7565ac4ed3797f9d10fbdb185d96569196fb Mon Sep 17 00:00:00 2001 From: Byron Hulcher Date: Wed, 24 Nov 2021 18:39:59 -0500 Subject: [PATCH 08/16] Add spacers to CrawlDetailsPreview --- .../components/crawl_details_flyout/crawl_details_preview.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx index 84adaa42ee42b..946de64302896 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx @@ -9,6 +9,7 @@ import React from 'react'; import { useValues } from 'kea'; +import { EuiSpacer } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { CrawlDetailLogic } from '../../crawl_detail_logic'; @@ -34,6 +35,7 @@ export const CrawlDetailsPreview: React.FC = () => { iconType="globe" items={crawlRequest.crawlConfig.domainAllowlist} /> + { iconType="crosshairs" items={crawlRequest.crawlConfig.seedUrls} /> + Date: Wed, 24 Nov 2021 18:46:02 -0500 Subject: [PATCH 09/16] Type fix --- .../app_search/components/crawler/crawler_logic.test.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_logic.test.ts b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_logic.test.ts index 6441d7ad75c78..5af9b1652c889 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_logic.test.ts +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/crawler_logic.test.ts @@ -137,6 +137,7 @@ describe('CrawlerLogic', () => { crawlConfig: { domainAllowlist: ['elastic.co'], seedUrls: [], + sitemapUrls: [], }, }, ], From 995677265214138143ea81f62818856b96026734 Mon Sep 17 00:00:00 2001 From: Davey Holler Date: Tue, 30 Nov 2021 11:25:13 -0800 Subject: [PATCH 10/16] Sets a maxWidth on the flyout. --- .../components/crawl_details_flyout/crawl_details_flyout.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_flyout.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_flyout.tsx index 8ecd861304458..bd45d5fd0a302 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_flyout.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_flyout.tsx @@ -35,7 +35,7 @@ export const CrawlDetailsFlyout: React.FC = () => { } return ( - +

From f7e93f88198e25db8438cfc0eba735c91f78070e Mon Sep 17 00:00:00 2001 From: Davey Holler Date: Tue, 30 Nov 2021 11:26:08 -0800 Subject: [PATCH 11/16] Allows the raw JSON to be copied. --- .../components/crawl_details_flyout/crawl_details_flyout.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_flyout.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_flyout.tsx index bd45d5fd0a302..8ce544cdf0530 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_flyout.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_flyout.tsx @@ -70,7 +70,7 @@ export const CrawlDetailsFlyout: React.FC = () => { <> {selectedTab === 'preview' && } {selectedTab === 'json' && ( - + {JSON.stringify(crawlRequestFromServer, null, 2)} )} From 6204c154c40917613948acee817e9f5f4140ff3e Mon Sep 17 00:00:00 2001 From: Davey Holler Date: Tue, 30 Nov 2021 15:09:04 -0800 Subject: [PATCH 12/16] Visual updates to the accordions. --- .../crawl_details_flyout/accordion_list.scss | 5 +++++ .../crawl_details_flyout/accordion_list.tsx | 12 +++++++++--- .../crawl_details_flyout/crawl_details_preview.tsx | 6 ++++++ 3 files changed, 20 insertions(+), 3 deletions(-) create mode 100644 x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.scss diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.scss b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.scss new file mode 100644 index 0000000000000..c72cc981df7af --- /dev/null +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.scss @@ -0,0 +1,5 @@ +.appSearchAccordion--bordered { + border: $euiBorderThin; + border-radius: $euiBorderRadius; + padding: $euiSizeM; +} diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx index f3681c61c6470..7a2fc1b2a4ade 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx @@ -19,22 +19,28 @@ import { useGeneratedHtmlId, } from '@elastic/eui'; +import './accordion_list.scss'; + interface Props { iconType: IconType; items: string[]; + hasBorder?: boolean; + initialIsOpen?: boolean; title: string; } -export const AccordionList: React.FC = ({ iconType, items, title }) => { +export const AccordionList: React.FC = ({ iconType, items, hasBorder, initialIsOpen, title }) => { const accordionId = useGeneratedHtmlId({ prefix: 'accordionList', }); return ( @@ -57,9 +63,9 @@ export const AccordionList: React.FC = ({ iconType, items, title }) => { render: ({ item }: { item: string }) => item, }, ]} - pagination={{ + pagination={ items.length > 10 ? { hidePerPageOptions: true, - }} + } : false} /> ); diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx index 946de64302896..6f837d1db26e2 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.tsx @@ -26,6 +26,8 @@ export const CrawlDetailsPreview: React.FC = () => { return ( <> 0} title={i18n.translate( 'xpack.enterpriseSearch.appSearch.crawler.crawlDetailsPreview.domainsTitle', { @@ -37,6 +39,8 @@ export const CrawlDetailsPreview: React.FC = () => { /> 0} title={i18n.translate( 'xpack.enterpriseSearch.appSearch.crawler.crawlDetailsPreview.seedUrlsTitle', { @@ -48,6 +52,8 @@ export const CrawlDetailsPreview: React.FC = () => { /> 0} title={i18n.translate( 'xpack.enterpriseSearch.appSearch.crawler.crawlDetailsPreview.sitemapUrlsTitle', { From c680d3ed847a7dffbb29200e8242e7fc7df26b9e Mon Sep 17 00:00:00 2001 From: Davey Holler Date: Tue, 30 Nov 2021 16:53:39 -0800 Subject: [PATCH 13/16] Linting --- .../crawl_details_flyout/accordion_list.tsx | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx index 7a2fc1b2a4ade..4b15273d3c224 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx @@ -29,7 +29,13 @@ interface Props { title: string; } -export const AccordionList: React.FC = ({ iconType, items, hasBorder, initialIsOpen, title }) => { +export const AccordionList: React.FC = ({ + iconType, + items, + hasBorder, + initialIsOpen, + title, +}) => { const accordionId = useGeneratedHtmlId({ prefix: 'accordionList', }); @@ -63,9 +69,13 @@ export const AccordionList: React.FC = ({ iconType, items, hasBorder, ini render: ({ item }: { item: string }) => item, }, ]} - pagination={ items.length > 10 ? { - hidePerPageOptions: true, - } : false} + pagination={ + items.length > 10 + ? { + hidePerPageOptions: true, + } + : false + } /> ); From 64dbf0dcf8977527a483a9ac28e28f95bf1fb4d0 Mon Sep 17 00:00:00 2001 From: Davey Holler Date: Wed, 1 Dec 2021 08:52:21 -0800 Subject: [PATCH 14/16] Review and linting fixes. --- .../crawl_details_flyout/accordion_list.tsx | 12 +++++++----- .../crawl_details_flyout/crawl_details_flyout.tsx | 7 ++++++- .../crawl_details_preview.test.tsx | 8 ++++---- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx index 4b15273d3c224..973bf8b8aa6f2 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx @@ -22,18 +22,20 @@ import { import './accordion_list.scss'; interface Props { - iconType: IconType; - items: string[]; hasBorder?: boolean; + iconType: IconType; initialIsOpen?: boolean; + items: string[]; + rowCount?: number; title: string; } export const AccordionList: React.FC = ({ - iconType, - items, hasBorder, + iconType, initialIsOpen, + items, + rowCount = 10, title, }) => { const accordionId = useGeneratedHtmlId({ @@ -70,7 +72,7 @@ export const AccordionList: React.FC = ({ }, ]} pagination={ - items.length > 10 + items.length > rowCount ? { hidePerPageOptions: true, } diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_flyout.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_flyout.tsx index 8ce544cdf0530..9c3c1da534f72 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_flyout.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_flyout.tsx @@ -35,7 +35,12 @@ export const CrawlDetailsFlyout: React.FC = () => { } return ( - +

diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx index 90f8e5db09331..646c611901c7f 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/crawl_details_preview.test.tsx @@ -60,18 +60,18 @@ describe('CrawlDetailsPreview', () => { }); it('contains a list of seed urls', () => { - const domainList = wrapper.find(AccordionList).at(1); + const seedUrlList = wrapper.find(AccordionList).at(1); - expect(domainList.prop('items')).toEqual([ + expect(seedUrlList.prop('items')).toEqual([ 'https://www.elastic.co/docs', 'https://www.swiftype.com/documentation', ]); }); it('contains a list of sitemap urls', () => { - const domainList = wrapper.find(AccordionList).at(2); + const sitemapUrlList = wrapper.find(AccordionList).at(2); - expect(domainList.prop('items')).toEqual([ + expect(sitemapUrlList.prop('items')).toEqual([ 'https://www.elastic.co/sitemap.xml', 'https://www.swiftype.com/sitemap.xml', ]); From 828d818279569acb6267f77adc173853ec52f865 Mon Sep 17 00:00:00 2001 From: Davey Holler Date: Wed, 1 Dec 2021 09:49:26 -0800 Subject: [PATCH 15/16] Styles the tables in the accordion list. --- .../components/crawl_details_flyout/accordion_list.scss | 8 ++++++++ .../components/crawl_details_flyout/accordion_list.tsx | 6 +++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.scss b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.scss index c72cc981df7af..4772723f5d927 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.scss +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.scss @@ -3,3 +3,11 @@ border-radius: $euiBorderRadius; padding: $euiSizeM; } + +.appSearchAccordion--bordered, .appSearchAccordion { + .euiBasicTable { + .euiTableRow > .euiTableRowCell { + border-bottom: none; + } + } +} diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx index 973bf8b8aa6f2..343df15fafad5 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx @@ -14,6 +14,7 @@ import { EuiIcon, EuiInMemoryTable, EuiNotificationBadge, + EuiSpacer, EuiTitle, IconType, useGeneratedHtmlId, @@ -42,6 +43,8 @@ export const AccordionList: React.FC = ({ prefix: 'accordionList', }); + const showPagination = items.length > rowCount; + return ( = ({ }, ]} pagination={ - items.length > rowCount + showPagination ? { hidePerPageOptions: true, } : false } /> + {!showPagination && } ); }; From f9dd39b3d4c5d8acdc4049d741b0914ddbc25479 Mon Sep 17 00:00:00 2001 From: Davey Holler Date: Wed, 1 Dec 2021 09:56:51 -0800 Subject: [PATCH 16/16] Uses a subdued color for count badges when the count is zero. --- .../components/crawl_details_flyout/accordion_list.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx index 343df15fafad5..ba537f712cf27 100644 --- a/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx +++ b/x-pack/plugins/enterprise_search/public/applications/app_search/components/crawler/components/crawl_details_flyout/accordion_list.tsx @@ -65,7 +65,11 @@ export const AccordionList: React.FC = ({ } id={accordionId} - extraAction={{items.length}} + extraAction={ + 0 ? 'accent' : 'subdued'} size="m"> + {items.length} + + } > ({ item }))}