mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-09-15 20:13:14 +00:00
Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
d6c7465b19
@ -465,6 +465,7 @@ export const service = {
|
|||||||
description: 'This is a Glue service',
|
description: 'This is a Glue service',
|
||||||
newDescription: 'This is updated Glue service description',
|
newDescription: 'This is updated Glue service description',
|
||||||
Owner: 'Aaron Johnson',
|
Owner: 'Aaron Johnson',
|
||||||
|
serviceType: 'databaseService',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const SERVICE_TYPE = {
|
export const SERVICE_TYPE = {
|
||||||
|
@ -34,7 +34,7 @@ describe('Login configuration', { tags: 'Settings' }, () => {
|
|||||||
cy.get('[data-testid="access-block-time"]').should('have.text', '500');
|
cy.get('[data-testid="access-block-time"]').should('have.text', '500');
|
||||||
cy.get('[data-testid="jwt-token-expiry-time"]').should(
|
cy.get('[data-testid="jwt-token-expiry-time"]').should(
|
||||||
'have.text',
|
'have.text',
|
||||||
'5000 Milliseconds'
|
'5000 Seconds'
|
||||||
);
|
);
|
||||||
/* ==== End Cypress Studio ==== */
|
/* ==== End Cypress Studio ==== */
|
||||||
});
|
});
|
||||||
|
@ -34,7 +34,7 @@ describe('Services page should work properly', { tags: 'Integration' }, () => {
|
|||||||
);
|
);
|
||||||
interceptURL(
|
interceptURL(
|
||||||
'GET',
|
'GET',
|
||||||
`/api/v1/services/ingestionPipelines?fields=*&service=${service.name}*`,
|
`/api/v1/services/ingestionPipelines?fields=*&service=${service.name}*&serviceType=${service.serviceType}`,
|
||||||
'ingestionPipelines'
|
'ingestionPipelines'
|
||||||
);
|
);
|
||||||
cy.login();
|
cy.login();
|
||||||
|
@ -249,7 +249,7 @@ const DataProductsDetailsPage = ({
|
|||||||
description={t('message.rename-entity', {
|
description={t('message.rename-entity', {
|
||||||
entity: t('label.data-product'),
|
entity: t('label.data-product'),
|
||||||
})}
|
})}
|
||||||
icon={<EditIcon color={DE_ACTIVE_COLOR} width="18px" />}
|
icon={EditIcon}
|
||||||
id="rename-button"
|
id="rename-button"
|
||||||
name={t('label.rename')}
|
name={t('label.rename')}
|
||||||
/>
|
/>
|
||||||
@ -271,7 +271,7 @@ const DataProductsDetailsPage = ({
|
|||||||
description={t('message.edit-entity-style-description', {
|
description={t('message.edit-entity-style-description', {
|
||||||
entity: t('label.data-product'),
|
entity: t('label.data-product'),
|
||||||
})}
|
})}
|
||||||
icon={<StyleIcon color={DE_ACTIVE_COLOR} width="18px" />}
|
icon={StyleIcon}
|
||||||
id="rename-button"
|
id="rename-button"
|
||||||
name={t('label.style')}
|
name={t('label.style')}
|
||||||
/>
|
/>
|
||||||
@ -296,7 +296,7 @@ const DataProductsDetailsPage = ({
|
|||||||
entityType: t('label.data-product'),
|
entityType: t('label.data-product'),
|
||||||
}
|
}
|
||||||
)}
|
)}
|
||||||
icon={<DeleteIcon color={DE_ACTIVE_COLOR} width="14px" />}
|
icon={DeleteIcon}
|
||||||
id="delete-button"
|
id="delete-button"
|
||||||
name={t('label.delete')}
|
name={t('label.delete')}
|
||||||
/>
|
/>
|
||||||
|
@ -28,7 +28,6 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react';
|
|||||||
import { ReactComponent as IconDelete } from '../../../assets/svg/ic-delete.svg';
|
import { ReactComponent as IconDelete } from '../../../assets/svg/ic-delete.svg';
|
||||||
import { ReactComponent as IconDropdown } from '../../../assets/svg/menu.svg';
|
import { ReactComponent as IconDropdown } from '../../../assets/svg/menu.svg';
|
||||||
import { WORKFLOWS_PROFILER_DOCS } from '../../../constants/docs.constants';
|
import { WORKFLOWS_PROFILER_DOCS } from '../../../constants/docs.constants';
|
||||||
import { DROPDOWN_ICON_SIZE_PROPS } from '../../../constants/ManageButton.constants';
|
|
||||||
import { mockDatasetData } from '../../../constants/mockTourData.constants';
|
import { mockDatasetData } from '../../../constants/mockTourData.constants';
|
||||||
import { useTourProvider } from '../../../context/TourProvider/TourProvider';
|
import { useTourProvider } from '../../../context/TourProvider/TourProvider';
|
||||||
import { EntityType } from '../../../enums/entity.enum';
|
import { EntityType } from '../../../enums/entity.enum';
|
||||||
@ -157,13 +156,7 @@ const SampleDataTable = ({
|
|||||||
description={t('message.delete-entity-type-action-description', {
|
description={t('message.delete-entity-type-action-description', {
|
||||||
entityType: t('label.sample-data'),
|
entityType: t('label.sample-data'),
|
||||||
})}
|
})}
|
||||||
icon={
|
icon={IconDelete}
|
||||||
<IconDelete
|
|
||||||
className="m-t-xss"
|
|
||||||
{...DROPDOWN_ICON_SIZE_PROPS}
|
|
||||||
name="Delete"
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
id="delete-button"
|
id="delete-button"
|
||||||
name={t('label.delete')}
|
name={t('label.delete')}
|
||||||
/>
|
/>
|
||||||
|
@ -361,7 +361,7 @@ const DomainDetailsPage = ({
|
|||||||
description={t('message.rename-entity', {
|
description={t('message.rename-entity', {
|
||||||
entity: t('label.domain'),
|
entity: t('label.domain'),
|
||||||
})}
|
})}
|
||||||
icon={<EditIcon color={DE_ACTIVE_COLOR} width="18px" />}
|
icon={EditIcon}
|
||||||
id="rename-button"
|
id="rename-button"
|
||||||
name={t('label.rename')}
|
name={t('label.rename')}
|
||||||
/>
|
/>
|
||||||
@ -383,7 +383,7 @@ const DomainDetailsPage = ({
|
|||||||
description={t('message.edit-entity-style-description', {
|
description={t('message.edit-entity-style-description', {
|
||||||
entity: t('label.domain'),
|
entity: t('label.domain'),
|
||||||
})}
|
})}
|
||||||
icon={<StyleIcon color={DE_ACTIVE_COLOR} width="18px" />}
|
icon={StyleIcon}
|
||||||
id="edit-style-button"
|
id="edit-style-button"
|
||||||
name={t('label.style')}
|
name={t('label.style')}
|
||||||
/>
|
/>
|
||||||
@ -408,7 +408,7 @@ const DomainDetailsPage = ({
|
|||||||
entityType: t('label.domain'),
|
entityType: t('label.domain'),
|
||||||
}
|
}
|
||||||
)}
|
)}
|
||||||
icon={<DeleteIcon color={DE_ACTIVE_COLOR} width="18px" />}
|
icon={DeleteIcon}
|
||||||
id="delete-button"
|
id="delete-button"
|
||||||
name={t('label.delete')}
|
name={t('label.delete')}
|
||||||
/>
|
/>
|
||||||
|
@ -54,6 +54,7 @@ import {
|
|||||||
Status,
|
Status,
|
||||||
} from '../../../generated/entity/data/glossaryTerm';
|
} from '../../../generated/entity/data/glossaryTerm';
|
||||||
import { Style } from '../../../generated/type/tagLabel';
|
import { Style } from '../../../generated/type/tagLabel';
|
||||||
|
import { useApplicationStore } from '../../../hooks/useApplicationStore';
|
||||||
import { useFqn } from '../../../hooks/useFqn';
|
import { useFqn } from '../../../hooks/useFqn';
|
||||||
import {
|
import {
|
||||||
exportGlossaryInCSVFormat,
|
exportGlossaryInCSVFormat,
|
||||||
@ -71,8 +72,6 @@ import {
|
|||||||
getGlossaryVersionsPath,
|
getGlossaryVersionsPath,
|
||||||
} from '../../../utils/RouterUtils';
|
} from '../../../utils/RouterUtils';
|
||||||
import { showErrorToast } from '../../../utils/ToastUtils';
|
import { showErrorToast } from '../../../utils/ToastUtils';
|
||||||
|
|
||||||
import { useApplicationStore } from '../../../hooks/useApplicationStore';
|
|
||||||
import { TitleBreadcrumbProps } from '../../common/TitleBreadcrumb/TitleBreadcrumb.interface';
|
import { TitleBreadcrumbProps } from '../../common/TitleBreadcrumb/TitleBreadcrumb.interface';
|
||||||
import Voting from '../../Entity/Voting/Voting.component';
|
import Voting from '../../Entity/Voting/Voting.component';
|
||||||
import StyleModal from '../../Modals/StyleModal/StyleModal.component';
|
import StyleModal from '../../Modals/StyleModal/StyleModal.component';
|
||||||
@ -274,7 +273,7 @@ const GlossaryHeader = ({
|
|||||||
description={t('message.export-entity-help', {
|
description={t('message.export-entity-help', {
|
||||||
entity: t('label.glossary-term-lowercase-plural'),
|
entity: t('label.glossary-term-lowercase-plural'),
|
||||||
})}
|
})}
|
||||||
icon={<ExportIcon width="18px" />}
|
icon={ExportIcon}
|
||||||
id="export-button"
|
id="export-button"
|
||||||
name={t('label.export')}
|
name={t('label.export')}
|
||||||
/>
|
/>
|
||||||
@ -292,7 +291,7 @@ const GlossaryHeader = ({
|
|||||||
description={t('message.import-entity-help', {
|
description={t('message.import-entity-help', {
|
||||||
entity: t('label.glossary-term-lowercase'),
|
entity: t('label.glossary-term-lowercase'),
|
||||||
})}
|
})}
|
||||||
icon={<ImportIcon width="20px" />}
|
icon={ImportIcon}
|
||||||
id="import-button"
|
id="import-button"
|
||||||
name={t('label.import')}
|
name={t('label.import')}
|
||||||
/>
|
/>
|
||||||
@ -316,7 +315,7 @@ const GlossaryHeader = ({
|
|||||||
? t('label.glossary')
|
? t('label.glossary')
|
||||||
: t('label.glossary-term'),
|
: t('label.glossary-term'),
|
||||||
})}
|
})}
|
||||||
icon={<EditIcon color={DE_ACTIVE_COLOR} width="18px" />}
|
icon={EditIcon}
|
||||||
id="rename-button"
|
id="rename-button"
|
||||||
name={t('label.rename')}
|
name={t('label.rename')}
|
||||||
/>
|
/>
|
||||||
@ -338,7 +337,7 @@ const GlossaryHeader = ({
|
|||||||
description={t('message.edit-entity-style-description', {
|
description={t('message.edit-entity-style-description', {
|
||||||
entity: t('label.glossary-term'),
|
entity: t('label.glossary-term'),
|
||||||
})}
|
})}
|
||||||
icon={<StyleIcon color={DE_ACTIVE_COLOR} width="18px" />}
|
icon={StyleIcon}
|
||||||
id="rename-button"
|
id="rename-button"
|
||||||
name={t('label.style')}
|
name={t('label.style')}
|
||||||
/>
|
/>
|
||||||
@ -365,13 +364,7 @@ const GlossaryHeader = ({
|
|||||||
: t('label.glossary-term'),
|
: t('label.glossary-term'),
|
||||||
}
|
}
|
||||||
)}
|
)}
|
||||||
icon={
|
icon={IconDelete}
|
||||||
<Icon
|
|
||||||
className="align-middle"
|
|
||||||
component={IconDelete}
|
|
||||||
style={{ fontSize: '16px' }}
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
id="delete-button"
|
id="delete-button"
|
||||||
name={t('label.delete')}
|
name={t('label.delete')}
|
||||||
/>
|
/>
|
||||||
|
@ -47,10 +47,7 @@ import {
|
|||||||
AssetsFilterOptions,
|
AssetsFilterOptions,
|
||||||
ASSET_MENU_KEYS,
|
ASSET_MENU_KEYS,
|
||||||
} from '../../../../constants/Assets.constants';
|
} from '../../../../constants/Assets.constants';
|
||||||
import {
|
import { ES_UPDATE_DELAY } from '../../../../constants/constants';
|
||||||
DE_ACTIVE_COLOR,
|
|
||||||
ES_UPDATE_DELAY,
|
|
||||||
} from '../../../../constants/constants';
|
|
||||||
import { GLOSSARIES_DOCS } from '../../../../constants/docs.constants';
|
import { GLOSSARIES_DOCS } from '../../../../constants/docs.constants';
|
||||||
import { ERROR_PLACEHOLDER_TYPE } from '../../../../enums/common.enum';
|
import { ERROR_PLACEHOLDER_TYPE } from '../../../../enums/common.enum';
|
||||||
import { EntityType } from '../../../../enums/entity.enum';
|
import { EntityType } from '../../../../enums/entity.enum';
|
||||||
@ -288,6 +285,11 @@ const AssetsTabs = forwardRef(
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const onExploreCardDelete = useCallback((source: SourceType) => {
|
||||||
|
setAssetToDelete(source);
|
||||||
|
setShowDeleteModal(true);
|
||||||
|
}, []);
|
||||||
|
|
||||||
const handleAssetButtonVisibleChange = (newVisible: boolean) =>
|
const handleAssetButtonVisibleChange = (newVisible: boolean) =>
|
||||||
setVisible(newVisible);
|
setVisible(newVisible);
|
||||||
|
|
||||||
@ -321,7 +323,7 @@ const AssetsTabs = forwardRef(
|
|||||||
description={t('message.delete-asset-from-entity-type', {
|
description={t('message.delete-asset-from-entity-type', {
|
||||||
entityType: entityTypeString,
|
entityType: entityTypeString,
|
||||||
})}
|
})}
|
||||||
icon={<DeleteIcon color={DE_ACTIVE_COLOR} width="18px" />}
|
icon={DeleteIcon}
|
||||||
id="delete-button"
|
id="delete-button"
|
||||||
name={t('label.delete')}
|
name={t('label.delete')}
|
||||||
/>
|
/>
|
||||||
@ -335,11 +337,6 @@ const AssetsTabs = forwardRef(
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const onExploreCardDelete = useCallback((source: SourceType) => {
|
|
||||||
setAssetToDelete(source);
|
|
||||||
setShowDeleteModal(true);
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
const handleCheckboxChange = (
|
const handleCheckboxChange = (
|
||||||
selected: boolean,
|
selected: boolean,
|
||||||
source: EntityDetailUnion
|
source: EntityDetailUnion
|
||||||
@ -384,6 +381,69 @@ const AssetsTabs = forwardRef(
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const onAssetRemove = useCallback(
|
||||||
|
async (assetsData: SourceType[]) => {
|
||||||
|
if (!activeEntity) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
setAssetRemoving(true);
|
||||||
|
|
||||||
|
try {
|
||||||
|
const entities = [...(assetsData?.values() ?? [])].map((item) => {
|
||||||
|
return getEntityReferenceFromEntity(
|
||||||
|
item as EntityDetailUnion,
|
||||||
|
(item as EntityDetailUnion).entityType
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
switch (type) {
|
||||||
|
case AssetsOfEntity.DATA_PRODUCT:
|
||||||
|
await removeAssetsFromDataProduct(
|
||||||
|
activeEntity.fullyQualifiedName ?? '',
|
||||||
|
entities
|
||||||
|
);
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AssetsOfEntity.GLOSSARY:
|
||||||
|
await removeAssetsFromGlossaryTerm(
|
||||||
|
activeEntity as GlossaryTerm,
|
||||||
|
entities
|
||||||
|
);
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AssetsOfEntity.DOMAIN:
|
||||||
|
await removeAssetsFromDomain(
|
||||||
|
activeEntity.fullyQualifiedName ?? '',
|
||||||
|
entities
|
||||||
|
);
|
||||||
|
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
// Handle other entity types here
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
await new Promise((resolve) => {
|
||||||
|
setTimeout(() => {
|
||||||
|
resolve('');
|
||||||
|
}, ES_UPDATE_DELAY);
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
showErrorToast(err as AxiosError);
|
||||||
|
} finally {
|
||||||
|
setShowDeleteModal(false);
|
||||||
|
onRemoveAsset?.();
|
||||||
|
setAssetRemoving(false);
|
||||||
|
hideNotification();
|
||||||
|
setSelectedItems(new Map()); // Reset selected items
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[type, activeEntity, entityFqn]
|
||||||
|
);
|
||||||
|
|
||||||
const deleteSelectedItems = useCallback(() => {
|
const deleteSelectedItems = useCallback(() => {
|
||||||
if (selectedItems) {
|
if (selectedItems) {
|
||||||
onAssetRemove(Array.from(selectedItems.values()));
|
onAssetRemove(Array.from(selectedItems.values()));
|
||||||
@ -655,69 +715,6 @@ const AssetsTabs = forwardRef(
|
|||||||
);
|
);
|
||||||
}, [assetsHeader, assetListing, selectedCard]);
|
}, [assetsHeader, assetListing, selectedCard]);
|
||||||
|
|
||||||
const onAssetRemove = useCallback(
|
|
||||||
async (assetsData: SourceType[]) => {
|
|
||||||
if (!activeEntity) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
setAssetRemoving(true);
|
|
||||||
|
|
||||||
try {
|
|
||||||
const entities = [...(assetsData?.values() ?? [])].map((item) => {
|
|
||||||
return getEntityReferenceFromEntity(
|
|
||||||
item as EntityDetailUnion,
|
|
||||||
(item as EntityDetailUnion).entityType
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
switch (type) {
|
|
||||||
case AssetsOfEntity.DATA_PRODUCT:
|
|
||||||
await removeAssetsFromDataProduct(
|
|
||||||
activeEntity.fullyQualifiedName ?? '',
|
|
||||||
entities
|
|
||||||
);
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AssetsOfEntity.GLOSSARY:
|
|
||||||
await removeAssetsFromGlossaryTerm(
|
|
||||||
activeEntity as GlossaryTerm,
|
|
||||||
entities
|
|
||||||
);
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case AssetsOfEntity.DOMAIN:
|
|
||||||
await removeAssetsFromDomain(
|
|
||||||
activeEntity.fullyQualifiedName ?? '',
|
|
||||||
entities
|
|
||||||
);
|
|
||||||
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
// Handle other entity types here
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
await new Promise((resolve) => {
|
|
||||||
setTimeout(() => {
|
|
||||||
resolve('');
|
|
||||||
}, ES_UPDATE_DELAY);
|
|
||||||
});
|
|
||||||
} catch (err) {
|
|
||||||
showErrorToast(err as AxiosError);
|
|
||||||
} finally {
|
|
||||||
setShowDeleteModal(false);
|
|
||||||
onRemoveAsset?.();
|
|
||||||
setAssetRemoving(false);
|
|
||||||
hideNotification();
|
|
||||||
setSelectedItems(new Map()); // Reset selected items
|
|
||||||
}
|
|
||||||
},
|
|
||||||
[type, activeEntity, entityFqn]
|
|
||||||
);
|
|
||||||
|
|
||||||
const clearFilters = useCallback(() => {
|
const clearFilters = useCallback(() => {
|
||||||
setQuickFilterQuery(undefined);
|
setQuickFilterQuery(undefined);
|
||||||
setSelectedQuickFilters((pre) => {
|
setSelectedQuickFilters((pre) => {
|
||||||
|
@ -16,6 +16,7 @@ import {
|
|||||||
StopOutlined,
|
StopOutlined,
|
||||||
UserOutlined,
|
UserOutlined,
|
||||||
} from '@ant-design/icons';
|
} from '@ant-design/icons';
|
||||||
|
import Icon from '@ant-design/icons/lib/components/Icon';
|
||||||
import { IChangeEvent } from '@rjsf/core';
|
import { IChangeEvent } from '@rjsf/core';
|
||||||
import { RJSFSchema } from '@rjsf/utils';
|
import { RJSFSchema } from '@rjsf/utils';
|
||||||
import validator from '@rjsf/validator-ajv8';
|
import validator from '@rjsf/validator-ajv8';
|
||||||
@ -40,12 +41,7 @@ import { ReactComponent as IconExternalLink } from '../../../../assets/svg/exter
|
|||||||
import { ReactComponent as DeleteIcon } from '../../../../assets/svg/ic-delete.svg';
|
import { ReactComponent as DeleteIcon } from '../../../../assets/svg/ic-delete.svg';
|
||||||
import { ReactComponent as IconRestore } from '../../../../assets/svg/ic-restore.svg';
|
import { ReactComponent as IconRestore } from '../../../../assets/svg/ic-restore.svg';
|
||||||
import { ReactComponent as IconDropdown } from '../../../../assets/svg/menu.svg';
|
import { ReactComponent as IconDropdown } from '../../../../assets/svg/menu.svg';
|
||||||
|
import { ICON_DIMENSION } from '../../../../constants/constants';
|
||||||
import Icon from '@ant-design/icons/lib/components/Icon';
|
|
||||||
import {
|
|
||||||
DE_ACTIVE_COLOR,
|
|
||||||
ICON_DIMENSION,
|
|
||||||
} from '../../../../constants/constants';
|
|
||||||
import { GlobalSettingOptions } from '../../../../constants/GlobalSettings.constants';
|
import { GlobalSettingOptions } from '../../../../constants/GlobalSettings.constants';
|
||||||
import { ServiceCategory } from '../../../../enums/service.enum';
|
import { ServiceCategory } from '../../../../enums/service.enum';
|
||||||
import {
|
import {
|
||||||
@ -175,13 +171,7 @@ const AppDetails = () => {
|
|||||||
description={t('message.restore-action-description', {
|
description={t('message.restore-action-description', {
|
||||||
entityType: getEntityName(appData),
|
entityType: getEntityName(appData),
|
||||||
})}
|
})}
|
||||||
icon={
|
icon={IconRestore}
|
||||||
<IconRestore
|
|
||||||
className="m-t-xss"
|
|
||||||
name="Restore"
|
|
||||||
width="18px"
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
id="restore-button"
|
id="restore-button"
|
||||||
name={t('label.restore')}
|
name={t('label.restore')}
|
||||||
/>
|
/>
|
||||||
@ -202,11 +192,7 @@ const AppDetails = () => {
|
|||||||
description={t('message.disable-app', {
|
description={t('message.disable-app', {
|
||||||
app: getEntityName(appData),
|
app: getEntityName(appData),
|
||||||
})}
|
})}
|
||||||
icon={
|
icon={StopOutlined as SvgComponent}
|
||||||
<StopOutlined
|
|
||||||
style={{ fontSize: '18px', color: DE_ACTIVE_COLOR }}
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
id="disable-button"
|
id="disable-button"
|
||||||
name={t('label.disable')}
|
name={t('label.disable')}
|
||||||
/>
|
/>
|
||||||
@ -225,7 +211,7 @@ const AppDetails = () => {
|
|||||||
description={t('message.uninstall-app', {
|
description={t('message.uninstall-app', {
|
||||||
app: getEntityName(appData),
|
app: getEntityName(appData),
|
||||||
})}
|
})}
|
||||||
icon={<DeleteIcon color={DE_ACTIVE_COLOR} width="18px" />}
|
icon={DeleteIcon}
|
||||||
id="uninstall-button"
|
id="uninstall-button"
|
||||||
name={t('label.uninstall')}
|
name={t('label.uninstall')}
|
||||||
/>
|
/>
|
||||||
|
@ -51,7 +51,6 @@ import {
|
|||||||
GlobalSettingOptions,
|
GlobalSettingOptions,
|
||||||
GlobalSettingsMenuCategory,
|
GlobalSettingsMenuCategory,
|
||||||
} from '../../../../constants/GlobalSettings.constants';
|
} from '../../../../constants/GlobalSettings.constants';
|
||||||
import { DROPDOWN_ICON_SIZE_PROPS } from '../../../../constants/ManageButton.constants';
|
|
||||||
import { usePermissionProvider } from '../../../../context/PermissionProvider/PermissionProvider';
|
import { usePermissionProvider } from '../../../../context/PermissionProvider/PermissionProvider';
|
||||||
import { ResourceEntity } from '../../../../context/PermissionProvider/PermissionProvider.interface';
|
import { ResourceEntity } from '../../../../context/PermissionProvider/PermissionProvider.interface';
|
||||||
import { ERROR_PLACEHOLDER_TYPE } from '../../../../enums/common.enum';
|
import { ERROR_PLACEHOLDER_TYPE } from '../../../../enums/common.enum';
|
||||||
@ -464,13 +463,6 @@ const TeamDetailsV1 = ({
|
|||||||
return t('message.are-you-sure-want-to-text', { text });
|
return t('message.are-you-sure-want-to-text', { text });
|
||||||
};
|
};
|
||||||
|
|
||||||
const restoreIcon = useMemo(
|
|
||||||
() => (
|
|
||||||
<IconRestore {...DROPDOWN_ICON_SIZE_PROPS} name={t('label.restore')} />
|
|
||||||
),
|
|
||||||
[currentTeam.isJoinable]
|
|
||||||
);
|
|
||||||
|
|
||||||
const handleTeamExportClick = useCallback(async () => {
|
const handleTeamExportClick = useCallback(async () => {
|
||||||
if (currentTeam?.name) {
|
if (currentTeam?.name) {
|
||||||
showModal({
|
showModal({
|
||||||
@ -499,7 +491,7 @@ const TeamDetailsV1 = ({
|
|||||||
description={t('message.export-entity-help', {
|
description={t('message.export-entity-help', {
|
||||||
entity: t('label.team-lowercase'),
|
entity: t('label.team-lowercase'),
|
||||||
})}
|
})}
|
||||||
icon={<ExportIcon width="18px" />}
|
icon={ExportIcon}
|
||||||
id="export"
|
id="export"
|
||||||
name={t('label.export')}
|
name={t('label.export')}
|
||||||
/>
|
/>
|
||||||
@ -517,7 +509,7 @@ const TeamDetailsV1 = ({
|
|||||||
description={t('message.import-entity-help', {
|
description={t('message.import-entity-help', {
|
||||||
entity: t('label.team-lowercase'),
|
entity: t('label.team-lowercase'),
|
||||||
})}
|
})}
|
||||||
icon={<ImportIcon width="20px" />}
|
icon={ImportIcon}
|
||||||
id="import-button"
|
id="import-button"
|
||||||
name={t('label.import')}
|
name={t('label.import')}
|
||||||
/>
|
/>
|
||||||
@ -539,7 +531,7 @@ const TeamDetailsV1 = ({
|
|||||||
label: (
|
label: (
|
||||||
<ManageButtonItemLabel
|
<ManageButtonItemLabel
|
||||||
description={t('message.restore-deleted-team')}
|
description={t('message.restore-deleted-team')}
|
||||||
icon={restoreIcon}
|
icon={IconRestore}
|
||||||
id="restore-team-dropdown"
|
id="restore-team-dropdown"
|
||||||
name={t('label.restore-entity', {
|
name={t('label.restore-entity', {
|
||||||
entity: t('label.team'),
|
entity: t('label.team'),
|
||||||
@ -558,7 +550,7 @@ const TeamDetailsV1 = ({
|
|||||||
label: (
|
label: (
|
||||||
<ManageButtonItemLabel
|
<ManageButtonItemLabel
|
||||||
description={t('message.access-to-collaborate')}
|
description={t('message.access-to-collaborate')}
|
||||||
icon={<IconOpenLock {...DROPDOWN_ICON_SIZE_PROPS} />}
|
icon={IconOpenLock}
|
||||||
id="open-group-dropdown"
|
id="open-group-dropdown"
|
||||||
name={
|
name={
|
||||||
<Row>
|
<Row>
|
||||||
|
@ -248,7 +248,7 @@ export const UserTab = ({
|
|||||||
description={t('message.export-entity-help', {
|
description={t('message.export-entity-help', {
|
||||||
entity: t('label.user-lowercase'),
|
entity: t('label.user-lowercase'),
|
||||||
})}
|
})}
|
||||||
icon={<ExportIcon width="18px" />}
|
icon={ExportIcon}
|
||||||
id="export"
|
id="export"
|
||||||
name={t('label.export')}
|
name={t('label.export')}
|
||||||
/>
|
/>
|
||||||
@ -265,7 +265,7 @@ export const UserTab = ({
|
|||||||
description={t('message.import-entity-help', {
|
description={t('message.import-entity-help', {
|
||||||
entity: t('label.team-lowercase'),
|
entity: t('label.team-lowercase'),
|
||||||
})}
|
})}
|
||||||
icon={<ImportIcon width="20px" />}
|
icon={ImportIcon}
|
||||||
id="import-button"
|
id="import-button"
|
||||||
name={t('label.import')}
|
name={t('label.import')}
|
||||||
/>
|
/>
|
||||||
|
@ -25,7 +25,6 @@ import { ReactComponent as IconRestore } from '../../../../assets/svg/ic-restore
|
|||||||
import { ReactComponent as IconSetting } from '../../../../assets/svg/ic-settings-gray.svg';
|
import { ReactComponent as IconSetting } from '../../../../assets/svg/ic-settings-gray.svg';
|
||||||
import { ReactComponent as IconDropdown } from '../../../../assets/svg/menu.svg';
|
import { ReactComponent as IconDropdown } from '../../../../assets/svg/menu.svg';
|
||||||
import { NO_PERMISSION_FOR_ACTION } from '../../../../constants/HelperTextUtil';
|
import { NO_PERMISSION_FOR_ACTION } from '../../../../constants/HelperTextUtil';
|
||||||
import { DROPDOWN_ICON_SIZE_PROPS } from '../../../../constants/ManageButton.constants';
|
|
||||||
import { EntityType } from '../../../../enums/entity.enum';
|
import { EntityType } from '../../../../enums/entity.enum';
|
||||||
import { ANNOUNCEMENT_ENTITIES } from '../../../../utils/AnnouncementsUtils';
|
import { ANNOUNCEMENT_ENTITIES } from '../../../../utils/AnnouncementsUtils';
|
||||||
import { showErrorToast } from '../../../../utils/ToastUtils';
|
import { showErrorToast } from '../../../../utils/ToastUtils';
|
||||||
@ -127,13 +126,7 @@ const ManageButton: FC<ManageButtonProps> = ({
|
|||||||
description={t('message.restore-action-description', {
|
description={t('message.restore-action-description', {
|
||||||
entityType,
|
entityType,
|
||||||
})}
|
})}
|
||||||
icon={
|
icon={IconRestore}
|
||||||
<IconRestore
|
|
||||||
className="m-t-xss"
|
|
||||||
name="Restore"
|
|
||||||
{...DROPDOWN_ICON_SIZE_PROPS}
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
id="restore-button"
|
id="restore-button"
|
||||||
name={t('label.restore')}
|
name={t('label.restore')}
|
||||||
/>
|
/>
|
||||||
@ -156,13 +149,7 @@ const ManageButton: FC<ManageButtonProps> = ({
|
|||||||
label: (
|
label: (
|
||||||
<ManageButtonItemLabel
|
<ManageButtonItemLabel
|
||||||
description={t('message.announcement-action-description')}
|
description={t('message.announcement-action-description')}
|
||||||
icon={
|
icon={IconAnnouncementsBlack}
|
||||||
<IconAnnouncementsBlack
|
|
||||||
className="m-t-xss"
|
|
||||||
name="announcement"
|
|
||||||
{...DROPDOWN_ICON_SIZE_PROPS}
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
id="announcement-button"
|
id="announcement-button"
|
||||||
name={t('label.announcement-plural')}
|
name={t('label.announcement-plural')}
|
||||||
/>
|
/>
|
||||||
@ -184,7 +171,7 @@ const ManageButton: FC<ManageButtonProps> = ({
|
|||||||
description={t('message.update-displayName-entity', {
|
description={t('message.update-displayName-entity', {
|
||||||
entity: entityName,
|
entity: entityName,
|
||||||
})}
|
})}
|
||||||
icon={<EditIcon width="18px" />}
|
icon={EditIcon}
|
||||||
id="rename-button"
|
id="rename-button"
|
||||||
name={t('label.rename')}
|
name={t('label.rename')}
|
||||||
/>
|
/>
|
||||||
@ -207,13 +194,7 @@ const ManageButton: FC<ManageButtonProps> = ({
|
|||||||
deleteButtonDescription ??
|
deleteButtonDescription ??
|
||||||
t('message.update-profiler-settings')
|
t('message.update-profiler-settings')
|
||||||
}
|
}
|
||||||
icon={
|
icon={IconSetting}
|
||||||
<IconSetting
|
|
||||||
className="m-t-xss"
|
|
||||||
{...DROPDOWN_ICON_SIZE_PROPS}
|
|
||||||
name="Profiler Settings"
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
id="profiler-setting-button"
|
id="profiler-setting-button"
|
||||||
name={t('label.profiler-setting-plural')}
|
name={t('label.profiler-setting-plural')}
|
||||||
/>
|
/>
|
||||||
@ -237,13 +218,7 @@ const ManageButton: FC<ManageButtonProps> = ({
|
|||||||
entityType,
|
entityType,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
icon={
|
icon={IconDelete}
|
||||||
<IconDelete
|
|
||||||
className="m-t-xss"
|
|
||||||
{...DROPDOWN_ICON_SIZE_PROPS}
|
|
||||||
name="Delete"
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
id="delete-button"
|
id="delete-button"
|
||||||
name={t('label.delete')}
|
name={t('label.delete')}
|
||||||
/>
|
/>
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { Col, Row, Typography } from 'antd';
|
import { Col, Row, Typography } from 'antd';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { MangeButtonItemLabelProps } from './ManageButtonItemLabel.interface';
|
import { MangeButtonItemLabelProps } from './ManageButtonItemLabel.interface';
|
||||||
@ -21,10 +22,12 @@ export const ManageButtonItemLabel = ({
|
|||||||
description,
|
description,
|
||||||
id,
|
id,
|
||||||
}: MangeButtonItemLabelProps) => {
|
}: MangeButtonItemLabelProps) => {
|
||||||
|
const Icon = icon;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Row className="cursor-pointer" data-testid={id} onClick={onClick}>
|
<Row className="cursor-pointer" data-testid={id} onClick={onClick}>
|
||||||
<Col className="self-center" data-testid={`${id}-icon`} span={3}>
|
<Col className="self-center" data-testid={`${id}-icon`} span={3}>
|
||||||
{icon}
|
<Icon width="18px" />
|
||||||
</Col>
|
</Col>
|
||||||
<Col
|
<Col
|
||||||
className="text-left"
|
className="text-left"
|
||||||
|
@ -12,12 +12,14 @@
|
|||||||
*/
|
*/
|
||||||
import { render, screen } from '@testing-library/react';
|
import { render, screen } from '@testing-library/react';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
import { act } from 'react-test-renderer';
|
||||||
|
import { ReactComponent as Icon } from '../../../assets/svg/teams-grey.svg';
|
||||||
import { ManageButtonItemLabel } from './ManageButtonContentItem.component';
|
import { ManageButtonItemLabel } from './ManageButtonContentItem.component';
|
||||||
import { MangeButtonItemLabelProps } from './ManageButtonItemLabel.interface';
|
import { MangeButtonItemLabelProps } from './ManageButtonItemLabel.interface';
|
||||||
|
|
||||||
const mockProps: MangeButtonItemLabelProps = {
|
const mockProps: MangeButtonItemLabelProps = {
|
||||||
name: 'export',
|
name: 'export',
|
||||||
icon: null,
|
icon: Icon,
|
||||||
description: 'description',
|
description: 'description',
|
||||||
id: 'export',
|
id: 'export',
|
||||||
};
|
};
|
||||||
@ -40,4 +42,15 @@ describe('ManageButtonContentItem component', () => {
|
|||||||
await screen.findByTestId(`${mockProps.id}-description`)
|
await screen.findByTestId(`${mockProps.id}-description`)
|
||||||
).toBeInTheDocument();
|
).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should call onClick for clicking on item', async () => {
|
||||||
|
const mockClick = jest.fn();
|
||||||
|
render(<ManageButtonItemLabel {...mockProps} onClick={mockClick} />);
|
||||||
|
|
||||||
|
await act(async () => {
|
||||||
|
screen.getByTestId(`${mockProps.id}`).click();
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(mockClick).toHaveBeenCalled();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@ -15,7 +15,7 @@ import { ReactNode } from 'react';
|
|||||||
export interface MangeButtonItemLabelProps {
|
export interface MangeButtonItemLabelProps {
|
||||||
name: ReactNode;
|
name: ReactNode;
|
||||||
onClick?: React.MouseEventHandler<HTMLDivElement>;
|
onClick?: React.MouseEventHandler<HTMLDivElement>;
|
||||||
icon: ReactNode;
|
icon: SvgComponent;
|
||||||
description: string;
|
description: string;
|
||||||
id: string;
|
id: string;
|
||||||
}
|
}
|
||||||
|
@ -77,6 +77,7 @@ import {
|
|||||||
sortTagsCaseInsensitive,
|
sortTagsCaseInsensitive,
|
||||||
} from '../../utils/CommonUtils';
|
} from '../../utils/CommonUtils';
|
||||||
import { getQueryFilterForDatabase } from '../../utils/Database/Database.util';
|
import { getQueryFilterForDatabase } from '../../utils/Database/Database.util';
|
||||||
|
import entityUtilClassBase from '../../utils/EntityUtilClassBase';
|
||||||
import { getEntityName } from '../../utils/EntityUtils';
|
import { getEntityName } from '../../utils/EntityUtils';
|
||||||
import { DEFAULT_ENTITY_PERMISSION } from '../../utils/PermissionsUtils';
|
import { DEFAULT_ENTITY_PERMISSION } from '../../utils/PermissionsUtils';
|
||||||
import { getTagsWithoutTier, getTierTags } from '../../utils/TableUtils';
|
import { getTagsWithoutTier, getTierTags } from '../../utils/TableUtils';
|
||||||
@ -118,6 +119,11 @@ const DatabaseDetails: FunctionComponent = () => {
|
|||||||
const [updateProfilerSetting, setUpdateProfilerSetting] =
|
const [updateProfilerSetting, setUpdateProfilerSetting] =
|
||||||
useState<boolean>(false);
|
useState<boolean>(false);
|
||||||
|
|
||||||
|
const extraDropdownContent = entityUtilClassBase.getManageExtraOptions(
|
||||||
|
EntityType.DATABASE,
|
||||||
|
decodedDatabaseFQN
|
||||||
|
);
|
||||||
|
|
||||||
const history = useHistory();
|
const history = useHistory();
|
||||||
const isMounting = useRef(true);
|
const isMounting = useRef(true);
|
||||||
|
|
||||||
@ -645,6 +651,7 @@ const DatabaseDetails: FunctionComponent = () => {
|
|||||||
afterDomainUpdateAction={afterDomainUpdateAction}
|
afterDomainUpdateAction={afterDomainUpdateAction}
|
||||||
dataAsset={database}
|
dataAsset={database}
|
||||||
entityType={EntityType.DATABASE}
|
entityType={EntityType.DATABASE}
|
||||||
|
extraDropdownContent={extraDropdownContent}
|
||||||
openTaskCount={feedCount.openTaskCount}
|
openTaskCount={feedCount.openTaskCount}
|
||||||
permissions={databasePermission}
|
permissions={databasePermission}
|
||||||
onDisplayNameUpdate={handleUpdateDisplayName}
|
onDisplayNameUpdate={handleUpdateDisplayName}
|
||||||
|
@ -79,6 +79,7 @@ import {
|
|||||||
getFeedCounts,
|
getFeedCounts,
|
||||||
sortTagsCaseInsensitive,
|
sortTagsCaseInsensitive,
|
||||||
} from '../../utils/CommonUtils';
|
} from '../../utils/CommonUtils';
|
||||||
|
import entityUtilClassBase from '../../utils/EntityUtilClassBase';
|
||||||
import { getEntityName } from '../../utils/EntityUtils';
|
import { getEntityName } from '../../utils/EntityUtils';
|
||||||
import { DEFAULT_ENTITY_PERMISSION } from '../../utils/PermissionsUtils';
|
import { DEFAULT_ENTITY_PERMISSION } from '../../utils/PermissionsUtils';
|
||||||
import { getTagsWithoutTier, getTierTags } from '../../utils/TableUtils';
|
import { getTagsWithoutTier, getTierTags } from '../../utils/TableUtils';
|
||||||
@ -126,6 +127,11 @@ const DatabaseSchemaPage: FunctionComponent = () => {
|
|||||||
const [updateProfilerSetting, setUpdateProfilerSetting] =
|
const [updateProfilerSetting, setUpdateProfilerSetting] =
|
||||||
useState<boolean>(false);
|
useState<boolean>(false);
|
||||||
|
|
||||||
|
const extraDropdownContent = entityUtilClassBase.getManageExtraOptions(
|
||||||
|
EntityType.DATABASE_SCHEMA,
|
||||||
|
decodedDatabaseSchemaFQN
|
||||||
|
);
|
||||||
|
|
||||||
const handleShowDeletedTables = (value: boolean) => {
|
const handleShowDeletedTables = (value: boolean) => {
|
||||||
setShowDeletedTables(value);
|
setShowDeletedTables(value);
|
||||||
setCurrentTablesPage(INITIAL_PAGING_VALUE);
|
setCurrentTablesPage(INITIAL_PAGING_VALUE);
|
||||||
@ -717,6 +723,7 @@ const DatabaseSchemaPage: FunctionComponent = () => {
|
|||||||
afterDomainUpdateAction={afterDomainUpdateAction}
|
afterDomainUpdateAction={afterDomainUpdateAction}
|
||||||
dataAsset={databaseSchema}
|
dataAsset={databaseSchema}
|
||||||
entityType={EntityType.DATABASE_SCHEMA}
|
entityType={EntityType.DATABASE_SCHEMA}
|
||||||
|
extraDropdownContent={extraDropdownContent}
|
||||||
permissions={databaseSchemaPermission}
|
permissions={databaseSchemaPermission}
|
||||||
onDisplayNameUpdate={handleUpdateDisplayName}
|
onDisplayNameUpdate={handleUpdateDisplayName}
|
||||||
onOwnerUpdate={handleUpdateOwner}
|
onOwnerUpdate={handleUpdateOwner}
|
||||||
|
@ -25,7 +25,6 @@ import IconGoogle from '../../assets/img/icon-google.png';
|
|||||||
import IconOkta from '../../assets/img/icon-okta.png';
|
import IconOkta from '../../assets/img/icon-okta.png';
|
||||||
import loginBG from '../../assets/img/login-bg.png';
|
import loginBG from '../../assets/img/login-bg.png';
|
||||||
import { ReactComponent as IconFailBadge } from '../../assets/svg/fail-badge.svg';
|
import { ReactComponent as IconFailBadge } from '../../assets/svg/fail-badge.svg';
|
||||||
|
|
||||||
import { useBasicAuth } from '../../components/Auth/AuthProviders/BasicAuthProvider';
|
import { useBasicAuth } from '../../components/Auth/AuthProviders/BasicAuthProvider';
|
||||||
import BrandImage from '../../components/common/BrandImage/BrandImage';
|
import BrandImage from '../../components/common/BrandImage/BrandImage';
|
||||||
import Loader from '../../components/common/Loader/Loader';
|
import Loader from '../../components/common/Loader/Loader';
|
||||||
@ -308,7 +307,7 @@ const SignInPage = () => {
|
|||||||
<Col className="relative" span={16}>
|
<Col className="relative" span={16}>
|
||||||
<div className="absolute inset-0">
|
<div className="absolute inset-0">
|
||||||
<img
|
<img
|
||||||
alt="bg-image"
|
alt="Login Background"
|
||||||
className="w-full h-full"
|
className="w-full h-full"
|
||||||
data-testid="bg-image"
|
data-testid="bg-image"
|
||||||
src={loginBG}
|
src={loginBG}
|
||||||
|
@ -266,6 +266,7 @@ const ServiceDetailsPage: FunctionComponent = () => {
|
|||||||
const response = await getIngestionPipelines({
|
const response = await getIngestionPipelines({
|
||||||
arrQueryFields: ['owner', 'pipelineStatuses'],
|
arrQueryFields: ['owner', 'pipelineStatuses'],
|
||||||
serviceFilter: decodedServiceFQN,
|
serviceFilter: decodedServiceFQN,
|
||||||
|
serviceType: getEntityTypeFromServiceCategory(serviceCategory),
|
||||||
paging,
|
paging,
|
||||||
pipelineType: [
|
pipelineType: [
|
||||||
PipelineType.Metadata,
|
PipelineType.Metadata,
|
||||||
|
@ -91,6 +91,7 @@ import {
|
|||||||
} from '../../utils/CommonUtils';
|
} from '../../utils/CommonUtils';
|
||||||
import { defaultFields } from '../../utils/DatasetDetailsUtils';
|
import { defaultFields } from '../../utils/DatasetDetailsUtils';
|
||||||
import EntityLink from '../../utils/EntityLink';
|
import EntityLink from '../../utils/EntityLink';
|
||||||
|
import entityUtilClassBase from '../../utils/EntityUtilClassBase';
|
||||||
import { getEntityName } from '../../utils/EntityUtils';
|
import { getEntityName } from '../../utils/EntityUtils';
|
||||||
import { DEFAULT_ENTITY_PERMISSION } from '../../utils/PermissionsUtils';
|
import { DEFAULT_ENTITY_PERMISSION } from '../../utils/PermissionsUtils';
|
||||||
import { getTagsWithoutTier, getTierTags } from '../../utils/TableUtils';
|
import { getTagsWithoutTier, getTierTags } from '../../utils/TableUtils';
|
||||||
@ -126,6 +127,11 @@ const TableDetailsPageV1: React.FC = () => {
|
|||||||
DEFAULT_ENTITY_PERMISSION
|
DEFAULT_ENTITY_PERMISSION
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const extraDropdownContent = entityUtilClassBase.getManageExtraOptions(
|
||||||
|
EntityType.TABLE,
|
||||||
|
datasetFQN
|
||||||
|
);
|
||||||
|
|
||||||
const viewUsagePermission = useMemo(
|
const viewUsagePermission = useMemo(
|
||||||
() => tablePermissions.ViewAll || tablePermissions.ViewUsage,
|
() => tablePermissions.ViewAll || tablePermissions.ViewUsage,
|
||||||
[tablePermissions]
|
[tablePermissions]
|
||||||
@ -1025,6 +1031,7 @@ const TableDetailsPageV1: React.FC = () => {
|
|||||||
afterDomainUpdateAction={updateTableDetailsState}
|
afterDomainUpdateAction={updateTableDetailsState}
|
||||||
dataAsset={tableDetails}
|
dataAsset={tableDetails}
|
||||||
entityType={EntityType.TABLE}
|
entityType={EntityType.TABLE}
|
||||||
|
extraDropdownContent={extraDropdownContent}
|
||||||
openTaskCount={feedCount.openTaskCount}
|
openTaskCount={feedCount.openTaskCount}
|
||||||
permissions={tablePermissions}
|
permissions={tablePermissions}
|
||||||
onDisplayNameUpdate={handleDisplayNameUpdate}
|
onDisplayNameUpdate={handleDisplayNameUpdate}
|
||||||
|
@ -20,7 +20,7 @@ import { ReactComponent as IconDisableTag } from '../assets/svg/disable-tag.svg'
|
|||||||
import { ReactComponent as EditIcon } from '../assets/svg/edit-new.svg';
|
import { ReactComponent as EditIcon } from '../assets/svg/edit-new.svg';
|
||||||
import { ManageButtonItemLabel } from '../components/common/ManageButtonContentItem/ManageButtonContentItem.component';
|
import { ManageButtonItemLabel } from '../components/common/ManageButtonContentItem/ManageButtonContentItem.component';
|
||||||
import RichTextEditorPreviewer from '../components/common/RichTextEditor/RichTextEditorPreviewer';
|
import RichTextEditorPreviewer from '../components/common/RichTextEditor/RichTextEditorPreviewer';
|
||||||
import { DE_ACTIVE_COLOR, NO_DATA_PLACEHOLDER } from '../constants/constants';
|
import { NO_DATA_PLACEHOLDER } from '../constants/constants';
|
||||||
import { OperationPermission } from '../context/PermissionProvider/PermissionProvider.interface';
|
import { OperationPermission } from '../context/PermissionProvider/PermissionProvider.interface';
|
||||||
import { ProviderType } from '../generated/entity/bot';
|
import { ProviderType } from '../generated/entity/bot';
|
||||||
import { Tag } from '../generated/entity/classification/tag';
|
import { Tag } from '../generated/entity/classification/tag';
|
||||||
@ -228,7 +228,7 @@ export const getClassificationExtraDropdownContent = (
|
|||||||
? t('message.enable-classification-description')
|
? t('message.enable-classification-description')
|
||||||
: t('message.disable-classification-description')
|
: t('message.disable-classification-description')
|
||||||
}
|
}
|
||||||
icon={<IconDisableTag color={DE_ACTIVE_COLOR} width="18px" />}
|
icon={IconDisableTag}
|
||||||
id="enable-disable"
|
id="enable-disable"
|
||||||
name={
|
name={
|
||||||
isClassificationDisabled
|
isClassificationDisabled
|
||||||
|
@ -10,6 +10,8 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
||||||
|
import { ItemType } from 'antd/lib/menu/hooks/useItems';
|
||||||
import DataProductsPage from '../components/DataProducts/DataProductsPage/DataProductsPage.component';
|
import DataProductsPage from '../components/DataProducts/DataProductsPage/DataProductsPage.component';
|
||||||
import {
|
import {
|
||||||
getEditWebhookPath,
|
getEditWebhookPath,
|
||||||
@ -281,6 +283,13 @@ class EntityUtilClassBase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public getManageExtraOptions(
|
||||||
|
_entityType?: EntityType,
|
||||||
|
_fqn?: string
|
||||||
|
): ItemType[] {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const entityUtilClassBase = new EntityUtilClassBase();
|
const entityUtilClassBase = new EntityUtilClassBase();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user