mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-10-16 11:18:33 +00:00
fix(ui): supported tooltip descriptions for domain types (#13909)
* supported tooltip description for domain types * localization keys * changes as per comments
This commit is contained in:
parent
4c19bb5a1d
commit
14b9c482a0
@ -35,9 +35,11 @@ import {
|
||||
FieldTypes,
|
||||
FormItemLayout,
|
||||
} from '../../../interface/FormUtils.interface';
|
||||
import { domainTypeTooltipDataRender } from '../../../utils/DomainUtils';
|
||||
import { getEntityName } from '../../../utils/EntityUtils';
|
||||
import { generateFormFields, getField } from '../../../utils/formUtils';
|
||||
import { checkPermission } from '../../../utils/PermissionsUtils';
|
||||
import '../domain.less';
|
||||
import { DomainFormType } from '../DomainPage.interface';
|
||||
import { AddDomainFormProps } from './AddDomainForm.interface';
|
||||
|
||||
@ -139,9 +141,13 @@ const AddDomainForm = ({
|
||||
label: t('label.domain-type'),
|
||||
id: 'root/domainType',
|
||||
type: FieldTypes.SELECT,
|
||||
helperText: domainTypeTooltipDataRender(),
|
||||
props: {
|
||||
'data-testid': 'domainType',
|
||||
options: domainTypeArray,
|
||||
overlayClassName: 'domain-type-tooltip-container',
|
||||
tooltipPlacement: 'topLeft',
|
||||
tooltipAlign: { targetOffset: [18, 0] },
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -37,10 +37,14 @@ import {
|
||||
ChangeDescription,
|
||||
EntityReference,
|
||||
} from '../../../../generated/entity/type';
|
||||
import { getUserNames } from '../../../../utils/DomainUtils';
|
||||
import {
|
||||
domainTypeTooltipDataRender,
|
||||
getUserNames,
|
||||
} from '../../../../utils/DomainUtils';
|
||||
import { getEntityName } from '../../../../utils/EntityUtils';
|
||||
import { getEntityVersionByField } from '../../../../utils/EntityVersionUtils';
|
||||
import { checkPermission } from '../../../../utils/PermissionsUtils';
|
||||
import FormItemLabel from '../../../Form/FormItemLabel';
|
||||
import '../../domain.less';
|
||||
import {
|
||||
DocumentationEntity,
|
||||
@ -281,8 +285,15 @@ const DocumentationTab = ({
|
||||
<Typography.Text
|
||||
className="right-panel-label"
|
||||
data-testid="domainType-heading-name">
|
||||
{t('label.domain-type')}
|
||||
<FormItemLabel
|
||||
align={{ targetOffset: [18, 0] }}
|
||||
helperText={domainTypeTooltipDataRender()}
|
||||
label={t('label.domain-type')}
|
||||
overlayClassName="domain-type-tooltip-container"
|
||||
placement="topLeft"
|
||||
/>
|
||||
</Typography.Text>
|
||||
|
||||
{editAllPermission && (domain as Domain).domainType && (
|
||||
<Button
|
||||
className="cursor-pointer flex-center m-l-xss"
|
||||
|
@ -57,3 +57,14 @@
|
||||
min-height: 150px;
|
||||
}
|
||||
}
|
||||
|
||||
.ant-tooltip.domain-type-tooltip-container {
|
||||
max-width: 750px;
|
||||
.ant-tooltip-arrow-content::before {
|
||||
background: @white;
|
||||
}
|
||||
.ant-tooltip-inner {
|
||||
background: @white;
|
||||
padding: 20px;
|
||||
}
|
||||
}
|
||||
|
@ -16,7 +16,9 @@ import { ReactNode } from 'react';
|
||||
|
||||
export interface FormItemLabelProps {
|
||||
label: ReactNode;
|
||||
helperText?: string;
|
||||
helperText?: ReactNode;
|
||||
placement?: TooltipPlacement;
|
||||
overlayClassName?: string;
|
||||
overlayInnerStyle?: React.CSSProperties;
|
||||
align?: TooltipProps['align'];
|
||||
}
|
||||
|
@ -21,13 +21,21 @@ const FormItemLabel = ({
|
||||
label,
|
||||
helperText,
|
||||
align,
|
||||
overlayInnerStyle,
|
||||
overlayClassName,
|
||||
placement = 'top',
|
||||
}: FormItemLabelProps) => {
|
||||
return (
|
||||
<>
|
||||
<span data-testid="form-item-label">{label}</span>
|
||||
{helperText && (
|
||||
<Tooltip align={align} placement={placement} title={helperText}>
|
||||
<Tooltip
|
||||
destroyTooltipOnHide
|
||||
align={align}
|
||||
overlayClassName={overlayClassName}
|
||||
overlayInnerStyle={overlayInnerStyle}
|
||||
placement={placement}
|
||||
title={helperText}>
|
||||
<InfoCircleOutlined
|
||||
className="m-l-xs"
|
||||
data-testid="helper-icon"
|
||||
|
@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright 2023 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.
|
||||
*/
|
||||
|
||||
import i18n from '../utils/i18next/LocalUtil';
|
||||
|
||||
export const DOMAIN_TYPE_DATA = [
|
||||
{
|
||||
type: i18n.t('label.aggregate'),
|
||||
description: i18n.t('message.aggregate-domain-type-description'),
|
||||
},
|
||||
{
|
||||
type: i18n.t('label.consumer-aligned'),
|
||||
description: i18n.t('message.consumer-aligned-domain-type-description'),
|
||||
},
|
||||
{
|
||||
type: i18n.t('label.source-aligned'),
|
||||
description: i18n.t('message.source-aligned-domain-type-description'),
|
||||
},
|
||||
];
|
@ -50,7 +50,7 @@ export interface FieldProp {
|
||||
props?: Record<string, unknown> & { children?: ReactNode };
|
||||
formItemProps?: FormItemProps;
|
||||
rules?: FormRule[];
|
||||
helperText?: string;
|
||||
helperText?: ReactNode;
|
||||
placeholder?: string;
|
||||
hasSeparator?: boolean;
|
||||
formItemLayout?: FormItemLayout;
|
||||
|
@ -43,6 +43,7 @@
|
||||
"advanced-configuration": "Erweiterte Konfiguration",
|
||||
"advanced-entity": "Erweitertes {{entity}}",
|
||||
"advanced-search": "Erweiterte Suche",
|
||||
"aggregate": "Aggregate",
|
||||
"airflow-config-plural": "Airflow-Konfigurationen",
|
||||
"alert": "Warnung",
|
||||
"alert-lowercase": "warnung",
|
||||
@ -182,6 +183,7 @@
|
||||
"connection-timeout": "Verbindungszeitüberschreitung",
|
||||
"connection-timeout-plural": "Verbindungszeitüberschreitungen",
|
||||
"connector": "Connector",
|
||||
"consumer-aligned": "Consumer-aligned",
|
||||
"container": "Container",
|
||||
"container-plural": "Container",
|
||||
"conversation": "Konversation",
|
||||
@ -945,6 +947,7 @@
|
||||
"soft-delete": "Soft-Löschung",
|
||||
"soft-lowercase": "soft",
|
||||
"source": "Quelle",
|
||||
"source-aligned": "Source-aligned",
|
||||
"source-column": "Quellenspalte",
|
||||
"source-match": "Quellenübereinstimmung",
|
||||
"source-plural": "Quellen",
|
||||
@ -1172,6 +1175,7 @@
|
||||
"adding-new-user-to-entity": "Neue Benutzer zu {{entity}} hinzufügen",
|
||||
"admin-only-action": "Diese Aktion kann nur von einem Administrator durchgeführt werden.",
|
||||
"advanced-search-message": "Finden Sie die richtigen Datenvermögenswerte mithilfe des Syntax-Editors mit und/oder-Bedingungen.",
|
||||
"aggregate-domain-type-description": "Domains closer to online services and transactional databases that include events, and transactional data.",
|
||||
"airflow-guide-message": "OpenMetadata verwendet Airflow, um Ingestion Connectors auszuführen. Wir haben verwaltete APIs entwickelt, um Ingestion Connectors bereitzustellen. Verwenden Sie bitte die OpenMetadata Airflow-Instanz oder beziehen Sie sich auf die unten stehende Anleitung, um die verwalteten APIs in Ihrer Airflow-Installation zu installieren.",
|
||||
"airflow-host-ip-address": "OpenMetadata wird sich von der IP {{hostIp}} mit Ihrer Ressource verbinden. Stellen Sie sicher, dass eingehender Datenverkehr in Ihren Netzwerksicherheitseinstellungen zugelassen ist.",
|
||||
"alerts-description": "Bleiben Sie mit zeitnahen Benachrichtigungen über Webhooks auf dem neuesten Stand.",
|
||||
@ -1226,6 +1230,7 @@
|
||||
"connection-test-failed": "Der Test der Verbindung ist fehlgeschlagen. Bitte überprüfen Sie Ihre Verbindung und Berechtigungen für die fehlgeschlagenen Schritte.",
|
||||
"connection-test-successful": "Der Test der Verbindung war erfolgreich.",
|
||||
"connection-test-warning": "Der Test der Verbindung war teilweise erfolgreich: Einige Schritte hatten Fehler, es werden nur teilweise Metadaten übernommen.",
|
||||
"consumer-aligned-domain-type-description": "Domains that collect and curate the data from multiple source-aligned to provide aggregated data and data products, such as Customer 360, Customers sessions, etc., for other domains to consume.",
|
||||
"copied-to-clipboard": "In die Zwischenablage kopiert",
|
||||
"copy-to-clipboard": "Link in die Zwischenablage kopiert",
|
||||
"create-new-domain-guide": "A data mesh is a decentralized data architecture that organizes data by a specific business domain following the concepts of domain-oriented design. Teams take ownership of both operational and analytical data that belongs to the domain. Based on the Data Contract, consumers are provided with Data as a Product. It is powered by Domain-agnostic self-serve data infrastructure. There are three types of domains: Consumer-aligned, Aggregate, and Source-aligned. Domains have Enabling Teams for consulting.",
|
||||
@ -1550,6 +1555,7 @@
|
||||
"size-evolution-description": "Size evolution of assets in organization.",
|
||||
"soft-delete-message-for-entity": "Durch das Soft-Löschen wird {{entity}} deaktiviert. Dadurch werden alle Entdeckungs-, Lese- oder Schreibvorgänge auf {{entity}} deaktiviert.",
|
||||
"something-went-wrong": "Etwas ist schiefgelaufen",
|
||||
"source-aligned-domain-type-description": "Domains that are user-facing where the end product of a combination of data from various domains are available for business users or data citizens for data-driven decision-making.",
|
||||
"special-character-not-allowed": "Sonderzeichen sind nicht erlaubt.",
|
||||
"sql-query-tooltip": "Abfragen, die eine oder mehrere Zeilen zurückgeben, führen dazu, dass der Test fehlschlägt.",
|
||||
"sso-provider-not-supported": "SSO-Provider {{provider}} wird nicht unterstützt.",
|
||||
|
@ -43,6 +43,7 @@
|
||||
"advanced-configuration": "Advanced Configuration",
|
||||
"advanced-entity": "Advanced {{entity}}",
|
||||
"advanced-search": "Advanced Search",
|
||||
"aggregate": "Aggregate",
|
||||
"airflow-config-plural": "airflow configs",
|
||||
"alert": "Alert",
|
||||
"alert-lowercase": "alert",
|
||||
@ -182,6 +183,7 @@
|
||||
"connection-timeout": "Connection Timeout",
|
||||
"connection-timeout-plural": "Connection Timeout",
|
||||
"connector": "Connector",
|
||||
"consumer-aligned": "Consumer-aligned",
|
||||
"container": "Container",
|
||||
"container-plural": "Containers",
|
||||
"conversation": "Conversation",
|
||||
@ -945,6 +947,7 @@
|
||||
"soft-delete": "Soft Delete",
|
||||
"soft-lowercase": "soft",
|
||||
"source": "Source",
|
||||
"source-aligned": "Source-aligned",
|
||||
"source-column": "Source Column",
|
||||
"source-match": "Match By Event Source",
|
||||
"source-plural": "Sources",
|
||||
@ -1172,6 +1175,7 @@
|
||||
"adding-new-user-to-entity": "Adding new users to {{entity}}",
|
||||
"admin-only-action": "Only an Admin can perform this action.",
|
||||
"advanced-search-message": "Discover the right data assets using the syntax editor with and/or conditions.",
|
||||
"aggregate-domain-type-description": "Domains closer to online services and transactional databases that include events, and transactional data.",
|
||||
"airflow-guide-message": "OpenMetadata uses Airflow to run Ingestion Connectors. We developed Managed APIs to deploy ingestion connectors. Please use OpenMetadata Airflow instance or refer to the guide below to install the managed APIs in your Airflow installation.",
|
||||
"airflow-host-ip-address": "OpenMetadata will connect to your resource from the IP {{hostIp}}. Make sure to allow inbound traffic in your network security settings.",
|
||||
"alerts-description": "Stay current with timely alerts using webhooks.",
|
||||
@ -1226,6 +1230,7 @@
|
||||
"connection-test-failed": "Test connection failed, please validate your connection and permissions for the failed steps.",
|
||||
"connection-test-successful": "Connection test was successful.",
|
||||
"connection-test-warning": "Test connection partially successful: Some steps had failures, we will only ingest partial metadata.",
|
||||
"consumer-aligned-domain-type-description": "Domains that collect and curate the data from multiple source-aligned to provide aggregated data and data products, such as Customer 360, Customers sessions, etc., for other domains to consume.",
|
||||
"copied-to-clipboard": "Copied to the clipboard",
|
||||
"copy-to-clipboard": "Link copied to clipboard",
|
||||
"create-new-domain-guide": "A data mesh is a decentralized data architecture that organizes data by a specific business domain following the concepts of domain-oriented design. Teams take ownership of both operational and analytical data that belongs to the domain. Based on the Data Contract, consumers are provided with Data as a Product. It is powered by Domain-agnostic self-serve data infrastructure. There are three types of domains: Consumer-aligned, Aggregate, and Source-aligned. Domains have Enabling Teams for consulting.",
|
||||
@ -1550,6 +1555,7 @@
|
||||
"size-evolution-description": "Size evolution of assets in organization.",
|
||||
"soft-delete-message-for-entity": "Soft deleting will deactivate the {{entity}}. This will disable any discovery, read or write operations on {{entity}}.",
|
||||
"something-went-wrong": "Something went wrong",
|
||||
"source-aligned-domain-type-description": "Domains that are user-facing where the end product of a combination of data from various domains are available for business users or data citizens for data-driven decision-making.",
|
||||
"special-character-not-allowed": "Special characters are not allowed.",
|
||||
"sql-query-tooltip": "Queries returning one or more rows will result in the test failing.",
|
||||
"sso-provider-not-supported": "SSO Provider {{provider}} is not supported.",
|
||||
|
@ -43,6 +43,7 @@
|
||||
"advanced-configuration": "Advanced Configuration",
|
||||
"advanced-entity": "{{entity}} avanzado",
|
||||
"advanced-search": "Advanced Search",
|
||||
"aggregate": "Aggregate",
|
||||
"airflow-config-plural": "Configuraciones de airflow",
|
||||
"alert": "Alerta",
|
||||
"alert-lowercase": "alert",
|
||||
@ -182,6 +183,7 @@
|
||||
"connection-timeout": "Connection Timeout",
|
||||
"connection-timeout-plural": "Tiempo de conexión expirado",
|
||||
"connector": "Conector",
|
||||
"consumer-aligned": "Consumer-aligned",
|
||||
"container": "Contenedor",
|
||||
"container-plural": "Contenedores",
|
||||
"conversation": "Conversación",
|
||||
@ -945,6 +947,7 @@
|
||||
"soft-delete": "Borrado Suave",
|
||||
"soft-lowercase": "suave",
|
||||
"source": "Fuente",
|
||||
"source-aligned": "Source-aligned",
|
||||
"source-column": "Columna de Origen",
|
||||
"source-match": "Coincidir por Fuente de Eventos",
|
||||
"source-plural": "Fuentes",
|
||||
@ -1172,6 +1175,7 @@
|
||||
"adding-new-user-to-entity": "Añadir nuevos usuarios a {{entity}}",
|
||||
"admin-only-action": "Solo un administrador puede realizar esta acción.",
|
||||
"advanced-search-message": "Descubre los activos de datos correctos usando el editor de sintaxis con condiciones y/o.",
|
||||
"aggregate-domain-type-description": "Domains closer to online services and transactional databases that include events, and transactional data.",
|
||||
"airflow-guide-message": "OpenMetadata utiliza Airflow para ejecutar las ingestas. Hemos desarrollado APIs para deployar los conectores dinámicamente a Airflow. Puede utilizar la instancia de Airflow de OpenMetadata o consultar la guía de Airflow para instalar las APIs.",
|
||||
"airflow-host-ip-address": "OpenMetadata se conectará a su servicio desde la dirección IP {{hostIp}}. Asegúrese de permitir el tráfico entrante en la configuración de seguridad de su red.",
|
||||
"alerts-description": "Manténgase actualizado con alertas oportunas utilizando webhooks.",
|
||||
@ -1226,6 +1230,7 @@
|
||||
"connection-test-failed": "Falló la prueba de conexión.",
|
||||
"connection-test-successful": "La prueba de conexión fue un éxito.",
|
||||
"connection-test-warning": "Test connection partially successful: Some steps had failures, we will only ingest partial metadata.",
|
||||
"consumer-aligned-domain-type-description": "Domains that collect and curate the data from multiple source-aligned to provide aggregated data and data products, such as Customer 360, Customers sessions, etc., for other domains to consume.",
|
||||
"copied-to-clipboard": "Copiado al portapapeles",
|
||||
"copy-to-clipboard": "Link copied to clipboard",
|
||||
"create-new-domain-guide": "A data mesh is a decentralized data architecture that organizes data by a specific business domain following the concepts of domain-oriented design. Teams take ownership of both operational and analytical data that belongs to the domain. Based on the Data Contract, consumers are provided with Data as a Product. It is powered by Domain-agnostic self-serve data infrastructure. There are three types of domains: Consumer-aligned, Aggregate, and Source-aligned. Domains have Enabling Teams for consulting.",
|
||||
@ -1550,6 +1555,7 @@
|
||||
"size-evolution-description": "Size evolution of assets in organization.",
|
||||
"soft-delete-message-for-entity": "La eliminación suave desactivará la {{entity}}. Esto deshabilitará cualquier operación de descubrimiento, lectura o escritura en {{entity}}.",
|
||||
"something-went-wrong": "Algo salió mal",
|
||||
"source-aligned-domain-type-description": "Domains that are user-facing where the end product of a combination of data from various domains are available for business users or data citizens for data-driven decision-making.",
|
||||
"special-character-not-allowed": "No se permiten caracteres especiales.",
|
||||
"sql-query-tooltip": "Las consultas que devuelvan una o varias filas provocarán el fallo del test.",
|
||||
"sso-provider-not-supported": "No se admite el proveedor SSO {{provider}}.",
|
||||
|
@ -43,6 +43,7 @@
|
||||
"advanced-configuration": "Configuration Avancée",
|
||||
"advanced-entity": "{{entity}} Avancé",
|
||||
"advanced-search": "Recherche Avancée",
|
||||
"aggregate": "Aggregate",
|
||||
"airflow-config-plural": "Configurations Airflow",
|
||||
"alert": "Alerte",
|
||||
"alert-lowercase": "alerte",
|
||||
@ -182,6 +183,7 @@
|
||||
"connection-timeout": "Délai d'Attente de Connexion",
|
||||
"connection-timeout-plural": "Délais d'Attente de Connexion",
|
||||
"connector": "Connecteur",
|
||||
"consumer-aligned": "Consumer-aligned",
|
||||
"container": "Conteneur",
|
||||
"container-plural": "Conteneurs",
|
||||
"conversation": "Conversation",
|
||||
@ -945,6 +947,7 @@
|
||||
"soft-delete": "Suppression Logique (Soft delete)",
|
||||
"soft-lowercase": "logique (soft)",
|
||||
"source": "Source",
|
||||
"source-aligned": "Source-aligned",
|
||||
"source-column": "Colonne Source",
|
||||
"source-match": "Correspondance par Source d'Événement",
|
||||
"source-plural": "Sources",
|
||||
@ -1172,6 +1175,7 @@
|
||||
"adding-new-user-to-entity": "Ajouter de nouveaux utilisateurs à {{entity}}",
|
||||
"admin-only-action": "Seuls les Admin peuvent réaliser cette action.",
|
||||
"advanced-search-message": "Découvrez les bonnes données à l'aide de l'éditeur de syntaxe avec des conditions et/ou.",
|
||||
"aggregate-domain-type-description": "Domains closer to online services and transactional databases that include events, and transactional data.",
|
||||
"airflow-guide-message": "OpenMetadata utilise Airflow pour exécuter les connecteurs d'ingestion. Nous avons développé des API gérées pour déployer les connecteurs d'ingestion. Veuillez utiliser l'instance Airflow OpenMetadata ou vous référer au guide ci-dessous pour installer les API gérées dans votre installation Airflow.",
|
||||
"airflow-host-ip-address": "OpenMetadata utilisera l'adresse IP {{hostIp}} pour se connecter à votre ressource. Assurez-vous d'autoriser le trafic entrant dans les paramètres de sécurité de votre réseau.",
|
||||
"alerts-description": "Rester informé avec des alertes en temps réel à l'aide de webhooks.",
|
||||
@ -1226,6 +1230,7 @@
|
||||
"connection-test-failed": "Le test de connexion a échoué.",
|
||||
"connection-test-successful": "Le test de connectivité a réussi.",
|
||||
"connection-test-warning": "Le test de connexion a réussi partiellement : Certaines étapes ont échoué, nous n'ingérerons que les métadonnées partielles.",
|
||||
"consumer-aligned-domain-type-description": "Domains that collect and curate the data from multiple source-aligned to provide aggregated data and data products, such as Customer 360, Customers sessions, etc., for other domains to consume.",
|
||||
"copied-to-clipboard": "Copié dans le presse-papiers",
|
||||
"copy-to-clipboard": "Lien copié dans le presse-papiers",
|
||||
"create-new-domain-guide": "A data mesh is a decentralized data architecture that organizes data by a specific business domain following the concepts of domain-oriented design. Teams take ownership of both operational and analytical data that belongs to the domain. Based on the Data Contract, consumers are provided with Data as a Product. It is powered by Domain-agnostic self-serve data infrastructure. There are three types of domains: Consumer-aligned, Aggregate, and Source-aligned. Domains have Enabling Teams for consulting.",
|
||||
@ -1550,6 +1555,7 @@
|
||||
"size-evolution-description": "Size evolution of assets in organization.",
|
||||
"soft-delete-message-for-entity": "La suppression logique désactivera le {{entity}}. Cela désactivera toute découverte, lecture ou écriture sur le {{entity}}.",
|
||||
"something-went-wrong": "Quelque chose s'est mal passé",
|
||||
"source-aligned-domain-type-description": "Domains that are user-facing where the end product of a combination of data from various domains are available for business users or data citizens for data-driven decision-making.",
|
||||
"special-character-not-allowed": "Les caractères spéciaux ne sont pas autorisés",
|
||||
"sql-query-tooltip": "Requête avec 1 ligne ou plus entraînera l'échec du test.",
|
||||
"sso-provider-not-supported": "Le fournisseur SSO {{provider}} n’est pas pris en charge.",
|
||||
|
@ -43,6 +43,7 @@
|
||||
"advanced-configuration": "Advanced Configuration",
|
||||
"advanced-entity": "高度な{{entity}}",
|
||||
"advanced-search": "Advanced Search",
|
||||
"aggregate": "Aggregate",
|
||||
"airflow-config-plural": "Airflowの設定",
|
||||
"alert": "アラート",
|
||||
"alert-lowercase": "alert",
|
||||
@ -182,6 +183,7 @@
|
||||
"connection-timeout": "Connection Timeout",
|
||||
"connection-timeout-plural": "接続のタイムアウト",
|
||||
"connector": "コネクタ",
|
||||
"consumer-aligned": "Consumer-aligned",
|
||||
"container": "コンテナ",
|
||||
"container-plural": "コンテナ",
|
||||
"conversation": "会話",
|
||||
@ -945,6 +947,7 @@
|
||||
"soft-delete": "Soft Delete",
|
||||
"soft-lowercase": "soft",
|
||||
"source": "ソース",
|
||||
"source-aligned": "Source-aligned",
|
||||
"source-column": "カラムのソース",
|
||||
"source-match": "イベントソースによるマッチング",
|
||||
"source-plural": "ソース",
|
||||
@ -1172,6 +1175,7 @@
|
||||
"adding-new-user-to-entity": "{{entity}}に新しいユーザを追加します",
|
||||
"admin-only-action": "管理者だけがこのアクションを実行できます。",
|
||||
"advanced-search-message": "and/or条件付きのシンタックスエディタを使って、適切なデータアセットを検出します。",
|
||||
"aggregate-domain-type-description": "Domains closer to online services and transactional databases that include events, and transactional data.",
|
||||
"airflow-guide-message": "OpenMetadata uses Airflow to run Ingestion Connectors. We developed Managed APIs to deploy ingestion connectors. Please use OpenMetadata Airflow instance or refer to the guide below to install the managed APIs in your Airflow installation.",
|
||||
"airflow-host-ip-address": "OpenMetadata will connect to your resource from the IP {{hostIp}}. Make sure to allow inbound traffic in your network security settings.",
|
||||
"alerts-description": "Webhookを利用したタイムリーなアラートで最新の状態を保ちます。",
|
||||
@ -1226,6 +1230,7 @@
|
||||
"connection-test-failed": "Connection test was failed.",
|
||||
"connection-test-successful": "接続テストが成功しました",
|
||||
"connection-test-warning": "Test connection partially successful: Some steps had failures, we will only ingest partial metadata.",
|
||||
"consumer-aligned-domain-type-description": "Domains that collect and curate the data from multiple source-aligned to provide aggregated data and data products, such as Customer 360, Customers sessions, etc., for other domains to consume.",
|
||||
"copied-to-clipboard": "クリップボードにコピー",
|
||||
"copy-to-clipboard": "Link copied to clipboard",
|
||||
"create-new-domain-guide": "A data mesh is a decentralized data architecture that organizes data by a specific business domain following the concepts of domain-oriented design. Teams take ownership of both operational and analytical data that belongs to the domain. Based on the Data Contract, consumers are provided with Data as a Product. It is powered by Domain-agnostic self-serve data infrastructure. There are three types of domains: Consumer-aligned, Aggregate, and Source-aligned. Domains have Enabling Teams for consulting.",
|
||||
@ -1550,6 +1555,7 @@
|
||||
"size-evolution-description": "Size evolution of assets in organization.",
|
||||
"soft-delete-message-for-entity": "ソフトデリートは{{entity}}を非活性化します。これはデータの発見や、{{entity}}に対する読み込みや書き込みの操作を無効にします。",
|
||||
"something-went-wrong": "何らかの問題が発生しました",
|
||||
"source-aligned-domain-type-description": "Domains that are user-facing where the end product of a combination of data from various domains are available for business users or data citizens for data-driven decision-making.",
|
||||
"special-character-not-allowed": "特殊文字は使用できません。",
|
||||
"sql-query-tooltip": "Queries returning one or more rows will result in the test failing.",
|
||||
"sso-provider-not-supported": "SSO Provider {{provider}} is not supported.",
|
||||
|
@ -43,6 +43,7 @@
|
||||
"advanced-configuration": "Advanced Configuration",
|
||||
"advanced-entity": "Entidade avançada",
|
||||
"advanced-search": "Advanced Search",
|
||||
"aggregate": "Aggregate",
|
||||
"airflow-config-plural": "Configurações do Airflow",
|
||||
"alert": "Alerta",
|
||||
"alert-lowercase": "alert",
|
||||
@ -182,6 +183,7 @@
|
||||
"connection-timeout": "Connection Timeout",
|
||||
"connection-timeout-plural": "tempos limites de conexão",
|
||||
"connector": "Conector",
|
||||
"consumer-aligned": "Consumer-aligned",
|
||||
"container": "Container",
|
||||
"container-plural": "Containers",
|
||||
"conversation": "Conversa",
|
||||
@ -945,6 +947,7 @@
|
||||
"soft-delete": "Exclusão Suave",
|
||||
"soft-lowercase": "suave",
|
||||
"source": "Fonte",
|
||||
"source-aligned": "Source-aligned",
|
||||
"source-column": "Coluna de Origem",
|
||||
"source-match": "Correspondência por Fonte de Evento",
|
||||
"source-plural": "Fontes",
|
||||
@ -1172,6 +1175,7 @@
|
||||
"adding-new-user-to-entity": "Adicionando novos usuários a {{entity}}",
|
||||
"admin-only-action": "Somente um administrador pode executar esta ação.",
|
||||
"advanced-search-message": "Descubra os ativos de dados corretos usando o editor de sintaxe com condições e/ou.",
|
||||
"aggregate-domain-type-description": "Domains closer to online services and transactional databases that include events, and transactional data.",
|
||||
"airflow-guide-message": "O OpenMetadata usa o Airflow para executar conectores de ingestão. Desenvolvemos APIs gerenciadas para implantar conectores de ingestão. Use a instância do OpenMetadata Airflow ou consulte o guia abaixo para instalar as APIs gerenciadas em sua instalação do Airflow.",
|
||||
"airflow-host-ip-address": "O OpenMetadata se conectará ao seu recurso a partir do IP {{hostIp}}. Certifique-se de permitir o tráfego de entrada nas configurações de segurança da sua rede.",
|
||||
"alerts-description": "Mantenha-se atualizado com alertas oportunos usando webhooks.",
|
||||
@ -1226,6 +1230,7 @@
|
||||
"connection-test-failed": "Connection test was failed.",
|
||||
"connection-test-successful": "Teste de conexão bem-sucedido",
|
||||
"connection-test-warning": "Test connection partially successful: Some steps had failures, we will only ingest partial metadata.",
|
||||
"consumer-aligned-domain-type-description": "Domains that collect and curate the data from multiple source-aligned to provide aggregated data and data products, such as Customer 360, Customers sessions, etc., for other domains to consume.",
|
||||
"copied-to-clipboard": "Copiado para a área de transferência",
|
||||
"copy-to-clipboard": "Link copied to clipboard",
|
||||
"create-new-domain-guide": "A data mesh is a decentralized data architecture that organizes data by a specific business domain following the concepts of domain-oriented design. Teams take ownership of both operational and analytical data that belongs to the domain. Based on the Data Contract, consumers are provided with Data as a Product. It is powered by Domain-agnostic self-serve data infrastructure. There are three types of domains: Consumer-aligned, Aggregate, and Source-aligned. Domains have Enabling Teams for consulting.",
|
||||
@ -1550,6 +1555,7 @@
|
||||
"size-evolution-description": "Size evolution of assets in organization.",
|
||||
"soft-delete-message-for-entity": "O soft delete desativará a {{entity}}. Isso desabilitará quaisquer operações de descoberta, leitura ou gravação na {{entity}}.",
|
||||
"something-went-wrong": "Algo deu errado",
|
||||
"source-aligned-domain-type-description": "Domains that are user-facing where the end product of a combination of data from various domains are available for business users or data citizens for data-driven decision-making.",
|
||||
"special-character-not-allowed": "Caracteres especiais não são permitidos.",
|
||||
"sql-query-tooltip": "Consultas que retornam uma ou mais linhas resultarão na falha do teste.",
|
||||
"sso-provider-not-supported": "O provedor SSO {{provider}} não é suportado.",
|
||||
|
@ -43,6 +43,7 @@
|
||||
"advanced-configuration": "Расширенная конфигурация",
|
||||
"advanced-entity": "Расширенный {{entity}}",
|
||||
"advanced-search": "Расширенный поиск",
|
||||
"aggregate": "Aggregate",
|
||||
"airflow-config-plural": "конфиги airflow",
|
||||
"alert": "Предупреждение",
|
||||
"alert-lowercase": "предупреждение",
|
||||
@ -182,6 +183,7 @@
|
||||
"connection-timeout": "Время соединения вышло",
|
||||
"connection-timeout-plural": "Время соединения вышло",
|
||||
"connector": "Коннектор",
|
||||
"consumer-aligned": "Consumer-aligned",
|
||||
"container": "Контейнер",
|
||||
"container-plural": "Контейнеры",
|
||||
"conversation": "Обсуждение",
|
||||
@ -945,6 +947,7 @@
|
||||
"soft-delete": "Мягкое удаление",
|
||||
"soft-lowercase": "мягкий",
|
||||
"source": "Источник",
|
||||
"source-aligned": "Source-aligned",
|
||||
"source-column": "Источник столбца",
|
||||
"source-match": "Сопоставление по источнику события",
|
||||
"source-plural": "Источники",
|
||||
@ -1172,6 +1175,7 @@
|
||||
"adding-new-user-to-entity": "Добавление новых пользователей в {{entity}}",
|
||||
"admin-only-action": "Только администратор может выполнить это действие",
|
||||
"advanced-search-message": "Откройте для себя нужные объекты данных, используя редактор синтаксиса с условиями и/или.",
|
||||
"aggregate-domain-type-description": "Domains closer to online services and transactional databases that include events, and transactional data.",
|
||||
"airflow-guide-message": "OpenMetadata использует Airflow для запуска Ingestion Connectors. Мы разработали управляемые API для развертывания коннекторов приема. Пожалуйста, используйте экземпляр OpenMetadata Airflow или обратитесь к приведенному ниже руководству, чтобы установить управляемые API в вашей установке Airflow.",
|
||||
"airflow-host-ip-address": "OpenMetadata подключится к вашему ресурсу с IP-адреса {{hostIp}}. Обязательно разрешите входящий трафик в настройках сетевой безопасности.",
|
||||
"alerts-description": "Будьте в курсе благодаря своевременным оповещениям с помощью веб-перехватчиков.",
|
||||
@ -1226,6 +1230,7 @@
|
||||
"connection-test-failed": "Не удалось выполнить тестовое подключение. Подтвердите подключение и разрешения для неудачных шагов.",
|
||||
"connection-test-successful": "Тест подключения прошел успешно.",
|
||||
"connection-test-warning": "Тестовое соединение частично успешно: на некоторых этапах были сбои, мы будем принимать только частичные метаданные.",
|
||||
"consumer-aligned-domain-type-description": "Domains that collect and curate the data from multiple source-aligned to provide aggregated data and data products, such as Customer 360, Customers sessions, etc., for other domains to consume.",
|
||||
"copied-to-clipboard": "Скопировано в буфер обмена",
|
||||
"copy-to-clipboard": "Ссылка скопирована в буфер обмена",
|
||||
"create-new-domain-guide": "A data mesh is a decentralized data architecture that organizes data by a specific business domain following the concepts of domain-oriented design. Teams take ownership of both operational and analytical data that belongs to the domain. Based on the Data Contract, consumers are provided with Data as a Product. It is powered by Domain-agnostic self-serve data infrastructure. There are three types of domains: Consumer-aligned, Aggregate, and Source-aligned. Domains have Enabling Teams for consulting.",
|
||||
@ -1550,6 +1555,7 @@
|
||||
"size-evolution-description": "Size evolution of assets in organization.",
|
||||
"soft-delete-message-for-entity": "Мягкое удаление деактивирует {{entity}}. Это отключит любые операции обнаружения, чтения или записи для {{entity}}.",
|
||||
"something-went-wrong": "Что-то пошло не так",
|
||||
"source-aligned-domain-type-description": "Domains that are user-facing where the end product of a combination of data from various domains are available for business users or data citizens for data-driven decision-making.",
|
||||
"special-character-not-allowed": "Спецсимволы не допустимы.",
|
||||
"sql-query-tooltip": "Запросы, возвращающие одну или несколько строк, приведут к сбою теста.",
|
||||
"sso-provider-not-supported": "Поставщик единого входа {{provider}} не поддерживается.",
|
||||
|
@ -43,6 +43,7 @@
|
||||
"advanced-configuration": "高级配置",
|
||||
"advanced-entity": "高级{{entity}}",
|
||||
"advanced-search": "高级搜索",
|
||||
"aggregate": "Aggregate",
|
||||
"airflow-config-plural": "airflow 配置",
|
||||
"alert": "提醒",
|
||||
"alert-lowercase": "提醒",
|
||||
@ -182,6 +183,7 @@
|
||||
"connection-timeout": "连接超时",
|
||||
"connection-timeout-plural": "连接超时",
|
||||
"connector": "连接器",
|
||||
"consumer-aligned": "Consumer-aligned",
|
||||
"container": "存储容器",
|
||||
"container-plural": "存储容器",
|
||||
"conversation": "对话",
|
||||
@ -945,6 +947,7 @@
|
||||
"soft-delete": "软删除",
|
||||
"soft-lowercase": "软",
|
||||
"source": "源",
|
||||
"source-aligned": "Source-aligned",
|
||||
"source-column": "源列",
|
||||
"source-match": "根据事件源匹配",
|
||||
"source-plural": "来源",
|
||||
@ -1172,6 +1175,7 @@
|
||||
"adding-new-user-to-entity": "添加新用户到{{entity}}",
|
||||
"admin-only-action": "只有管理员可以执行此操作",
|
||||
"advanced-search-message": "使用具有 and/or 条件的语法编辑器找到正确的数据资产",
|
||||
"aggregate-domain-type-description": "Domains closer to online services and transactional databases that include events, and transactional data.",
|
||||
"airflow-guide-message": "OpenMetadata 使用 Airflow 运行提取连接器,我们开发了专门的托管 API 来部署提取连接器。请使用 OpenMetadata 专属的 Airflow 实例,或参考下面的指南:在您的 Airflow 实例中安装我们开发的托管 API 程序。",
|
||||
"airflow-host-ip-address": "OpenMetadata 将从 IP 地址 {{hostIp}} 连接到您的资源,请确保在您的网络安全设置中允许该地址的入站访问",
|
||||
"alerts-description": "使用 Webhooks 及时了解最新的提醒信息",
|
||||
@ -1226,6 +1230,7 @@
|
||||
"connection-test-failed": "连接测试失败",
|
||||
"connection-test-successful": "连接测试成功",
|
||||
"connection-test-warning": "连接测试部分成功:部分步骤失败,只能提取部分元数据",
|
||||
"consumer-aligned-domain-type-description": "Domains that collect and curate the data from multiple source-aligned to provide aggregated data and data products, such as Customer 360, Customers sessions, etc., for other domains to consume.",
|
||||
"copied-to-clipboard": "已复制到剪贴板",
|
||||
"copy-to-clipboard": "链接已复制到剪贴板",
|
||||
"create-new-domain-guide": "A data mesh is a decentralized data architecture that organizes data by a specific business domain following the concepts of domain-oriented design. Teams take ownership of both operational and analytical data that belongs to the domain. Based on the Data Contract, consumers are provided with Data as a Product. It is powered by Domain-agnostic self-serve data infrastructure. There are three types of domains: Consumer-aligned, Aggregate, and Source-aligned. Domains have Enabling Teams for consulting.",
|
||||
@ -1550,6 +1555,7 @@
|
||||
"size-evolution-description": "Size evolution of assets in organization.",
|
||||
"soft-delete-message-for-entity": "软删除将停用{{entity}},这将禁用{{entity}}上的任何发现、读取或写入操作",
|
||||
"something-went-wrong": "出现了一些问题",
|
||||
"source-aligned-domain-type-description": "Domains that are user-facing where the end product of a combination of data from various domains are available for business users or data citizens for data-driven decision-making.",
|
||||
"special-character-not-allowed": "不允许使用特殊字符",
|
||||
"sql-query-tooltip": "返回一行或多行的查询将导致测试失败",
|
||||
"sso-provider-not-supported": "不支持 SSO 提供程序{{provider}}",
|
||||
|
@ -10,8 +10,9 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { Divider, Space, Typography } from 'antd';
|
||||
import { isEmpty } from 'lodash';
|
||||
import React, { ReactNode } from 'react';
|
||||
import React, { Fragment, ReactNode } from 'react';
|
||||
import { Link } from 'react-router-dom';
|
||||
import ProfilePicture from '../components/common/ProfilePicture/ProfilePicture';
|
||||
import {
|
||||
@ -19,6 +20,7 @@ import {
|
||||
getUserPath,
|
||||
NO_DATA_PLACEHOLDER,
|
||||
} from '../constants/constants';
|
||||
import { DOMAIN_TYPE_DATA } from '../constants/Domain.constants';
|
||||
import { EntityField } from '../constants/Feeds.constants';
|
||||
import { DataProduct } from '../generated/entity/domains/dataProduct';
|
||||
import { Domain } from '../generated/entity/domains/domain';
|
||||
@ -130,3 +132,21 @@ export const getQueryFilterToIncludeDomain = (fqn: string) => ({
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
// Domain type description which will be shown in tooltip
|
||||
export const domainTypeTooltipDataRender = () => (
|
||||
<Space direction="vertical" size="middle">
|
||||
{DOMAIN_TYPE_DATA.map(({ type, description }, index) => (
|
||||
<Fragment key={type}>
|
||||
<Space direction="vertical" size={0}>
|
||||
<Typography.Text>{`${type} :`}</Typography.Text>
|
||||
<Typography.Paragraph className="m-0 text-grey-muted">
|
||||
{description}
|
||||
</Typography.Paragraph>
|
||||
</Space>
|
||||
|
||||
{index !== 2 && <Divider className="m-0" />}
|
||||
</Fragment>
|
||||
))}
|
||||
</Space>
|
||||
);
|
||||
|
@ -199,6 +199,8 @@ export const getField = (field: FieldProp) => {
|
||||
align={props.tooltipAlign as TooltipProps['align']}
|
||||
helperText={helperText}
|
||||
label={label}
|
||||
overlayClassName={props.overlayClassName as string}
|
||||
overlayInnerStyle={props.overlayInnerStyle as React.CSSProperties}
|
||||
placement={props.tooltipPlacement as TooltipPlacement}
|
||||
/>
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user