diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Ingestion/IngestionRecentRun/IngestionRecentRun.test.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Ingestion/IngestionRecentRun/IngestionRecentRun.test.tsx index cb99b4c6c51a..eca346783e47 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Ingestion/IngestionRecentRun/IngestionRecentRun.test.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Ingestion/IngestionRecentRun/IngestionRecentRun.test.tsx @@ -11,19 +11,54 @@ * limitations under the License. */ -import { act, render, screen } from '@testing-library/react'; +import { + act, + findByRole, + fireEvent, + render, + screen, +} from '@testing-library/react'; import React from 'react'; import { IngestionPipeline } from '../../../generated/entity/services/ingestionPipelines/ingestionPipeline'; import { getRunHistoryForPipeline } from '../../../rest/ingestionPipelineAPI'; +import ConnectionStepCard from '../../common/TestConnection/ConnectionStepCard/ConnectionStepCard'; import { IngestionRecentRuns } from './IngestionRecentRuns.component'; +const failure = { + name: 'FILES', + error: + 'Unexpected exception to yield table [FILES]: (pymysql.err.OperationalError) (1227, \'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation\')\n[SQL: /* {"app": "OpenMetadata", "version": "1.3.0.0.dev0"} */\nSHOW CREATE TABLE `information_schema`.`FILES`]\n(Background on this error at: https://sqlalche.me/e/14/e3q8)', + stackTrace: + 'Traceback (most recent call last):\n File "/home/airflow/.local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1910, in _execute_context\n self.dialect.do_execute(\n File "/home/airflow/.local/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute\n cursor.execute(statement, parameters)\n File "/home/airflow/.local/lib/python3.10/site-packages/pymysql/cursors.py", line 153, in execute\n result = self._query(query)\n File "/home/airflow/.local/lib/python3.10/site-packages/pymysql/cursors.py", line 322, in _query\n conn.query(q)\n File "/home/airflow/.local/lib/python3.10/site-packages/pymysql/connections.py", line 558, in query\n self._affected_rows = self._read_query_result(unbuffered=unbuffered)\n File "/home/airflow/.local/lib/python3.10/site-packages/pymysql/connections.py", line 822, in _read_query_result\n result.read()\n File "/home/airflow/.local/lib/python3.10/site-packages/pymysql/connections.py", line 1200, in read\n first_packet = self.connection._read_packet()\n File "/home/airflow/.local/lib/python3.10/site-packages/pymysql/connections.py", line 772, in _read_packet\n packet.raise_for_error()\n File "/home/airflow/.local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error\n err.raise_mysql_exception(self._data)\n File "/home/airflow/.local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception\n raise errorclass(errno, errval)\npymysql.err.OperationalError: (1227, \'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation\')\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File "/home/airflow/.local/lib/python3.10/site-packages/metadata/ingestion/source/database/common_db_source.py", line 422, in yield_table\n ) = self.get_columns_and_constraints(\n File "/home/airflow/.local/lib/python3.10/site-packages/metadata/ingestion/source/database/sql_column_handler.py", line 214, in get_columns_and_constraints\n ) = self._get_columns_with_constraints(schema_name, table_name, inspector)\n File "/home/airflow/.local/lib/python3.10/site-packages/metadata/ingestion/source/database/sql_column_handler.py", line 114, in _get_columns_with_constraints\n pk_constraints = inspector.get_pk_constraint(table_name, schema_name)\n File "/home/airflow/.local/lib/python3.10/site-packages/sqlalchemy/engine/reflection.py", line 528, in get_pk_constraint\n return self.dialect.get_pk_constraint(\n File "", line 2, in get_pk_constraint\n File "/home/airflow/.local/lib/python3.10/site-packages/sqlalchemy/engine/reflection.py", line 55, in cache\n ret = fn(self, con, *args, **kw)\n File "/home/airflow/.local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/base.py", line 2842, in get_pk_constraint\n parsed_state = self._parsed_state_or_create(\n File "/home/airflow/.local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/base.py", line 3085, in _parsed_state_or_create\n return self._setup_parser(\n File "", line 2, in _setup_parser\n File "/home/airflow/.local/lib/python3.10/site-packages/sqlalchemy/engine/reflection.py", line 55, in cache\n ret = fn(self, con, *args, **kw)\n File "/home/airflow/.local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/base.py", line 3112, in _setup_parser\n sql = self._show_create_table(\n File "/home/airflow/.local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/base.py", line 3220, in _show_create_table\n ).exec_driver_sql(st)\n File "/home/airflow/.local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1770, in exec_driver_sql\n return self._exec_driver_sql(\n File "/home/airflow/.local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1674, in _exec_driver_sql\n ret = self._execute_context(\n File "/home/airflow/.local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1953, in _execute_context\n self._handle_dbapi_exception(\n File "/home/airflow/.local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2134, in _handle_dbapi_exception\n util.raise_(\n File "/home/airflow/.local/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 211, in raise_\n raise exception\n File "/home/airflow/.local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1910, in _execute_context\n self.dialect.do_execute(\n File "/home/airflow/.local/lib/python3.10/site-packages/sqlalchemy/engine/default.py", line 736, in do_execute\n cursor.execute(statement, parameters)\n File "/home/airflow/.local/lib/python3.10/site-packages/pymysql/cursors.py", line 153, in execute\n result = self._query(query)\n File "/home/airflow/.local/lib/python3.10/site-packages/pymysql/cursors.py", line 322, in _query\n conn.query(q)\n File "/home/airflow/.local/lib/python3.10/site-packages/pymysql/connections.py", line 558, in query\n self._affected_rows = self._read_query_result(unbuffered=unbuffered)\n File "/home/airflow/.local/lib/python3.10/site-packages/pymysql/connections.py", line 822, in _read_query_result\n result.read()\n File "/home/airflow/.local/lib/python3.10/site-packages/pymysql/connections.py", line 1200, in read\n first_packet = self.connection._read_packet()\n File "/home/airflow/.local/lib/python3.10/site-packages/pymysql/connections.py", line 772, in _read_packet\n packet.raise_for_error()\n File "/home/airflow/.local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error\n err.raise_mysql_exception(self._data)\n File "/home/airflow/.local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception\n raise errorclass(errno, errval)\nsqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1227, \'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation\')\n[SQL: /* {"app": "OpenMetadata", "version": "1.3.0.0.dev0"} */\nSHOW CREATE TABLE `information_schema`.`FILES`]\n(Background on this error at: https://sqlalche.me/e/14/e3q8)\n', +}; + const executionRuns = [ { runId: 'c95cc97b-9ea2-465c-9b5a-255401674324', - pipelineState: 'success', + pipelineState: 'partialSuccess', startDate: 1667304123, timestamp: 1667304123, endDate: 1667304126, + status: [ + { + name: 'Source', + records: 155, + updated_records: 0, + warnings: 0, + errors: 1, + filtered: 0, + failures: [failure], + }, + { + name: 'Sink', + records: 155, + updated_records: 0, + warnings: 0, + errors: 0, + filtered: 0, + failures: [], + }, + ], }, { runId: '60b3e15c-3865-4c81-a1ee-36ff85d2be8e', @@ -41,6 +76,13 @@ const executionRuns = [ }, ]; +jest.mock( + '../../common/TestConnection/ConnectionStepCard/ConnectionStepCard', + () => { + return jest.fn().mockImplementation(() =>

testConnectionStepCard

); + } +); + jest.mock('../../../rest/ingestionPipelineAPI', () => ({ getRunHistoryForPipeline: jest.fn().mockImplementation(() => Promise.resolve({ @@ -188,4 +230,82 @@ describe('Test IngestionRecentRun component', () => { expect(successRun).toBeInTheDocument(); expect(runs).toHaveLength(4); }); + + it('should show additional details for click on run', async () => { + (getRunHistoryForPipeline as jest.Mock).mockResolvedValueOnce({ + data: [...executionRuns], + paging: { total: 4 }, + }); + + await act(async () => { + render(); + }); + + const runs = await screen.findAllByTestId('pipeline-status'); + const partialSuccess = await screen.findByText(/Partial Success/); + + expect(partialSuccess).toBeInTheDocument(); + expect(runs).toHaveLength(3); + + act(() => { + fireEvent.click(partialSuccess); + }); + + expect(await findByRole(document.body, 'dialog')).toBeInTheDocument(); + + expect(await screen.findByText(/Source/)).toBeInTheDocument(); + + expect(await screen.findByText(/Sink/)).toBeInTheDocument(); + expect(await screen.findAllByText(/label.log-plural/)).toHaveLength(1); + }); + + it('should show stacktrace when click on logs', async () => { + (getRunHistoryForPipeline as jest.Mock).mockResolvedValueOnce({ + data: [...executionRuns], + paging: { total: 4 }, + }); + + await act(async () => { + render(); + }); + + const runs = await screen.findAllByTestId('pipeline-status'); + const partialSuccess = await screen.findByText(/Partial Success/); + + expect(partialSuccess).toBeInTheDocument(); + expect(runs).toHaveLength(3); + + act(() => { + fireEvent.click(partialSuccess); + }); + + expect(await findByRole(document.body, 'dialog')).toBeInTheDocument(); + + await act(async () => { + fireEvent.click(await screen.findByText(/label.log-plural/)); + }); + + expect(ConnectionStepCard).toHaveBeenNthCalledWith( + 2, + { + isTestingConnection: false, + testConnectionStep: { + description: failure.error, + mandatory: false, + name: 'FILES', + }, + testConnectionStepResult: { + errorLog: failure.stackTrace, + mandatory: false, + message: failure.error, + name: 'FILES', + passed: false, + }, + }, + {} + ); + expect( + await screen.findByText(/testConnectionStepCard/) + ).toBeInTheDocument(); + }); }); diff --git a/openmetadata-ui/src/main/resources/ui/src/components/Ingestion/IngestionRecentRun/IngestionRecentRuns.component.tsx b/openmetadata-ui/src/main/resources/ui/src/components/Ingestion/IngestionRecentRun/IngestionRecentRuns.component.tsx index 77318c29465f..7822da4dc471 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/Ingestion/IngestionRecentRun/IngestionRecentRuns.component.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/Ingestion/IngestionRecentRun/IngestionRecentRuns.component.tsx @@ -11,19 +11,25 @@ * limitations under the License. */ -import { Popover, Skeleton, Space, Tag } from 'antd'; +import { Button, Popover, Skeleton, Space, Tag } from 'antd'; +import Modal from 'antd/lib/modal/Modal'; +import { ColumnType } from 'antd/lib/table'; +import { ExpandableConfig } from 'antd/lib/table/interface'; import { isEmpty, startCase } from 'lodash'; import React, { FunctionComponent, useCallback, useEffect, + useMemo, useState, } from 'react'; import { useTranslation } from 'react-i18next'; +import { NO_DATA } from '../../../constants/constants'; import { PIPELINE_INGESTION_RUN_STATUS } from '../../../constants/pipeline.constants'; import { IngestionPipeline, PipelineStatus, + StepSummary, } from '../../../generated/entity/services/ingestionPipelines/ingestionPipeline'; import { getRunHistoryForPipeline } from '../../../rest/ingestionPipelineAPI'; import { @@ -31,6 +37,8 @@ import { getCurrentMillis, getEpochMillisForPastDays, } from '../../../utils/date-time/DateTimeUtils'; +import Table from '../../common/Table/Table'; +import ConnectionStepCard from '../../common/TestConnection/ConnectionStepCard/ConnectionStepCard'; import './ingestion-recent-run.style.less'; interface Props { @@ -49,6 +57,80 @@ export const IngestionRecentRuns: FunctionComponent = ({ const { t } = useTranslation(); const [recentRunStatus, setRecentRunStatus] = useState([]); const [loading, setLoading] = useState(true); + const [selectedStatus, setSelectedStatus] = useState(); + const [expandedKeys, setExpandedKeys] = useState([]); + const columns: ColumnType[] = useMemo( + () => [ + { + title: t('label.step'), + dataIndex: 'name', + }, + { + title: t('label.record-plural'), + dataIndex: 'records', + }, + { + title: t('label.filtered'), + dataIndex: 'filtered', + }, + { + title: t('label.warning-plural'), + dataIndex: 'warnings', + }, + { + title: t('label.error-plural'), + dataIndex: 'errors', + }, + + { + title: t('label.failure-plural'), + dataIndex: 'failures', + render: (failures: StepSummary['failures'], record: StepSummary) => + (failures?.length ?? 0) > 0 ? ( + + ) : ( + NO_DATA + ), + }, + ], + [setExpandedKeys] + ); + const expandable: ExpandableConfig = useMemo( + () => ({ + expandedRowRender: (record) => { + return ( + record.failures?.map((failure) => ( + + )) ?? [] + ); + }, + indentSize: 0, + expandIcon: () => null, + expandedRowKeys: expandedKeys, + rowExpandable: (record) => (record.failures?.length ?? 0) > 0, + }), + [expandedKeys] + ); const fetchPipelineStatus = useCallback(async () => { setLoading(true); @@ -87,17 +169,18 @@ export const IngestionRecentRuns: FunctionComponent = ({ const status = i === recentRunStatus.length - 1 ? ( + key={i} + onClick={() => setSelectedStatus(r)}> {startCase(r?.pipelineState)} ) : ( = ({ ); }) ?? '--' )} + + } + maskClosable={false} + okButtonProps={{ style: { display: 'none' } }} + open={Boolean(selectedStatus)} + title={`Run status: ${startCase( + selectedStatus?.pipelineState + )} at ${formatDateTime(selectedStatus?.timestamp)}`} + width="80%" + onCancel={() => setSelectedStatus(undefined)}> + + ); }; diff --git a/openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/ConnectionStepCard/ConnectionStepCard.tsx b/openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/ConnectionStepCard/ConnectionStepCard.tsx index cf6cff7fe85c..1d2aff4b9864 100644 --- a/openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/ConnectionStepCard/ConnectionStepCard.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/components/common/TestConnection/ConnectionStepCard/ConnectionStepCard.tsx @@ -16,6 +16,7 @@ import classNames from 'classnames'; import { isUndefined } from 'lodash'; import React from 'react'; import { useTranslation } from 'react-i18next'; +import { LazyLog } from 'react-lazylog'; import { ReactComponent as AttentionIcon } from '../../../../assets/svg/attention.svg'; import { ReactComponent as FailIcon } from '../../../../assets/svg/fail-badge.svg'; import { ReactComponent as SuccessIcon } from '../../../../assets/svg/success-badge.svg'; @@ -47,6 +48,10 @@ const ConnectionStepCard = ({ const isNonMandatoryStepsFailing = failed && !testConnectionStepResult?.mandatory; + const logs = + testConnectionStepResult?.errorLog ?? + t('label.no-entity', { entity: t('label.log-plural') }); + return (
-

- {testConnectionStepResult?.errorLog || - t('label.no-entity', { entity: t('label.log-plural') })} -

+
diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/de-de.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/de-de.json index 85f5d480a183..569aa9eeacde 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/de-de.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/de-de.json @@ -410,6 +410,7 @@ "entity-type-plural": "{{entity}}-Typen", "entity-version-detail-plural": "Details zu {{entity}}-Versionen", "error": "Error", + "error-plural": "Errors", "event-publisher-plural": "Ereignisveröffentlicher", "event-type": "Ereignistyp", "every": "Jede/r/s", @@ -430,6 +431,7 @@ "failed": "Fehlgeschlagen", "failure-comment": "Failure Comment", "failure-context": "Fehlerkontext", + "failure-plural": "Failures", "failure-reason": "Failure Reason", "favicon-url": "Favicon URL", "feature": "Funktion", @@ -450,6 +452,7 @@ "filter": "Filter", "filter-pattern": "Filtermuster", "filter-plural": "Filter", + "filtered": "Filtered", "filtering-condition": "Filterbedingung", "first": "Erster", "first-lowercase": "erster", @@ -836,6 +839,7 @@ "recent-search-term-plural": "Aktuelle Suchbegriffe", "recent-views": "Aktuelle Ansichten", "recently-viewed": "Kürzlich angesehen", + "record-plural": "Records", "recreate-index-plural": "Indizes neu erstellen", "reference-plural": "Verweise", "refresh-log": "Protokoll aktualisieren", @@ -971,6 +975,7 @@ "show": "Anzeigen", "show-deleted": "Gelöschte anzeigen", "show-deleted-entity": "{{entity}} anzeigen", + "show-log-plural": "Show Logs", "show-more-entity": "Mehr {{entity}} anzeigen", "show-or-hide-advanced-config": "{{showAdv}} Erweiterte Konfiguration anzeigen/ausblenden", "sign-in-with-sso": "Mit {{sso}} anmelden", @@ -1004,6 +1009,7 @@ "started-following": "Hat begonnen zu folgen", "status": "Status", "stay-up-to-date": "Bleiben Sie auf dem neuesten Stand", + "step": "Step", "stop-re-index-all": "Stoppen Sie die erneute Indexierung aller", "stopped": "Gestoppt", "storage": "Speicher", @@ -1187,6 +1193,7 @@ "volume-change": "Volumenänderung", "wants-to-access-your-account": "wants to access your {{username}} account", "warning": "Warnung", + "warning-plural": "Warnings", "web-analytics-report": "Webanalysenbericht", "webhook": "Webhook", "webhook-display-text": "Webhook {{displayText}}", 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 1635522725dd..9a7cac630f31 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 @@ -410,6 +410,7 @@ "entity-type-plural": "{{entity}} Type", "entity-version-detail-plural": "{{entity}} Version Details", "error": "Error", + "error-plural": "Errors", "event-publisher-plural": "Event Publishers", "event-type": "Event Type", "every": "Every", @@ -430,6 +431,7 @@ "failed": "Failed", "failure-comment": "Failure Comment", "failure-context": "Failure Context", + "failure-plural": "Failures", "failure-reason": "Failure Reason", "favicon-url": "Favicon URL", "feature": "Feature", @@ -450,6 +452,7 @@ "filter": "Filter", "filter-pattern": "Filter Pattern", "filter-plural": "Filters", + "filtered": "Filtered", "filtering-condition": "Filtering Condition", "first": "First", "first-lowercase": "first", @@ -836,6 +839,7 @@ "recent-search-term-plural": "Recent Search Terms", "recent-views": "Recent Views", "recently-viewed": "Recently Viewed", + "record-plural": "Records", "recreate-index-plural": "Recreate Indexes", "reference-plural": "References", "refresh-log": "Refresh log", @@ -971,6 +975,7 @@ "show": "Show", "show-deleted": "Show Deleted", "show-deleted-entity": "Show Deleted {{entity}}", + "show-log-plural": "Show Logs", "show-more-entity": "Show More {{entity}}", "show-or-hide-advanced-config": "{{showAdv}} Advanced Config", "sign-in-with-sso": "Sign in with {{sso}}", @@ -1004,6 +1009,7 @@ "started-following": "Started following", "status": "Status", "stay-up-to-date": "Stay Up-to-date", + "step": "Step", "stop-re-index-all": "Stop Re-Index", "stopped": "Stopped", "storage": "Storage", @@ -1187,6 +1193,7 @@ "volume-change": "Volume Change", "wants-to-access-your-account": "wants to access your {{username}} account", "warning": "Warning", + "warning-plural": "Warnings", "web-analytics-report": "Web Analytics Report", "webhook": "Webhook", "webhook-display-text": "Webhook {{displayText}}", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json index eecc61db5c32..a022f474f7a8 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/es-es.json @@ -410,6 +410,7 @@ "entity-type-plural": "{{entity}} Type", "entity-version-detail-plural": "{{entity}} Version Details", "error": "Error", + "error-plural": "Errors", "event-publisher-plural": "Publicadores de eventos", "event-type": "Tipo de evento", "every": "Cada", @@ -430,6 +431,7 @@ "failed": "Falló", "failure-comment": "Failure Comment", "failure-context": "Contexto del error", + "failure-plural": "Failures", "failure-reason": "Failure Reason", "favicon-url": "Favicon URL", "feature": "Funcionalidad", @@ -450,6 +452,7 @@ "filter": "Filtro", "filter-pattern": "Patrón de Filtro", "filter-plural": "Filtros", + "filtered": "Filtered", "filtering-condition": "Filtering Condition", "first": "Primero", "first-lowercase": "primero", @@ -836,6 +839,7 @@ "recent-search-term-plural": "Términos de búsqueda recientes", "recent-views": "Vistas recientes", "recently-viewed": "Visto recientemente", + "record-plural": "Records", "recreate-index-plural": "Recrear índices", "reference-plural": "Referencias", "refresh-log": "Actualizar registro", @@ -971,6 +975,7 @@ "show": "Mostrar", "show-deleted": "Mostrar Eliminados", "show-deleted-entity": "Mostrar {{entity}} Eliminados", + "show-log-plural": "Show Logs", "show-more-entity": "Show More {{entity}}", "show-or-hide-advanced-config": "{{showAdv}} Configuración Avanzada", "sign-in-with-sso": "Iniciar sesión con {{sso}}", @@ -1004,6 +1009,7 @@ "started-following": "Comenzó a seguir", "status": "Estado", "stay-up-to-date": "Manténgase Actualizado", + "step": "Step", "stop-re-index-all": "Stop Re-Index", "stopped": "Stopped", "storage": "Storage", @@ -1187,6 +1193,7 @@ "volume-change": "Volume Change", "wants-to-access-your-account": "wants to access your {{username}} account", "warning": "Warning", + "warning-plural": "Warnings", "web-analytics-report": "Informe de análisis web", "webhook": "Webhook", "webhook-display-text": "Webhook {{displayText}}", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json index 557c3c296ba5..8f6e953e85ef 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/fr-fr.json @@ -410,6 +410,7 @@ "entity-type-plural": "{{entity}} Types", "entity-version-detail-plural": "Détails des Versions de {{entity}}", "error": "Error", + "error-plural": "Errors", "event-publisher-plural": "Publicateurs d'Événements", "event-type": "Type d'Événement", "every": "Chaque", @@ -430,6 +431,7 @@ "failed": "Échec", "failure-comment": "Failure Comment", "failure-context": "Contexte de l'Échec", + "failure-plural": "Failures", "failure-reason": "Failure Reason", "favicon-url": "Favicon URL", "feature": "Fonctionnalité", @@ -450,6 +452,7 @@ "filter": "Filtre", "filter-pattern": "Configuration du Filtre", "filter-plural": "Filtres", + "filtered": "Filtered", "filtering-condition": "Condition de Filtrage", "first": "Premier", "first-lowercase": "premier", @@ -836,6 +839,7 @@ "recent-search-term-plural": "Termes de Recherche Récents", "recent-views": "Vues Récentes", "recently-viewed": "Consultés Récemment", + "record-plural": "Records", "recreate-index-plural": "Recréer les Indexes", "reference-plural": "Références", "refresh-log": "Rafraîchir le Journal", @@ -971,6 +975,7 @@ "show": "Afficher", "show-deleted": "Afficher les Supprimé·es", "show-deleted-entity": "Afficher les {{entity}} Supprimé·es", + "show-log-plural": "Show Logs", "show-more-entity": "Afficher Plus de {{entity}}", "show-or-hide-advanced-config": "{{showAdv}} Configuration Avancée", "sign-in-with-sso": "Se Connecter avec {{sso}}", @@ -1004,6 +1009,7 @@ "started-following": "A commencé à suivre", "status": "Statut", "stay-up-to-date": "Rester à Jour", + "step": "Step", "stop-re-index-all": "Arrêter la Réindexation de Tout", "stopped": "Arrêté", "storage": "Stockage", @@ -1187,6 +1193,7 @@ "volume-change": "Changement de Volume", "wants-to-access-your-account": "wants to access your {{username}} account", "warning": "Attention", + "warning-plural": "Warnings", "web-analytics-report": "Rapport d'Analyse Web", "webhook": "Webhook", "webhook-display-text": "Webhook {{displayText}}", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/he-he.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/he-he.json index adfa595d8ca4..e6d1843ceeea 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/he-he.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/he-he.json @@ -410,6 +410,7 @@ "entity-type-plural": "סוגי {{entity}}", "entity-version-detail-plural": "גרסאות פרטי {{entity}}", "error": "Error", + "error-plural": "Errors", "event-publisher-plural": "מפרסמי אירועים", "event-type": "סוג אירוע", "every": "כל", @@ -430,6 +431,7 @@ "failed": "נכשל", "failure-comment": "Failure Comment", "failure-context": "הקשר של הכשלון", + "failure-plural": "Failures", "failure-reason": "Failure Reason", "favicon-url": "URL של סמל האתר", "feature": "תכונה", @@ -450,6 +452,7 @@ "filter": "סנן", "filter-pattern": "תבנית סינון", "filter-plural": "סננים", + "filtered": "Filtered", "filtering-condition": "תנאי סינון", "first": "ראשון", "first-lowercase": "ראשון", @@ -836,6 +839,7 @@ "recent-search-term-plural": "מונחי חיפוש אחרונים", "recent-views": "צפיות אחרונות", "recently-viewed": "נצפה לאחרונה", + "record-plural": "Records", "recreate-index-plural": "יצירת מחדש של אינדקסים", "reference-plural": "הפניות", "refresh-log": "רענון לוג", @@ -971,6 +975,7 @@ "show": "הצג", "show-deleted": "הצג נמחקים", "show-deleted-entity": "הצג {{entity}} שנמחקו", + "show-log-plural": "Show Logs", "show-more-entity": "הצג עוד {{entity}}", "show-or-hide-advanced-config": "{{showAdv}} הצג/הסתר הגדרות מתקדמות", "sign-in-with-sso": "התחבר עם {{sso}}", @@ -1004,6 +1009,7 @@ "started-following": "התחיל לעקוב", "status": "סטטוס", "stay-up-to-date": "הישאר מעודכן", + "step": "Step", "stop-re-index-all": "עצור Re-Index", "stopped": "נעצר", "storage": "אחסון", @@ -1187,6 +1193,7 @@ "volume-change": "שינוי נפח", "wants-to-access-your-account": "רוצה לגשת לחשבון {{username}} שלך", "warning": "אזהרה", + "warning-plural": "Warnings", "web-analytics-report": "דוח ניתוח אינטרנטי", "webhook": "ווֹבּוּק", "webhook-display-text": "ווֹבּוּק {{displayText}}", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json index e738af14749c..fcd46fcf52f4 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ja-jp.json @@ -410,6 +410,7 @@ "entity-type-plural": "{{entity}} Type", "entity-version-detail-plural": "{{entity}} Version Details", "error": "Error", + "error-plural": "Errors", "event-publisher-plural": "イベントの作成者", "event-type": "イベントの種類", "every": "Every", @@ -430,6 +431,7 @@ "failed": "失敗", "failure-comment": "Failure Comment", "failure-context": "Failure Context", + "failure-plural": "Failures", "failure-reason": "Failure Reason", "favicon-url": "Favicon URL", "feature": "Feature", @@ -450,6 +452,7 @@ "filter": "Filter", "filter-pattern": "フィルターのパターン", "filter-plural": "フィルター", + "filtered": "Filtered", "filtering-condition": "Filtering Condition", "first": "最初", "first-lowercase": "最初", @@ -836,6 +839,7 @@ "recent-search-term-plural": "最近検索した用語", "recent-views": "最近の閲覧", "recently-viewed": "最近の閲覧", + "record-plural": "Records", "recreate-index-plural": "インデックスを再作成", "reference-plural": "参照", "refresh-log": "ログを更新", @@ -971,6 +975,7 @@ "show": "Show", "show-deleted": "削除された項目も表示", "show-deleted-entity": "Show Deleted {{entity}}", + "show-log-plural": "Show Logs", "show-more-entity": "Show More {{entity}}", "show-or-hide-advanced-config": "{{showAdv}} 高度な設定", "sign-in-with-sso": "{{sso}}でサインインする", @@ -1004,6 +1009,7 @@ "started-following": "フォローを開始", "status": "ステータス", "stay-up-to-date": "最新を維持", + "step": "Step", "stop-re-index-all": "Stop Re-Index", "stopped": "Stopped", "storage": "Storage", @@ -1187,6 +1193,7 @@ "volume-change": "Volume Change", "wants-to-access-your-account": "wants to access your {{username}} account", "warning": "Warning", + "warning-plural": "Warnings", "web-analytics-report": "Web Analytics Report", "webhook": "ウェブフック", "webhook-display-text": "ウェブフック {{displayText}}", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/nl-nl.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/nl-nl.json index 6fbfd556cc4c..62dcb5ea009a 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/nl-nl.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/nl-nl.json @@ -410,6 +410,7 @@ "entity-type-plural": "{{entity}}-type", "entity-version-detail-plural": "{{entity}}-versie-details", "error": "Fout", + "error-plural": "Errors", "event-publisher-plural": "Gebeurtenis-uitgevers", "event-type": "Gebeurtenistype", "every": "Elke", @@ -430,6 +431,7 @@ "failed": "Mislukt", "failure-comment": "Failure Comment", "failure-context": "Mislukkingcontext", + "failure-plural": "Failures", "failure-reason": "Reden van mislukking", "favicon-url": "Favicon-URL", "feature": "Functie", @@ -450,6 +452,7 @@ "filter": "Filter", "filter-pattern": "Filterpatroon", "filter-plural": "Filters", + "filtered": "Filtered", "filtering-condition": "Filtervoorwaarde", "first": "Eerste", "first-lowercase": "eerste", @@ -836,6 +839,7 @@ "recent-search-term-plural": "Recente zoektermen", "recent-views": "Recente weergaven", "recently-viewed": "Recent bekeken", + "record-plural": "Records", "recreate-index-plural": "Hermaak indexen", "reference-plural": "Verwijzingen", "refresh-log": "Vernieuw logboek", @@ -971,6 +975,7 @@ "show": "Tonen", "show-deleted": "Verwijderde tonen", "show-deleted-entity": "Verwijderde {{entity}} tonen", + "show-log-plural": "Show Logs", "show-more-entity": "Meer tonen {{entity}}", "show-or-hide-advanced-config": "{{showAdv}} Geavanceerde Configuratie", "sign-in-with-sso": "Inloggen met {{sso}}", @@ -1004,6 +1009,7 @@ "started-following": "Begonnen met volgen", "status": "Status", "stay-up-to-date": "Blijf Up-to-date", + "step": "Step", "stop-re-index-all": "Stop Re-Index", "stopped": "Gestopt", "storage": "Opslag", @@ -1187,6 +1193,7 @@ "volume-change": "Volumeverandering", "wants-to-access-your-account": "wil toegang tot je {{username}} account", "warning": "Waarschuwing", + "warning-plural": "Warnings", "web-analytics-report": "Webanalyserapport", "webhook": "Webhook", "webhook-display-text": "Webhook {{displayText}}", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json index c95b8f87c3ce..2bcb502a7d72 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/pt-br.json @@ -410,6 +410,7 @@ "entity-type-plural": "Tipo de {{entity}}", "entity-version-detail-plural": "Detalhes da Versão de {{entity}}", "error": "Error", + "error-plural": "Errors", "event-publisher-plural": "Publicadores de Eventos", "event-type": "Tipo de Evento", "every": "Cada", @@ -430,6 +431,7 @@ "failed": "Falhou", "failure-comment": "Failure Comment", "failure-context": "Contexto de Falha", + "failure-plural": "Failures", "failure-reason": "Failure Reason", "favicon-url": "URL do Favicon", "feature": "Recurso", @@ -450,6 +452,7 @@ "filter": "Filtro", "filter-pattern": "Padrão de Filtro", "filter-plural": "Filtros", + "filtered": "Filtered", "filtering-condition": "Condição de Filtragem", "first": "Primeiro", "first-lowercase": "primeiro", @@ -836,6 +839,7 @@ "recent-search-term-plural": "Termos de Pesquisa Recentes", "recent-views": "Visualizações Recentes", "recently-viewed": "Visto Recentemente", + "record-plural": "Records", "recreate-index-plural": "Recriar Índices", "reference-plural": "Referências", "refresh-log": "Atualizar log", @@ -971,6 +975,7 @@ "show": "Mostrar", "show-deleted": "Mostrar Excluídos", "show-deleted-entity": "Mostrar {{entity}} Excluído", + "show-log-plural": "Show Logs", "show-more-entity": "Mostrar Mais {{entity}}", "show-or-hide-advanced-config": "{{showAdv}} Configuração Avançada", "sign-in-with-sso": "Entrar com {{sso}}", @@ -1004,6 +1009,7 @@ "started-following": "Começou a seguir", "status": "Status", "stay-up-to-date": "Mantenha-se Atualizado", + "step": "Step", "stop-re-index-all": "Parar Reindexação", "stopped": "Parado", "storage": "Armazenamento", @@ -1187,6 +1193,7 @@ "volume-change": "Mudança de Volume", "wants-to-access-your-account": "quer acessar sua conta {{username}}", "warning": "Aviso", + "warning-plural": "Warnings", "web-analytics-report": "Relatório de Análise da Web", "webhook": "Webhook", "webhook-display-text": "Webhook {{displayText}}", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ru-ru.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ru-ru.json index 84e9580001b9..be218c4776d7 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/ru-ru.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/ru-ru.json @@ -410,6 +410,7 @@ "entity-type-plural": "Тип {{entity}}", "entity-version-detail-plural": "{{entity}} Version Details", "error": "Error", + "error-plural": "Errors", "event-publisher-plural": "Издатели события", "event-type": "Тип события", "every": "Каждый", @@ -430,6 +431,7 @@ "failed": "Неуспешно", "failure-comment": "Failure Comment", "failure-context": "Контекст отказа", + "failure-plural": "Failures", "failure-reason": "Failure Reason", "favicon-url": "Favicon URL", "feature": "Свойство", @@ -450,6 +452,7 @@ "filter": "Фильтр", "filter-pattern": "Шаблон фильтра", "filter-plural": "Фильтры", + "filtered": "Filtered", "filtering-condition": "Условие фильтрации", "first": "Первый", "first-lowercase": "первый", @@ -836,6 +839,7 @@ "recent-search-term-plural": "Недавние условия поиска", "recent-views": "Недавние просмотры", "recently-viewed": "Недавно просмотренные", + "record-plural": "Records", "recreate-index-plural": "Воссоздать индексы", "reference-plural": "Рекомендации", "refresh-log": "Обновить логи", @@ -971,6 +975,7 @@ "show": "Показать", "show-deleted": "Показать удаленные", "show-deleted-entity": "Посмотреть удаленные {{entity}}", + "show-log-plural": "Show Logs", "show-more-entity": "Показать больше элементов \"{{entity}}\"", "show-or-hide-advanced-config": "{{showAdv}} Расширенная конфигурация", "sign-in-with-sso": "Войдите с помощью {{sso}}", @@ -1004,6 +1009,7 @@ "started-following": "Начало отслеживания", "status": "Статус", "stay-up-to-date": "Будьте в курсе последних событий", + "step": "Step", "stop-re-index-all": "Остановить ре-индексирование", "stopped": "Остановлено", "storage": "Хранилище", @@ -1187,6 +1193,7 @@ "volume-change": "Объем изменений", "wants-to-access-your-account": "wants to access your {{username}} account", "warning": "Предупреждение", + "warning-plural": "Warnings", "web-analytics-report": "Отчет web-аналитики", "webhook": "Webhook", "webhook-display-text": "Webhook {{displayText}}", diff --git a/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json b/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json index aeba271bfcdd..90eb643912f2 100644 --- a/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json +++ b/openmetadata-ui/src/main/resources/ui/src/locale/languages/zh-cn.json @@ -410,6 +410,7 @@ "entity-type-plural": "{{entity}}类型", "entity-version-detail-plural": "{{entity}}版本详情", "error": "Error", + "error-plural": "Errors", "event-publisher-plural": "事件发布者", "event-type": "事件类型", "every": "每个", @@ -430,6 +431,7 @@ "failed": "失败", "failure-comment": "Failure Comment", "failure-context": "失败上下文", + "failure-plural": "Failures", "failure-reason": "Failure Reason", "favicon-url": "Favicon URL", "feature": "特点", @@ -450,6 +452,7 @@ "filter": "过滤", "filter-pattern": "过滤条件", "filter-plural": "过滤", + "filtered": "Filtered", "filtering-condition": "过滤条件", "first": "第一", "first-lowercase": "第一", @@ -836,6 +839,7 @@ "recent-search-term-plural": "最近搜索", "recent-views": "最近查看", "recently-viewed": "最近查看过", + "record-plural": "Records", "recreate-index-plural": "重建索引", "reference-plural": "参考资料", "refresh-log": "刷新日志", @@ -971,6 +975,7 @@ "show": "显示", "show-deleted": "显示已删除", "show-deleted-entity": "显示已删除{{entity}}", + "show-log-plural": "Show Logs", "show-more-entity": "显示更多{{entity}}", "show-or-hide-advanced-config": "{{showAdv}}高级配置", "sign-in-with-sso": "使用 {{sso}} 单点登录", @@ -1004,6 +1009,7 @@ "started-following": "开始关注", "status": "状态", "stay-up-to-date": "保持最新", + "step": "Step", "stop-re-index-all": "停止重新索引", "stopped": "已停止", "storage": "存储", @@ -1187,6 +1193,7 @@ "volume-change": "数据量变化", "wants-to-access-your-account": "wants to access your {{username}} account", "warning": "警告", + "warning-plural": "Warnings", "web-analytics-report": "网络分析报告", "webhook": "Webhook", "webhook-display-text": "Webhook {{displayText}}", diff --git a/openmetadata-ui/src/main/resources/ui/src/pages/UserListPage/UserListPageV1.tsx b/openmetadata-ui/src/main/resources/ui/src/pages/UserListPage/UserListPageV1.tsx index 21ce5cdf807d..596f15b76eb3 100644 --- a/openmetadata-ui/src/main/resources/ui/src/pages/UserListPage/UserListPageV1.tsx +++ b/openmetadata-ui/src/main/resources/ui/src/pages/UserListPage/UserListPageV1.tsx @@ -432,7 +432,6 @@ const UserListPageV1 = () => { type: t('label.user'), })}...`} searchValue={searchValue} - typingInterval={500} onSearch={handleSearch} />