Skip to content

Commit

Permalink
Fix #17742 - show sub domain assets to top level (#19679)
Browse files Browse the repository at this point in the history
* show sub domain assets to top level

* add domain selection tree in navbar

* fix domain playwright

* fix tree selectable

* fix domain tests

* fix domain cancel action

* fix sonar issues

* add tests
  • Loading branch information
karanh37 authored Feb 11, 2025
1 parent fbd47e4 commit fba92df
Show file tree
Hide file tree
Showing 20 changed files with 374 additions and 229 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -941,10 +941,13 @@ test('TestCase filters', PLAYWRIGHT_INGESTION_TAG_OBJ, async ({ page }) => {
await expect(page.locator('[value="tier"]')).not.toBeVisible();

// Apply domain globally
await page.locator('[data-testid="domain-dropdown"]').click();
await page.getByTestId('domain-dropdown').click();

await page
.locator(`li[data-menu-id*='${domain.responseData?.['name']}']`)
.getByTestId(`tag-${domain.responseData.fullyQualifiedName}`)
.click();
await page.getByTestId('saveAssociatedTag').click();

await sidebarClick(page, SidebarItem.DATA_QUALITY);
const getTestCaseList = page.waitForResponse(
'/api/v1/dataQuality/testCases/search/list?*'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -240,11 +240,13 @@ test.describe('Domains', () => {
await domain.create(apiContext);
await page.reload();
await page.getByTestId('domain-dropdown').click();

await page
.locator(
`[data-menu-id*="${domain.data.name}"] > .ant-dropdown-menu-title-content`
)
.getByTestId(`tag-${domain.responseData.fullyQualifiedName}`)
.click();
await page.getByTestId('saveAssociatedTag').click();

await page.waitForLoadState('networkidle');

await redirectToHomePage(page);

Expand Down Expand Up @@ -566,14 +568,11 @@ test.describe('Domains Rbac', () => {
.click();

await expect(
userPage
.getByRole('menuitem', { name: domain1.data.displayName })
.locator('span')
userPage.getByTestId(`tag-${domain1.responseData.fullyQualifiedName}`)
).toBeVisible();

await expect(
userPage
.getByRole('menuitem', { name: domain3.data.displayName })
.locator('span')
userPage.getByTestId(`tag-${domain3.responseData.fullyQualifiedName}`)
).toBeVisible();

// Visit explore page and verify if domain is passed in the query
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ test.describe.serial('My Data page', () => {
// Verify entities
await verifyEntities(
page,
'/api/v1/search/query?q=*&index=all&from=0&size=25',
'/api/v1/search/query?q=*&index=all&from=0&size=25*',
TableEntities
);
});
Expand All @@ -105,7 +105,7 @@ test.describe.serial('My Data page', () => {
// Verify entities
await verifyEntities(
page,
'/api/v1/search/query?q=*followers:*&index=all&from=0&size=25',
'/api/v1/search/query?q=*followers:*&index=all&from=0&size=25*',
TableEntities
);
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -347,11 +347,8 @@ export const addAssetsToDomain = async (
await page.getByTestId('save-btn').click();
await assetsAddRes;

const countRes = page.waitForResponse(
'/api/v1/search/query?q=*&index=all&from=0&size=15'
);
await page.reload();
await countRes;
await page.waitForLoadState('networkidle');

await checkAssetsCount(page, assets.length);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -303,7 +303,7 @@ export const verifyAssetsInTeamsPage = async (
.locator(`a:has-text("${team.data.displayName}")`)
.click();

const res = page.waitForResponse('/api/v1/search/query?*size=15');
const res = page.waitForResponse('/api/v1/search/query?*size=15*');
await page.getByTestId('assets').click();
await res;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,14 +131,6 @@ export const AssetSelectionModal = ({
>([]);
const [quickFilterQuery, setQuickFilterQuery] =
useState<QueryFilterInterface>();
const [updatedQueryFilter, setUpdatedQueryFilter] =
useState<QueryFilterInterface>(
getCombinedQueryFilterObject(queryFilter as QueryFilterInterface, {
query: {
bool: {},
},
})
);
const [selectedFilter, setSelectedFilter] = useState<string[]>([]);
const [filters, setFilters] = useState<ExploreQuickFilterField[]>([]);

Expand Down Expand Up @@ -237,13 +229,17 @@ export const AssetSelectionModal = ({

useEffect(() => {
if (open) {
const combinedQueryFilter = getCombinedQueryFilterObject(
queryFilter as unknown as QueryFilterInterface,
quickFilterQuery as QueryFilterInterface
);
fetchEntities({
index: activeFilter,
searchText: search,
updatedQueryFilter,
updatedQueryFilter: combinedQueryFilter,
});
}
}, [open, activeFilter, search, type, updatedQueryFilter]);
}, [open, activeFilter, search, type, quickFilterQuery, queryFilter]);

useEffect(() => {
if (open) {
Expand Down Expand Up @@ -357,18 +353,6 @@ export const AssetSelectionModal = ({
handleSave();
}, [type, handleSave]);

const mergeFilters = useCallback(() => {
const res = getCombinedQueryFilterObject(
queryFilter as QueryFilterInterface,
quickFilterQuery as QueryFilterInterface
);
setUpdatedQueryFilter(res);
}, [queryFilter, quickFilterQuery]);

useEffect(() => {
mergeFilters();
}, [quickFilterQuery, queryFilter]);

useEffect(() => {
const updatedQuickFilters = filters
.filter((filter) => selectedFilter.includes(filter.key))
Expand Down Expand Up @@ -402,22 +386,28 @@ export const AssetSelectionModal = ({
scrollHeight < 501 &&
items.length < totalCount
) {
const combinedQueryFilter = getCombinedQueryFilterObject(
queryFilter as unknown as QueryFilterInterface,
quickFilterQuery as QueryFilterInterface
);

!isLoading &&
fetchEntities({
searchText: search,
page: pageNumber + 1,
index: activeFilter,
updatedQueryFilter,
updatedQueryFilter: combinedQueryFilter,
});
}
},
[
pageNumber,
updatedQueryFilter,
activeFilter,
search,
totalCount,
items,
quickFilterQuery,
queryFilter,
isLoading,
fetchEntities,
]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ const DataProductsDetailsPage = ({
const handelExtensionUpdate = useCallback(
async (updatedDataProduct: DataProduct) => {
await onUpdate({
...(dataProduct as DataProduct),
...dataProduct,
extension: updatedDataProduct.extension,
});
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,15 +74,15 @@ import { Domain } from '../../../generated/entity/domains/domain';
import { ChangeDescription } from '../../../generated/entity/type';
import { Style } from '../../../generated/type/tagLabel';
import { useFqn } from '../../../hooks/useFqn';
import { QueryFilterInterface } from '../../../pages/ExplorePage/ExplorePage.interface';
import { addDataProducts } from '../../../rest/dataProductAPI';
import { addDomains } from '../../../rest/domainAPI';
import { searchData } from '../../../rest/miscAPI';
import { searchQuery } from '../../../rest/searchAPI';
import { formatDomainsResponse } from '../../../utils/APIUtils';
import { getIsErrorMatch } from '../../../utils/CommonUtils';
import {
getQueryFilterForDomain,
getQueryFilterToExcludeDomainTerms,
getQueryFilterToIncludeDomain,
} from '../../../utils/DomainUtils';
import { getEntityName } from '../../../utils/EntityUtils';
import { getEntityVersionByField } from '../../../utils/EntityVersionUtils';
Expand Down Expand Up @@ -347,17 +347,17 @@ const DomainDetailsPage = ({
const fetchDomainAssets = async () => {
if (domainFqn && !isVersionsView) {
try {
const res = await searchData(
'',
1,
0,
`(domain.fullyQualifiedName:"${encodedFqn}") AND !(entityType:"dataProduct")`,
'',
'',
SearchIndex.ALL
);

setAssetCount(res.data.hits.total.value ?? 0);
const res = await searchQuery({
query: '',
pageNumber: 0,
pageSize: 0,
queryFilter,
searchIndex: SearchIndex.ALL,
filters: '',
});

const totalCount = res?.hits?.total.value ?? 0;
setAssetCount(totalCount);
} catch (error) {
setAssetCount(0);
}
Expand Down Expand Up @@ -505,6 +505,10 @@ const DomainDetailsPage = ({
: []),
];

const queryFilter = useMemo(() => {
return getQueryFilterForDomain(domainFqn);
}, [domainFqn]);

const tabs = useMemo(() => {
return [
{
Expand Down Expand Up @@ -585,6 +589,7 @@ const DomainDetailsPage = ({
entityFqn={domainFqn}
isSummaryPanelOpen={false}
permissions={domainPermission}
queryFilter={queryFilter}
ref={assetTabRef}
type={AssetsOfEntity.DOMAIN}
onAddAsset={() => setAssetModalVisible(true)}
Expand Down Expand Up @@ -627,6 +632,7 @@ const DomainDetailsPage = ({
activeTab,
subDomains,
isSubDomainsLoading,
queryFilter,
]);

useEffect(() => {
Expand Down Expand Up @@ -823,14 +829,7 @@ const DomainDetailsPage = ({
<AssetSelectionModal
entityFqn={domainFqn}
open={assetModalVisible}
queryFilter={
isSubDomain
? (getQueryFilterToIncludeDomain(
domain.parent?.fullyQualifiedName ?? '',
domain.fullyQualifiedName ?? ''
) as QueryFilterInterface)
: getQueryFilterToExcludeDomainTerms(domainFqn)
}
queryFilter={getQueryFilterToExcludeDomainTerms(domainFqn)}
type={AssetsOfEntity.DOMAIN}
onCancel={() => setAssetModalVisible(false)}
onSave={handleAssetSave}
Expand Down
Loading

0 comments on commit fba92df

Please sign in to comment.