Fix: Added UI support for deleted entity versions (#2424)

* Added UI version support for deleted entities

* Added deleted entity UI changes for versions page
This commit is contained in:
darth-coder00 2022-01-25 20:12:36 +05:30 committed by GitHub
parent e7e5a4dd2c
commit 04d23acf93
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 39 additions and 17 deletions

View File

@ -44,6 +44,7 @@ const DashboardVersion: FC<DashboardVersionProp> = ({
tier, tier,
slashedDashboardName, slashedDashboardName,
versionList, versionList,
deleted = false,
backHandler, backHandler,
versionHandler, versionHandler,
}: DashboardVersionProp) => { }: DashboardVersionProp) => {
@ -219,6 +220,7 @@ const DashboardVersion: FC<DashboardVersionProp> = ({
<div className={classNames('version-data')}> <div className={classNames('version-data')}>
<EntityPageInfo <EntityPageInfo
isVersionSelected isVersionSelected
deleted={deleted}
entityName={currentVersionData.name ?? ''} entityName={currentVersionData.name ?? ''}
extraInfo={getExtraInfo()} extraInfo={getExtraInfo()}
followersList={[]} followersList={[]}

View File

@ -26,6 +26,7 @@ export interface DashboardVersionProp {
slashedDashboardName: TitleBreadcrumbProps['titleLinks']; slashedDashboardName: TitleBreadcrumbProps['titleLinks'];
topicFQN: string; topicFQN: string;
versionList: EntityHistory; versionList: EntityHistory;
deleted?: boolean;
backHandler: () => void; backHandler: () => void;
versionHandler: (v: string) => void; versionHandler: (v: string) => void;
} }

View File

@ -44,6 +44,7 @@ const PipelineVersion: FC<PipelineVersionProp> = ({
tier, tier,
slashedPipelineName, slashedPipelineName,
versionList, versionList,
deleted = false,
backHandler, backHandler,
versionHandler, versionHandler,
}: PipelineVersionProp) => { }: PipelineVersionProp) => {
@ -219,6 +220,7 @@ const PipelineVersion: FC<PipelineVersionProp> = ({
<div className={classNames('version-data')}> <div className={classNames('version-data')}>
<EntityPageInfo <EntityPageInfo
isVersionSelected isVersionSelected
deleted={deleted}
entityName={currentVersionData.name ?? ''} entityName={currentVersionData.name ?? ''}
extraInfo={getExtraInfo()} extraInfo={getExtraInfo()}
followersList={[]} followersList={[]}

View File

@ -26,6 +26,7 @@ export interface PipelineVersionProp {
slashedPipelineName: TitleBreadcrumbProps['titleLinks']; slashedPipelineName: TitleBreadcrumbProps['titleLinks'];
topicFQN: string; topicFQN: string;
versionList: EntityHistory; versionList: EntityHistory;
deleted?: boolean;
backHandler: () => void; backHandler: () => void;
versionHandler: (v: string) => void; versionHandler: (v: string) => void;
} }

View File

@ -42,6 +42,7 @@ const TopicVersion: FC<TopicVersionProp> = ({
tier, tier,
slashedTopicName, slashedTopicName,
versionList, versionList,
deleted = false,
backHandler, backHandler,
versionHandler, versionHandler,
}: TopicVersionProp) => { }: TopicVersionProp) => {
@ -264,6 +265,7 @@ const TopicVersion: FC<TopicVersionProp> = ({
<div className={classNames('version-data')}> <div className={classNames('version-data')}>
<EntityPageInfo <EntityPageInfo
isVersionSelected isVersionSelected
deleted={deleted}
entityName={currentVersionData.name ?? ''} entityName={currentVersionData.name ?? ''}
extraInfo={getExtraInfo()} extraInfo={getExtraInfo()}
followersList={[]} followersList={[]}

View File

@ -26,6 +26,7 @@ export interface TopicVersionProp {
slashedTopicName: TitleBreadcrumbProps['titleLinks']; slashedTopicName: TitleBreadcrumbProps['titleLinks'];
topicFQN: string; topicFQN: string;
versionList: EntityHistory; versionList: EntityHistory;
deleted?: boolean;
backHandler: () => void; backHandler: () => void;
versionHandler: (v: string) => void; versionHandler: (v: string) => void;
} }

View File

@ -142,9 +142,7 @@ const EntityPageInfo = ({
const getVersionButton = (version: string) => { const getVersionButton = (version: string) => {
return ( return (
<div <div className="tw-flex tw-h-6 tw-ml-2 tw-mt-2" onClick={versionHandler}>
className="tw-flex tw-h-6 tw-ml-2 tw-mt-2"
onClick={() => !deleted && versionHandler?.()}>
<span <span
className={classNames( className={classNames(
'tw-flex tw-border tw-border-primary tw-rounded', 'tw-flex tw-border tw-border-primary tw-rounded',
@ -157,10 +155,7 @@ const EntityPageInfo = ({
'tw-text-xs tw-border-r tw-font-medium tw-py-1 tw-px-2 tw-rounded-l focus:tw-outline-none', 'tw-text-xs tw-border-r tw-font-medium tw-py-1 tw-px-2 tw-rounded-l focus:tw-outline-none',
!isUndefined(isVersionSelected) !isUndefined(isVersionSelected)
? 'tw-border-white' ? 'tw-border-white'
: 'tw-border-primary', : 'tw-border-primary'
{
'tw-cursor-not-allowed': deleted,
}
)} )}
data-testid="version-button"> data-testid="version-button">
<SVGIcons <SVGIcons
@ -171,12 +166,7 @@ const EntityPageInfo = ({
</button> </button>
<span <span
className={classNames( className="tw-text-xs tw-border-l-0 tw-font-medium tw-py-1 tw-px-2 tw-rounded-r tw-cursor-pointer"
'tw-text-xs tw-border-l-0 tw-font-medium tw-py-1 tw-px-2 tw-rounded-r tw-cursor-pointer',
{
'tw-cursor-not-allowed': deleted,
}
)}
data-testid="getversions"> data-testid="getversions">
{parseFloat(version).toFixed(1)} {parseFloat(version).toFixed(1)}
</span> </span>

View File

@ -598,6 +598,7 @@ const EntityVersionPage: FunctionComponent = () => {
<TopicVersion <TopicVersion
backHandler={backHandler} backHandler={backHandler}
currentVersionData={currentVersionData} currentVersionData={currentVersionData}
deleted={currentVersionData.deleted}
isVersionLoading={isVersionLoading} isVersionLoading={isVersionLoading}
owner={owner} owner={owner}
slashedTopicName={slashedEntityName} slashedTopicName={slashedEntityName}
@ -615,6 +616,7 @@ const EntityVersionPage: FunctionComponent = () => {
<DashboardVersion <DashboardVersion
backHandler={backHandler} backHandler={backHandler}
currentVersionData={currentVersionData} currentVersionData={currentVersionData}
deleted={currentVersionData.deleted}
isVersionLoading={isVersionLoading} isVersionLoading={isVersionLoading}
owner={owner} owner={owner}
slashedDashboardName={slashedEntityName} slashedDashboardName={slashedEntityName}
@ -632,6 +634,7 @@ const EntityVersionPage: FunctionComponent = () => {
<PipelineVersion <PipelineVersion
backHandler={backHandler} backHandler={backHandler}
currentVersionData={currentVersionData} currentVersionData={currentVersionData}
deleted={currentVersionData.deleted}
isVersionLoading={isVersionLoading} isVersionLoading={isVersionLoading}
owner={owner} owner={owner}
slashedPipelineName={slashedEntityName} slashedPipelineName={slashedEntityName}

View File

@ -527,28 +527,48 @@ export const getSummary = (
) => { ) => {
const fieldsAdded = [...(changeDescription?.fieldsAdded || [])]; const fieldsAdded = [...(changeDescription?.fieldsAdded || [])];
const fieldsDeleted = [...(changeDescription?.fieldsDeleted || [])]; const fieldsDeleted = [...(changeDescription?.fieldsDeleted || [])];
const fieldsUpdated = [...(changeDescription?.fieldsUpdated || [])]; const fieldsUpdated = [
...(changeDescription?.fieldsUpdated?.filter(
(field) => field.name !== 'deleted'
) || []),
];
const isDeleteUpdated = [
...(changeDescription?.fieldsUpdated?.filter(
(field) => field.name === 'deleted'
) || []),
];
return ( return (
<Fragment> <Fragment>
{isDeleteUpdated?.length > 0 ? (
<p className="tw-mb-2">
{isDeleteUpdated
.map((field) => {
return field.newValue
? 'Entity has been deleted'
: 'Entity has been restored';
})
.join(', ')}
</p>
) : null}
{fieldsAdded?.length > 0 ? ( {fieldsAdded?.length > 0 ? (
<p className="tw-mb-2"> <p className="tw-mb-2">
{`${isPrefix ? '+ Added' : ''} ${fieldsAdded {`${isPrefix ? '+ Added' : ''} ${fieldsAdded
?.map(summaryFormatter) .map(summaryFormatter)
.join(', ')} ${!isPrefix ? `has been added` : ''}`}{' '} .join(', ')} ${!isPrefix ? `has been added` : ''}`}{' '}
</p> </p>
) : null} ) : null}
{fieldsUpdated?.length ? ( {fieldsUpdated?.length ? (
<p className="tw-mb-2"> <p className="tw-mb-2">
{`${isPrefix ? 'Edited' : ''} ${fieldsUpdated {`${isPrefix ? 'Edited' : ''} ${fieldsUpdated
?.map(summaryFormatter) .map(summaryFormatter)
.join(', ')} ${!isPrefix ? `has been updated` : ''}`}{' '} .join(', ')} ${!isPrefix ? `has been updated` : ''}`}{' '}
</p> </p>
) : null} ) : null}
{fieldsDeleted?.length ? ( {fieldsDeleted?.length ? (
<p className="tw-mb-2"> <p className="tw-mb-2">
{`${isPrefix ? '- Removed' : ''} ${fieldsDeleted {`${isPrefix ? '- Removed' : ''} ${fieldsDeleted
?.map(summaryFormatter) .map(summaryFormatter)
.join(', ')} ${!isPrefix ? `has been Deleted` : ''}`}{' '} .join(', ')} ${!isPrefix ? `has been Deleted` : ''}`}{' '}
</p> </p>
) : null} ) : null}