mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-11-02 03:29:03 +00:00
fix styling for data contract (#22771)
* fix styling for data contract * revert owner and description style change * support status icons for running, aborted, failed * seprate const and enum to fix tests * fix tests * remove enable from semantic forms * update data contract validation icon (cherry picked from commit 764ff0edf1c3a575cf804d59e288ab514b31832a)
This commit is contained in:
parent
e3bb47d2d7
commit
03924ef4e7
@ -143,11 +143,6 @@ test.describe('Data Contracts', () => {
|
||||
DATA_CONTRACT_SEMANTICS1.description
|
||||
);
|
||||
|
||||
await expect(page.locator('#semantics_0_enabled')).toHaveAttribute(
|
||||
'aria-checked',
|
||||
'true'
|
||||
);
|
||||
|
||||
const ruleLocator = page.locator('.group').nth(0);
|
||||
await selectOption(
|
||||
page,
|
||||
|
||||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 10 KiB |
@ -0,0 +1,16 @@
|
||||
<svg viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g opacity="0.3">
|
||||
<path d="M13.999 5.19995C18.8591 5.19995 22.7987 9.13974 22.7988 13.9998C22.7988 18.8599 18.8591 22.7996 13.999 22.7996C9.13901 22.7995 5.19922 18.8598 5.19922 13.9998C5.19932 9.13981 9.13907 5.20006 13.999 5.19995Z" stroke="#B93815" stroke-width="2"/>
|
||||
</g>
|
||||
<g opacity="0.1">
|
||||
<path d="M13.999 1.69995C20.7921 1.69995 26.2987 7.20675 26.2988 13.9998C26.2988 20.7929 20.7921 26.2996 13.999 26.2996C7.20601 26.2995 1.69922 20.7928 1.69922 13.9998C1.69932 7.20681 7.20608 1.70006 13.999 1.69995Z" stroke="#B93815" stroke-width="2"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip0_3503_24363)">
|
||||
<path d="M9.87714 9.87591L18.1255 18.1242M8.16797 11.9717V16.0285C8.16797 16.1712 8.16797 16.2425 8.18409 16.3096C8.19838 16.3692 8.22195 16.4261 8.25393 16.4782C8.29 16.5371 8.34045 16.5876 8.44134 16.6884L11.3129 19.56C11.4138 19.6609 11.4643 19.7114 11.5231 19.7475C11.5753 19.7794 11.6322 19.803 11.6918 19.8173C11.7589 19.8334 11.8302 19.8334 11.9729 19.8334H16.0297C16.1724 19.8334 16.2437 19.8334 16.3109 19.8173C16.3704 19.803 16.4273 19.7794 16.4795 19.7475C16.5383 19.7114 16.5888 19.6609 16.6897 19.56L19.5613 16.6884C19.6622 16.5876 19.7126 16.5371 19.7487 16.4782C19.7807 16.4261 19.8042 16.3692 19.8185 16.3096C19.8346 16.2425 19.8346 16.1712 19.8346 16.0285V11.9717C19.8346 11.829 19.8346 11.7577 19.8185 11.6905C19.8042 11.631 19.7807 11.5741 19.7487 11.5219C19.7126 11.463 19.6622 11.4126 19.5613 11.3117L16.6897 8.44012C16.5888 8.33923 16.5383 8.28878 16.4795 8.25271C16.4273 8.22072 16.3704 8.19716 16.3109 8.18287C16.2437 8.16675 16.1724 8.16675 16.0297 8.16675H11.9729C11.8302 8.16675 11.7589 8.16675 11.6918 8.18287C11.6322 8.19716 11.5753 8.22072 11.5231 8.25271C11.4643 8.28878 11.4138 8.33923 11.3129 8.44012L8.44134 11.3117C8.34045 11.4126 8.29 11.463 8.25393 11.5219C8.22195 11.5741 8.19838 11.631 8.18409 11.6905C8.16797 11.7577 8.16797 11.829 8.16797 11.9717Z" stroke="#B93815" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_3503_24363">
|
||||
<rect width="14" height="14" fill="white" transform="translate(7 7)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@ -0,0 +1,16 @@
|
||||
<svg viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g opacity="0.3">
|
||||
<path d="M13.999 5.19995C18.8591 5.19995 22.7987 9.13974 22.7988 13.9998C22.7988 18.8599 18.8591 22.7996 13.999 22.7996C9.13901 22.7995 5.19922 18.8598 5.19922 13.9998C5.19932 9.13981 9.13907 5.20006 13.999 5.19995Z" stroke="#D92D20" stroke-width="2"/>
|
||||
</g>
|
||||
<g opacity="0.1">
|
||||
<path d="M13.999 1.69995C20.7921 1.69995 26.2987 7.20675 26.2988 13.9998C26.2988 20.7929 20.7921 26.2996 13.999 26.2996C7.20601 26.2995 1.69922 20.7928 1.69922 13.9998C1.69932 7.20681 7.20608 1.70006 13.999 1.69995Z" stroke="#D92D20" stroke-width="2"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip0_3503_24357)">
|
||||
<path d="M15.7513 12.2501L12.2513 15.7501M12.2513 12.2501L15.7513 15.7501M19.8346 14.0001C19.8346 17.2217 17.223 19.8334 14.0013 19.8334C10.7796 19.8334 8.16797 17.2217 8.16797 14.0001C8.16797 10.7784 10.7796 8.16675 14.0013 8.16675C17.223 8.16675 19.8346 10.7784 19.8346 14.0001Z" stroke="#D92D20" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_3503_24357">
|
||||
<rect width="14" height="14" fill="white" transform="translate(7 7)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@ -0,0 +1,16 @@
|
||||
<svg viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g opacity="0.3">
|
||||
<path d="M13.999 5.19995C18.8591 5.19995 22.7987 9.13974 22.7988 13.9998C22.7988 18.8599 18.8591 22.7996 13.999 22.7996C9.13901 22.7995 5.19922 18.8598 5.19922 13.9998C5.19932 9.13981 9.13907 5.20006 13.999 5.19995Z" stroke="#175CD3" stroke-width="2"/>
|
||||
</g>
|
||||
<g opacity="0.1">
|
||||
<path d="M13.999 1.69995C20.7921 1.69995 26.2987 7.20675 26.2988 13.9998C26.2988 20.7929 20.7921 26.2996 13.999 26.2996C7.20601 26.2995 1.69922 20.7928 1.69922 13.9998C1.69932 7.20681 7.20608 1.70006 13.999 1.69995Z" stroke="#175CD3" stroke-width="2"/>
|
||||
</g>
|
||||
<g clip-path="url(#clip0_3503_24387)">
|
||||
<path d="M14 8.3125V9.77083M14 17.5V19.8333M10.3542 14H8.3125M19.3958 14H18.5208M17.7666 17.7666L17.3542 17.3542M17.8875 10.1592L17.0625 10.9842M9.87092 18.1291L11.5208 16.4792M9.99173 10.0384L11.2292 11.2758" stroke="#175CD3" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_3503_24387">
|
||||
<rect width="14" height="14" fill="white" transform="translate(7 7)"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@ -15,7 +15,7 @@ import { Button, Col, Divider, Row, Space, Tooltip, Typography } from 'antd';
|
||||
import ButtonGroup from 'antd/lib/button/button-group';
|
||||
import { AxiosError } from 'axios';
|
||||
import classNames from 'classnames';
|
||||
import { get, isEmpty, isUndefined } from 'lodash';
|
||||
import { get, isEmpty, isUndefined, toLower } from 'lodash';
|
||||
import { ServiceTypes } from 'Models';
|
||||
import QueryString from 'qs';
|
||||
import { useCallback, useEffect, useMemo, useState } from 'react';
|
||||
@ -60,10 +60,10 @@ import {
|
||||
getEntityExtraInfoLength,
|
||||
isDataAssetsWithServiceField,
|
||||
} from '../../../utils/DataAssetsHeader.utils';
|
||||
import { getDataContractStatusIcon } from '../../../utils/DataContract/DataContractUtils';
|
||||
import EntityLink from '../../../utils/EntityLink';
|
||||
import entityUtilClassBase from '../../../utils/EntityUtilClassBase';
|
||||
import {
|
||||
getDataContractStatusIcon,
|
||||
getEntityFeedLink,
|
||||
getEntityName,
|
||||
getEntityVoteStatus,
|
||||
@ -425,15 +425,26 @@ export const DataAssetsHeader = ({
|
||||
]);
|
||||
|
||||
const dataContractLatestResultButton = useMemo(() => {
|
||||
if (dataContract?.latestResult?.status === ContractExecutionStatus.Failed) {
|
||||
if (
|
||||
dataContract?.latestResult?.status &&
|
||||
[
|
||||
ContractExecutionStatus.Aborted,
|
||||
ContractExecutionStatus.Failed,
|
||||
ContractExecutionStatus.Running,
|
||||
].includes(dataContract?.latestResult?.status)
|
||||
) {
|
||||
const icon = getDataContractStatusIcon(
|
||||
dataContract?.latestResult?.status
|
||||
);
|
||||
|
||||
return (
|
||||
<Button
|
||||
className={classNames(
|
||||
`data-contract-latest-result-button
|
||||
${dataContract?.latestResult?.status}`
|
||||
${toLower(dataContract?.latestResult?.status)}`
|
||||
)}
|
||||
data-testid="data-contract-latest-result-btn"
|
||||
icon={getDataContractStatusIcon(dataContract?.latestResult?.status)}
|
||||
icon={icon ? <Icon component={icon} /> : null}
|
||||
onClick={() => {
|
||||
navigate(
|
||||
getEntityDetailsPath(
|
||||
@ -443,7 +454,7 @@ export const DataAssetsHeader = ({
|
||||
)
|
||||
);
|
||||
}}>
|
||||
{t('label.entity-failed', {
|
||||
{t(`label.entity-${toLower(dataContract?.latestResult?.status)}`, {
|
||||
entity: t('label.contract'),
|
||||
})}
|
||||
</Button>
|
||||
|
||||
@ -138,21 +138,33 @@
|
||||
box-shadow: 0px 2px 2px -1px @grey-35, 0px 4px 6px -2px @grey-35,
|
||||
0px 12px 16px -4px @grey-35;
|
||||
|
||||
&.Failed {
|
||||
svg {
|
||||
font-size: 26px;
|
||||
fill: transparent;
|
||||
}
|
||||
|
||||
&.failed {
|
||||
color: @red-14;
|
||||
border: 1px solid @red-19;
|
||||
background-color: @red-9;
|
||||
}
|
||||
|
||||
svg {
|
||||
font-size: 26px;
|
||||
fill: transparent;
|
||||
}
|
||||
&.aborted {
|
||||
color: @orange-7;
|
||||
border: 1px solid @orange-200;
|
||||
background-color: @orange-50;
|
||||
|
||||
&:hover {
|
||||
border: 1px solid @red-19;
|
||||
background-color: @red-2;
|
||||
}
|
||||
}
|
||||
|
||||
&.running {
|
||||
color: @primary-7;
|
||||
border: 1px solid @blue-39;
|
||||
background-color: @blue-33;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -11,8 +11,8 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import Icon from '@ant-design/icons';
|
||||
import { Button, Card, Typography } from 'antd';
|
||||
import Icon, { DownOutlined } from '@ant-design/icons';
|
||||
import { Button, Card, Dropdown, Typography } from 'antd';
|
||||
import { ColumnsType } from 'antd/lib/table';
|
||||
import { AxiosError } from 'axios';
|
||||
import { toLower } from 'lodash';
|
||||
@ -22,6 +22,7 @@ import { ReactComponent as LeftOutlined } from '../../../assets/svg/left-arrow.s
|
||||
import { ReactComponent as PlusIcon } from '../../../assets/svg/x-colored.svg';
|
||||
import { DEFAULT_SORT_ORDER } from '../../../constants/profiler.constant';
|
||||
import { EntityType, TabSpecificField } from '../../../enums/entity.enum';
|
||||
import { TestCaseType } from '../../../enums/TestSuite.enum';
|
||||
import { DataContract } from '../../../generated/entity/data/dataContract';
|
||||
import { Table as TableType } from '../../../generated/entity/data/table';
|
||||
import { TestCase, TestCaseResult } from '../../../generated/tests/testCase';
|
||||
@ -31,13 +32,11 @@ import { usePaging } from '../../../hooks/paging/usePaging';
|
||||
import {
|
||||
getListTestCaseBySearch,
|
||||
ListTestCaseParamsBySearch,
|
||||
TestCaseType,
|
||||
} from '../../../rest/testAPI';
|
||||
import { TEST_LEVEL_OPTIONS } from '../../../utils/DataQuality/DataQualityUtils';
|
||||
import { ContractTestTypeLabelMap } from '../../../utils/DataContract/DataContractUtils';
|
||||
import { generateEntityLink } from '../../../utils/TableUtils';
|
||||
import { showErrorToast } from '../../../utils/ToastUtils';
|
||||
import { PagingHandlerParams } from '../../common/NextPrevious/NextPrevious.interface';
|
||||
import SelectionCardGroup from '../../common/SelectionCardGroup/SelectionCardGroup';
|
||||
import StatusBadge from '../../common/StatusBadge/StatusBadge.component';
|
||||
import { StatusType } from '../../common/StatusBadge/StatusBadge.interface';
|
||||
import Table from '../../common/Table/Table';
|
||||
@ -52,7 +51,7 @@ export const ContractQualityFormTab: React.FC<{
|
||||
onPrev: () => void;
|
||||
prevLabel?: string;
|
||||
}> = ({ selectedQuality, onChange, onPrev, prevLabel }) => {
|
||||
const [testType, setTestType] = useState<TestCaseType>(TestCaseType.table);
|
||||
const [testType, setTestType] = useState<TestCaseType>(TestCaseType.all);
|
||||
const [allTestCases, setAllTestCases] = useState<TestCase[]>([]);
|
||||
const { data: table } = useGenericContext<TableType>();
|
||||
const [isTestsLoading, setIsTestsLoading] = useState<boolean>(false);
|
||||
@ -191,6 +190,16 @@ export const ContractQualityFormTab: React.FC<{
|
||||
fetchAllTests();
|
||||
}, [testType]);
|
||||
|
||||
const filterMenu = useMemo(() => {
|
||||
return {
|
||||
items: Object.entries(ContractTestTypeLabelMap).map(([key]) => ({
|
||||
key,
|
||||
label: ContractTestTypeLabelMap[key as TestCaseType],
|
||||
onClick: () => setTestType(key as TestCaseType),
|
||||
})),
|
||||
};
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<Card className="contract-quality-form-tab-container container bg-grey p-box">
|
||||
<div className="d-flex justify-between">
|
||||
@ -215,15 +224,17 @@ export const ContractQualityFormTab: React.FC<{
|
||||
</div>
|
||||
|
||||
<div className="contract-form-content-container ">
|
||||
<SelectionCardGroup
|
||||
options={TEST_LEVEL_OPTIONS}
|
||||
value={testType}
|
||||
onChange={(value) => setTestType(value as TestCaseType)}
|
||||
/>
|
||||
<Table
|
||||
columns={columns}
|
||||
customPaginationProps={paginationProps}
|
||||
dataSource={allTestCases}
|
||||
extraTableFilters={
|
||||
<Dropdown menu={filterMenu}>
|
||||
<Button icon={<DownOutlined />} type="default">
|
||||
{t('label.filter-plural')}
|
||||
</Button>
|
||||
</Dropdown>
|
||||
}
|
||||
loading={isTestsLoading}
|
||||
pagination={false}
|
||||
rowKey="id"
|
||||
@ -234,6 +245,16 @@ export const ContractQualityFormTab: React.FC<{
|
||||
handleSelection(selectedRowKeys as string[]);
|
||||
},
|
||||
}}
|
||||
searchProps={{
|
||||
placeholder: t('label.search-by-name'),
|
||||
onSearch: (value) => {
|
||||
fetchAllTests({
|
||||
offset: 0,
|
||||
limit: pageSize,
|
||||
q: value,
|
||||
});
|
||||
},
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
|
||||
@ -239,22 +239,6 @@ export const ContractSemanticFormTab: React.FC<{
|
||||
<TextArea rows={4} />
|
||||
</Form.Item>
|
||||
</Col>
|
||||
<Col span={24}>
|
||||
<div className="d-flex gap-2 items-center m-b-md">
|
||||
<Form.Item
|
||||
{...field}
|
||||
className="m-b-0"
|
||||
name={[field.name, 'enabled']}
|
||||
valuePropName="checked">
|
||||
<Switch />
|
||||
</Form.Item>
|
||||
<Typography.Paragraph className="font-medium m-0">
|
||||
{t('label.enable-entity', {
|
||||
entity: t('label.semantic-plural'),
|
||||
})}
|
||||
</Typography.Paragraph>
|
||||
</div>
|
||||
</Col>
|
||||
<Col span={24}>
|
||||
<Form.Item
|
||||
{...field}
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
import { DateRangeObject } from 'Models';
|
||||
import { SVGAttributes } from 'react';
|
||||
import { LinkProps } from 'react-router-dom';
|
||||
import { TestCaseType } from '../../enums/TestSuite.enum';
|
||||
import { TestCaseStatus } from '../../generated/tests/testCase';
|
||||
import { TestCaseResolutionStatusTypes } from '../../generated/tests/testCaseResolutionStatus';
|
||||
import { TestPlatform } from '../../generated/tests/testDefinition';
|
||||
import { DataQualityDashboardChartFilters } from '../../pages/DataQuality/DataQualityPage.interface';
|
||||
import { TestCaseType } from '../../rest/testAPI';
|
||||
import { AreaChartColorScheme } from '../Visualisations/Chart/Chart.interface';
|
||||
|
||||
/*
|
||||
|
||||
@ -40,6 +40,7 @@ import {
|
||||
EntityType,
|
||||
TabSpecificField,
|
||||
} from '../../../../enums/entity.enum';
|
||||
import { TestSuiteType } from '../../../../enums/TestSuite.enum';
|
||||
import { Operation } from '../../../../generated/entity/policies/policy';
|
||||
import { EntityReference } from '../../../../generated/entity/type';
|
||||
import { TestSuite, TestSummary } from '../../../../generated/tests/testCase';
|
||||
@ -53,7 +54,6 @@ import { useDataQualityProvider } from '../../../../pages/DataQuality/DataQualit
|
||||
import {
|
||||
getListTestSuitesBySearch,
|
||||
ListTestSuitePramsBySearch,
|
||||
TestSuiteType,
|
||||
} from '../../../../rest/testAPI';
|
||||
import { getEntityName } from '../../../../utils/EntityUtils';
|
||||
import { getPopupContainer } from '../../../../utils/formUtils';
|
||||
|
||||
@ -38,16 +38,14 @@ import { INITIAL_TEST_SUMMARY } from '../../../../../constants/TestSuite.constan
|
||||
import { useLimitStore } from '../../../../../context/LimitsProvider/useLimitsStore';
|
||||
import { ERROR_PLACEHOLDER_TYPE } from '../../../../../enums/common.enum';
|
||||
import { EntityTabs, EntityType } from '../../../../../enums/entity.enum';
|
||||
import { TestCaseType } from '../../../../../enums/TestSuite.enum';
|
||||
import { Operation } from '../../../../../generated/entity/policies/policy';
|
||||
import { PipelineType } from '../../../../../generated/entity/services/ingestionPipelines/ingestionPipeline';
|
||||
import { TestCaseStatus } from '../../../../../generated/tests/testCase';
|
||||
import LimitWrapper from '../../../../../hoc/LimitWrapper';
|
||||
import useCustomLocation from '../../../../../hooks/useCustomLocation/useCustomLocation';
|
||||
import { getIngestionPipelines } from '../../../../../rest/ingestionPipelineAPI';
|
||||
import {
|
||||
ListTestCaseParamsBySearch,
|
||||
TestCaseType,
|
||||
} from '../../../../../rest/testAPI';
|
||||
import { ListTestCaseParamsBySearch } from '../../../../../rest/testAPI';
|
||||
import {
|
||||
getBreadcrumbForTable,
|
||||
getEntityName,
|
||||
|
||||
@ -51,12 +51,12 @@
|
||||
.ant-select-item {
|
||||
padding: 8px 12px;
|
||||
|
||||
&:hover {
|
||||
background-color: @item-hover-bg;
|
||||
}
|
||||
// &:hover {
|
||||
// background-color: @item-hover-bg;
|
||||
// }
|
||||
|
||||
&.selected-option {
|
||||
background-color: @primary-color-1;
|
||||
// background-color: @primary-color-1;
|
||||
color: @primary-color;
|
||||
}
|
||||
|
||||
@ -116,14 +116,14 @@
|
||||
&.ant-select-open {
|
||||
.ant-select-selector {
|
||||
border-color: @primary-color;
|
||||
box-shadow: 0 0 0 2px fade(@primary-color, 20%);
|
||||
// box-shadow: 0 0 0 2px fade(@primary-color, 20%);
|
||||
}
|
||||
}
|
||||
|
||||
&.ant-select-disabled {
|
||||
.ant-select-selector {
|
||||
background-color: @disabled-bg;
|
||||
color: @disabled-color;
|
||||
// background-color: @disabled-bg;
|
||||
// color: @disabled-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,6 +15,7 @@ import { map, startCase, values } from 'lodash';
|
||||
import { DateFilterType, StepperStepType } from 'Models';
|
||||
import { TestCaseSearchParams } from '../components/DataQuality/DataQuality.interface';
|
||||
import { SORT_ORDER } from '../enums/common.enum';
|
||||
import { TestCaseType } from '../enums/TestSuite.enum';
|
||||
import { DMLOperationType } from '../generated/api/data/createTableProfile';
|
||||
import {
|
||||
ColumnProfilerConfig,
|
||||
@ -29,7 +30,6 @@ import {
|
||||
DataQualityDimensions,
|
||||
TestPlatform,
|
||||
} from '../generated/tests/testDefinition';
|
||||
import { TestCaseType } from '../rest/testAPI';
|
||||
import {
|
||||
getCurrentMillis,
|
||||
getEpochMillisForPastDays,
|
||||
|
||||
@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright 2025 Collate.
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
export enum TestSuiteType {
|
||||
basic = 'basic',
|
||||
logical = 'logical',
|
||||
}
|
||||
export enum TestCaseType {
|
||||
all = 'all',
|
||||
table = 'table',
|
||||
column = 'column',
|
||||
}
|
||||
@ -562,7 +562,8 @@
|
||||
"enter-resource-fqn-or-id": "Enter resource FQN (e.g., database.schema.table) or UUID",
|
||||
"enter-type-password": "{{type}}-Passwort eingeben",
|
||||
"entity": "Entität",
|
||||
"entity-configuration": "{{entity}} Konfiguration",
|
||||
"entity-aborted": "{{entity}} Abgebrochen",
|
||||
"entity-configuration": "{{entity}}-Konfiguration",
|
||||
"entity-count": "{{entity}}-Anzahl",
|
||||
"entity-coverage": "{{entity}} Abdeckung",
|
||||
"entity-detail-plural": "Details von {{entity}}",
|
||||
@ -587,6 +588,7 @@
|
||||
"entity-reference-plural": "Entität Referenz",
|
||||
"entity-reference-types": "Entität Referenz Typ",
|
||||
"entity-report-data": "Entitätsberichtsdaten",
|
||||
"entity-running": "{{entity}} läuft",
|
||||
"entity-scheduled-to-run-value": "{{entity}} geplant zur Ausführung {{value}}",
|
||||
"entity-service": "{{entity}}-Dienst",
|
||||
"entity-status": "{{entity}} Status",
|
||||
|
||||
@ -562,6 +562,7 @@
|
||||
"enter-resource-fqn-or-id": "Enter resource FQN (e.g., database.schema.table) or UUID",
|
||||
"enter-type-password": "Enter {{type}} Password",
|
||||
"entity": "Entity",
|
||||
"entity-aborted": "{{entity}} Aborted",
|
||||
"entity-configuration": "{{entity}} Configuration",
|
||||
"entity-count": "{{entity}} Count",
|
||||
"entity-coverage": "{{entity}} Coverage",
|
||||
@ -587,6 +588,7 @@
|
||||
"entity-reference-plural": "Entity References",
|
||||
"entity-reference-types": "Entity Reference Types",
|
||||
"entity-report-data": "Entity Report Data",
|
||||
"entity-running": "{{entity}} Running",
|
||||
"entity-scheduled-to-run-value": "{{entity}} scheduled to run {{value}}",
|
||||
"entity-service": "{{entity}} Service",
|
||||
"entity-status": "{{entity}} Status",
|
||||
|
||||
@ -562,7 +562,8 @@
|
||||
"enter-resource-fqn-or-id": "Enter resource FQN (e.g., database.schema.table) or UUID",
|
||||
"enter-type-password": "Ingrese la contraseña de {{type}}",
|
||||
"entity": "Entidad",
|
||||
"entity-configuration": "{{entity}} Configuration",
|
||||
"entity-aborted": "{{entity}} Abortado",
|
||||
"entity-configuration": "Configuración de {{entity}}",
|
||||
"entity-count": "Cantidad de {{entity}}",
|
||||
"entity-coverage": "{{entity}} Abdeckung",
|
||||
"entity-detail-plural": "Detalles de {{entity}}",
|
||||
@ -587,7 +588,8 @@
|
||||
"entity-reference-plural": "Entity References",
|
||||
"entity-reference-types": "Entity Reference Types",
|
||||
"entity-report-data": "Datos del Informe de Entidad",
|
||||
"entity-scheduled-to-run-value": "{{entity}} programado para ejecutarse {{value}}",
|
||||
"entity-running": "{{entity}} Ejecutándose",
|
||||
"entity-scheduled-to-run-value": "{{entity}} programado para ejecutar {{value}}",
|
||||
"entity-service": "Servicio de {{entity}}",
|
||||
"entity-status": "Estado {{entity}}",
|
||||
"entity-type": "Tipo de entidad",
|
||||
|
||||
@ -561,8 +561,9 @@
|
||||
"enter-property-value": "Entrer une valeur pour la propriété",
|
||||
"enter-resource-fqn-or-id": "Enter resource FQN (e.g., database.schema.table) or UUID",
|
||||
"enter-type-password": "Entrer un mot de passe {{type}}",
|
||||
"entity": "Entity",
|
||||
"entity-configuration": "{{entity}} Configuration",
|
||||
"entity": "Entité",
|
||||
"entity-aborted": "{{entity}} Interrompu",
|
||||
"entity-configuration": "Configuration de {{entity}}",
|
||||
"entity-count": "Décompte de {{entity}}",
|
||||
"entity-coverage": "{{entity}} Couverture",
|
||||
"entity-detail-plural": "Détails de {{entity}}",
|
||||
@ -585,8 +586,9 @@
|
||||
"entity-record-plural": "{{entity}} Records",
|
||||
"entity-reference": "Entity Reference",
|
||||
"entity-reference-plural": "Entity References",
|
||||
"entity-reference-types": "Entity Reference Types",
|
||||
"entity-reference-types": "Types de Référence d'Entité",
|
||||
"entity-report-data": "Données de Rapport d'Entité",
|
||||
"entity-running": "{{entity}} en cours d'exécution",
|
||||
"entity-scheduled-to-run-value": "{{entity}} programmé pour s'exécuter {{value}}",
|
||||
"entity-service": "Service de {{entity}}",
|
||||
"entity-status": "Statut {{entity}}",
|
||||
|
||||
@ -562,7 +562,8 @@
|
||||
"enter-resource-fqn-or-id": "Enter resource FQN (e.g., database.schema.table) or UUID",
|
||||
"enter-type-password": "Introducir contrasinal de {{type}}",
|
||||
"entity": "Entidade",
|
||||
"entity-configuration": "{{entity}} Configuration",
|
||||
"entity-aborted": "{{entity}} Abortado",
|
||||
"entity-configuration": "Configuración de {{entity}}",
|
||||
"entity-count": "Contador de {{entity}}",
|
||||
"entity-coverage": "{{entity}} Cobertura",
|
||||
"entity-detail-plural": "Detalles de {{entity}}",
|
||||
@ -587,6 +588,7 @@
|
||||
"entity-reference-plural": "Referencias de {{entity}}",
|
||||
"entity-reference-types": "Tipos de referencia de {{entity}}",
|
||||
"entity-report-data": "Datos do Informe de Entidade",
|
||||
"entity-running": "{{entity}} Executándose",
|
||||
"entity-scheduled-to-run-value": "{{entity}} programado para executar {{value}}",
|
||||
"entity-service": "Servizo de {{entity}}",
|
||||
"entity-status": "Estado {{entity}}",
|
||||
|
||||
@ -562,7 +562,8 @@
|
||||
"enter-resource-fqn-or-id": "Enter resource FQN (e.g., database.schema.table) or UUID",
|
||||
"enter-type-password": "הזן סיסמה עבור {{type}}",
|
||||
"entity": "ישות",
|
||||
"entity-configuration": "{{entity}} Configuration",
|
||||
"entity-aborted": "{{entity}} בוטל",
|
||||
"entity-configuration": "תצורת {{entity}}",
|
||||
"entity-count": "ספירת {{entity}}",
|
||||
"entity-coverage": "{{entity}} כיסוי",
|
||||
"entity-detail-plural": "פרטי {{entity}}",
|
||||
@ -587,6 +588,7 @@
|
||||
"entity-reference-plural": "Entity References",
|
||||
"entity-reference-types": "Entity Reference Types",
|
||||
"entity-report-data": "נתוני דוח ישות",
|
||||
"entity-running": "{{entity}} פועל",
|
||||
"entity-scheduled-to-run-value": "{{entity}} מתוכנן לרוץ {{value}}",
|
||||
"entity-service": "שירות {{entity}}",
|
||||
"entity-status": "סטטוס {{entity}}",
|
||||
|
||||
@ -562,7 +562,8 @@
|
||||
"enter-resource-fqn-or-id": "リソースFQN(例: db.schema.table)またはUUIDを入力",
|
||||
"enter-type-password": "{{type}}のパスワードを入力",
|
||||
"entity": "エンティティ",
|
||||
"entity-configuration": "{{entity}} の設定",
|
||||
"entity-aborted": "{{entity}}中止",
|
||||
"entity-configuration": "{{entity}}設定",
|
||||
"entity-count": "{{entity}}の数",
|
||||
"entity-coverage": "{{entity}} カバレッジ",
|
||||
"entity-detail-plural": "{{entity}}の詳細",
|
||||
@ -587,7 +588,8 @@
|
||||
"entity-reference-plural": "エンティティ参照",
|
||||
"entity-reference-types": "エンティティ参照タイプ",
|
||||
"entity-report-data": "エンティティレポートデータ",
|
||||
"entity-scheduled-to-run-value": "{{entity}} は {{value}} に実行予定",
|
||||
"entity-running": "{{entity}}実行中",
|
||||
"entity-scheduled-to-run-value": "{{entity}}が{{value}}に実行予定",
|
||||
"entity-service": "{{entity}}サービス",
|
||||
"entity-status": "{{entity}}ステータス",
|
||||
"entity-type": "エンティティタイプ",
|
||||
|
||||
@ -562,6 +562,7 @@
|
||||
"enter-resource-fqn-or-id": "Enter resource FQN (e.g., database.schema.table) or UUID",
|
||||
"enter-type-password": "{{type}} 비밀번호 입력",
|
||||
"entity": "엔티티",
|
||||
"entity-aborted": "{{entity}} 중단됨",
|
||||
"entity-configuration": "{{entity}} 구성",
|
||||
"entity-count": "{{entity}} 수",
|
||||
"entity-coverage": "{{entity}} 커버리지",
|
||||
@ -587,6 +588,7 @@
|
||||
"entity-reference-plural": "엔티티 참조들",
|
||||
"entity-reference-types": "엔티티 참조 유형들",
|
||||
"entity-report-data": "엔티티 보고서 데이터",
|
||||
"entity-running": "{{entity}} 실행 중",
|
||||
"entity-scheduled-to-run-value": "{{entity}} 가 {{value}} 에 실행되도록 예약됨",
|
||||
"entity-service": "{{entity}} 서비스",
|
||||
"entity-status": "{{entity}} 상태",
|
||||
|
||||
@ -562,6 +562,7 @@
|
||||
"enter-resource-fqn-or-id": "Enter resource FQN (e.g., database.schema.table) or UUID",
|
||||
"enter-type-password": "{{type}} पासवर्ड प्रविष्ट करा",
|
||||
"entity": "घटक",
|
||||
"entity-aborted": "{{entity}} रद्द केले",
|
||||
"entity-configuration": "{{entity}} Configuration",
|
||||
"entity-count": "{{entity}} संख्या",
|
||||
"entity-coverage": "{{entity}} कवर",
|
||||
@ -587,6 +588,7 @@
|
||||
"entity-reference-plural": "घटक संदर्भ",
|
||||
"entity-reference-types": "घटक संदर्भ प्रकार",
|
||||
"entity-report-data": "एंटिटी रिपोर्ट डेटा",
|
||||
"entity-running": "{{entity}} चालू आहे",
|
||||
"entity-scheduled-to-run-value": "{{entity}} {{value}} या वेळी चालविण्यासाठी नियोजित",
|
||||
"entity-service": "{{entity}} सेवा",
|
||||
"entity-status": "{{entity}} स्थिती",
|
||||
|
||||
@ -562,7 +562,8 @@
|
||||
"enter-resource-fqn-or-id": "Enter resource FQN (e.g., database.schema.table) or UUID",
|
||||
"enter-type-password": "{{type}}-wachtwoord invoeren",
|
||||
"entity": "Entiteit",
|
||||
"entity-configuration": "{{entity}} Configuration",
|
||||
"entity-aborted": "{{entity}} Afgebroken",
|
||||
"entity-configuration": "{{entity}} Configuratie",
|
||||
"entity-count": "Aantal {{entity}}",
|
||||
"entity-coverage": "{{entity}} Dekkingsg",
|
||||
"entity-detail-plural": "{{entity}}-details",
|
||||
@ -587,6 +588,7 @@
|
||||
"entity-reference-plural": "Entity References",
|
||||
"entity-reference-types": "Entity Reference Types",
|
||||
"entity-report-data": "Entity Report Data",
|
||||
"entity-running": "{{entity}} Draait",
|
||||
"entity-scheduled-to-run-value": "{{entity}} gepland om uit te voeren {{value}}",
|
||||
"entity-service": "{{entity}}-service",
|
||||
"entity-status": "{{entity}} Status",
|
||||
|
||||
@ -562,6 +562,7 @@
|
||||
"enter-resource-fqn-or-id": "Enter resource FQN (e.g., database.schema.table) or UUID",
|
||||
"enter-type-password": "رمز عبور {{type}} را وارد کنید",
|
||||
"entity": "نهاد",
|
||||
"entity-aborted": "{{entity}} متوقف شد",
|
||||
"entity-configuration": "{{entity}} Configuration",
|
||||
"entity-count": "تعداد {{entity}}",
|
||||
"entity-coverage": "{{entity}} پوشش",
|
||||
@ -587,6 +588,7 @@
|
||||
"entity-reference-plural": "مراجع نهاد",
|
||||
"entity-reference-types": "انواع مرجع نهاد",
|
||||
"entity-report-data": "دادههای گزارش موجودیت",
|
||||
"entity-running": "{{entity}} در حال اجرا",
|
||||
"entity-scheduled-to-run-value": "{{entity}} برای اجرا در {{value}} زمانبندی شده",
|
||||
"entity-service": "سرویس {{entity}}",
|
||||
"entity-status": "وضعیت {{entity}}",
|
||||
|
||||
@ -562,7 +562,8 @@
|
||||
"enter-resource-fqn-or-id": "Enter resource FQN (e.g., database.schema.table) or UUID",
|
||||
"enter-type-password": "Inserir Senha de {{type}}",
|
||||
"entity": "Entidade",
|
||||
"entity-configuration": "{{entity}} configuração",
|
||||
"entity-aborted": "{{entity}} Abortado",
|
||||
"entity-configuration": "Configuração de {{entity}}",
|
||||
"entity-count": "Contagem de {{entity}}",
|
||||
"entity-coverage": "{{entity}} Cobertura",
|
||||
"entity-detail-plural": "Detalhes de {{entity}}",
|
||||
@ -587,6 +588,7 @@
|
||||
"entity-reference-plural": "Referências de entidades",
|
||||
"entity-reference-types": "Tipos de referência de entidades",
|
||||
"entity-report-data": "Dados de Relatório de Entidade",
|
||||
"entity-running": "{{entity}} Executando",
|
||||
"entity-scheduled-to-run-value": "{{entity}} agendado para executar {{value}}",
|
||||
"entity-service": "Serviço de {{entity}}",
|
||||
"entity-status": "Status {{entity}}",
|
||||
|
||||
@ -562,7 +562,8 @@
|
||||
"enter-resource-fqn-or-id": "Enter resource FQN (e.g., database.schema.table) or UUID",
|
||||
"enter-type-password": "Inserir Senha de {{type}}",
|
||||
"entity": "Entidade",
|
||||
"entity-configuration": "{{entity}} Configuration",
|
||||
"entity-aborted": "{{entity}} Abortado",
|
||||
"entity-configuration": "Configuração de {{entity}}",
|
||||
"entity-count": "Contagem de {{entity}}",
|
||||
"entity-coverage": "{{entity}} Cobertura",
|
||||
"entity-detail-plural": "Detalhes de {{entity}}",
|
||||
@ -587,6 +588,7 @@
|
||||
"entity-reference-plural": "Entity References",
|
||||
"entity-reference-types": "Entity Reference Types",
|
||||
"entity-report-data": "Dados do Relatório da Entidade",
|
||||
"entity-running": "{{entity}} a Executar",
|
||||
"entity-scheduled-to-run-value": "{{entity}} agendado para executar {{value}}",
|
||||
"entity-service": "Serviço de {{entity}}",
|
||||
"entity-status": "Estado {{entity}}",
|
||||
|
||||
@ -562,6 +562,7 @@
|
||||
"enter-resource-fqn-or-id": "Введите полное имя ресурса (например, database.schema.table) или UUID",
|
||||
"enter-type-password": "Введите {{type}} пароль",
|
||||
"entity": "Сущность",
|
||||
"entity-aborted": "{{entity}} Прервано",
|
||||
"entity-configuration": "Конфигурация {{entity}}",
|
||||
"entity-count": "Количество \"{{entity}}\"",
|
||||
"entity-coverage": "Покрытие {{entity}}",
|
||||
@ -585,9 +586,10 @@
|
||||
"entity-record-plural": "Записи {{entity}}",
|
||||
"entity-reference": "Ссылка на сущность",
|
||||
"entity-reference-plural": "Ссылки на сущность",
|
||||
"entity-reference-types": "Типы ссылок на сущность",
|
||||
"entity-report-data": "Данные отчёта по сущности",
|
||||
"entity-scheduled-to-run-value": "{{entity}} запланирован для выполнения {{value}}",
|
||||
"entity-reference-types": "Типы ссылок на сущности",
|
||||
"entity-report-data": "Данные отчета сущности",
|
||||
"entity-running": "{{entity}} выполняется",
|
||||
"entity-scheduled-to-run-value": "{{entity}} запланировано к выполнению {{value}}",
|
||||
"entity-service": "Сервис {{entity}}",
|
||||
"entity-status": "Статус {{entity}}",
|
||||
"entity-type": "Тип сущности",
|
||||
|
||||
@ -562,6 +562,7 @@
|
||||
"enter-resource-fqn-or-id": "Enter resource FQN (e.g., database.schema.table) or UUID",
|
||||
"enter-type-password": "ป้อนรหัสผ่าน {{type}}",
|
||||
"entity": "เอนทิตี",
|
||||
"entity-aborted": "{{entity}} ถูกยกเลิก",
|
||||
"entity-configuration": "{{entity}} Configuration",
|
||||
"entity-count": "จำนวน {{entity}}",
|
||||
"entity-coverage": "{{entity}} ความครอบคลุม",
|
||||
@ -587,6 +588,7 @@
|
||||
"entity-reference-plural": "การอ้างอิงเอนทิตีหลายรายการ",
|
||||
"entity-reference-types": "ประเภทการอ้างอิงเอนทิตี",
|
||||
"entity-report-data": "ข้อมูลรายงานเอนทิตี้",
|
||||
"entity-running": "{{entity}} กำลังทำงาน",
|
||||
"entity-scheduled-to-run-value": "{{entity}} ถูกกำหนดให้ทำงาน {{value}}",
|
||||
"entity-service": "บริการ {{entity}}",
|
||||
"entity-status": "สถานะ {{entity}}",
|
||||
|
||||
@ -562,6 +562,7 @@
|
||||
"enter-resource-fqn-or-id": "Enter resource FQN (e.g., database.schema.table) or UUID",
|
||||
"enter-type-password": "{{type}} Şifresini Girin",
|
||||
"entity": "Varlık",
|
||||
"entity-aborted": "{{entity}} İptal Edildi",
|
||||
"entity-configuration": "{{entity}} Yapılandırması",
|
||||
"entity-count": "{{entity}} Sayısı",
|
||||
"entity-coverage": "{{entity}} Kapsamı",
|
||||
@ -587,7 +588,8 @@
|
||||
"entity-reference-plural": "Varlık Referansları",
|
||||
"entity-reference-types": "Varlık Referans Türleri",
|
||||
"entity-report-data": "Varlık Rapor Verileri",
|
||||
"entity-scheduled-to-run-value": "{{entity}} {{value}} çalışmak üzere zamanlandı",
|
||||
"entity-running": "{{entity}} Çalışıyor",
|
||||
"entity-scheduled-to-run-value": "{{entity}} {{value}} için çalıştırılacak şekilde planlandı",
|
||||
"entity-service": "{{entity}} Servisi",
|
||||
"entity-status": "{{entity}} Durumu",
|
||||
"entity-type": "Varlık Türü",
|
||||
|
||||
@ -562,7 +562,8 @@
|
||||
"enter-resource-fqn-or-id": "Enter resource FQN (e.g., database.schema.table) or UUID",
|
||||
"enter-type-password": "输入{{type}}密码",
|
||||
"entity": "实体",
|
||||
"entity-configuration": "{{entity}} Configuration",
|
||||
"entity-aborted": "{{entity}}已中止",
|
||||
"entity-configuration": "{{entity}}配置",
|
||||
"entity-count": "{{entity}}计数",
|
||||
"entity-coverage": "{{entity}} 覆盖",
|
||||
"entity-detail-plural": "{{entity}}详情",
|
||||
@ -585,9 +586,10 @@
|
||||
"entity-record-plural": "{{entity}}记录",
|
||||
"entity-reference": "实体参考",
|
||||
"entity-reference-plural": "实体参考",
|
||||
"entity-reference-types": "实体参考类型",
|
||||
"entity-reference-types": "实体引用类型",
|
||||
"entity-report-data": "实体报告数据",
|
||||
"entity-scheduled-to-run-value": "{{entity}} 计划在 {{value}} 运行",
|
||||
"entity-running": "{{entity}}运行中",
|
||||
"entity-scheduled-to-run-value": "{{entity}}计划在{{value}}运行",
|
||||
"entity-service": "{{entity}} 服务",
|
||||
"entity-status": "{{entity}} 状态",
|
||||
"entity-type": "实体类型",
|
||||
|
||||
@ -12,8 +12,8 @@
|
||||
*/
|
||||
|
||||
import { EntityType } from '../../enums/entity.enum';
|
||||
import { TestCaseType } from '../../enums/TestSuite.enum';
|
||||
import { TestCaseStatus, TestSummary } from '../../generated/tests/testCase';
|
||||
import { TestCaseType } from '../../rest/testAPI';
|
||||
|
||||
export enum DataQualityPageTabs {
|
||||
TEST_SUITES = 'test-suites',
|
||||
|
||||
@ -15,6 +15,7 @@ import { AxiosResponse } from 'axios';
|
||||
import { Operation } from 'fast-json-patch';
|
||||
import { PagingResponse } from 'Models';
|
||||
import { SORT_ORDER } from '../enums/common.enum';
|
||||
import { TestCaseType, TestSuiteType } from '../enums/TestSuite.enum';
|
||||
import { CreateTestCase } from '../generated/api/tests/createTestCase';
|
||||
import { CreateTestSuite } from '../generated/api/tests/createTestSuite';
|
||||
import { DataQualityReport } from '../generated/tests/dataQualityReport';
|
||||
@ -37,16 +38,6 @@ import { ListParams } from '../interface/API.interface';
|
||||
import { getEncodedFqn } from '../utils/StringsUtils';
|
||||
import APIClient from './index';
|
||||
|
||||
export enum TestSuiteType {
|
||||
basic = 'basic',
|
||||
logical = 'logical',
|
||||
}
|
||||
export enum TestCaseType {
|
||||
all = 'all',
|
||||
table = 'table',
|
||||
column = 'column',
|
||||
}
|
||||
|
||||
export type ListTestSuitePrams = ListParams & {
|
||||
testSuiteType?: TestSuiteType;
|
||||
includeEmptyTestSuites?: boolean;
|
||||
|
||||
@ -86,8 +86,11 @@
|
||||
@red-19: #fecdca;
|
||||
@red-20: #bc1b06;
|
||||
@orange-1: #fff6ed;
|
||||
@orange-50: #fef6ee;
|
||||
@orange-2: #c4320a;
|
||||
@orange-3: #ffd6ae;
|
||||
@orange-7: #b93815;
|
||||
@orange-200: #f9dbaf;
|
||||
|
||||
@purple-1: #f2edfd;
|
||||
@purple-2: #7147e8;
|
||||
|
||||
@ -13,6 +13,9 @@
|
||||
import i18next from 'i18next';
|
||||
import yaml from 'js-yaml';
|
||||
import { omit } from 'lodash';
|
||||
import { ReactComponent as ContractAbortedIcon } from '../../assets/svg/ic-contract-aborted.svg';
|
||||
import { ReactComponent as ContractFailedIcon } from '../../assets/svg/ic-contract-failed.svg';
|
||||
import { ReactComponent as ContractRunningIcon } from '../../assets/svg/ic-contract-running.svg';
|
||||
import { ReactComponent as QualityIcon } from '../../assets/svg/policies.svg';
|
||||
import { ReactComponent as SemanticsIcon } from '../../assets/svg/semantics.svg';
|
||||
import { ReactComponent as TableIcon } from '../../assets/svg/table-grey.svg';
|
||||
@ -23,10 +26,15 @@ import {
|
||||
RED_3,
|
||||
YELLOW_2,
|
||||
} from '../../constants/Color.constants';
|
||||
import { DataContract } from '../../generated/entity/data/dataContract';
|
||||
import { TestCaseType } from '../../enums/TestSuite.enum';
|
||||
import {
|
||||
ContractExecutionStatus,
|
||||
DataContract,
|
||||
} from '../../generated/entity/data/dataContract';
|
||||
import { DataContractResult } from '../../generated/entity/datacontract/dataContractResult';
|
||||
import { TestSummary } from '../../generated/tests/testCase';
|
||||
import { getRelativeTime } from '../date-time/DateTimeUtils';
|
||||
import i18n from '../i18next/LocalUtil';
|
||||
|
||||
export const getConstraintStatus = (
|
||||
latestContractResults: DataContractResult
|
||||
@ -198,3 +206,19 @@ export const downloadContractYamlFile = (contract: DataContract) => {
|
||||
URL.revokeObjectURL(element.href);
|
||||
document.body.removeChild(element);
|
||||
};
|
||||
|
||||
export const getDataContractStatusIcon = (status: ContractExecutionStatus) => {
|
||||
return status === ContractExecutionStatus.Failed
|
||||
? ContractFailedIcon
|
||||
: status === ContractExecutionStatus.Aborted
|
||||
? ContractAbortedIcon
|
||||
: status === ContractExecutionStatus.Running
|
||||
? ContractRunningIcon
|
||||
: null;
|
||||
};
|
||||
|
||||
export const ContractTestTypeLabelMap = {
|
||||
[TestCaseType.all]: i18n.t('label.all'),
|
||||
[TestCaseType.table]: i18n.t('label.table'),
|
||||
[TestCaseType.column]: i18n.t('label.column'),
|
||||
};
|
||||
|
||||
@ -25,6 +25,7 @@ import { ReactComponent as NoDimensionIcon } from '../../assets/svg/no-dimension
|
||||
import { SelectionOption } from '../../components/common/SelectionCardGroup/SelectionCardGroup.interface';
|
||||
import { TestCaseSearchParams } from '../../components/DataQuality/DataQuality.interface';
|
||||
import { TEST_CASE_FILTERS } from '../../constants/profiler.constant';
|
||||
import { TestCaseType } from '../../enums/TestSuite.enum';
|
||||
import { Table } from '../../generated/entity/data/table';
|
||||
import { DataQualityReport } from '../../generated/tests/dataQualityReport';
|
||||
import { TestCaseParameterValue } from '../../generated/tests/testCase';
|
||||
@ -35,7 +36,7 @@ import {
|
||||
} from '../../generated/tests/testDefinition';
|
||||
import { TableSearchSource } from '../../interface/search.interface';
|
||||
import { DataQualityDashboardChartFilters } from '../../pages/DataQuality/DataQualityPage.interface';
|
||||
import { ListTestCaseParamsBySearch, TestCaseType } from '../../rest/testAPI';
|
||||
import { ListTestCaseParamsBySearch } from '../../rest/testAPI';
|
||||
import { generateEntityLink } from '../TableUtils';
|
||||
|
||||
/**
|
||||
|
||||
@ -11,7 +11,6 @@
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import Icon from '@ant-design/icons';
|
||||
import { Popover, Space, Typography } from 'antd';
|
||||
import i18next, { t } from 'i18next';
|
||||
import {
|
||||
@ -27,7 +26,6 @@ import QueryString from 'qs';
|
||||
import { Fragment } from 'react';
|
||||
import { Link } from 'react-router-dom';
|
||||
import { Node } from 'reactflow';
|
||||
import { ReactComponent as CancelOutlineIcon } from '../assets/svg/ic-cancel-outline.svg';
|
||||
import { DomainLabel } from '../components/common/DomainLabel/DomainLabel.component';
|
||||
import { OwnerLabel } from '../components/common/OwnerLabel/OwnerLabel.component';
|
||||
import QueryCount from '../components/common/QueryCount/QueryCount.component';
|
||||
@ -104,7 +102,6 @@ import {
|
||||
EventSubscription,
|
||||
} from '../generated/events/eventSubscription';
|
||||
import { TestCase, TestSuite } from '../generated/tests/testCase';
|
||||
import { ContractExecutionStatus } from '../generated/type/contractExecutionStatus';
|
||||
import { EntityReference } from '../generated/type/entityUsage';
|
||||
import { TagLabel } from '../generated/type/tagLabel';
|
||||
import { UsageDetails } from '../generated/type/usageDetails';
|
||||
@ -2659,9 +2656,3 @@ export const EntityTypeName: Record<EntityType, string> = {
|
||||
[EntityType.DATA_CONTRACT]: t('label.data-contract'),
|
||||
[EntityType.SECURITY_SERVICE]: t('label.security-service'),
|
||||
};
|
||||
|
||||
export const getDataContractStatusIcon = (status: ContractExecutionStatus) => {
|
||||
return status === ContractExecutionStatus.Failed ? (
|
||||
<Icon component={CancelOutlineIcon} />
|
||||
) : null;
|
||||
};
|
||||
|
||||
@ -224,6 +224,7 @@ export const getField = (field: FieldProp) => {
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case FieldTypes.USER_MULTI_SELECT:
|
||||
{
|
||||
const { children, ...rest } = props;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user