diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/ChangeEventHandler.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/ChangeEventHandler.java index ae5ae23b571..f579dc5154c 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/ChangeEventHandler.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/ChangeEventHandler.java @@ -227,7 +227,8 @@ public class ChangeEventHandler implements EventHandler { // In this case, the entity itself got deleted // for which there will be no change description. String message = - String.format("Deleted %s **%s**", entityInterface.getEntityType(), entityInterface.getFullyQualifiedName()); + String.format( + "Deleted **%s**: `%s`", entityInterface.getEntityType(), entityInterface.getFullyQualifiedName()); EntityLink about = new EntityLink(entityInterface.getEntityType(), entityInterface.getFullyQualifiedName(), null, null, null); Thread thread = diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/util/ChangeEventParser.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/util/ChangeEventParser.java index e58340a5c88..4ce06fcb012 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/util/ChangeEventParser.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/util/ChangeEventParser.java @@ -214,7 +214,7 @@ public final class ChangeEventParser { case ADD: String fieldValue = getFieldValue(newFieldValue); if (Entity.FIELD_FOLLOWERS.equals(updatedField)) { - message = String.format("Started to follow %s `%s`", link.getEntityType(), link.getEntityFQN()); + message = String.format("Started to follow **%s** `%s`", link.getEntityType(), link.getEntityFQN()); } else if (fieldValue != null && !fieldValue.isEmpty()) { message = String.format("Added **%s**: `%s`", updatedField, fieldValue); } @@ -238,7 +238,7 @@ public final class ChangeEventParser { private static String getPlainTextUpdateMessage(String updatedField, String oldValue, String newValue) { // Get diff of old value and new value String diff = getPlaintextDiff(oldValue, newValue); - return nullOrEmpty(diff) ? StringUtils.EMPTY : String.format("Updated **%s** : %s", updatedField, diff); + return nullOrEmpty(diff) ? StringUtils.EMPTY : String.format("Updated **%s**: %s", updatedField, diff); } private static String getObjectUpdateMessage(String updatedField, JsonObject oldJson, JsonObject newJson) { @@ -256,7 +256,7 @@ public final class ChangeEventParser { if (newJson.containsKey("name")) { updatedField = String.format("%s.%s", updatedField, newJson.getString("name")); } - return String.format("Updated **%s** :
%s", updatedField, updates); + return String.format("Updated **%s**:
%s", updatedField, updates); } private static String getUpdateMessage(String updatedField, Object oldValue, Object newValue) { diff --git a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/feeds/FeedResourceTest.java b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/feeds/FeedResourceTest.java index 95f5f06f72b..1bd5c0de204 100644 --- a/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/feeds/FeedResourceTest.java +++ b/catalog-rest-service/src/test/java/org/openmetadata/catalog/resources/feeds/FeedResourceTest.java @@ -550,7 +550,7 @@ public class FeedResourceTest extends CatalogApplicationTest { assertEquals(initialThreadCount + 3, threads.getPaging().getTotal()); assertEquals(initialThreadCount + 3, threads.getData().size()); assertEquals( - String.format("Started to follow table `%s`", TABLE2.getFullyQualifiedName()), + String.format("Started to follow **table** `%s`", TABLE2.getFullyQualifiedName()), threads.getData().get(0).getMessage()); assertEquals("Message 2", threads.getData().get(1).getMessage()); diff --git a/catalog-rest-service/src/test/java/org/openmetadata/catalog/util/ChangeEventParserTest.java b/catalog-rest-service/src/test/java/org/openmetadata/catalog/util/ChangeEventParserTest.java index 4638f1d3206..831329f73bc 100644 --- a/catalog-rest-service/src/test/java/org/openmetadata/catalog/util/ChangeEventParserTest.java +++ b/catalog-rest-service/src/test/java/org/openmetadata/catalog/util/ChangeEventParserTest.java @@ -113,7 +113,7 @@ public class ChangeEventParserTest extends CatalogApplicationTest { assertEquals(1, messages.size()); assertEquals( - "Updated **description** : old" + "Updated **description**: old" + "new description", messages.values().iterator().next()); @@ -161,7 +161,7 @@ public class ChangeEventParserTest extends CatalogApplicationTest { assertEquals(1, messages.size()); assertEquals( - "Updated **columns.lo_orderpriority** :
name: \"lo_order\"\"lo_orderpriority\"
displayName: \"lo_order\"\"lo_orderpriority\"
fullyQualifiedName: \"local_mysql.sample_db.lineorder.lo_order\"lo_orderpriority\"", + "Updated **columns.lo_orderpriority**:
name: \"lo_order\"\"lo_orderpriority\"
displayName: \"lo_order\"\"lo_orderpriority\"
fullyQualifiedName: \"local_mysql.sample_db.lineorder.lo_order\"lo_orderpriority\"", messages.values().iterator().next()); // Simulate a change of datatype change in column @@ -179,7 +179,7 @@ public class ChangeEventParserTest extends CatalogApplicationTest { assertEquals(1, messages.size()); assertEquals( - "Updated **columns.lo_orderpriority** :
dataType: \"BLOB\"\"INT\"
dataTypeDisplay: \"blob\"\"int\"", + "Updated **columns.lo_orderpriority**:
dataType: \"BLOB\"\"INT\"
dataTypeDisplay: \"blob\"\"int\"", messages.values().iterator().next()); // Simulate multiple changes to columns @@ -197,7 +197,7 @@ public class ChangeEventParserTest extends CatalogApplicationTest { assertEquals(1, messages.size()); assertEquals( - "Updated **columns** : lo_orderpriority, newColumn", + "Updated **columns**: lo_orderpriority, newColumn", messages.values().iterator().next()); } } diff --git a/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/FeedCardHeader/FeedCardHeader.tsx b/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/FeedCardHeader/FeedCardHeader.tsx index fa25945973d..7fc37cedaf2 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/FeedCardHeader/FeedCardHeader.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/FeedCardHeader/FeedCardHeader.tsx @@ -63,8 +63,8 @@ const FeedCardHeader: FC = ({ }; const getUserData = () => { - const displayName = userData.displayName ?? ''; const name = userData.name ?? ''; + const displayName = userData.displayName ?? name; const teams = getNonDeletedTeams(userData.teams ?? []); const roles = userData.roles; const isAdmin = userData?.isAdmin; @@ -89,7 +89,9 @@ const FeedCardHeader: FC = ({ {displayName} - {name} + {displayName !== name ? ( + {name} + ) : null}
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/ColumnTestForm.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/ColumnTestForm.tsx index c66925c09c1..bc6c21ebe0d 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/ColumnTestForm.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/AddDataQualityTest/Forms/ColumnTestForm.tsx @@ -693,7 +693,7 @@ const ColumnTestForm = ({ theme="primary" variant="text" onClick={onFormCancel}> - Discard + Cancel {getSaveButton()}
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTerm/AddGlossaryTerm.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTerm/AddGlossaryTerm.component.tsx index c4a6ba19793..56fb4ed9595 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTerm/AddGlossaryTerm.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTerm/AddGlossaryTerm.component.tsx @@ -487,7 +487,7 @@ const AddGlossaryTerm = ({ theme="primary" variant="text" onClick={onCancel}> - Discard + Cancel {getSaveButton()} diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddService/Steps/SelectServiceType.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddService/Steps/SelectServiceType.tsx index 1bef5d525c3..4a609baab3b 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/AddService/Steps/SelectServiceType.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/AddService/Steps/SelectServiceType.tsx @@ -101,7 +101,7 @@ const SelectServiceType = ({ theme="primary" variant="text" onClick={onCancel}> - Discard + Cancel {getSaveButton()} @@ -830,7 +830,7 @@ const AddWebhook: FunctionComponent = ({ {data && isDelete && ( - Discard + Cancel {getSaveButton()} diff --git a/openmetadata-ui/src/main/resources/ui/src/components/DataQualityTest/Table/DataQualityTable.tsx b/openmetadata-ui/src/main/resources/ui/src/components/DataQualityTest/Table/DataQualityTable.tsx index 4db90b69222..4e5735fa972 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/DataQualityTest/Table/DataQualityTable.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/DataQualityTest/Table/DataQualityTable.tsx @@ -219,7 +219,7 @@ const DataQualityTable = ({ deleteSelection.data?.testCase?.columnTestType || deleteSelection.data?.testCase?.tableTestType } permanently? This action cannot be reverted.`} - cancelText="Discard" + cancelText="Cancel" confirmButtonCss="tw-bg-error hover:tw-bg-error focus:tw-bg-error" confirmText={ deleteSelection.state === 'waiting' ? ( diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryV1.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryV1.component.tsx index 9c27a3b9da1..479d399b30b 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryV1.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryV1.component.tsx @@ -302,7 +302,7 @@ const GlossaryV1 = ({ {selectedData && isDelete && ( = ({ theme="primary" variant="text" onClick={onCancel}> - Discard + Cancel {loadingState === 'waiting' ? ( {deleted && ( diff --git a/openmetadata-ui/src/main/resources/ui/src/constants/constants.ts b/openmetadata-ui/src/main/resources/ui/src/constants/constants.ts index fd41a8e8d72..c3180f24344 100644 --- a/openmetadata-ui/src/main/resources/ui/src/constants/constants.ts +++ b/openmetadata-ui/src/main/resources/ui/src/constants/constants.ts @@ -352,6 +352,18 @@ export const getGlossaryPath = (fqn?: string) => { return path; }; +export const getParentGlossaryPath = (fqn?: string) => { + if (fqn) { + const parts = fqn.split(FQN_SEPARATOR_CHAR); + if (parts.length > 1) { + // remove the last part to get parent FQN + fqn = parts.slice(0, -1).join(FQN_SEPARATOR_CHAR); + } + } + + return getGlossaryPath(fqn); +}; + export const getGlossaryTermsPath = ( glossaryName: string, glossaryTerm = '' diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/AddGlossaryTermPage/AddGlossaryTermPage.component.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/AddGlossaryTermPage/AddGlossaryTermPage.component.tsx index c4f8da75cc6..0ccbf16cda0 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/AddGlossaryTermPage/AddGlossaryTermPage.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/AddGlossaryTermPage/AddGlossaryTermPage.component.tsx @@ -24,7 +24,10 @@ import { import AddGlossaryTerm from '../../components/AddGlossaryTerm/AddGlossaryTerm.component'; import PageContainerV1 from '../../components/containers/PageContainerV1'; import Loader from '../../components/Loader/Loader'; -import { getGlossaryPath } from '../../constants/constants'; +import { + getGlossaryPath, + getParentGlossaryPath, +} from '../../constants/constants'; import { CreateGlossaryTerm } from '../../generated/api/data/createGlossaryTerm'; import { Glossary } from '../../generated/entity/data/glossary'; import { GlossaryTerm } from '../../generated/entity/data/glossaryTerm'; @@ -44,8 +47,12 @@ const AddGlossaryTermPage = () => { const [parentGlossaryData, setParentGlossaryData] = useState(); + const goToGlossaryPath = (path: string) => { + history.push(path); + }; + const goToGlossary = (name = '') => { - history.push(getGlossaryPath(name)); + goToGlossaryPath(getGlossaryPath(name)); }; const handleCancel = () => { @@ -68,7 +75,9 @@ const AddGlossaryTermPage = () => { setStatus('success'); setTimeout(() => { setStatus('initial'); - goToGlossary(res?.data?.fullyQualifiedName); + goToGlossaryPath( + getParentGlossaryPath(res?.data?.fullyQualifiedName) + ); }, 500); } else { handleSaveFailure( diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/services/index.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/services/index.tsx index c3a6fcbca31..9877c276929 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/services/index.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/services/index.tsx @@ -558,7 +558,7 @@ const ServicesPage = () => { return isConfirmationModalOpen ? ( { onSave={mockSave} /> ); - const discard = await findByText(container, /Discard/i); + const discard = await findByText(container, /Cancel/i); fireEvent.click(discard); expect(mockCancel).toBeCalledTimes(1); diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/teams/AddUsersModal.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/teams/AddUsersModal.tsx index c45242143f2..32ff2b3acf1 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/teams/AddUsersModal.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/teams/AddUsersModal.tsx @@ -123,7 +123,7 @@ const AddUsersModal = ({ theme="primary" variant="text" onClick={onCancel}> - Discard + Cancel