mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-10-27 00:31:42 +00:00
supported total unique user count in Team page (#18361)
* supported total distinct user count in Team page * minor improvement * fix unit test * added helpertext tooltip and change the label * minor cosmetic update (cherry picked from commit 4c4587c82be9cca9874321566aab073ad3074250)
This commit is contained in:
parent
9f60ba68f5
commit
ed937b8e08
@ -1050,13 +1050,7 @@ const TeamDetailsV1 = ({
|
||||
|
||||
const tabs = useMemo(
|
||||
() =>
|
||||
getTabs(
|
||||
currentTeam,
|
||||
isGroupType,
|
||||
isOrganization,
|
||||
teamCount,
|
||||
assetsCount
|
||||
).map((tab) => ({
|
||||
getTabs(currentTeam, isGroupType, teamCount, assetsCount).map((tab) => ({
|
||||
...tab,
|
||||
label: (
|
||||
<TabsLabel
|
||||
|
||||
@ -18,7 +18,6 @@ import { TeamsPageTab } from './team.interface';
|
||||
export const getTabs = (
|
||||
currentTeam: Team,
|
||||
isGroupType: boolean,
|
||||
isOrganization: boolean,
|
||||
teamsCount: number,
|
||||
assetsCount: number
|
||||
) => {
|
||||
@ -52,13 +51,9 @@ export const getTabs = (
|
||||
|
||||
const commonTabs = [tabs.roles, tabs.policies];
|
||||
|
||||
if (isOrganization) {
|
||||
return [tabs.teams, ...commonTabs];
|
||||
}
|
||||
|
||||
if (isGroupType) {
|
||||
return [tabs.users, tabs.assets, ...commonTabs];
|
||||
}
|
||||
|
||||
return [tabs.teams, tabs.users, ...commonTabs];
|
||||
return [tabs.teams, ...commonTabs];
|
||||
};
|
||||
|
||||
@ -10,7 +10,11 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
import { CheckOutlined, CloseOutlined } from '@ant-design/icons';
|
||||
import {
|
||||
CheckOutlined,
|
||||
CloseOutlined,
|
||||
InfoCircleOutlined,
|
||||
} from '@ant-design/icons';
|
||||
import { Button, Divider, Form, Input, Space, Tooltip, Typography } from 'antd';
|
||||
import { isEmpty, last } from 'lodash';
|
||||
import React, { useCallback, useMemo, useState } from 'react';
|
||||
@ -18,6 +22,7 @@ import { useTranslation } from 'react-i18next';
|
||||
import { ReactComponent as EditIcon } from '../../../../../assets/svg/edit-new.svg';
|
||||
import {
|
||||
DE_ACTIVE_COLOR,
|
||||
GRAYED_OUT_COLOR,
|
||||
ICON_DIMENSION,
|
||||
NO_DATA_PLACEHOLDER,
|
||||
} from '../../../../../constants/constants';
|
||||
@ -314,6 +319,29 @@ const TeamsInfo = ({
|
||||
updateTeamSubscription={updateTeamSubscription}
|
||||
/>
|
||||
{teamTypeElement}
|
||||
|
||||
<Divider type="vertical" />
|
||||
|
||||
<Space size={4}>
|
||||
<Divider type="vertical" />
|
||||
<Typography.Text className="text-grey-muted d-flex items-center">
|
||||
{t('label.total-user-plural')}
|
||||
<Tooltip
|
||||
destroyTooltipOnHide
|
||||
title={t('message.team-distinct-user-description')}>
|
||||
<InfoCircleOutlined
|
||||
className="m-x-xss"
|
||||
data-testid="helper-icon"
|
||||
style={{ color: GRAYED_OUT_COLOR }}
|
||||
/>
|
||||
</Tooltip>
|
||||
{' : '}
|
||||
</Typography.Text>
|
||||
|
||||
<Typography.Text className="font-medium" data-testid="team-user-count">
|
||||
{currentTeam.userCount}
|
||||
</Typography.Text>
|
||||
</Space>
|
||||
</Space>
|
||||
);
|
||||
};
|
||||
|
||||
@ -93,8 +93,10 @@ describe('TeamsInfo', () => {
|
||||
render(<TeamsInfo {...teamProps} />);
|
||||
});
|
||||
const domainLabel = screen.getByText('DomainLabel');
|
||||
const userCount = screen.getByTestId('team-user-count');
|
||||
|
||||
expect(domainLabel).toBeInTheDocument();
|
||||
expect(userCount).toContainHTML('1');
|
||||
});
|
||||
|
||||
it('should handle edit team email', () => {
|
||||
|
||||
@ -1229,6 +1229,7 @@
|
||||
"total": "Total",
|
||||
"total-entity": "Gesamte {{entity}}",
|
||||
"total-index-sent": "Gesamtindex gesendet",
|
||||
"total-user-plural": "Total Users",
|
||||
"tour": "Tour",
|
||||
"tracking": "Verfolgung",
|
||||
"transportation-strategy": "Transportstrategie",
|
||||
@ -1808,6 +1809,7 @@
|
||||
"system-tag-delete-disable-message": "Das Löschen von systemgenerierten Tags ist nicht zulässig. Sie können versuchen, den Tag stattdessen zu deaktivieren.",
|
||||
"tag-update-confirmation": "Would you like to proceed with updating the tags?",
|
||||
"take-quick-product-tour": "Machen Sie eine Produkttour, um loszulegen!",
|
||||
"team-distinct-user-description": "The total number of distinct users belongs to this team.",
|
||||
"team-moved-success": "Team erfolgreich verschoben!",
|
||||
"team-no-asset": "Ihr Team hat keine Vermögenswerte.",
|
||||
"test-case-schedule-description": "The data quality tests can be scheduled to run at the desired frequency. The timezone is in UTC.",
|
||||
|
||||
@ -1229,6 +1229,7 @@
|
||||
"total": "Total",
|
||||
"total-entity": "Total {{entity}}",
|
||||
"total-index-sent": " Total index sent",
|
||||
"total-user-plural": "Total Users",
|
||||
"tour": "Tour",
|
||||
"tracking": "Tracking",
|
||||
"transportation-strategy": "Transportation Strategy",
|
||||
@ -1808,6 +1809,7 @@
|
||||
"system-tag-delete-disable-message": "Deleting a system generated tags is not allowed. You can try disabling the tag instead.",
|
||||
"tag-update-confirmation": "Would you like to proceed with updating the tags?",
|
||||
"take-quick-product-tour": "Take a product tour to get started!",
|
||||
"team-distinct-user-description": "The total number of distinct users belongs to this team.",
|
||||
"team-moved-success": "Team moved successfully!",
|
||||
"team-no-asset": "Your team does not have any assets.",
|
||||
"test-case-schedule-description": "The data quality tests can be scheduled to run at the desired frequency. The timezone is in UTC.",
|
||||
|
||||
@ -1229,6 +1229,7 @@
|
||||
"total": "Total",
|
||||
"total-entity": "Total de {{entity}}",
|
||||
"total-index-sent": "Total de índices enviados",
|
||||
"total-user-plural": "Total Users",
|
||||
"tour": "Recorrido",
|
||||
"tracking": "Seguimiento",
|
||||
"transportation-strategy": "Estrategia de transporte",
|
||||
@ -1808,6 +1809,7 @@
|
||||
"system-tag-delete-disable-message": "No se permite eliminar una etiqueta generada por el sistema. Puedes intentar desactivar la etiqueta en su lugar.",
|
||||
"tag-update-confirmation": "Would you like to proceed with updating the tags?",
|
||||
"take-quick-product-tour": "¡Realiza un recorrido rápido del producto para comenzar!",
|
||||
"team-distinct-user-description": "The total number of distinct users belongs to this team.",
|
||||
"team-moved-success": "¡Equipo movido con éxito!",
|
||||
"team-no-asset": "Tu equipo no tiene ningún activo.",
|
||||
"test-case-schedule-description": "The data quality tests can be scheduled to run at the desired frequency. The timezone is in UTC.",
|
||||
|
||||
@ -1229,6 +1229,7 @@
|
||||
"total": "Total",
|
||||
"total-entity": "Total {{entity}}",
|
||||
"total-index-sent": "Total d'Index Envoyés",
|
||||
"total-user-plural": "Total Users",
|
||||
"tour": "Visite",
|
||||
"tracking": "Suivi",
|
||||
"transportation-strategy": "Stratégie de Transport",
|
||||
@ -1808,6 +1809,7 @@
|
||||
"system-tag-delete-disable-message": "Supprimer un tag système n'est pas permis. Tentez plutôt de désactiver ce tag.",
|
||||
"tag-update-confirmation": "Would you like to proceed with updating the tags?",
|
||||
"take-quick-product-tour": "Faites une visite guidée pour vous lancer!",
|
||||
"team-distinct-user-description": "The total number of distinct users belongs to this team.",
|
||||
"team-moved-success": "L'équipe a été déplacée avec succès !",
|
||||
"team-no-asset": "Votre équipe n'a pas d'actifs de données",
|
||||
"test-case-schedule-description": "Les tests de quelité de données peuvent être planifiés pour tourner à la fréquence désirée. La timezone est en UTC.",
|
||||
|
||||
@ -1229,6 +1229,7 @@
|
||||
"total": "Total",
|
||||
"total-entity": "סך הכל {{entity}}",
|
||||
"total-index-sent": "סך הכל שלח אינדקס",
|
||||
"total-user-plural": "Total Users",
|
||||
"tour": "סיור",
|
||||
"tracking": "מעקב",
|
||||
"transportation-strategy": "אסטרטגיית הובלה",
|
||||
@ -1808,6 +1809,7 @@
|
||||
"system-tag-delete-disable-message": "מחיקת תגיות שנוצרו באופן מערכתי אינה מותרת. ניתן לנסות לנטרל את התג במקום.",
|
||||
"tag-update-confirmation": "Would you like to proceed with updating the tags?",
|
||||
"take-quick-product-tour": "התחל סיור במוצר כדי להתחיל!",
|
||||
"team-distinct-user-description": "The total number of distinct users belongs to this team.",
|
||||
"team-moved-success": "הקבוצה הועברה בהצלחה!",
|
||||
"team-no-asset": "לקבוצתך אין נכסים.",
|
||||
"test-case-schedule-description": "The data quality tests can be scheduled to run at the desired frequency. The timezone is in UTC.",
|
||||
|
||||
@ -1229,6 +1229,7 @@
|
||||
"total": "Total",
|
||||
"total-entity": "合計 {{entity}}",
|
||||
"total-index-sent": " Total index sent",
|
||||
"total-user-plural": "Total Users",
|
||||
"tour": "ツアー",
|
||||
"tracking": "トラッキング",
|
||||
"transportation-strategy": "Transportation Strategy",
|
||||
@ -1808,6 +1809,7 @@
|
||||
"system-tag-delete-disable-message": "Deleting a system generated tags is not allowed. You can try disabling the tag instead.",
|
||||
"tag-update-confirmation": "Would you like to proceed with updating the tags?",
|
||||
"take-quick-product-tour": "Take a product tour to get started!",
|
||||
"team-distinct-user-description": "The total number of distinct users belongs to this team.",
|
||||
"team-moved-success": "チームの移動が成功しました!",
|
||||
"team-no-asset": "あなたのチームはアセットを持っていません。",
|
||||
"test-case-schedule-description": "The data quality tests can be scheduled to run at the desired frequency. The timezone is in UTC.",
|
||||
|
||||
@ -1229,6 +1229,7 @@
|
||||
"total": "Total",
|
||||
"total-entity": "{{entity}} totaal",
|
||||
"total-index-sent": "Index verzonden totaal",
|
||||
"total-user-plural": "Total Users",
|
||||
"tour": "Rondleiding",
|
||||
"tracking": "Tracking",
|
||||
"transportation-strategy": "Transportstrategie",
|
||||
@ -1808,6 +1809,7 @@
|
||||
"system-tag-delete-disable-message": "Het verwijderen van door het systeem gegenereerde tags is niet toegestaan. Je kunt proberen de tag uit te schakelen.",
|
||||
"tag-update-confirmation": "Would you like to proceed with updating the tags?",
|
||||
"take-quick-product-tour": "Maak een producttour om aan de slag te gaan!",
|
||||
"team-distinct-user-description": "The total number of distinct users belongs to this team.",
|
||||
"team-moved-success": "Team succesvol verplaatst!",
|
||||
"team-no-asset": "Je team heeft geen assets.",
|
||||
"test-case-schedule-description": "The data quality tests can be scheduled to run at the desired frequency. The timezone is in UTC.",
|
||||
|
||||
@ -1238,6 +1238,7 @@
|
||||
"total": "مجموع",
|
||||
"total-entity": "مجموع {{entity}}",
|
||||
"total-index-sent": "مجموع ایندکس ارسالشده",
|
||||
"total-user-plural": "Total Users",
|
||||
"tour": "تور",
|
||||
"tracking": "ردیابی",
|
||||
"transportation-strategy": "استراتژی حمل و نقل",
|
||||
@ -1816,6 +1817,7 @@
|
||||
"system-tag-delete-disable-message": "حذف برچسبهای تولید شده توسط سیستم مجاز نیست. میتوانید برچسب را غیرفعال کنید.",
|
||||
"tag-update-confirmation": "آیا میخواهید بهروزرسانی برچسبها را ادامه دهید؟",
|
||||
"take-quick-product-tour": "یک تور محصولی برای شروع بگذارید!",
|
||||
"team-distinct-user-description": "The total number of distinct users belongs to this team.",
|
||||
"team-moved-success": "تیم با موفقیت منتقل شد!",
|
||||
"team-no-asset": "تیم شما هیچ دارایی ندارد.",
|
||||
"test-case-schedule-description": "آزمونهای کیفیت داده میتوانند به صورت دورهای برنامهریزی شوند. منطقه زمانی به صورت UTC است.",
|
||||
|
||||
@ -1229,6 +1229,7 @@
|
||||
"total": "Total",
|
||||
"total-entity": "Total de {{entity}}",
|
||||
"total-index-sent": " Total de índice enviado",
|
||||
"total-user-plural": "Total Users",
|
||||
"tour": "Tour",
|
||||
"tracking": "Rastreamento",
|
||||
"transportation-strategy": "Estratégia de Transporte",
|
||||
@ -1808,6 +1809,7 @@
|
||||
"system-tag-delete-disable-message": "Não é permitido excluir tags geradas pelo sistema. Você pode tentar desativar a tag em vez disso.",
|
||||
"tag-update-confirmation": "Would you like to proceed with updating the tags?",
|
||||
"take-quick-product-tour": "Faça um tour pelo produto para começar!",
|
||||
"team-distinct-user-description": "The total number of distinct users belongs to this team.",
|
||||
"team-moved-success": "Equipe movida com sucesso!",
|
||||
"team-no-asset": "Sua equipe não possui ativos.",
|
||||
"test-case-schedule-description": "The data quality tests can be scheduled to run at the desired frequency. The timezone is in UTC.",
|
||||
|
||||
@ -1229,6 +1229,7 @@
|
||||
"total": "Total",
|
||||
"total-entity": "Все {{entity}}",
|
||||
"total-index-sent": "Все индексы отправлены",
|
||||
"total-user-plural": "Total Users",
|
||||
"tour": "Руководство пользователя",
|
||||
"tracking": "Отслеживание",
|
||||
"transportation-strategy": "Стратегия транспортировки",
|
||||
@ -1808,6 +1809,7 @@
|
||||
"system-tag-delete-disable-message": "Удаление сгенерированных системой тегов не допускается. Вместо этого вы можете попробовать отключить тег.",
|
||||
"tag-update-confirmation": "Would you like to proceed with updating the tags?",
|
||||
"take-quick-product-tour": "Ознакомьтесь с продуктом, чтобы начать работу!",
|
||||
"team-distinct-user-description": "The total number of distinct users belongs to this team.",
|
||||
"team-moved-success": "Команда успешно переехала!",
|
||||
"team-no-asset": "У вашей команды нет объектов.",
|
||||
"test-case-schedule-description": "The data quality tests can be scheduled to run at the desired frequency. The timezone is in UTC.",
|
||||
|
||||
@ -1229,6 +1229,7 @@
|
||||
"total": "Total",
|
||||
"total-entity": "所有{{entity}}",
|
||||
"total-index-sent": "已发送的索引",
|
||||
"total-user-plural": "Total Users",
|
||||
"tour": "导览",
|
||||
"tracking": "跟踪",
|
||||
"transportation-strategy": "传输协议",
|
||||
@ -1808,6 +1809,7 @@
|
||||
"system-tag-delete-disable-message": "无法删除系统默认的标签, 您可以尝试禁用标签",
|
||||
"tag-update-confirmation": "Would you like to proceed with updating the tags?",
|
||||
"take-quick-product-tour": "快速查看产品导览",
|
||||
"team-distinct-user-description": "The total number of distinct users belongs to this team.",
|
||||
"team-moved-success": "团队移动成功",
|
||||
"team-no-asset": "您的团队没有任何资产",
|
||||
"test-case-schedule-description": "数据质控测试可按所需频率安排运行, 时区为 UTC",
|
||||
|
||||
@ -154,13 +154,17 @@ describe('Test Teams Page', () => {
|
||||
|
||||
expect(mockGetTeamByName.mock.calls[0]).toEqual([
|
||||
'test',
|
||||
{ fields: ['users', 'parents', 'profile', 'owners'], include: 'all' },
|
||||
{
|
||||
fields: ['users', 'userCount', 'parents', 'profile', 'owners'],
|
||||
include: 'all',
|
||||
},
|
||||
]);
|
||||
expect(mockGetTeamByName.mock.calls[1]).toEqual([
|
||||
'test',
|
||||
{
|
||||
fields: [
|
||||
'users',
|
||||
'userCount',
|
||||
'defaultRoles',
|
||||
'policies',
|
||||
'childrenCount',
|
||||
|
||||
@ -218,6 +218,7 @@ const TeamsPage = () => {
|
||||
const data = await getTeamByName(name, {
|
||||
fields: [
|
||||
TabSpecificField.USERS,
|
||||
TabSpecificField.USER_COUNT,
|
||||
TabSpecificField.PARENTS,
|
||||
TabSpecificField.PROFILE,
|
||||
TabSpecificField.OWNERS,
|
||||
@ -242,6 +243,7 @@ const TeamsPage = () => {
|
||||
const data = await getTeamByName(name, {
|
||||
fields: [
|
||||
TabSpecificField.USERS,
|
||||
TabSpecificField.USER_COUNT,
|
||||
TabSpecificField.DEFAULT_ROLES,
|
||||
TabSpecificField.POLICIES,
|
||||
TabSpecificField.CHILDREN_COUNT,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user