Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix #17742 - show sub domain assets to top level #19679

Merged
merged 11 commits into from
Feb 11, 2025
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
Loading