Fix #4016 UI Support updated EntityReference for dataset details page. (#4018)

This commit is contained in:
Sachin Chaurasiya 2022-04-11 14:45:20 +05:30 committed by GitHub
parent 863641797b
commit 9c92424f74
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 67 additions and 40 deletions

View File

@ -57,7 +57,7 @@ const EntityInfoDrawer = ({
switch (selectedNode.type) { switch (selectedNode.type) {
case EntityType.TABLE: { case EntityType.TABLE: {
setIsLoading(true); setIsLoading(true);
getTableDetailsByFQN(selectedNode.name, [ getTableDetailsByFQN(selectedNode.fqn, [
'tags', 'tags',
'owner', 'owner',
'columns', 'columns',
@ -80,7 +80,7 @@ const EntityInfoDrawer = ({
} }
case EntityType.PIPELINE: { case EntityType.PIPELINE: {
setIsLoading(true); setIsLoading(true);
getPipelineByFqn(selectedNode.name, ['tags', 'owner']) getPipelineByFqn(selectedNode.fqn, ['tags', 'owner'])
.then((res: AxiosResponse) => { .then((res: AxiosResponse) => {
getServiceById('pipelineServices', res.data.service?.id) getServiceById('pipelineServices', res.data.service?.id)
.then((serviceRes: AxiosResponse) => { .then((serviceRes: AxiosResponse) => {
@ -106,7 +106,7 @@ const EntityInfoDrawer = ({
} }
case EntityType.DASHBOARD: { case EntityType.DASHBOARD: {
setIsLoading(true); setIsLoading(true);
getDashboardByFqn(selectedNode.name, ['tags', 'owner']) getDashboardByFqn(selectedNode.fqn, ['tags', 'owner'])
.then((res: AxiosResponse) => { .then((res: AxiosResponse) => {
getServiceById('dashboardServices', res.data.service?.id) getServiceById('dashboardServices', res.data.service?.id)
.then((serviceRes: AxiosResponse) => { .then((serviceRes: AxiosResponse) => {
@ -147,7 +147,7 @@ const EntityInfoDrawer = ({
<span className="tw-mr-2">{getEntityIcon(selectedNode.type)}</span> <span className="tw-mr-2">{getEntityIcon(selectedNode.type)}</span>
{getHeaderLabel( {getHeaderLabel(
selectedNode.displayName ?? selectedNode.name, selectedNode.displayName ?? selectedNode.name,
selectedNode.name, selectedNode.fqn,
selectedNode.type, selectedNode.type,
isMainNode isMainNode
)} )}

View File

@ -190,7 +190,12 @@ const Entitylineage: FunctionComponent<EntityLineageProp> = ({
) : null} ) : null}
<p className="tw-flex"> <p className="tw-flex">
<span className="tw-mr-2">{getEntityIcon(node.type)}</span> <span className="tw-mr-2">{getEntityIcon(node.type)}</span>
{getDataLabel(node.displayName, node.name, false, node.type)} {getDataLabel(
node.displayName,
node.fullyQualifiedName,
false,
node.type
)}
</p> </p>
</Fragment> </Fragment>
); );
@ -480,6 +485,7 @@ const Entitylineage: FunctionComponent<EntityLineageProp> = ({
if (!expandButton.current) { if (!expandButton.current) {
selectNodeHandler(true, { selectNodeHandler(true, {
name: node?.name as string, name: node?.name as string,
fqn: node?.fullyQualifiedName as string,
id: el.id, id: el.id,
displayName: node?.displayName, displayName: node?.displayName,
type: node?.type as string, type: node?.type as string,
@ -846,12 +852,14 @@ const Entitylineage: FunctionComponent<EntityLineageProp> = ({
</ReactFlow> </ReactFlow>
</ReactFlowProvider> </ReactFlowProvider>
</div> </div>
<EntityInfoDrawer {!isEmpty(selectedNode) ? (
isMainNode={selectedNode.name === lineageData.entity?.name} <EntityInfoDrawer
selectedNode={selectedNode} isMainNode={selectedNode.name === lineageData.entity?.name}
show={isDrawerOpen && !isEditMode} selectedNode={selectedNode}
onCancel={closeDrawer} show={isDrawerOpen && !isEditMode}
/> onCancel={closeDrawer}
/>
) : null}
<EntityLineageSidebar newAddedNode={newAddedNode} show={isEditMode} /> <EntityLineageSidebar newAddedNode={newAddedNode} show={isEditMode} />
{showdeleteModal ? ( {showdeleteModal ? (
<ConfirmationModal <ConfirmationModal

View File

@ -20,6 +20,7 @@ import {
export interface SelectedNode { export interface SelectedNode {
name: string; name: string;
type: string; type: string;
fqn: string;
displayName?: string; displayName?: string;
id?: string; id?: string;
entityId: string; entityId: string;

View File

@ -466,7 +466,7 @@ const Explore: React.FC<ExploreProps> = ({
const handleFilterChange = (filtersObj: FilterObject) => { const handleFilterChange = (filtersObj: FilterObject) => {
const params = prepareQueryParams(filtersObj); const params = prepareQueryParams(filtersObj);
const explorePath = getExplorePathWithSearch(searchQuery); const explorePath = getExplorePathWithSearch(searchQuery, tab);
history.push({ history.push({
pathname: explorePath, pathname: explorePath,

View File

@ -257,8 +257,10 @@ const DatabaseSchemaPage: FunctionComponent = () => {
imgSrc: serviceType ? serviceTypeLogo(serviceType) : undefined, imgSrc: serviceType ? serviceTypeLogo(serviceType) : undefined,
}, },
{ {
name: getPartialNameFromTableFQN(database.name, ['database']), name: getPartialNameFromTableFQN(database.fullyQualifiedName, [
url: getDatabaseDetailsPath(database.name), 'database',
]),
url: getDatabaseDetailsPath(database.fullyQualifiedName),
}, },
{ {
name: name, name: name,

View File

@ -313,12 +313,19 @@ const DatasetDetailsPage: FunctionComponent = () => {
imgSrc: serviceType ? serviceTypeLogo(serviceType) : undefined, imgSrc: serviceType ? serviceTypeLogo(serviceType) : undefined,
}, },
{ {
name: getPartialNameFromTableFQN(database.name, ['database']), name: getPartialNameFromTableFQN(database.fullyQualifiedName, [
url: getDatabaseDetailsPath(database.name), 'database',
]),
url: getDatabaseDetailsPath(database.fullyQualifiedName),
}, },
{ {
name: getPartialNameFromTableFQN(databaseSchema.name, ['schema']), name: getPartialNameFromTableFQN(
url: getDatabaseSchemaDetailsPath(databaseSchema.name), databaseSchema.fullyQualifiedName,
['schema']
),
url: getDatabaseSchemaDetailsPath(
databaseSchema.fullyQualifiedName
),
}, },
{ {
name: name, name: name,

View File

@ -173,14 +173,19 @@ const EntityVersionPage: FunctionComponent = () => {
imgSrc: serviceType ? serviceTypeLogo(serviceType) : undefined, imgSrc: serviceType ? serviceTypeLogo(serviceType) : undefined,
}, },
{ {
name: getPartialNameFromTableFQN(database.name, ['database']), name: getPartialNameFromTableFQN(database.fullyQualifiedName, [
url: getDatabaseDetailsPath(database.name), 'database',
]),
url: getDatabaseDetailsPath(database.fullyQualifiedName),
}, },
{ {
name: getPartialNameFromTableFQN(databaseSchema.name, [ name: getPartialNameFromTableFQN(
'schema', databaseSchema.fullyQualifiedName,
]), ['schema']
url: getDatabaseSchemaDetailsPath(databaseSchema.name), ),
url: getDatabaseSchemaDetailsPath(
databaseSchema.fullyQualifiedName
),
}, },
{ {
name: name, name: name,
@ -387,16 +392,20 @@ const EntityVersionPage: FunctionComponent = () => {
: undefined, : undefined,
}, },
{ {
name: getPartialNameFromTableFQN(database.name, [ name: getPartialNameFromTableFQN(
'database', database.fullyQualifiedName,
]), ['database']
url: getDatabaseDetailsPath(database.name), ),
url: getDatabaseDetailsPath(database.fullyQualifiedName),
}, },
{ {
name: getPartialNameFromTableFQN(databaseSchema.name, [ name: getPartialNameFromTableFQN(
'schema', databaseSchema.fullyQualifiedName,
]), ['schema']
url: getDatabaseSchemaDetailsPath(databaseSchema.name), ),
url: getDatabaseSchemaDetailsPath(
databaseSchema.fullyQualifiedName
),
}, },
{ {
name: name, name: name,

View File

@ -58,8 +58,8 @@ import { isLeafNode } from './EntityUtils';
import { getEntityLink } from './TableUtils'; import { getEntityLink } from './TableUtils';
export const getHeaderLabel = ( export const getHeaderLabel = (
v = '', name = '',
fqn: string, fqn = '',
type: string, type: string,
isMainNode: boolean isMainNode: boolean
) => { ) => {
@ -69,14 +69,14 @@ export const getHeaderLabel = (
<span <span
className="tw-break-words description-text tw-self-center tw-font-medium" className="tw-break-words description-text tw-self-center tw-font-medium"
data-testid="lineage-entity"> data-testid="lineage-entity">
{prepareLabel(type, v, false)} {name || prepareLabel(type, fqn, false)}
</span> </span>
) : ( ) : (
<span <span
className="tw-break-words description-text tw-self-center link-text tw-font-medium" className="tw-break-words description-text tw-self-center link-text tw-font-medium"
data-testid="lineage-entity"> data-testid="lineage-entity">
<Link to={getEntityLink(type, fqn)}> <Link to={getEntityLink(type, fqn)}>
{prepareLabel(type, v, false)} {name || prepareLabel(type, fqn, false)}
</Link> </Link>
</span> </span>
)} )}
@ -421,18 +421,18 @@ export const getLineageData = (
export const getDataLabel = ( export const getDataLabel = (
displayName?: string, displayName?: string,
name = '', fqn = '',
isTextOnly = false, isTextOnly = false,
type?: string type?: string
) => { ) => {
const databaseName = getPartialNameFromTableFQN(name, ['database']); const databaseName = getPartialNameFromTableFQN(fqn, ['database']);
const schemaName = getPartialNameFromTableFQN(name, ['schema']); const schemaName = getPartialNameFromTableFQN(fqn, ['schema']);
let label = ''; let label = '';
if (displayName) { if (displayName) {
label = displayName; label = displayName;
} else { } else {
label = prepareLabel(type as string, name); label = prepareLabel(type as string, fqn);
} }
if (isTextOnly) { if (isTextOnly) {