mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2026-01-06 12:36:56 +00:00
fixed issue-5779 Add manage tab to soft deleted entity (#5781)
* fixed issue-5779 Added manage tab to soft deleted entity * miner fix * addressing comments
This commit is contained in:
parent
9ca7a75e2d
commit
00e25ade91
@ -201,7 +201,6 @@ const DashboardDetails = ({
|
||||
selectedName: 'icon-managecolor',
|
||||
},
|
||||
isProtected: true,
|
||||
isHidden: deleted,
|
||||
protectedState: !owner || hasEditAccess(),
|
||||
position: 4,
|
||||
},
|
||||
@ -703,11 +702,11 @@ const DashboardDetails = ({
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
{activeTab === 4 && !deleted && (
|
||||
{activeTab === 4 && (
|
||||
<div>
|
||||
<ManageTabComponent
|
||||
allowDelete
|
||||
allowSoftDelete
|
||||
allowSoftDelete={!deleted}
|
||||
currentTier={tier?.tagFQN}
|
||||
currentUser={owner}
|
||||
deletEntityMessage={getDeleteEntityMessage()}
|
||||
@ -715,6 +714,8 @@ const DashboardDetails = ({
|
||||
entityName={dashboardDetails.name}
|
||||
entityType={EntityType.DASHBOARD}
|
||||
hasEditAccess={hasEditAccess()}
|
||||
hideOwner={deleted}
|
||||
hideTier={deleted}
|
||||
manageSectionType={EntityType.DASHBOARD}
|
||||
onSave={onSettingsUpdate}
|
||||
/>
|
||||
|
||||
@ -313,7 +313,6 @@ const DatasetDetails: React.FC<DatasetDetailsProps> = ({
|
||||
selectedName: 'icon-managecolor',
|
||||
},
|
||||
isProtected: false,
|
||||
isHidden: deleted,
|
||||
protectedState: !owner || hasEditAccess(),
|
||||
position: 10,
|
||||
},
|
||||
@ -804,17 +803,19 @@ const DatasetDetails: React.FC<DatasetDetailsProps> = ({
|
||||
tableDetails={tableDetails}
|
||||
/>
|
||||
)}
|
||||
{activeTab === 10 && !deleted && (
|
||||
{activeTab === 10 && (
|
||||
<div>
|
||||
<ManageTab
|
||||
allowDelete
|
||||
allowSoftDelete
|
||||
allowSoftDelete={!deleted}
|
||||
currentTier={tier?.tagFQN}
|
||||
currentUser={owner}
|
||||
entityId={tableDetails.id}
|
||||
entityName={tableDetails.name}
|
||||
entityType={EntityType.TABLE}
|
||||
hasEditAccess={hasEditAccess()}
|
||||
hideOwner={deleted}
|
||||
hideTier={deleted}
|
||||
manageSectionType={EntityType.TABLE}
|
||||
onSave={onSettingsUpdate}
|
||||
/>
|
||||
|
||||
@ -193,7 +193,6 @@ const MlModelDetail: FC<MlModelDetailProp> = ({
|
||||
selectedName: 'icon-managecolor',
|
||||
},
|
||||
isProtected: false,
|
||||
isHidden: mlModelDetail.deleted,
|
||||
protectedState: !mlModelDetail.owner || hasEditAccess(),
|
||||
position: 3,
|
||||
},
|
||||
@ -452,17 +451,19 @@ const MlModelDetail: FC<MlModelDetailProp> = ({
|
||||
{getMlModelStore()}
|
||||
</div>
|
||||
)}
|
||||
{activeTab === 3 && !mlModelDetail.deleted && (
|
||||
{activeTab === 3 && (
|
||||
<div>
|
||||
<ManageTabComponent
|
||||
allowDelete
|
||||
allowSoftDelete
|
||||
allowSoftDelete={!mlModelDetail.deleted}
|
||||
currentTier={mlModelTier?.tagFQN}
|
||||
currentUser={mlModelDetail.owner}
|
||||
entityId={mlModelDetail.id}
|
||||
entityName={mlModelDetail.name}
|
||||
entityType={EntityType.MLMODEL}
|
||||
hasEditAccess={hasEditAccess()}
|
||||
hideOwner={mlModelDetail.deleted}
|
||||
hideTier={mlModelDetail.deleted}
|
||||
onSave={onSettingsUpdate}
|
||||
/>
|
||||
</div>
|
||||
|
||||
@ -194,7 +194,6 @@ const PipelineDetails = ({
|
||||
selectedName: 'icon-managecolor',
|
||||
},
|
||||
isProtected: true,
|
||||
isHidden: deleted,
|
||||
protectedState: !owner || hasEditAccess(),
|
||||
position: 4,
|
||||
},
|
||||
@ -485,17 +484,19 @@ const PipelineDetails = ({
|
||||
/>
|
||||
</div>
|
||||
)}
|
||||
{activeTab === 4 && !deleted && (
|
||||
{activeTab === 4 && (
|
||||
<div>
|
||||
<ManageTabComponent
|
||||
allowDelete
|
||||
allowSoftDelete
|
||||
allowSoftDelete={!deleted}
|
||||
currentTier={tier?.tagFQN}
|
||||
currentUser={owner}
|
||||
entityId={pipelineDetails.id}
|
||||
entityName={pipelineDetails.name}
|
||||
entityType={EntityType.PIPELINE}
|
||||
hasEditAccess={hasEditAccess()}
|
||||
hideOwner={deleted}
|
||||
hideTier={deleted}
|
||||
manageSectionType={EntityType.PIPELINE}
|
||||
onSave={onSettingsUpdate}
|
||||
/>
|
||||
|
||||
@ -217,7 +217,6 @@ const TopicDetails: React.FC<TopicDetailsProps> = ({
|
||||
selectedName: 'icon-managecolor',
|
||||
},
|
||||
isProtected: true,
|
||||
isHidden: deleted,
|
||||
protectedState: !owner || hasEditAccess(),
|
||||
position: 5,
|
||||
},
|
||||
@ -485,17 +484,19 @@ const TopicDetails: React.FC<TopicDetailsProps> = ({
|
||||
<SchemaEditor value={JSON.stringify(getConfigObject())} />
|
||||
</div>
|
||||
)}
|
||||
{activeTab === 5 && !deleted && (
|
||||
{activeTab === 5 && (
|
||||
<div>
|
||||
<ManageTabComponent
|
||||
allowDelete
|
||||
allowSoftDelete
|
||||
allowSoftDelete={!deleted}
|
||||
currentTier={tier?.tagFQN}
|
||||
currentUser={owner}
|
||||
entityId={topicDetails.id}
|
||||
entityName={topicDetails.name}
|
||||
entityType={EntityType.TOPIC}
|
||||
hasEditAccess={hasEditAccess()}
|
||||
hideOwner={deleted}
|
||||
hideTier={deleted}
|
||||
manageSectionType={EntityType.TOPIC}
|
||||
onSave={onSettingsUpdate}
|
||||
/>
|
||||
|
||||
@ -42,7 +42,7 @@ const DeleteWidget = ({
|
||||
useState<typeof ENTITY_DELETE_STATE>(ENTITY_DELETE_STATE);
|
||||
|
||||
const prepareDeleteMessage = (softDelete = false) => {
|
||||
const softDeleteText = `Soft deleting will deactivate the ${entityName}. This will disable any discovery, read or write operations on ${entityName}`;
|
||||
const softDeleteText = `Delete will deactivate the ${entityType} ${entityName}. This will disable any discovery, read or write operations on ${entityName}`;
|
||||
const hardDeleteText = getEntityDeleteMessage(getTitleCase(entityType), '');
|
||||
|
||||
return softDelete ? softDeleteText : hardDeleteText;
|
||||
@ -147,10 +147,10 @@ const DeleteWidget = ({
|
||||
{allowSoftDelete && (
|
||||
<div className="tw-border-b" data-testid="soft-delete">
|
||||
<DeleteWidgetBody
|
||||
buttonText="Soft delete"
|
||||
buttonText="Delete"
|
||||
description={prepareDeleteMessage(true)}
|
||||
hasPermission={hasPermission}
|
||||
header={`Soft delete ${getTitleCase(entityType)} ${entityName}`}
|
||||
header={`Delete ${getTitleCase(entityType)} ${entityName}`}
|
||||
isOwner={isAdminUser}
|
||||
onClick={() => handleOnEntityDelete(true)}
|
||||
/>
|
||||
@ -158,10 +158,12 @@ const DeleteWidget = ({
|
||||
)}
|
||||
<div data-testid="hard-delete">
|
||||
<DeleteWidgetBody
|
||||
buttonText="Delete"
|
||||
buttonText="Permanent Delete"
|
||||
description={prepareDeleteMessage()}
|
||||
hasPermission={hasPermission}
|
||||
header={`Delete ${getTitleCase(entityType)} ${entityName}`}
|
||||
header={`Permanently Delete ${getTitleCase(
|
||||
entityType
|
||||
)} ${entityName}`}
|
||||
isOwner={isAdminUser}
|
||||
onClick={() => handleOnEntityDelete(false)}
|
||||
/>
|
||||
|
||||
@ -34,7 +34,7 @@ const DeleteWidgetBody = ({
|
||||
}: DeleteWidgetBodyProps) => {
|
||||
return (
|
||||
<div className="tw-flex tw-justify-between tw-px-5 tw-py-3">
|
||||
<div className="tw-w-10/12" data-testid="danger-zone-text">
|
||||
<div data-testid="danger-zone-text">
|
||||
<p
|
||||
className="tw-text-sm tw-mb-1 tw-font-medium"
|
||||
data-testid="danger-zone-text-title">
|
||||
|
||||
@ -51,12 +51,12 @@ const DeleteWidgetV1 = ({
|
||||
|
||||
const DELETE_OPTION = [
|
||||
{
|
||||
title: `Soft delete ${entityType} “${entityName}”`,
|
||||
title: `Delete ${entityType} “${entityName}”`,
|
||||
description: prepareDeleteMessage(true),
|
||||
type: DeleteType.SOFT_DELETE,
|
||||
},
|
||||
{
|
||||
title: `Delete ${entityType} “${entityName}”`,
|
||||
title: `Permanently Delete ${entityType} “${entityName}”`,
|
||||
description: prepareDeleteMessage(),
|
||||
type: DeleteType.HARD_DELETE,
|
||||
},
|
||||
@ -208,7 +208,7 @@ const DeleteWidgetV1 = ({
|
||||
key={option.type}
|
||||
value={option.type}>
|
||||
<p className="tw-text-sm tw-mb-1 tw-font-medium">{option.title}</p>
|
||||
<p className="tw-text-grey-muted tw-text-xs">
|
||||
<p className="tw-text-grey-muted tw-text-xs tw-mb-2">
|
||||
{option.description}
|
||||
</p>
|
||||
</Radio>
|
||||
|
||||
@ -612,13 +612,13 @@ export const getEntityName = (entity?: EntityReference) => {
|
||||
|
||||
export const getEntityDeleteMessage = (entity: string, dependents: string) => {
|
||||
if (dependents) {
|
||||
return `Deleting this ${getTitleCase(
|
||||
return `Permanently deleting this ${getTitleCase(
|
||||
entity
|
||||
)} will permanently remove its metadata, as well as the metadata of ${dependents} from OpenMetadata.`;
|
||||
)} will remove its metadata, as well as the metadata of ${dependents} from OpenMetadata permanently.`;
|
||||
} else {
|
||||
return `Deleting this ${getTitleCase(
|
||||
return `Permanently deleting this ${getTitleCase(
|
||||
entity
|
||||
)} will permanently remove its metadata from OpenMetadata.`;
|
||||
)} will remove its metadata from OpenMetadata permanently.`;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user