Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@ jest.mock('@openmetadata/ui-core-components', () => ({
SlideoutMenu: ({ children }: { children: React.ReactNode }) => (
<div>{children}</div>
),
Box: ({ children }: { children: React.ReactNode }) => <div>{children}</div>,
EmptyPlaceholder: ({ title }: { title?: string }) => (
<div data-testid="empty-tags-placeholder">{title}</div>
),
}));

jest.mock('react-router-dom', () => ({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
* limitations under the License.
*/
import Icon from '@ant-design/icons/lib/components/Icon';
import { Box, EmptyPlaceholder } from '@openmetadata/ui-core-components';
import { Plus, Tag01 } from '@untitledui/icons';
import { Button, Card, Col, Row, Space, Tooltip, Typography } from 'antd';
import ButtonGroup from 'antd/lib/button/button-group';
import { ColumnsType } from 'antd/lib/table';
Expand Down Expand Up @@ -60,7 +62,6 @@ import { showErrorToast } from '../../../utils/ToastUtils';
import AppBadge from '../../common/Badge/Badge.component';
import Description from '../../common/EntityDescription/Description';
import ManageButton from '../../common/EntityPageInfos/ManageButton/ManageButton';
import ErrorPlaceHolder from '../../common/ErrorWithPlaceholder/ErrorPlaceHolder';
import Loader from '../../common/Loader/Loader';
import { NextPreviousProps } from '../../common/NextPrevious/NextPrevious.interface';
import Table from '../../common/Table/Table';
Expand Down Expand Up @@ -501,33 +502,49 @@ const ClassificationDetails = forwardRef(
/>
</div>

<Table
columns={tableColumn}
customPaginationProps={{
currentPage,
isLoading,
pageSize,
paging,
showPagination,
pagingHandler: handleTagsPageChange,
onShowSizeChange: handlePageSizeChange,
}}
data-testid="table"
dataSource={tags}
loading={isLoading}
locale={{
emptyText: (
<ErrorPlaceHolder
className="m-y-md"
placeholderText={t('message.no-tags-description')}
/>
),
}}
pagination={false}
rowKey="id"
scroll={{ x: true }}
size="small"
/>
{isEmpty(tags) && !isLoading ? (
<Box className="tw:relative tw:min-h-[360px]">
<EmptyPlaceholder
actions={
createPermission
? [
{
key: 'new-tag',
label: t('label.new-tag'),
color: 'primary',
iconLeading: Plus,
isDisabled: isClassificationDisabled,
onPress: handleAddNewTagClick,
},
]
: undefined
}
description={t('message.add-first-tag-description')}
icon={<Tag01 className="tw:text-fg-warning-primary" />}
title={t('label.add-the-first-tag')}
/>
</Box>
) : (
<Table
columns={tableColumn}
customPaginationProps={{
currentPage,
isLoading,
pageSize,
paging,
showPagination,
pagingHandler: handleTagsPageChange,
onShowSizeChange: handlePageSizeChange,
}}
data-testid="table"
dataSource={tags}
loading={isLoading}
pagination={false}
rowKey="id"
scroll={{ x: true }}
size="small"
/>
)}
</Card>
</Col>
<Col span={6}>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,11 @@
"add-row": "إضافة صف",
"add-rule": "إضافة قاعدة",
"add-suggestion": "إضافة اقتراح",
"add-tags-inside-it": "أضف وسومًا بداخله",
"add-term-boost": "إضافة تعزيز مصطلح",
"add-terms": "إضافة مصطلحات",
"add-test-cases-to-bundle-suite": "إضافة حالات الاختبار إلى مجموعة الحزمة",
"add-the-first-tag": "إضافة أول وسم",
"add-to-bundle-suite": "إضافة إلى مجموعة الحزمة",
"add-to-existing-bundle-suite": "إضافة إلى مجموعة حزمة موجودة",
"add-to-table": "إضافة إلى الجدول",
Expand Down Expand Up @@ -208,6 +210,7 @@
"asset-type": "نوع الأصل",
"assets-ingested": "الأصول المُستوعَبة",
"assets-profiled": "الأصول المُحلَّلة",
"assign-an-owner": "تعيين مالك",
"assigned": "مُعيَّن",
"assigned-entity": "{{entity}} مُعيَّن",
"assigned-to-me": "مُعيَّن لي",
Expand Down Expand Up @@ -523,6 +526,7 @@
"cover-image": "غلاف",
"covered": "مغطى",
"create": "إنشاء",
"create-a-classification": "إنشاء تصنيف",
"create-a-glossary": "إنشاء مسرد",
"create-an-article": "إنشاء مقالة",
"create-and-deploy": "إنشاء ونشر",
Expand Down Expand Up @@ -701,6 +705,7 @@
"default": "افتراضي",
"default-persona": "شخصية افتراضية",
"default-role": "دور افتراضي",
"define-it": "حدّده",
"define-the-action": "حدّد الإجراء",
"definition": "التعريف",
"delete": "حذف",
Expand Down Expand Up @@ -1632,11 +1637,14 @@
"new": "جديد",
"new-article": "مقالة جديدة",
"new-chat": "محادثة جديدة",
"new-classification": "تصنيف جديد",
"new-folder": "مجلد جديد",
"new-lowercase": "new",
"new-memory": "ذاكرة جديدة",
"new-metric": "مقياس جديد",
"new-password": "كلمة مرور جديدة",
"new-tab": "علامة تبويب جديدة",
"new-tag": "وسم جديد",
"new-term": "مصطلح جديد",
"new-test-suite": "مجموعة اختبار جديدة",
"new-update-announcement": "لقد أصدرنا للتو تحديثًا جديدًا!",
Expand Down Expand Up @@ -2519,6 +2527,7 @@
"tag-lowercase": "وسم",
"tag-lowercase-plural": "وسوم",
"tag-plural": "وسوم",
"tag-your-assets": "وسم أصولك",
"tagged-with": "موسوم بـ",
"target": "الهدف",
"target-column": "عمود الهدف",
Expand Down Expand Up @@ -2876,6 +2885,7 @@
"add-a-description-for-the-service": "Add a description for this service",
"add-contract-detail-description": "حدد المعلومات الأساسية لإعداد عقد البيانات هذا.",
"add-data-asset-domain": "ابدأ بإضافة خدمة أو أصل بيانات إلى <0>{{domain}}</0>.",
"add-first-tag-description": "الوسوم هي التسميات التي تطبّقها الفرق على الأصول والأعمدة — حدّدها هنا لتصبح جاهزة للاستخدام في كل مكان.",
"add-kpi-message": "حدد مؤشرات الأداء الرئيسية (KPI) التي تعكس بشكل أفضل صحة أصول البيانات الخاصة بك. قم بمراجعة أصول البيانات الخاصة بك بناءً على الوصف والملكية والمستوى. حدد المقاييس المستهدفة الخاصة بك بالقيمة المطلقة أو النسبة المئوية لتتبع تقدمك. أخيرًا، حدد تاريخي البدء والانتهاء لتحقيق أهدافك المتعلقة بالبيانات.",
"add-new-service-description": "اختر من بين مجموعة الخدمات التي تتكامل معها {{brandName}}. لإضافة خدمة جديدة، ابدأ بتحديد فئة الخدمة (قاعدة بيانات، مراسلة، لوحة معلومات، أو سير عمل). من قائمة الخدمات المتاحة، حدد الخدمة التي ترغب في التكامل معها.",
"add-policy-message": "يتم تعيين السياسات للفرق. في {{brandName}}، السياسة هي مجموعة من القواعد، التي تحدد الوصول بناءً على شروط معينة. نحن ندعم شروطًا غنية تعتمد على لغة تعبير Spring (SpEL). يتم نشر جميع العمليات المدعومة من قبل كيان. استخدم هذه العمليات الدقيقة لتحديد القواعد الشرطية لكل سياسة. قم بإنشاء سياسات محددة جيدًا بناءً على قواعد شرطية لبناء أدوار تحكم وصول غنية.",
Expand Down Expand Up @@ -3025,6 +3035,11 @@
"choose-how-the-workflow-should-be-triggered": "اختر كيفية تشغيل سير العمل",
"choose-import-mode": "اختر طريقة استيراد عقد ODCS",
"choose-which-assets-this-workflow-can-act-on": "اختر الأصول التي يمكن أن يعمل عليها هذا سير العمل.",
"classification-add-tags-description": "حدّد التسميات التي ستطبّقها فرقك.",
"classification-create-description": "سمِّ الفئة، مثل الحساسية أو الاعتماد.",
"classification-empty-state-description": "تتيح لك التصنيفات بناء نظام تسمية متسق — حدّد الفئات مرة واحدة، ووسِّم الأصول في كل مكان.",
"classification-empty-state-title": "نظّم بياناتك باستخدام الوسوم",
"classification-tag-assets-description": "استخدمها في البحث والسياسات والأتمتة.",
"click-here-to-view-assets-on-explore": "(انقر لعرض الأصول المصفاة في صفحة الاستكشاف.)",
"click-text-to-view-details": "انقر على <0>{{text}}</0> لعرض التفاصيل.",
"closed-this-task": "أغلق هذه المهمة",
Expand Down Expand Up @@ -3575,8 +3590,13 @@
"metadata-status-missing-description": "لم تتم إضافة بيانات وصفية (الوصف، العلامات، مصطلحات القاموس، أو اسم العرض)",
"metadata-xml-file-parsed-error": "خطأ: تعذر تحليل بيانات SAML غير الصالحة {{fileName}}",
"metadata-xml-file-parsed-success": "تم رفع {{fileName}} وتحليله بنجاح",
"metric-assign-owner-description": "عيّن مسؤولًا عنه ليبقى التعريف موثوقًا.",
"metric-configuration-description": "قم بتخصيص الحقول للتحكم في سلوك المقياس. يمكنك إضافة أو إزالة أو إخفاء أو تعطيل الحقول حسب الحاجة.",
"metric-define-action-description": "أرفق مصطلحات المسرد ودرجة التفصيل ووصفًا واضحًا.",
"metric-define-it-description": "سمِّ المقياس ودوّن الصيغة الدقيقة.",
"metric-description": "تتبع صحة أصول البيانات الخاصة بك بالمقاييس.",
"metric-empty-state-description": "توفّر المقاييس لمؤسستك مصدرًا واحدًا للحقيقة حول كيفية قياس الأمور. حدّد المقياس مرة واحدة، ليعمل الجميع — من المحلّلين إلى القيادة — وفق الحسابات نفسها.",
"metric-empty-state-title": "تعريف واحد، بلا جدال",
"metric-relations-require-glossary-term": "حدد مصطلح مسرد لإضافة العلاقات.",
"metric-tags-info": "ترتبط المقاييس بمصطلحات المسرد من خلال الوسوم.",
"metrics-delete-success": "Deleted {{count}} metrics successfully.",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,11 @@
"add-row": "Zeile hinzufügen",
"add-rule": "Regel hinzufügen",
"add-suggestion": "Vorschlag hinzufügen",
"add-tags-inside-it": "Etiketten hinzufügen",
"add-term-boost": "Begriffsverstärkung hinzufügen",
"add-terms": "Begriffe hinzufügen",
"add-test-cases-to-bundle-suite": "Testfälle zur Bundle-Suite hinzufügen",
"add-the-first-tag": "Erstes Etikett hinzufügen",
"add-to-bundle-suite": "Zur Bundle-Suite hinzufügen",
"add-to-existing-bundle-suite": "Zu bestehender Bundle-Suite hinzufügen",
"add-to-table": "Zur Tabelle hinzufügen",
Expand Down Expand Up @@ -208,6 +210,7 @@
"asset-type": "Asset-Typ",
"assets-ingested": "Assets aufgenommen",
"assets-profiled": "Assets profiliert",
"assign-an-owner": "Eigentümer zuweisen",
"assigned": "Zugewiesen",
"assigned-entity": "Zugewiesen zu {{entity}}",
"assigned-to-me": "Mir zugewiesen",
Expand Down Expand Up @@ -523,6 +526,7 @@
"cover-image": "Abdeckung",
"covered": "Bedeckt",
"create": "Erstellen",
"create-a-classification": "Klassifizierung erstellen",
"create-a-glossary": "Glossar erstellen",
"create-an-article": "Artikel erstellen",
"create-and-deploy": "Erstellen & bereitstellen",
Expand Down Expand Up @@ -701,6 +705,7 @@
"default": "Standard",
"default-persona": "Standard-Persona",
"default-role": "Standardrolle",
"define-it": "Definieren",
"define-the-action": "Aktion festlegen",
"definition": "Definition",
"delete": "Löschen",
Expand Down Expand Up @@ -1632,11 +1637,14 @@
"new": "Neu",
"new-article": "Neuer Artikel",
"new-chat": "Neuer Chat",
"new-classification": "Neue Klassifizierung",
"new-folder": "Neuer Ordner",
"new-lowercase": "new",
"new-memory": "Neue Erinnerung",
"new-metric": "Neue Metrik",
"new-password": "Neues Passwort",
"new-tab": "Neuer Tab",
"new-tag": "Neues Etikett",
"new-term": "Neuer Begriff",
"new-test-suite": "Neue Test-Suite",
"new-update-announcement": "Wir haben gerade eine neue Aktualisierung veröffentlicht!",
Expand Down Expand Up @@ -2519,6 +2527,7 @@
"tag-lowercase": "Etikett",
"tag-lowercase-plural": "Tags",
"tag-plural": "Schlagworte",
"tag-your-assets": "Ihre Assets kennzeichnen",
"tagged-with": "Getaggt mit",
"target": "Ziel",
"target-column": "Zielspalte",
Expand Down Expand Up @@ -2876,6 +2885,7 @@
"add-a-description-for-the-service": "Add a description for this service",
"add-contract-detail-description": "Definieren Sie die wichtigsten Informationen zur Einrichtung dieses Datenvertrags.",
"add-data-asset-domain": "Beginnen Sie mit dem Hinzufügen eines Dienstes oder Datenobjekts zu <0>{{domain}}</0>.",
"add-first-tag-description": "Etiketten sind die Beschriftungen, die Teams auf Assets und Spalten anwenden — definieren Sie sie hier, und sie sind überall einsatzbereit.",
"add-kpi-message": "Identifizieren Sie die Key Performance Indicators (KPIs), die den Zustand Ihrer Datenvermögenswerte am besten widerspiegeln. Überprüfen Sie Ihre Datenvermögenswerte anhand von Beschreibung, Eigentum und Stufe. Definieren Sie Ihre Zielmetriken absolut oder prozentual, um Ihren Fortschritt zu verfolgen. Legen Sie schließlich ein Start- und Enddatum fest, um Ihre Datenziele zu erreichen.",
"add-new-service-description": "Wählen Sie aus dem Bereich der Dienste aus, die {{brandName}} integriert. Um einen neuen Dienst hinzuzufügen, wählen Sie zunächst eine Dienstkategorie (Datenbank, Messaging, Dashboard oder Pipeline) aus. Wählen Sie aus der Liste der verfügbaren Dienste denjenigen aus, den Sie integrieren möchten.",
"add-policy-message": "Richtlinien werden Teams zugewiesen. In {{brandName}} ist eine Richtlinie eine Sammlung von Regeln, die den Zugriff basierend auf bestimmten Bedingungen definieren. Wir unterstützen reichhaltige SpEL (Spring Expression Language)-basierte Bedingungen. Alle von einer Entität unterstützten Operationen werden veröffentlicht. Verwenden Sie diese feinkörnigen Operationen, um die bedingten Regeln für jede Richtlinie zu definieren. Erstellen Sie gut definierte Richtlinien basierend auf bedingten Regeln, um umfangreiche Zugriffssteuerungsrollen zu erstellen.",
Expand Down Expand Up @@ -3025,6 +3035,11 @@
"choose-how-the-workflow-should-be-triggered": "Wählen Sie, wie der Workflow ausgelöst werden soll",
"choose-import-mode": "Wählen Sie, wie der ODCS-Vertrag importiert werden soll",
"choose-which-assets-this-workflow-can-act-on": "Wählen Sie, auf welche Assets dieser Workflow angewendet werden kann.",
"classification-add-tags-description": "Definieren Sie die Beschriftungen, die Ihre Teams anwenden werden.",
"classification-create-description": "Benennen Sie die Kategorie, z. B. Sensibilität oder Zertifizierung.",
"classification-empty-state-description": "Mit Klassifizierungen erstellen Sie ein einheitliches Beschriftungssystem — definieren Sie Kategorien einmal und kennzeichnen Sie Assets überall.",
"classification-empty-state-title": "Bringen Sie mit Etiketten Ordnung in Ihre Daten",
"classification-tag-assets-description": "Nutzen Sie sie für Suche, Richtlinien und Automatisierungen.",
"click-here-to-view-assets-on-explore": "(Klicken, um die gefilterten Assets auf der Explore-Seite anzuzeigen.)",
"click-text-to-view-details": "Klicken Sie auf <0>{{text}}</0>, um Details anzuzeigen.",
"closed-this-task": "hat diese Aufgabe geschlossen",
Expand Down Expand Up @@ -3575,8 +3590,13 @@
"metadata-status-missing-description": "Keine Metadaten hinzugefügt (Beschreibung, Tags, Glossarbegriffe oder Anzeigename)",
"metadata-xml-file-parsed-error": "Fehler: Ungültige SAML-Metadaten konnten nicht geparst werden {{fileName}}",
"metadata-xml-file-parsed-success": "{{fileName}} wurde erfolgreich hochgeladen und geparst",
"metric-assign-owner-description": "Geben Sie ihr einen Verantwortlichen, damit die Definition vertrauenswürdig bleibt.",
"metric-configuration-description": "Passen Sie Felder an, um das Metrikverhalten zu steuern. Sie können Felder nach Bedarf hinzufügen, entfernen, ausblenden oder deaktivieren.",
"metric-define-action-description": "Fügen Sie Glossarbegriffe, Granularität und eine klare Beschreibung hinzu.",
"metric-define-it-description": "Benennen Sie die Metrik und notieren Sie die genaue Formel.",
"metric-description": "Definieren und katalogisieren Sie standardisierte Metriken in Ihrer Organisation.",
"metric-empty-state-description": "Metriken bieten Ihrer Organisation eine zentrale Wahrheitsquelle dafür, wie Dinge gemessen werden. Definieren Sie eine Metrik einmal, und alle — von Analysten bis zur Führungsebene — rechnen mit denselben Formeln.",
"metric-empty-state-title": "Eine Definition, keine Diskussionen",
"metric-relations-require-glossary-term": "Wählen Sie einen Glossarbegriff aus, um Beziehungen hinzuzufügen.",
"metric-tags-info": "Metriken werden über Tags mit Glossarbegriffen verknüpft.",
"metrics-delete-success": "Deleted {{count}} metrics successfully.",
Expand Down
Loading
Loading