mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-11-03 20:19:31 +00:00
Feat : UI - Filter by database name. (#1599)
This commit is contained in:
parent
ad4f492929
commit
fd92e5c6b7
@ -81,7 +81,7 @@ const Explore: React.FC<ExploreProps> = ({
|
|||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
const history = useHistory();
|
const history = useHistory();
|
||||||
const filterObject: FilterObject = {
|
const filterObject: FilterObject = {
|
||||||
...{ tags: [], service: [], tier: [] },
|
...{ tags: [], service: [], tier: [], database: [] },
|
||||||
...getQueryParam(location.search),
|
...getQueryParam(location.search),
|
||||||
};
|
};
|
||||||
const [data, setData] = useState<Array<FormatedTableData>>([]);
|
const [data, setData] = useState<Array<FormatedTableData>>([]);
|
||||||
@ -262,6 +262,15 @@ const Explore: React.FC<ExploreProps> = ({
|
|||||||
sortOrder: sortOrder,
|
sortOrder: sortOrder,
|
||||||
searchIndex: searchIndex,
|
searchIndex: searchIndex,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
queryString: searchText,
|
||||||
|
from: currentPage,
|
||||||
|
size: ZERO_SIZE,
|
||||||
|
filters: getFilterString(filters, ['database']),
|
||||||
|
sortField: sortField,
|
||||||
|
sortOrder: sortOrder,
|
||||||
|
searchIndex: searchIndex,
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
fetchData(fetchParams);
|
fetchData(fetchParams);
|
||||||
@ -476,8 +485,17 @@ const Explore: React.FC<ExploreProps> = ({
|
|||||||
searchResult.resAggTag.data.aggregations,
|
searchResult.resAggTag.data.aggregations,
|
||||||
'tags'
|
'tags'
|
||||||
);
|
);
|
||||||
|
const aggDatabase = getAggregationList(
|
||||||
|
searchResult.resAggTag.data.aggregations,
|
||||||
|
'database'
|
||||||
|
);
|
||||||
|
|
||||||
updateAggregationCount([...aggServiceType, ...aggTier, ...aggTag]);
|
updateAggregationCount([
|
||||||
|
...aggServiceType,
|
||||||
|
...aggTier,
|
||||||
|
...aggTag,
|
||||||
|
...aggDatabase,
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
setIsEntityLoading(false);
|
setIsEntityLoading(false);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -43,6 +43,7 @@ const mockSearchResult = {
|
|||||||
resAggServiceType: mockResponse as unknown as SearchResponse,
|
resAggServiceType: mockResponse as unknown as SearchResponse,
|
||||||
resAggTier: mockResponse as unknown as SearchResponse,
|
resAggTier: mockResponse as unknown as SearchResponse,
|
||||||
resAggTag: mockResponse as unknown as SearchResponse,
|
resAggTag: mockResponse as unknown as SearchResponse,
|
||||||
|
resAggDatabase: mockResponse as unknown as SearchResponse,
|
||||||
};
|
};
|
||||||
|
|
||||||
describe('Test Explore component', () => {
|
describe('Test Explore component', () => {
|
||||||
|
|||||||
@ -23,6 +23,7 @@ export type ExploreSearchData = {
|
|||||||
resAggServiceType: SearchResponse;
|
resAggServiceType: SearchResponse;
|
||||||
resAggTier: SearchResponse;
|
resAggTier: SearchResponse;
|
||||||
resAggTag: SearchResponse;
|
resAggTag: SearchResponse;
|
||||||
|
resAggDatabase: SearchResponse;
|
||||||
};
|
};
|
||||||
|
|
||||||
export interface ExploreProps {
|
export interface ExploreProps {
|
||||||
|
|||||||
@ -31,6 +31,7 @@ const FacetFilter: FunctionComponent<FacetProp> = ({
|
|||||||
const [showAllTags, setShowAllTags] = useState<boolean>(false);
|
const [showAllTags, setShowAllTags] = useState<boolean>(false);
|
||||||
const [showAllServices, setShowAllServices] = useState<boolean>(false);
|
const [showAllServices, setShowAllServices] = useState<boolean>(false);
|
||||||
const [showAllTier, setShowAllTier] = useState<boolean>(false);
|
const [showAllTier, setShowAllTier] = useState<boolean>(false);
|
||||||
|
const [showAllDatabase, setShowAllDatabase] = useState<boolean>(false);
|
||||||
const getLinkText = (
|
const getLinkText = (
|
||||||
length: number,
|
length: number,
|
||||||
state: boolean,
|
state: boolean,
|
||||||
@ -44,8 +45,8 @@ const FacetFilter: FunctionComponent<FacetProp> = ({
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
const getSeparator = (length: number, index: number) => {
|
const getSeparator = (length: number, index: number, flag: boolean) => {
|
||||||
return length !== 1 && index < length - 1 ? (
|
return length !== 1 && index < length - 1 && flag ? (
|
||||||
<div className="tw-filter-seperator" />
|
<div className="tw-filter-seperator" />
|
||||||
) : null;
|
) : null;
|
||||||
};
|
};
|
||||||
@ -64,6 +65,8 @@ const FacetFilter: FunctionComponent<FacetProp> = ({
|
|||||||
return getLinkText(bucketLength, showAllTags, setShowAllTags);
|
return getLinkText(bucketLength, showAllTags, setShowAllTags);
|
||||||
case 'Tier':
|
case 'Tier':
|
||||||
return getLinkText(bucketLength, showAllTier, setShowAllTier);
|
return getLinkText(bucketLength, showAllTier, setShowAllTier);
|
||||||
|
case 'Database':
|
||||||
|
return getLinkText(bucketLength, showAllDatabase, setShowAllDatabase);
|
||||||
default:
|
default:
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -77,6 +80,8 @@ const FacetFilter: FunctionComponent<FacetProp> = ({
|
|||||||
return getBuckets(buckets, showAllTags);
|
return getBuckets(buckets, showAllTags);
|
||||||
case 'Tier':
|
case 'Tier':
|
||||||
return getBuckets(buckets, showAllTier);
|
return getBuckets(buckets, showAllTier);
|
||||||
|
case 'Database':
|
||||||
|
return getBuckets(buckets, showAllDatabase);
|
||||||
default:
|
default:
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
@ -172,7 +177,11 @@ const FacetFilter: FunctionComponent<FacetProp> = ({
|
|||||||
<div className="sidebar-my-data-holder mt-2 mb-3">
|
<div className="sidebar-my-data-holder mt-2 mb-3">
|
||||||
{getFilterItems(aggregation)}
|
{getFilterItems(aggregation)}
|
||||||
</div>
|
</div>
|
||||||
{getSeparator(aggregations.length, index)}
|
{getSeparator(
|
||||||
|
aggregations.length,
|
||||||
|
index,
|
||||||
|
aggregations[index + 1]?.buckets?.length > 0
|
||||||
|
)}
|
||||||
</>
|
</>
|
||||||
) : null}
|
) : null}
|
||||||
</Fragment>
|
</Fragment>
|
||||||
|
|||||||
@ -63,7 +63,7 @@ export const versionTypes = [
|
|||||||
{ name: 'Minor', value: 'minor' },
|
{ name: 'Minor', value: 'minor' },
|
||||||
];
|
];
|
||||||
|
|
||||||
export const visibleFilters = ['service', 'tier', 'tags'];
|
export const visibleFilters = ['service', 'tier', 'tags', 'database'];
|
||||||
|
|
||||||
export const tableSortingFields = [
|
export const tableSortingFields = [
|
||||||
{
|
{
|
||||||
@ -100,6 +100,10 @@ export const facetFilterPlaceholder = [
|
|||||||
name: 'Tags',
|
name: 'Tags',
|
||||||
value: 'Tags',
|
value: 'Tags',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'Database',
|
||||||
|
value: 'Database',
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
export const ROUTES = {
|
export const ROUTES = {
|
||||||
|
|||||||
@ -187,6 +187,7 @@ const ExplorePage: FunctionComponent = () => {
|
|||||||
resAggServiceType,
|
resAggServiceType,
|
||||||
resAggTier,
|
resAggTier,
|
||||||
resAggTag,
|
resAggTag,
|
||||||
|
resAggDatabase,
|
||||||
]: Array<SearchResponse>) => {
|
]: Array<SearchResponse>) => {
|
||||||
setError('');
|
setError('');
|
||||||
setSearchResult({
|
setSearchResult({
|
||||||
@ -194,6 +195,7 @@ const ExplorePage: FunctionComponent = () => {
|
|||||||
resAggServiceType,
|
resAggServiceType,
|
||||||
resAggTier,
|
resAggTier,
|
||||||
resAggTag,
|
resAggTag,
|
||||||
|
resAggDatabase,
|
||||||
});
|
});
|
||||||
setIsLoadingForData(false);
|
setIsLoadingForData(false);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user