From cd464c42727e97443b7860b707ac0512bb58ee71 Mon Sep 17 00:00:00 2001 From: Chirag Madlani <12962843+chirag-madlani@users.noreply.github.com> Date: Fri, 19 May 2023 23:29:54 +0530 Subject: [PATCH] fix(ui): displayName as optional field (#11685) * fix(ui): displayName as optional field * fix cypress * fix cypress * fixed cypress * fix glossary spec --------- Co-authored-by: Shailesh Parmar --- .../resources/ui/cypress/common/common.js | 2 +- .../ui/cypress/common/serviceUtils.js | 2 +- ...Name.spec.js => UpdateDisplayName.spec.js} | 2 -- .../e2e/Pages/DataQualityAndProfiler.spec.js | 4 ++-- .../ui/cypress/e2e/Pages/Glossary.spec.js | 6 ++---- .../AddGlossary/AddGlossary.component.tsx | 2 +- .../AddGlossaryTermForm.component.tsx | 2 +- .../EntityHeader/EntityHeader.component.tsx | 4 ++-- .../EntityHeaderTitle.component.tsx | 21 ++++++++++++------- .../EntityHeaderTitle.interface.ts | 2 +- .../GlossaryTerms/tabs/RelatedTerms.tsx | 5 +++-- .../EntityNameModal.component.tsx | 12 +---------- .../resources/ui/src/pages/tags/index.tsx | 3 +-- 13 files changed, 29 insertions(+), 38 deletions(-) rename openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/{updateDisplayName.spec.js => UpdateDisplayName.spec.js} (98%) diff --git a/openmetadata-ui/src/main/resources/ui/cypress/common/common.js b/openmetadata-ui/src/main/resources/ui/cypress/common/common.js index b2de591b7d7..46fdbfa6a89 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/common/common.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/common/common.js @@ -359,7 +359,7 @@ export const deleteCreatedService = ( .should('be.visible') .click(); - cy.get(`[data-testid="entity-header-name"]`) + cy.get(`[data-testid="entity-header-display-name"]`) .should('exist') .should('be.visible') .invoke('text') diff --git a/openmetadata-ui/src/main/resources/ui/cypress/common/serviceUtils.js b/openmetadata-ui/src/main/resources/ui/cypress/common/serviceUtils.js index d2fcf0bd662..6765f265045 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/common/serviceUtils.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/common/serviceUtils.js @@ -38,7 +38,7 @@ export const visitServiceDetailsPage = (service, verifyHeader = true) => { .click(); if (verifyHeader) { - cy.get(`[data-testid="entity-header-name"]`) + cy.get(`[data-testid="entity-header-display-name"]`) .should('exist') .should('be.visible') .invoke('text') diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/updateDisplayName.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/UpdateDisplayName.spec.js similarity index 98% rename from openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/updateDisplayName.spec.js rename to openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/UpdateDisplayName.spec.js index 678e2a366dd..de27073c261 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/updateDisplayName.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Features/UpdateDisplayName.spec.js @@ -43,8 +43,6 @@ const updateDisplayName = (displayName, apiPath) => { cy.get('#name').should('be.visible').should('be.disabled'); cy.get('#displayName').should('be.visible').should('not.be.disabled').clear(); cy.get('.ant-modal-footer').should('contain', 'Cancel'); - cy.get('[data-testid="save-button"]').should('be.visible').click(); - cy.get('.ant-modal-body').should('contain', 'Display Name is required'); cy.get('#displayName').type(displayName); cy.get('[data-testid="save-button"]').should('be.visible').click(); diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/DataQualityAndProfiler.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/DataQualityAndProfiler.spec.js index 137669c9716..11b88220b10 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/DataQualityAndProfiler.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/DataQualityAndProfiler.spec.js @@ -588,7 +588,7 @@ describe('Data Quality and Profiler should work properly', () => { const { term, entity, serviceName, testCaseName } = DATA_QUALITY_SAMPLE_DATA_TABLE; visitEntityDetailsPage(term, serviceName, entity); - cy.get('[data-testid="entity-header-name"]') + cy.get('[data-testid="entity-header-display-name"]') .should('be.visible') .contains(term); cy.get('[data-testid="Profiler & Data Quality"]') @@ -643,7 +643,7 @@ describe('Data Quality and Profiler should work properly', () => { ); visitEntityDetailsPage(term, serviceName, entity); verifyResponseStatusCode('@waitForPageLoad', 200); - cy.get('[data-testid="entity-header-name"]') + cy.get('[data-testid="entity-header-display-name"]') .should('be.visible') .contains(term); cy.get('[data-testid="Profiler & Data Quality"]') diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/Glossary.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/Glossary.spec.js index 1d4917e77e4..51ca9626335 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/Glossary.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/Glossary.spec.js @@ -386,14 +386,12 @@ describe('Glossary page should work properly', () => { cy.wait('@createGlossary').then(({ request }) => { expect(request.body).to.have.all.keys( 'description', - 'displayName', 'mutuallyExclusive', 'name', 'owner', 'reviewers', 'tags' ); - expect(request.body.displayName).equals(NEW_GLOSSARY.name); expect(request.body.name).equals(NEW_GLOSSARY.name); expect(request.body.description).equals(NEW_GLOSSARY.description); expect(request.body.mutuallyExclusive).equals(true); @@ -430,14 +428,14 @@ describe('Glossary page should work properly', () => { cy.wait('@createGlossary').then(({ request }) => { expect(request.body).to.have.all.keys( 'description', - 'displayName', + 'mutuallyExclusive', 'name', 'owner', 'reviewers', 'tags' ); - expect(request.body.displayName).equals(NEW_GLOSSARY_1.name); + expect(request.body.name).equals(NEW_GLOSSARY_1.name); expect(request.body.description).equals(NEW_GLOSSARY_1.description); expect(request.body.mutuallyExclusive).equals(false); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddGlossary/AddGlossary.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddGlossary/AddGlossary.component.tsx index 8ad74c5957b..bf8bba1c280 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/AddGlossary/AddGlossary.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/AddGlossary/AddGlossary.component.tsx @@ -66,7 +66,7 @@ const AddGlossary = ({ }; const data: CreateGlossary = { name: name.trim(), - displayName: (displayName || name).trim(), + displayName: displayName?.trim(), description: description, reviewers: reviewer.map((d) => toString(d.fullyQualifiedName)).filter(Boolean) ?? diff --git a/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTermForm/AddGlossaryTermForm.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTermForm/AddGlossaryTermForm.component.tsx index db2c3952618..36c73ce26d2 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTermForm/AddGlossaryTermForm.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/AddGlossaryTermForm/AddGlossaryTermForm.component.tsx @@ -122,7 +122,7 @@ const AddGlossaryTermForm = ({ const data = { name: name.trim(), - displayName: (displayName || name).trim(), + displayName: displayName?.trim(), description: description, reviewers: reviewer, relatedTerms: updatedTerms.length > 0 ? updatedTerms : undefined, diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityHeader/EntityHeader.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityHeader/EntityHeader.component.tsx index f4eb7493110..5e942aebf8c 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityHeader/EntityHeader.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityHeader/EntityHeader.component.tsx @@ -16,7 +16,7 @@ import TitleBreadcrumb from 'components/common/title-breadcrumb/title-breadcrumb import { TitleBreadcrumbProps } from 'components/common/title-breadcrumb/title-breadcrumb.interface'; import { EntityType } from 'enums/entity.enum'; import React, { ReactNode } from 'react'; -import { getEntityLinkFromType, getEntityName } from 'utils/EntityUtils'; +import { getEntityLinkFromType } from 'utils/EntityUtils'; import { getEncodedFqn } from 'utils/StringsUtils'; import EntityHeaderTitle from '../EntityHeaderTitle/EntityHeaderTitle.component'; @@ -59,7 +59,7 @@ export const EntityHeader = ({ {icon} - - {stringToHTML(name)} - + {/* If we do not have displayName name only be shown in the bold from the below code */} + {!isEmpty(displayName) ? ( + + {stringToHTML(name)} + + ) : null} + {/* It will render displayName fallback to name */} - {stringToHTML(displayName ?? name)} + {stringToHTML(displayName || name)} {openEntityInNewPage && ( {deleted && ( - +
{t('label.deleted')}
)} - {badge && {badge}} + {badge && {badge}} ); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityHeaderTitle/EntityHeaderTitle.interface.ts b/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityHeaderTitle/EntityHeaderTitle.interface.ts index 88fbcf93d61..51bd55f77da 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityHeaderTitle/EntityHeaderTitle.interface.ts +++ b/openmetadata-ui/src/main/resources/ui/src/components/Entity/EntityHeaderTitle/EntityHeaderTitle.interface.ts @@ -13,7 +13,7 @@ export interface EntityHeaderTitleProps { icon: React.ReactNode; name: string; - displayName: string; + displayName?: string; link?: string; openEntityInNewPage?: boolean; deleted?: boolean; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/GlossaryTerms/tabs/RelatedTerms.tsx b/openmetadata-ui/src/main/resources/ui/src/components/GlossaryTerms/tabs/RelatedTerms.tsx index 93ff39b0095..a9e45cd8a05 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/GlossaryTerms/tabs/RelatedTerms.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/GlossaryTerms/tabs/RelatedTerms.tsx @@ -18,10 +18,11 @@ import { ReactComponent as IconFlatDoc } from 'assets/svg/ic-flat-doc.svg'; import TagButton from 'components/TagButton/TagButton.component'; import { NO_PERMISSION_FOR_ACTION } from 'constants/HelperTextUtil'; import { t } from 'i18next'; -import { cloneDeep, debounce, includes, toString } from 'lodash'; +import { cloneDeep, debounce, includes } from 'lodash'; import React, { useCallback, useEffect, useState } from 'react'; import { useHistory } from 'react-router-dom'; import { searchData } from 'rest/miscAPI'; +import { getEntityName } from 'utils/EntityUtils'; import { getGlossaryPath } from 'utils/RouterUtils'; import { ReactComponent as PlusIcon } from '../../../assets/svg/plus-primary.svg'; import { @@ -178,7 +179,7 @@ const RelatedTerms = ({ className="cursor-pointer" icon={} key={entity.fullyQualifiedName} - label={toString(entity.displayName)} + label={getEntityName(entity)} tooltip={
{entity.fullyQualifiedName} diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Modals/EntityNameModal/EntityNameModal.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Modals/EntityNameModal/EntityNameModal.component.tsx index b2382512ada..5ebeaae46db 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Modals/EntityNameModal/EntityNameModal.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Modals/EntityNameModal/EntityNameModal.component.tsx @@ -85,17 +85,7 @@ const EntityNameModal: React.FC = ({ })} /> - + diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/tags/index.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/tags/index.tsx index 6dca125fa21..da6ad12f465 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/tags/index.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/tags/index.tsx @@ -792,13 +792,12 @@ const TagsPage = () => { badge={ currentClassification.provider === ProviderType.System ? ( } label={capitalize(currentClassification.provider)} /> ) : null } - displayName={getEntityName(currentClassification)} + displayName={currentClassification.displayName} icon={