diff --git a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/Glossary.spec.js b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/Glossary.spec.js index be17f79518e..e807bac62cf 100644 --- a/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/Glossary.spec.js +++ b/openmetadata-ui/src/main/resources/ui/cypress/e2e/Pages/Glossary.spec.js @@ -991,6 +991,7 @@ describe('Glossary page should work properly', () => { it('Delete glossary should work properly', () => { [NEW_GLOSSARY.name, NEW_GLOSSARY_1.name].forEach((glossary) => { verifyResponseStatusCode('@fetchGlossaries', 200); + cy.wait(200); cy.get('[data-testid="header"]') .should('be.visible') .contains(glossary) diff --git a/openmetadata-ui/src/main/resources/ui/src/assets/svg/paper-plane-primary.svg b/openmetadata-ui/src/main/resources/ui/src/assets/svg/paper-plane-primary.svg index 0751a00b20b..a1d2c9b9b6e 100644 --- a/openmetadata-ui/src/main/resources/ui/src/assets/svg/paper-plane-primary.svg +++ b/openmetadata-ui/src/main/resources/ui/src/assets/svg/paper-plane-primary.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedEditor/SendButton.tsx b/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedEditor/SendButton.tsx index 5a0753a8050..d330b7e5b71 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedEditor/SendButton.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/ActivityFeed/ActivityFeedEditor/SendButton.tsx @@ -11,13 +11,11 @@ * limitations under the License. */ -import { Popover } from 'antd'; +import { Button } from 'antd'; import classNames from 'classnames'; -import React, { FC, Fragment } from 'react'; -import { useTranslation } from 'react-i18next'; -import { Transi18next } from '../../../utils/CommonUtils'; -import SVGIcons, { Icons } from '../../../utils/SvgUtils'; -import { Button } from '../../buttons/Button/Button'; +import React, { FC } from 'react'; + +import { ReactComponent as IconPaperPlanePrimary } from '../../../assets/svg/paper-plane-primary.svg'; interface SendButtonProp { editorValue: string; @@ -25,58 +23,22 @@ interface SendButtonProp { onSaveHandler: () => void; } -const getIcon = (editorValue: string) => { - return editorValue.length > 0 ? Icons.PAPER_PLANE_PRIMARY : Icons.PAPER_PLANE; -}; - export const SendButton: FC = ({ editorValue, buttonClass, onSaveHandler, -}) => { - const { t } = useTranslation(); - - return ( - e.stopPropagation()}> - - {t('label.send-now')} - - {t('label.press')} - - } - values={{ - text: t('label.return'), - }} - /> - - - } - placement="top" - trigger="hover"> - - - - - - ); -}; +}) => ( + e.stopPropagation()}> + + + + +); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryV1.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryV1.component.tsx index 47c4c23f979..1e251642422 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryV1.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryV1.component.tsx @@ -11,8 +11,7 @@ * limitations under the License. */ -import { EllipsisOutlined } from '@ant-design/icons'; -import { Col, Dropdown, Row, Tooltip, Typography } from 'antd'; +import { Button, Col, Dropdown, Row, Tooltip, Typography } from 'antd'; import { ReactComponent as ExportIcon } from 'assets/svg/ic-export.svg'; import { ReactComponent as ImportIcon } from 'assets/svg/ic-import.svg'; import { AxiosError } from 'axios'; @@ -20,6 +19,7 @@ import { isEmpty } from 'lodash'; import React, { useEffect, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { useHistory, useParams } from 'react-router-dom'; +import { ReactComponent as IconDropdown } from '../../assets/svg/menu.svg'; import { FQN_SEPARATOR_CHAR } from '../../constants/char.constants'; import { NO_PERMISSION_FOR_ACTION } from '../../constants/HelperTextUtil'; import { Glossary } from '../../generated/entity/data/glossary'; @@ -33,7 +33,7 @@ import { } from '../../utils/RouterUtils'; import SVGIcons, { Icons } from '../../utils/SvgUtils'; import { showErrorToast } from '../../utils/ToastUtils'; -import { Button } from '../buttons/Button/Button'; +import '../common/entityPageInfo/ManageButton/ManageButton.less'; import TitleBreadcrumb from '../common/title-breadcrumb/title-breadcrumb.component'; import { TitleBreadcrumbProps } from '../common/title-breadcrumb/title-breadcrumb.interface'; import GlossaryDetails from '../GlossaryDetails/GlossaryDetails.component'; @@ -107,6 +107,11 @@ const GlossaryV1 = ({ [action] ); + const isGlossaryDeletePermission = useMemo( + () => glossaryPermission.Delete || glossaryTermPermission.Delete, + [glossaryPermission, glossaryTermPermission] + ); + const fetchGlossaryPermission = async () => { try { const response = await getEntityPermission( @@ -322,8 +327,9 @@ const GlossaryV1 = ({ trigger={['click']} onOpenChange={setShowActions}> setShowActions(true)}> - - - + diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryV1.style.less b/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryV1.style.less index 6c2dc742254..8f66b12f89d 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryV1.style.less +++ b/openmetadata-ui/src/main/resources/ui/src/components/Glossary/GlossaryV1.style.less @@ -40,11 +40,6 @@ margin-right: 0.3rem; } -.glossary-manage-button { - border: none; - background-color: @manage-dropdown-bg-primary; -} - .manage-button { .ant-space-item:first-child { width: 40px; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/TableProfiler/TableProfilerV1.tsx b/openmetadata-ui/src/main/resources/ui/src/components/TableProfiler/TableProfilerV1.tsx index 1902942e4b6..a12f2458655 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/TableProfiler/TableProfilerV1.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/TableProfiler/TableProfilerV1.tsx @@ -437,7 +437,7 @@ const TableProfilerV1: FC = ({ : t('message.no-permission-for-action') }> diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/CronEditor/CronEditor.constant.ts b/openmetadata-ui/src/main/resources/ui/src/components/common/CronEditor/CronEditor.constant.ts index 8e907632d79..35ceb61259b 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/CronEditor/CronEditor.constant.ts +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/CronEditor/CronEditor.constant.ts @@ -18,27 +18,27 @@ import { Combination, ToDisplay } from './CronEditor.interface'; export const getPeriodOptions = () => { return [ { - label: i18n.t('label.none-lowercase'), + label: i18n.t('label.none'), value: '', prep: '', }, { - label: i18n.t('label.minute-plural-lowercase'), + label: i18n.t('label.minute-plural'), value: 'minute', prep: '', }, { - label: i18n.t('label.hour-lowercase'), + label: i18n.t('label.hour'), value: 'hour', prep: 'at', }, { - label: i18n.t('label.day-lowercase'), + label: i18n.t('label.day'), value: 'day', prep: 'at', }, { - label: i18n.t('label.week-lowercase'), + label: i18n.t('label.week'), value: 'week', prep: 'on', } /* , diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/entityPageInfo/ManageButton/ManageButton.less b/openmetadata-ui/src/main/resources/ui/src/components/common/entityPageInfo/ManageButton/ManageButton.less index 138c6ab74d3..a84b9f8c5d8 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/entityPageInfo/ManageButton/ManageButton.less +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/entityPageInfo/ManageButton/ManageButton.less @@ -26,14 +26,24 @@ border: none; background-color: @manage-dropdown-bg-primary; padding: 0; + border-radius: 4px; + width: 24px; + display: flex; + justify-content: center; .ant-btn { - padding: 0 8px 0 8px; + padding: 0 4px; } } .manage-dropdown-button:hover, .manage-dropdown-button:focus { + .ant-btn { + .manage-dropdown-icon { + color: @manage-button-bg-primary; + opacity: 0.5; + } + } .manage-dropdown-icon { color: @white; font-weight: 600; diff --git a/openmetadata-ui/src/main/resources/ui/src/constants/constants.ts b/openmetadata-ui/src/main/resources/ui/src/constants/constants.ts index ba15b2f0c15..e59327092b9 100644 --- a/openmetadata-ui/src/main/resources/ui/src/constants/constants.ts +++ b/openmetadata-ui/src/main/resources/ui/src/constants/constants.ts @@ -533,3 +533,9 @@ export const ENTITY_PATH: Record = { pipelines: 'pipeline', mlmodels: 'mlmodel', }; + +export const VALIDATE_MESSAGES = { + required: t('message.field-text-is-required', { + fieldText: '${label}', + }), +}; diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json index 41611d183ce..37319c1b404 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/en-us.json @@ -192,7 +192,6 @@ "date-filter": "Date Filter", "day": "Day", "day-left": "{{day}} left", - "day-lowercase": "day", "days-change-lowercase": "{{days}}-days change", "dbt-bucket-name": "dbt Bucket Name", "dbt-catalog-file-path": "dbt Catalog File Path", @@ -360,7 +359,7 @@ "here-lowercase": "here", "hide": "Hide", "home": "Home", - "hour-lowercase": "hour", + "hour": "Hour", "http-config-source": "HTTP Config Source", "hyper-parameter-plural": "Hyper Parameters", "idle": "Idle", @@ -455,7 +454,6 @@ "minor": "Minor", "minute-lowercase": "minute", "minute-plural": "Minutes", - "minute-plural-lowercase": "minutes", "ml-model": "ML Model", "ml-model-plural": "ML Models", "mode": "Mode", @@ -488,7 +486,7 @@ "no-parameter-available": "No Parameter Available", "no-reviewer": "No reviewer", "no-tags-added": "No Tags added", - "none-lowercase": "none", + "none": "None", "not-found-lowercase": "not found", "not-null": "Not Null", "not-used": "Not Used", @@ -842,7 +840,7 @@ "webhook": "Webhook", "webhook-display-text": "Webhook {{displayText}}", "wednesday": "Wednesday", - "week-lowercase": "week", + "week": "Week", "welcome-to-open-metadata": "Welcome to OpenMetadata!", "whats-new": "What's New", "yes": "Yes", diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/AddAlertPage/AddAlertPage.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/AddAlertPage/AddAlertPage.tsx index 43b747e2b36..38d0b6da033 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/AddAlertPage/AddAlertPage.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/AddAlertPage/AddAlertPage.tsx @@ -29,6 +29,7 @@ import { import { useForm } from 'antd/lib/form/Form'; import { DefaultOptionType } from 'antd/lib/select'; import { AsyncSelect } from 'components/AsyncSelect/AsyncSelect'; +import { VALIDATE_MESSAGES } from 'constants/constants'; import { get, intersection, isEmpty, map, pick, startCase, trim } from 'lodash'; import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; @@ -534,9 +535,9 @@ const AddAlertPage = () => { - {!isEmpty(fqn) - ? t('label.edit-entity', { entity: t('label.alert-plural') }) - : t('label.create-entity', { entity: t('label.alert-plural') })} + {t(!isEmpty(fqn) ? 'label.edit-entity' : 'label.create-entity', { + entity: t('label.alert-plural'), + })} {t('message.alerts-description')} @@ -544,6 +545,7 @@ const AddAlertPage = () => { className="alerts-notification-form" form={form} + validateMessages={VALIDATE_MESSAGES} onFinish={handleSave} onValuesChange={handleChange}> 0}> @@ -557,8 +559,7 @@ const AddAlertPage = () => { + name="description"> @@ -615,16 +616,8 @@ const AddAlertPage = () => { subHeading={t('message.alerts-filter-description')} /> - - {(fields, { add, remove }, { errors }) => ( + + {(fields, { add, remove }) => ( <> { ))} - > )} diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/AlertsPage/AlertsPage.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/AlertsPage/AlertsPage.tsx index f3ea747fb49..963f5335b05 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/AlertsPage/AlertsPage.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/AlertsPage/AlertsPage.tsx @@ -10,12 +10,12 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { Button, Col, Row, Table, Tooltip } from 'antd'; +import { Button, Col, Row, Table, Tooltip, Typography } from 'antd'; import DeleteWidgetModal from 'components/common/DeleteWidget/DeleteWidgetModal'; import NextPrevious from 'components/common/next-previous/NextPrevious'; import PageHeader from 'components/header/PageHeader.component'; import Loader from 'components/Loader/Loader'; -import { isNil } from 'lodash'; +import { isEmpty, isNil } from 'lodash'; import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Link } from 'react-router-dom'; @@ -97,6 +97,8 @@ const AlertsPage = () => { dataIndex: 'description', flex: true, key: 'description', + render: (text: string) => + !isEmpty(text) ? {text} : '--', }, { title: t('label.action-plural'), diff --git a/openmetadata-ui/src/main/resources/ui/src/styles/components/table.less b/openmetadata-ui/src/main/resources/ui/src/styles/components/table.less index d0d3f689b36..77fea4df6b6 100644 --- a/openmetadata-ui/src/main/resources/ui/src/styles/components/table.less +++ b/openmetadata-ui/src/main/resources/ui/src/styles/components/table.less @@ -21,8 +21,6 @@ } .ant-table-bordered { table { - border: 1px solid #dde3ea; - tbody { tr { td { @@ -52,8 +50,23 @@ } } } - .ant-table-container > .ant-table-content > table > tbody > tr > td { - border-right: none; + .ant-table-container { + border: 1px solid @border-gray-color; + border-radius: 4px; + overflow: hidden; + + .ant-table-content > table { + border-top: none; + tbody > tr { + td { + border-right: none; + } + + &:last-child td { + border-bottom: none; + } + } + } } } }
- {t('label.press')} - - } - values={{ - text: t('label.return'), - }} - /> -