From 4da3d132f84f7f801b09a21680f257d4a4dcb29e Mon Sep 17 00:00:00 2001 From: John Joyce Date: Fri, 3 Jun 2022 07:47:39 -0700 Subject: [PATCH] refactor(ui): UI Navigation Refactoring (#5076) --- datahub-web-react/src/app/ProtectedRoutes.tsx | 10 +- .../app/entity/container/ContainerEntity.tsx | 2 + .../src/app/entity/domain/DomainEntity.tsx | 2 + .../profile/header/EntityHeader.tsx | 13 +-- ...dentitiesPage.tsx => ManageIdentities.tsx} | 30 +++--- .../{PoliciesPage.tsx => ManagePolicies.tsx} | 16 +-- .../src/app/settings/SettingsPage.tsx | 97 ++++++++++++++++--- datahub-web-react/src/app/shared/CopyUrn.tsx | 23 +++++ .../src/app/shared/ManageAccount.tsx | 6 +- .../src/app/shared/TagStyleEntity.tsx | 42 +++++--- .../src/app/shared/admin/AdminHeaderLinks.tsx | 33 +------ 11 files changed, 179 insertions(+), 95 deletions(-) rename datahub-web-react/src/app/identity/{ManageIdentitiesPage.tsx => ManageIdentities.tsx} (69%) rename datahub-web-react/src/app/policy/{PoliciesPage.tsx => ManagePolicies.tsx} (98%) create mode 100644 datahub-web-react/src/app/shared/CopyUrn.tsx diff --git a/datahub-web-react/src/app/ProtectedRoutes.tsx b/datahub-web-react/src/app/ProtectedRoutes.tsx index 5e8497474a..e9b14a0acb 100644 --- a/datahub-web-react/src/app/ProtectedRoutes.tsx +++ b/datahub-web-react/src/app/ProtectedRoutes.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Switch, Route } from 'react-router-dom'; +import { Switch, Route, Redirect } from 'react-router-dom'; import { Layout } from 'antd'; import { BrowseResultsPage } from './browse/BrowseResultsPage'; import { EntityPage } from './entity/EntityPage'; @@ -8,13 +8,11 @@ import { useEntityRegistry } from './useEntityRegistry'; import { HomePage } from './home/HomePage'; import { SearchPage } from './search/SearchPage'; import { AnalyticsPage } from './analyticsDashboard/components/AnalyticsPage'; -import { PoliciesPage } from './policy/PoliciesPage'; import AppConfigProvider from '../AppConfigProvider'; -import { ManageIdentitiesPage } from './identity/ManageIdentitiesPage'; -import { SettingsPage } from './settings/SettingsPage'; import { ManageIngestionPage } from './ingest/ManageIngestionPage'; import { ManageDomainsPage } from './domain/ManageDomainsPage'; import BusinessGlossaryPage from './glossary/BusinessGlossaryPage'; +import { SettingsPage } from './settings/SettingsPage'; /** * Container for all views behind an authentication wall. @@ -37,8 +35,8 @@ export const ProtectedRoutes = (): JSX.Element => { } /> } /> } /> - } /> - } /> + } /> + } /> } /> } /> } /> diff --git a/datahub-web-react/src/app/entity/container/ContainerEntity.tsx b/datahub-web-react/src/app/entity/container/ContainerEntity.tsx index e6013d491c..7072aef9b5 100644 --- a/datahub-web-react/src/app/entity/container/ContainerEntity.tsx +++ b/datahub-web-react/src/app/entity/container/ContainerEntity.tsx @@ -14,6 +14,7 @@ import { SidebarRecommendationsSection } from '../shared/containers/profile/side import { SidebarTagsSection } from '../shared/containers/profile/sidebar/SidebarTagsSection'; import { PropertiesTab } from '../shared/tabs/Properties/PropertiesTab'; import { SidebarDomainSection } from '../shared/containers/profile/sidebar/Domain/SidebarDomainSection'; +import { EntityMenuItems } from '../shared/EntityDropdown/EntityDropdown'; /** * Definition of the DataHub Container entity. @@ -67,6 +68,7 @@ export class ContainerEntity implements Entity { useEntityQuery={useGetContainerQuery} useUpdateQuery={undefined} getOverrideProperties={this.getOverridePropertiesFromEntity} + headerDropdownItems={new Set([EntityMenuItems.COPY_URL])} tabs={[ { name: 'Entities', diff --git a/datahub-web-react/src/app/entity/domain/DomainEntity.tsx b/datahub-web-react/src/app/entity/domain/DomainEntity.tsx index edf6a4367a..1890fb0dad 100644 --- a/datahub-web-react/src/app/entity/domain/DomainEntity.tsx +++ b/datahub-web-react/src/app/entity/domain/DomainEntity.tsx @@ -10,6 +10,7 @@ import { SidebarOwnerSection } from '../shared/containers/profile/sidebar/Owners import { getDataForEntityType } from '../shared/containers/profile/utils'; import { useGetDomainQuery } from '../../../graphql/domain.generated'; import { DomainEntitiesTab } from './DomainEntitiesTab'; +import { EntityMenuItems } from '../shared/EntityDropdown/EntityDropdown'; /** * Definition of the DataHub Domain entity. @@ -63,6 +64,7 @@ export class DomainEntity implements Entity { useEntityQuery={useGetDomainQuery} useUpdateQuery={undefined} getOverrideProperties={this.getOverridePropertiesFromEntity} + headerDropdownItems={new Set([EntityMenuItems.COPY_URL])} tabs={[ { name: 'Entities', diff --git a/datahub-web-react/src/app/entity/shared/containers/profile/header/EntityHeader.tsx b/datahub-web-react/src/app/entity/shared/containers/profile/header/EntityHeader.tsx index f2ab2a6380..2d2c7cf7b2 100644 --- a/datahub-web-react/src/app/entity/shared/containers/profile/header/EntityHeader.tsx +++ b/datahub-web-react/src/app/entity/shared/containers/profile/header/EntityHeader.tsx @@ -1,5 +1,5 @@ import React, { useState } from 'react'; -import { CheckOutlined, CopyOutlined, InfoCircleOutlined, RightOutlined } from '@ant-design/icons'; +import { InfoCircleOutlined, RightOutlined } from '@ant-design/icons'; import { Typography, Button, Tooltip, Popover } from 'antd'; import styled from 'styled-components/macro'; import moment from 'moment'; @@ -16,6 +16,7 @@ import { useGetAuthenticatedUser } from '../../../../../useGetAuthenticatedUser' import { EntityType, PlatformPrivileges } from '../../../../../../types.generated'; import EntityCount from './EntityCount'; import EntityName from './EntityName'; +import CopyUrn from '../../../../../shared/CopyUrn'; const TitleWrapper = styled.div` display: flex; @@ -189,15 +190,7 @@ export const EntityHeader = ({ refreshBrowser, headerDropdownItems, isNameEditab - - - - - )} {showIngestion && ( @@ -91,15 +75,6 @@ export function AdminHeaderLinks(props: Props) { )} - {showPolicyBuilder && ( - - - - - - )} {(showGlossary || showDomains) && ( )} {showSettings && ( - +