diff --git a/openmetadata-ui/src/main/resources/ui/src/utils/EntityVersionUtils.tsx b/openmetadata-ui/src/main/resources/ui/src/utils/EntityVersionUtils.tsx index 6472062d42f..c11ebd98b25 100644 --- a/openmetadata-ui/src/main/resources/ui/src/utils/EntityVersionUtils.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/utils/EntityVersionUtils.tsx @@ -208,33 +208,33 @@ const getLinkWithColumn = (column: string, eFqn: string, eType: string) => { ); }; -const getDescriptionText = (v: string) => { - const length = v.length; - return `${v.slice(0, DESCRIPTIONLENGTH)}${ +const getDescriptionText = (value: string) => { + const length = value.length; + return `${value.slice(0, DESCRIPTIONLENGTH)}${ length > DESCRIPTIONLENGTH ? '...' : '' }`; }; -const getDescriptionElement = (v: FieldChange) => { - return v?.newValue && v?.oldValue ? ( +const getDescriptionElement = (fieldChange: FieldChange) => { + return fieldChange?.newValue && fieldChange?.oldValue ? (   {`${getDescriptionText( - v?.newValue + fieldChange?.newValue )}`} - ) : v?.newValue ? ( + ) : fieldChange?.newValue ? (   - {`${getDescriptionText(v?.newValue)}`} + {`${getDescriptionText(fieldChange?.newValue)}`} ) : (   - {`${getDescriptionText(v?.oldValue)}`} + {`${getDescriptionText(fieldChange?.oldValue)}`} ); @@ -245,64 +245,83 @@ const getOwnerName = (id: string) => { }; export const feedSummaryFromatter = ( - v: FieldChange, + fieldChange: FieldChange, type: ChangeType, _entityName: string, entityType: string, entityFQN: string ) => { const value = JSON.parse( - isValidJSONString(v?.newValue) - ? v?.newValue - : isValidJSONString(v?.oldValue) - ? v?.oldValue + isValidJSONString(fieldChange?.newValue) + ? fieldChange?.newValue + : isValidJSONString(fieldChange?.oldValue) + ? fieldChange?.oldValue : '{}' ); const oldValue = JSON.parse( - isValidJSONString(v?.oldValue) ? v?.oldValue : '{}' + isValidJSONString(fieldChange?.oldValue) ? fieldChange?.oldValue : '{}' ); const newValue = JSON.parse( - isValidJSONString(v?.newValue) ? v?.newValue : '{}' + isValidJSONString(fieldChange?.newValue) ? fieldChange?.newValue : '{}' ); + let summary: JSX.Element; switch (true) { - case v?.name?.startsWith('column'): { - if (v?.name?.endsWith('tags')) { - return ( + case fieldChange?.name?.startsWith('column'): { + if (fieldChange?.name?.endsWith('tags')) { + summary = (

{`${type} tags ${value ?.map((val: any) => val?.tagFQN) - ?.join(', ')} ${getPreposition(type)}`} - {getLinkWithColumn(v?.name as string, entityFQN, entityType)} + ?.join(', ')} ${getPreposition(type)} column`} + {getLinkWithColumn( + fieldChange?.name as string, + entityFQN, + entityType + )}

); - } else if (v?.name?.endsWith('description')) { - return ( + + break; + } else if (fieldChange?.name?.endsWith('description')) { + summary = (

{`${ - v?.newValue && v?.oldValue + fieldChange?.newValue && fieldChange?.oldValue ? type - : v?.newValue + : fieldChange?.newValue ? 'Added' : 'Removed' } column description for`} - {getLinkWithColumn(v?.name as string, entityFQN, entityType)} - {isEmpty(value) ? getDescriptionElement(v) : ''} + {getLinkWithColumn( + fieldChange?.name as string, + entityFQN, + entityType + )} + {isEmpty(value) ? getDescriptionElement(fieldChange) : ''}

); + + break; } else { - return ( + summary = (

{`${type}`} - {getLinkWithColumn(v?.name as string, entityFQN, entityType)} + {getLinkWithColumn( + fieldChange?.name as string, + entityFQN, + entityType + )}

); + + break; } } - case v?.name === 'tags': { + case fieldChange?.name === 'tags': { const tier = value?.find((t: any) => t?.tagFQN?.startsWith('Tier')); const tags = value?.filter((t: any) => !t?.tagFQN?.startsWith('Tier')); - return ( + summary = (
{tags?.length > 0 ? (

{`${type} tags ${tags @@ -310,17 +329,20 @@ export const feedSummaryFromatter = ( ?.join(', ')}`}

) : null} {tier ? ( -

{`${type} tier ${tier?.tagFQN}`}

+

{`${type} tier ${ + tier?.tagFQN?.split('.')[1] + }`}

) : null}
); + + break; } - case v?.name === 'owner': { + case fieldChange?.name === 'owner': { const ownerText = !isEmpty(oldValue) && !isEmpty(newValue) ? ( - to {newValue?.type === 'team' ? ( ); - return ( + summary = (

- {`${type} ${v?.name}`} + {`Assigned Ownership to`} {ownerText}

); + + break; } - case v?.name === 'description': { - return ( + case fieldChange?.name === 'description': { + summary = (

{`${ - v?.newValue && v?.oldValue + fieldChange?.newValue && fieldChange?.oldValue ? type - : v?.newValue + : fieldChange?.newValue ? 'Added' : 'Removed' } description`} - {getDescriptionElement(v)} + {getDescriptionElement(fieldChange)}

); + + break; } - case v?.name === 'followers': { - return ( + case fieldChange?.name === 'followers': { + summary = (

{`${ - v?.newValue ? 'Started Following' : 'Unfollowed' + fieldChange?.newValue ? 'Started Following' : 'Unfollowed' } ${_entityName}`}

); + + break; } default: - return

{`${type} ${v?.name}`}

; + summary =

{`${type} ${fieldChange?.name}`}

; + + break; } + return summary; }; export const getFeedSummary = ( @@ -445,22 +476,25 @@ export const getFeedSummary = ( ); }; -export const summaryFormatter = (v: FieldChange) => { +export const summaryFormatter = (fieldChange: FieldChange) => { const value = JSON.parse( - isValidJSONString(v?.newValue) - ? v?.newValue - : isValidJSONString(v?.oldValue) - ? v?.oldValue + isValidJSONString(fieldChange?.newValue) + ? fieldChange?.newValue + : isValidJSONString(fieldChange?.oldValue) + ? fieldChange?.oldValue : '{}' ); - if (v.name === 'columns') { + if (fieldChange.name === 'columns') { return `columns ${value?.map((val: any) => val?.name).join(', ')}`; - } else if (v.name === 'tags' || v.name?.endsWith('tags')) { + } else if ( + fieldChange.name === 'tags' || + fieldChange.name?.endsWith('tags') + ) { return `tags ${value?.map((val: any) => val?.tagFQN)?.join(', ')}`; - } else if (v.name === 'owner') { - return `${v.name} ${value.name}`; + } else if (fieldChange.name === 'owner') { + return `${fieldChange.name} ${value.name}`; } else { - return v.name; + return fieldChange.name; } }; @@ -499,6 +533,6 @@ export const getSummary = ( ); }; -export const isMajorVersion = (v1: string, v2: string) => { - return v2.split('.')[0] > v1.split('.')[0]; +export const isMajorVersion = (version1: string, version2: string) => { + return version2.split('.')[0] > version1.split('.')[0]; };