diff --git a/openmetadata-ui/src/main/resources/ui/cypress/integration/Pages/Glossary.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/integration/Pages/Glossary.spec.js index 18f8f032394..674b2427c1a 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/integration/Pages/Glossary.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/integration/Pages/Glossary.spec.js @@ -96,13 +96,10 @@ describe('Glossary page should work properly', () => { beforeEach(() => { cy.goToHomePage(); // redirecting to glossary page - cy.get( - '.tw-ml-5 > [data-testid="dropdown-item"] > div > [data-testid="menu-button"]' - ) + cy.get('[data-testid="appbar-item-glossary"]') .scrollIntoView() .should('be.visible') .click(); - cy.get('[data-testid="menu-item-Glossaries"]').should('be.visible').click(); // Todo: need to remove below uncaught exception once tree-view error resolves cy.on('uncaught:exception', () => { // return false to prevent the error from @@ -321,13 +318,10 @@ describe('Glossary page should work properly', () => { addNewTagToEntity(entity, term); - cy.get( - '.tw-ml-5 > [data-testid="dropdown-item"] > div > [data-testid="menu-button"]' - ) + cy.get('[data-testid="appbar-item-glossary"]') .scrollIntoView() .should('be.visible') .click(); - cy.get('[data-testid="menu-item-Glossaries"]').should('be.visible').click(); goToAssetsTab(term); cy.get('[data-testid="column"] > :nth-child(1)') .contains(entity) @@ -377,13 +371,11 @@ describe('Glossary page should work properly', () => { .should('be.visible') .click(); cy.get('[data-testid="saveAssociatedTag"]').scrollIntoView().click(); - cy.get( - '.tw-ml-5 > [data-testid="dropdown-item"] > div > [data-testid="menu-button"]' - ) + + cy.get('[data-testid="appbar-item-glossary"]') .scrollIntoView() .should('be.visible') .click(); - cy.get('[data-testid="menu-item-Glossaries"]').should('be.visible').click(); cy.wait(500); goToAssetsTab(term); cy.get('.tableBody-cell') diff --git a/openmetadata-ui/src/main/resources/ui/cypress/integration/Pages/Tags.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/integration/Pages/Tags.spec.js index 00370dc43a4..1c324ed5532 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/integration/Pages/Tags.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/integration/Pages/Tags.spec.js @@ -17,12 +17,7 @@ import { NEW_TAG, NEW_TAG_CATEGORY, SEARCH_ENTITY_TABLE } from '../../constants/ describe('Tags page should work', () => { beforeEach(() => { cy.goToHomePage(); - cy.get( - '.tw-ml-5 > [data-testid="dropdown-item"] > div > [data-testid="menu-button"]' - ) - .should('be.visible') - .click(); - cy.get('[data-testid="menu-item-Tags"]').should('be.visible').click(); + cy.get('[data-testid="appbar-item-tags"]').should('be.visible').click(); }); it('Required Details should be available', () => { diff --git a/openmetadata-ui/src/main/resources/ui/src/components/TeamsAndUsers/TeamsAndUsers.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/TeamsAndUsers/TeamsAndUsers.component.tsx index 1dd10979f03..682b5685f22 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/TeamsAndUsers/TeamsAndUsers.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/TeamsAndUsers/TeamsAndUsers.component.tsx @@ -12,6 +12,7 @@ */ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { Card } from 'antd'; import { capitalize } from 'lodash'; import React from 'react'; import { TITLE_FOR_NON_ADMIN_ACTION } from '../../constants/constants'; @@ -22,7 +23,7 @@ import { getActiveCatClass, getCountBadge } from '../../utils/CommonUtils'; import { getActiveUsers } from '../../utils/TeamUtils'; import { Button } from '../buttons/Button/Button'; import NonAdminAction from '../common/non-admin-action/NonAdminAction'; -import PageLayout from '../containers/PageLayout'; +import PageLayout, { leftPanelAntCardStyle } from '../containers/PageLayout'; import Loader from '../Loader/Loader'; import TeamDetails from '../TeamDetails/TeamDetails'; import UserDetails from '../UserDetails/UserDetails'; @@ -88,104 +89,106 @@ const TeamsAndUsers = ({ */ const fetchLeftPanel = () => { return ( - <> -
-
-

Teams

- {hasAccess && ( - - - - )} -
- {teams.map((team) => ( + + <> +
{ - changeCurrentTeam(team.name, false); - }}> -
-

- {team.displayName ?? team.name} -

-
- {getCountBadge( - getActiveUsers(team.users).length, - '', - currentTeam?.name === team.name - )} -
- ))} -
- {hasAccess && ( -
-
-

All Users

+ className="tw-flex tw-justify-between tw-items-center tw-mb-2 tw-border-b" + data-testid="add-team-container"> +

Teams

{hasAccess && ( )}
- {usersData.map((user) => ( + {teams.map((team) => (
{ - changeCurrentTeam(user.name, true); + changeCurrentTeam(team.name, false); }}>

- {capitalize(user.name)} + data-testid="team-name" + title={team.displayName ?? team.name}> + {team.displayName ?? team.name}

- {getCountBadge(user.count, '', activeUserTab === user.name)} + {getCountBadge( + getActiveUsers(team.users).length, + '', + currentTeam?.name === team.name + )}
))}
- )} - + {hasAccess && ( +
+
+

All Users

+ {hasAccess && ( + + + + )} +
+ {usersData.map((user) => ( +
{ + changeCurrentTeam(user.name, true); + }}> +
+

+ {capitalize(user.name)} +

+
+ {getCountBadge(user.count, '', activeUserTab === user.name)} +
+ ))} +
+ )} + +
); }; @@ -195,8 +198,9 @@ const TeamsAndUsers = ({ ) : (
+ className="tw-pb-3 tw-w-full tw-h-full tw-flex tw-flex-col tw-bg-white" + data-testid="team-and-user-container" + style={{ padding: '14px' }}> {!isTeamVisible ? ( = ({ const fetchLeftPanel = () => { return ( - <> -
Webhooks
-
-
- Status -
-
-
-
- {statuses.map((statusType, index) => ( -
-
- { - handleStatusSelection(statusType.value); - }} - /> -
-
{statusType.name}
+ + <> +
Webhooks
+
+
+ Status +
+
+
+
+ {statuses.map((statusType, index) => ( +
+
+ { + handleStatusSelection(statusType.value); + }} + /> +
+
{statusType.name}
+
-
- ))} -
- + ))} +
+ + ); }; const fetchRightPanel = () => { return ( - <> -
+ +
The webhook allows external services to be notified of the metadata change events happening in your organization through APIs. Register callback URLs with webhook integration to receive metadata event notifications. You can add, list, update, and delete webhooks.
- +
); }; @@ -167,7 +170,7 @@ const Webhooks: FunctionComponent = ({ return data.length ? ( -
+
{filteredData.length ? ( <>
diff --git a/openmetadata-ui/src/main/resources/ui/src/components/containers/PageLayout.tsx b/openmetadata-ui/src/main/resources/ui/src/components/containers/PageLayout.tsx index 517c409ed68..f4e193d3985 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/containers/PageLayout.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/containers/PageLayout.tsx @@ -24,6 +24,14 @@ interface PageLayoutProp { classes?: string; } +export const leftPanelAntCardStyle = { + border: '1px rgb(221, 227, 234) solid', + borderRadius: '8px', + boxShadow: '1px 1px 6px rgb(0 0 0 / 12%)', + marginRight: '4px', + marginLeft: '4px', +}; + const PageLayout: FC = ({ leftPanel, header, diff --git a/openmetadata-ui/src/main/resources/ui/src/components/dropdown/DropDown.tsx b/openmetadata-ui/src/main/resources/ui/src/components/dropdown/DropDown.tsx index 6dceb0c264e..59a2067273d 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/dropdown/DropDown.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/dropdown/DropDown.tsx @@ -134,7 +134,7 @@ const DropDown: React.FC = ({ {isDropDownIconVisible ? ( ) : null} diff --git a/openmetadata-ui/src/main/resources/ui/src/components/nav-bar/NavBar.tsx b/openmetadata-ui/src/main/resources/ui/src/components/nav-bar/NavBar.tsx index 9692d39a240..6c47ae6530f 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/nav-bar/NavBar.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/nav-bar/NavBar.tsx @@ -89,6 +89,26 @@ const NavBar = ({ label="Settings" type="link" /> + + Glossaries + + + Tags +
{ const fetchLeftPanel = (roles: Array) => { return ( - -
-
- Roles -
-
- {roles && - roles.map((role) => ( -
setCurrentRole(role)}> -

- {role.displayName}{' '} -

- {role.defaultRole ? getDefaultBadge() : null} -
- ))} -
+ +
+ Roles +
+
+ }> + + {roles && + roles.map((role) => ( +
setCurrentRole(role)}> + + {role.displayName}{' '} + + {role.defaultRole ? getDefaultBadge() : null} +
+ ))} +
+ ); }; @@ -1113,7 +1122,10 @@ const RolesPage = () => { {isLoading ? ( ) : ( -
+
{getRolesContainer()} {getAddRoleForm()} diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/services/index.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/services/index.tsx index 3500490f6ae..6e38f2a0e31 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/services/index.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/services/index.tsx @@ -11,6 +11,7 @@ * limitations under the License. */ +import { Card } from 'antd'; import { AxiosError, AxiosResponse } from 'axios'; import classNames from 'classnames'; import { isNil } from 'lodash'; @@ -25,7 +26,9 @@ import NextPrevious from '../../components/common/next-previous/NextPrevious'; import NonAdminAction from '../../components/common/non-admin-action/NonAdminAction'; import RichTextEditorPreviewer from '../../components/common/rich-text-editor/RichTextEditorPreviewer'; import PageContainerV1 from '../../components/containers/PageContainerV1'; -import PageLayout from '../../components/containers/PageLayout'; +import PageLayout, { + leftPanelAntCardStyle, +} from '../../components/containers/PageLayout'; import Loader from '../../components/Loader/Loader'; import { getServiceDetailsPath, @@ -231,36 +234,41 @@ const ServicesPage = () => { const fetchLeftPanel = () => { return ( - <> -
-
Services
-
+ +
Services
+
+ }> + <> + {getServiceTabs()?.map((tab, index) => { + return ( +
{ + handleTabChange(tab.name); + }}> +

+ {tab.displayName} +

- {getServiceTabs()?.map((tab, index) => { - return ( -
{ - handleTabChange(tab.name); - }}> -

- {tab.displayName} -

- - {getCountBadge( - servicesCount[tab.name], - 'tw-self-center', - tab.name === serviceName - )} -
- ); - })} - + {getCountBadge( + servicesCount[tab.name], + 'tw-self-center', + tab.name === serviceName + )} +
+ ); + })} + + ); }; @@ -406,53 +414,56 @@ const ServicesPage = () => { className="tw-grid xl:tw-grid-cols-4 tw-grid-cols-2 tw-gap-4 tw-mb-4" data-testid="data-container"> {serviceList.map((service, index) => ( -
-
-
- - - -
- {service.description ? ( - - ) : ( - No description - )} + +
+
+
+ + + +
+ {service.description ? ( + + ) : ( + + No description + + )} +
+ {getOptionalFields(service)} +
+
+ + + {service.serviceType} +
- {getOptionalFields(service)}
-
- - - {service.serviceType} - +
+
+ {getServiceLogo(service.serviceType || '', 'tw-h-8')} +
-
-
- {getServiceLogo(service.serviceType || '', 'tw-h-8')} -
-
-
+
))}
@@ -490,7 +501,7 @@ const ServicesPage = () => { {errorMessage} ) : ( -
+
{getServiceList()} {getPagination()} 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 756db894ac7..8855dd41ba2 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 @@ -12,6 +12,7 @@ */ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; +import { Card } from 'antd'; import { AxiosError, AxiosResponse } from 'axios'; import classNames from 'classnames'; import { isUndefined, toLower } from 'lodash'; @@ -34,7 +35,9 @@ import ErrorPlaceHolder from '../../components/common/error-with-placeholder/Err import NonAdminAction from '../../components/common/non-admin-action/NonAdminAction'; import RichTextEditorPreviewer from '../../components/common/rich-text-editor/RichTextEditorPreviewer'; import PageContainerV1 from '../../components/containers/PageContainerV1'; -import PageLayout from '../../components/containers/PageLayout'; +import PageLayout, { + leftPanelAntCardStyle, +} from '../../components/containers/PageLayout'; import Loader from '../../components/Loader/Loader'; import ConfirmationModal from '../../components/Modals/ConfirmationModal/ConfirmationModal'; import FormModal from '../../components/Modals/FormModal'; @@ -397,52 +400,56 @@ const TagsPage = () => { const fetchLeftPanel = () => { return ( - <> -
-
Tag Categories
- - - -
- {categories && - categories.map((category: TagCategory) => ( -
{ - fetchCurrentCategory(category.name); - }}> -

- {category.displayName ?? category.name} -

+ + <> +
+
Tag Categories
+ + + +
+ {categories && + categories.map((category: TagCategory) => ( +
{ + fetchCurrentCategory(category.name); + }}> +

+ {category.displayName ?? category.name} +

- {getCountBadge( - currentCategory?.name === category.name - ? currentCategory.children?.length - : category.children?.length || 0, - 'tw-self-center', - currentCategory?.name === category.name - )} -
- ))} - + {getCountBadge( + currentCategory?.name === category.name + ? currentCategory.children?.length + : category.children?.length || 0, + 'tw-self-center', + currentCategory?.name === category.name + )} +
+ ))} + + ); }; @@ -458,7 +465,10 @@ const TagsPage = () => { {isLoading ? ( ) : ( -
+
{currentCategory && (