fix(ui): column name overlapping in entity table (#14086)

* fix column name overlaping in entity table

* minor fixes
This commit is contained in:
Ashish Gupta 2023-11-24 12:15:44 +05:30 committed by GitHub
parent 845a2e585e
commit 1540329e1e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 86 additions and 59 deletions

View File

@ -41,15 +41,17 @@ const ContainerChildren: FC<ContainerChildrenProps> = ({
{ {
title: t('label.name'), title: t('label.name'),
dataIndex: 'name', dataIndex: 'name',
width: '200px', width: 400,
key: 'name', key: 'name',
render: (_, record) => ( render: (_, record) => (
<Link <div className="d-inline-flex w-max-90">
className="link-hover" <Link
data-testid="container-name" className="break-word"
to={getContainerDetailPath(record.fullyQualifiedName || '')}> data-testid="container-name"
{getEntityName(record)} to={getContainerDetailPath(record.fullyQualifiedName ?? '')}>
</Link> {getEntityName(record)}
</Link>
</div>
), ),
}, },
{ {

View File

@ -421,19 +421,25 @@ const DashboardDetails = ({
}), }),
dataIndex: 'chartName', dataIndex: 'chartName',
key: 'chartName', key: 'chartName',
width: 200, width: 220,
fixed: 'left',
render: (_, record) => { render: (_, record) => {
const chartName = getEntityName(record); const chartName = getEntityName(record);
return record.sourceUrl ? ( return record.sourceUrl ? (
<Typography.Link href={record.sourceUrl} target="_blank"> <div className="d-flex items-center">
<Space> <Typography.Link href={record.sourceUrl} target="_blank">
{chartName} <span className="break-all">{chartName}</span>
<ExternalLinkIcon height={14} width={14} />
</Space> <ExternalLinkIcon
</Typography.Link> className="m-l-xs flex-none"
height={14}
width={14}
/>
</Typography.Link>
</div>
) : ( ) : (
<Typography.Text>{chartName}</Typography.Text> <Typography.Text className="w-full">{chartName}</Typography.Text>
); );
}, },
}, },

View File

@ -64,11 +64,14 @@ const DataModelTable = () => {
const dataModelDisplayName = getEntityName(record); const dataModelDisplayName = getEntityName(record);
return ( return (
<Link <div className="d-inline-flex w-max-90">
data-testid={`data-model-${dataModelDisplayName}`} <Link
to={getDataModelDetailsPath(record.fullyQualifiedName || '')}> className="break-word"
{dataModelDisplayName} data-testid={`data-model-${dataModelDisplayName}`}
</Link> to={getDataModelDetailsPath(record.fullyQualifiedName || '')}>
{dataModelDisplayName}
</Link>
</div>
); );
}, },
}, },

View File

