diff --git a/datahub-web-react/src/app/entity/dataset/profile/schema/components/SchemaHeader.tsx b/datahub-web-react/src/app/entity/dataset/profile/schema/components/SchemaHeader.tsx
index bd5a357186bb94..9e9e0ede2a1cef 100644
--- a/datahub-web-react/src/app/entity/dataset/profile/schema/components/SchemaHeader.tsx
+++ b/datahub-web-react/src/app/entity/dataset/profile/schema/components/SchemaHeader.tsx
@@ -47,9 +47,19 @@ const RawButton = styled(Button)`
display: flex;
margin-right: 10px;
justify-content: left;
+ align-items: center;
}
`;
+const RawButtonTitleContainer = styled.span`
+ display: flex;
+ align-items: center;
+`;
+
+const RawButtonTitle = styled(Typography.Text)`
+ margin-left: 6px;
+`;
+
const KeyButton = styled(Button)<{ $highlighted: boolean }>`
border-radius: 8px 0px 0px 8px;
font-weight: ${(props) => (props.$highlighted ? '600' : '400')};
@@ -206,15 +216,15 @@ export default function SchemaHeader({
{hasRaw && (
setShowRaw(!showRaw)}>
{showRaw ? (
- <>
-
- Tabular
- >
+
+
+ Tabular
+
) : (
- <>
-
- Raw
- >
+
+
+ Raw
+
)}
)}
diff --git a/datahub-web-react/src/app/entity/shared/EntityDropdown/EntityDropdown.tsx b/datahub-web-react/src/app/entity/shared/EntityDropdown/EntityDropdown.tsx
index 572f9aafe738c2..5c9a8ca1ef82d8 100644
--- a/datahub-web-react/src/app/entity/shared/EntityDropdown/EntityDropdown.tsx
+++ b/datahub-web-react/src/app/entity/shared/EntityDropdown/EntityDropdown.tsx
@@ -117,9 +117,11 @@ function EntityDropdown(props: Props) {
};
const pageUrl = window.location.href;
+ const isGlossaryEntity = entityType === EntityType.GlossaryNode || entityType === EntityType.GlossaryTerm;
const entityHasChildren = !!entityData?.children?.total;
const canManageGlossaryEntity = !!entityData?.privileges?.canManageEntity;
const canCreateGlossaryEntity = !!entityData?.privileges?.canManageChildren;
+ const canDeleteGlossaryEntity = !entityHasChildren && canManageGlossaryEntity;
/**
* A default path to redirect to if the entity is deleted.
@@ -192,7 +194,7 @@ function EntityDropdown(props: Props) {
{menuItems.has(EntityMenuItems.DELETE) && (
- {entityData?.schemaMetadata?.fields.map((field) => (
- {downgradeV2FieldPath(field.fieldPath)}
- ))}
+ {entityData?.schemaMetadata?.fields.map((field) => {
+ const fieldPath = downgradeV2FieldPath(field.fieldPath);
+ return (
+
+ {fieldPath}
+
+ );
+ })}
)}
diff --git a/datahub-web-react/src/app/ingest/source/IngestionSourceTableColumns.tsx b/datahub-web-react/src/app/ingest/source/IngestionSourceTableColumns.tsx
index dc62e5faf213ea..63b7c3d46a2c29 100644
--- a/datahub-web-react/src/app/ingest/source/IngestionSourceTableColumns.tsx
+++ b/datahub-web-react/src/app/ingest/source/IngestionSourceTableColumns.tsx
@@ -90,7 +90,7 @@ export function TypeColumn(type: string, record: any) {
export function LastExecutionColumn(time: any) {
const executionDate = time && new Date(time);
const localTime = executionDate && `${executionDate.toLocaleDateString()} at ${executionDate.toLocaleTimeString()}`;
- return {localTime || 'N/A'};
+ return {localTime || 'None'};
}
export function ScheduleColumn(schedule: any, record: any) {
@@ -114,10 +114,10 @@ export function LastStatusColumn({ status, record, setFocusExecutionUrn }: LastS
const color = getExecutionRequestStatusDisplayColor(status);
return (
- {Icon && }
+ {Icon && }
setFocusExecutionUrn(record.lastExecUrn)}>
- {text || 'N/A'}
+ {text || 'Pending...'}
diff --git a/datahub-web-react/src/app/ingest/source/executions/IngestionExecutionTable.tsx b/datahub-web-react/src/app/ingest/source/executions/IngestionExecutionTable.tsx
index 02539d7740968a..8c81cc36ae3f99 100644
--- a/datahub-web-react/src/app/ingest/source/executions/IngestionExecutionTable.tsx
+++ b/datahub-web-react/src/app/ingest/source/executions/IngestionExecutionTable.tsx
@@ -38,7 +38,7 @@ export default function IngestionExecutionTable({
dataIndex: 'duration',
key: 'duration',
render: (durationMs: number) => {
- const seconds = (durationMs && `${durationMs / 1000}s`) || 'N/A';
+ const seconds = (durationMs && `${durationMs / 1000}s`) || 'None';
return seconds;
},
},
diff --git a/datahub-web-react/src/app/ingest/source/executions/IngestionExecutionTableColumns.tsx b/datahub-web-react/src/app/ingest/source/executions/IngestionExecutionTableColumns.tsx
index 3d9eaececb3cea..5bf96bc703f1f9 100644
--- a/datahub-web-react/src/app/ingest/source/executions/IngestionExecutionTableColumns.tsx
+++ b/datahub-web-react/src/app/ingest/source/executions/IngestionExecutionTableColumns.tsx
@@ -27,7 +27,7 @@ const StatusButton = styled(Button)`
export function TimeColumn(time: string) {
const date = time && new Date(time);
const localTime = date && `${date.toLocaleDateString()} at ${date.toLocaleTimeString()}`;
- return {localTime || 'N/A'};
+ return {localTime || 'None'};
}
interface StatusColumnProps {
@@ -42,10 +42,10 @@ export function StatusColumn({ status, record, setFocusExecutionUrn }: StatusCol
const color = getExecutionRequestStatusDisplayColor(status);
return (
- {Icon && }
+ {Icon && }
setFocusExecutionUrn(record.urn)}>
- {text || 'N/A'}
+ {text || 'Pending...'}
diff --git a/datahub-web-react/src/app/ingest/source/utils.ts b/datahub-web-react/src/app/ingest/source/utils.ts
index 5930a04aa04b97..b2f20c93614e2a 100644
--- a/datahub-web-react/src/app/ingest/source/utils.ts
+++ b/datahub-web-react/src/app/ingest/source/utils.ts
@@ -61,7 +61,7 @@ export const getExecutionRequestStatusIcon = (status: string) => {
(status === ROLLED_BACK && WarningOutlined) ||
(status === ROLLING_BACK && LoadingOutlined) ||
(status === ROLLBACK_FAILED && CloseCircleOutlined) ||
- undefined
+ ClockCircleOutlined
);
};
diff --git a/datahub-web-react/src/app/permissions/roles/ManageRoles.tsx b/datahub-web-react/src/app/permissions/roles/ManageRoles.tsx
index 44b4d9b562c242..8fbc932abb14cf 100644
--- a/datahub-web-react/src/app/permissions/roles/ManageRoles.tsx
+++ b/datahub-web-react/src/app/permissions/roles/ManageRoles.tsx
@@ -1,5 +1,5 @@
import React, { useEffect, useMemo, useState } from 'react';
-import { Button, Empty, message, Pagination, Tooltip } from 'antd';
+import { Button, Empty, message, Pagination, Tooltip, Typography } from 'antd';
import styled from 'styled-components';
import * as QueryString from 'query-string';
import { useLocation } from 'react-router';
@@ -16,6 +16,7 @@ import { useBatchAssignRoleMutation } from '../../../graphql/mutations.generated
import { CorpUser, DataHubRole, DataHubPolicy } from '../../../types.generated';
import RoleDetailsModal from './RoleDetailsModal';
import analytics, { EventType } from '../../analytics';
+import { ANTD_GRAY } from '../../entity/shared/constants';
const SourceContainer = styled.div``;
@@ -33,6 +34,12 @@ const PageContainer = styled.span`
width: 100%;
`;
+const ActionsContainer = styled.div`
+ width: 100%;
+ display: flex;
+ justify-content: right;
+`;
+
const AddUsersButton = styled(Button)`
margin-right: 16px;
`;
@@ -137,7 +144,7 @@ export const ManageRoles = () => {
<>
onViewRole(record.role)}
- style={{ color: record?.editable ? '#000000' : '#8C8C8C' }}
+ style={{ color: record?.editable ? '#000000' : ANTD_GRAY[8] }}
>
{record?.name}
@@ -158,13 +165,15 @@ export const ManageRoles = () => {
render: (_: any, record: any) => {
return (
<>
-
+ {(record?.users.length && (
+
+ )) || No assigned users}
>
);
},
@@ -174,7 +183,7 @@ export const ManageRoles = () => {
key: 'actions',
render: (_: any, record: any) => {
return (
- <>
+
{
@@ -185,7 +194,7 @@ export const ManageRoles = () => {
ADD USERS
- >
+
);
},
},
diff --git a/datahub-web-react/src/app/search/SearchFiltersSection.tsx b/datahub-web-react/src/app/search/SearchFiltersSection.tsx
index a063b37e6feb7b..a2fca0605b4ec3 100644
--- a/datahub-web-react/src/app/search/SearchFiltersSection.tsx
+++ b/datahub-web-react/src/app/search/SearchFiltersSection.tsx
@@ -31,7 +31,7 @@ const FiltersHeader = styled.div`
font-weight: 600;
padding-left: 20px;
- padding-right: 20px;
+ padding-right: 4px;
padding-bottom: 8px;
width: 100%;
diff --git a/datahub-web-react/src/app/shared/admin/HeaderLinks.tsx b/datahub-web-react/src/app/shared/admin/HeaderLinks.tsx
index 2b4f6abb831644..53af15e6266a17 100644
--- a/datahub-web-react/src/app/shared/admin/HeaderLinks.tsx
+++ b/datahub-web-react/src/app/shared/admin/HeaderLinks.tsx
@@ -10,9 +10,10 @@ import {
DownOutlined,
} from '@ant-design/icons';
import { Link } from 'react-router-dom';
-import { Button, Dropdown, Menu } from 'antd';
+import { Button, Dropdown, Menu, Tooltip } from 'antd';
import { useAppConfig } from '../../useAppConfig';
import { useGetAuthenticatedUser } from '../../useGetAuthenticatedUser';
+import { ANTD_GRAY } from '../../entity/shared/constants';
const LinkWrapper = styled.span`
margin-right: 0px;
@@ -34,6 +35,24 @@ const LinksWrapper = styled.div<{ areLinksHidden?: boolean }>`
const MenuItem = styled(Menu.Item)`
font-size: 12px;
font-weight: bold;
+ max-width: 240px;
+`;
+
+const NavTitleContainer = styled.span`
+ display: flex;
+ align-items: center;
+ justify-content: left;
+ padding: 2px;
+`;
+
+const NavTitleText = styled.span`
+ margin-left: 6px;
+`;
+
+const NavTitleDescription = styled.div`
+ font-size: 12px;
+ font-weight: normal;
+ color: ${ANTD_GRAY[7]};
`;
interface Props {
@@ -60,7 +79,12 @@ export function HeaderLinks(props: Props) {
@@ -69,7 +93,12 @@ export function HeaderLinks(props: Props) {
@@ -80,13 +109,21 @@ export function HeaderLinks(props: Props) {