@ -78,6 +78,7 @@ const ModelTab = ({
dataIndex: 'name', dataIndex: 'name',
key: 'name', key: 'name',
width: 250, width: 250,
fixed: 'left',
render: (_, record) => ( render: (_, record) => (
<Typography.Text>{getEntityName(record)}</Typography.Text> <Typography.Text>{getEntityName(record)}</Typography.Text>
), ),

View File

@ -370,7 +370,8 @@ const PipelineDetails = ({
key: t('label.name'), key: t('label.name'),
dataIndex: 'name', dataIndex: 'name',
title: t('label.name'), title: t('label.name'),
width: 200, width: 220,
fixed: 'left',
render: (_, record) => render: (_, record) =>
isEmpty(record.sourceUrl) ? ( isEmpty(record.sourceUrl) ? (
<span>{getEntityName(record)}</span> <span>{getEntityName(record)}</span>
@ -379,8 +380,15 @@ const PipelineDetails = ({
className="flex items-center gap-2" className="flex items-center gap-2"
target="_blank" target="_blank"
to={{ pathname: record.sourceUrl }}> to={{ pathname: record.sourceUrl }}>
<span>{getEntityName(record)}</span> <div className="d-flex items-center">
<ExternalLinkIcon height={14} width={14} /> <span className="break-all">{getEntityName(record)}</span>
<ExternalLinkIcon
className="m-l-xs flex-none"
height={14}
width={14}
/>
</div>
</Link> </Link>
), ),
}, },

View File

@ -325,7 +325,8 @@ const SchemaTable = ({
<Typography.Text <Typography.Text
className="m-b-0 d-block text-grey-muted" className="m-b-0 d-block text-grey-muted"
data-testid="column-name"> data-testid="column-name"
ellipsis={{ tooltip: true }}>
{name} {name}
</Typography.Text> </Typography.Text>
</div> </div>

View File

@ -16,7 +16,6 @@ import {
Radio, Radio,
RadioChangeEvent, RadioChangeEvent,
Row, Row,
Space,
Tag, Tag,
Tooltip, Tooltip,
Typography, Typography,
@ -128,17 +127,17 @@ const TopicSchemaFields: FC<TopicSchemaFieldsProps> = ({
const renderSchemaName = useCallback( const renderSchemaName = useCallback(
(_, record: Field) => ( (_, record: Field) => (
<Space align="start" className="w-max-90 vertical-align-inherit" size={2}> <div className="d-inline-flex w-max-90 vertical-align-inherit">
<Tooltip destroyTooltipOnHide title={getEntityName(record)}> <Tooltip destroyTooltipOnHide title={getEntityName(record)}>
<Typography.Text className="break-word"> <span className="break-word">
{isVersionView ? ( {isVersionView ? (
<RichTextEditorPreviewer markdown={getEntityName(record)} /> <RichTextEditorPreviewer markdown={getEntityName(record)} />
) : ( ) : (
getEntityName(record) getEntityName(record)
)} )}
</Typography.Text> </span>
</Tooltip> </Tooltip>
</Space> </div>
), ),
[isVersionView] [isVersionView]
); );

View File

@ -74,18 +74,21 @@ function SchemaTablesTab({
title: t('label.name'), title: t('label.name'),
dataIndex: 'name', dataIndex: 'name',
key: 'name', key: 'name',
width: 500,
render: (_, record: Table) => { render: (_, record: Table) => {
return ( return (
<Link <div className="d-inline-flex w-max-90">
to={getEntityLink( <Link
EntityType.TABLE, className="break-word"
record.fullyQualifiedName as string to={getEntityLink(
)}> EntityType.TABLE,
{getEntityName(record)} record.fullyQualifiedName as string
</Link> )}>
{getEntityName(record)}
</Link>
</div>
); );
}, },
className: 'truncate w-max-500',
}, },
{ {
title: t('label.description'), title: t('label.description'),

View File

@ -11,7 +11,7 @@
* limitations under the License. * limitations under the License.
*/ */
import { Space, Tooltip, Typography } from 'antd'; import { Tooltip, Typography } from 'antd';
import { ColumnsType } from 'antd/lib/table'; import { ColumnsType } from 'antd/lib/table';
import { cloneDeep, isEmpty, isUndefined, toLower } from 'lodash'; import { cloneDeep, isEmpty, isUndefined, toLower } from 'lodash';
import { EntityTags } from 'Models'; import { EntityTags } from 'Models';
@ -171,15 +171,12 @@ const SearchIndexFieldsTable = ({
dataIndex: 'name', dataIndex: 'name',
key: 'name', key: 'name',
accessor: 'name', accessor: 'name',
width: 180, width: 220,
fixed: 'left', fixed: 'left',
render: (_, record: SearchIndexField) => ( render: (_, record: SearchIndexField) => (
<Space <div className="d-inline-flex w-max-90">
align="start"
className="w-max-90 vertical-align-inherit"
size={2}>
<span className="break-word">{getEntityName(record)}</span> <span className="break-word">{getEntityName(record)}</span>
</Space> </div>
), ),
}, },
{ {

View File

@ -92,13 +92,16 @@ const StoredProcedureTab = () => {
key: 'name', key: 'name',
width: 350, width: 350,
render: (_, record) => ( render: (_, record) => (
<Link <div className="d-inline-flex w-max-90">
to={getEntityLink( <Link
EntityType.STORED_PROCEDURE, className="break-word"
record.fullyQualifiedName ?? '' to={getEntityLink(
)}> EntityType.STORED_PROCEDURE,
{getEntityName(record)} record.fullyQualifiedName ?? ''
</Link> )}>
{getEntityName(record)}
</Link>
</div>
), ),
}, },
{ {

View File

@ -34,15 +34,19 @@ export const schemaTableColumns: ColumnsType<DatabaseSchema> = [
title: t('label.schema-name'), title: t('label.schema-name'),
dataIndex: 'name', dataIndex: 'name',
key: 'name', key: 'name',
width: 250,
render: (_, record: DatabaseSchema) => ( render: (_, record: DatabaseSchema) => (
<Link <div className="d-inline-flex w-max-90">
to={ <Link
record.fullyQualifiedName className="break-word"
? getDatabaseSchemaDetailsPath(record.fullyQualifiedName) to={
: '' record.fullyQualifiedName
}> ? getDatabaseSchemaDetailsPath(record.fullyQualifiedName)
{getEntityName(record)} : ''
</Link> }>
{getEntityName(record)}
</Link>
</div>
), ),
}, },
{ {