Skip to content

Commit 017bea6

Browse files
fix(pci-instances): display vnc tab when api return the action
ref: #TAPC-5134 Signed-off-by: tsiorifamonjena <[email protected]> Co-authored-by: CDS Translator Agent <[email protected]>
1 parent 2aad748 commit 017bea6

File tree

13 files changed

+73
-38
lines changed

13 files changed

+73
-38
lines changed

packages/manager/apps/pci-instances/public/translations/dashboard/Messages_de_DE.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@
3030
"pci_instances_dashboard_backup_empty_message": "Sie haben kein Backup",
3131
"pci_instances_dashboard_backup_title": "Verwaltung des Backups",
3232
"pci_instances_dashboard_backup_number_of_backups": "Anzahl der Backups der Instanz",
33-
"pci_instances_dashboard_backup_last_updated_backups": "Datum des letzten Backups"
33+
"pci_instances_dashboard_backup_last_updated_backups": "Datum des letzten Backups",
34+
"pci_instances_dashboard_tab_vnc_disabled_text": "Der Status dieser Instanz erlaubt keine Verbindung über die VNC-Konsole."
3435
}

packages/manager/apps/pci-instances/public/translations/dashboard/Messages_en_GB.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@
3030
"pci_instances_dashboard_backup_empty_message": "You do not have a backup",
3131
"pci_instances_dashboard_backup_title": "Backup management",
3232
"pci_instances_dashboard_backup_number_of_backups": "Instance backup count",
33-
"pci_instances_dashboard_backup_last_updated_backups": "Date of last backup"
33+
"pci_instances_dashboard_backup_last_updated_backups": "Date of last backup",
34+
"pci_instances_dashboard_tab_vnc_disabled_text": "The state of this instance does not allow connection via the VNC console."
3435
}

packages/manager/apps/pci-instances/public/translations/dashboard/Messages_es_ES.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@
3030
"pci_instances_dashboard_backup_empty_message": "No tiene backup",
3131
"pci_instances_dashboard_backup_title": "Gestión del backup",
3232
"pci_instances_dashboard_backup_number_of_backups": "Número de backups de la instancia",
33-
"pci_instances_dashboard_backup_last_updated_backups": "Fecha del último backup"
33+
"pci_instances_dashboard_backup_last_updated_backups": "Fecha del último backup",
34+
"pci_instances_dashboard_tab_vnc_disabled_text": "El estado de esta instancia no permite la conexión a través de la consola VNC"
3435
}

packages/manager/apps/pci-instances/public/translations/dashboard/Messages_fr_CA.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@
3030
"pci_instances_dashboard_backup_empty_message": "Vous n'avez pas de backup",
3131
"pci_instances_dashboard_backup_title": "Gestion du backup",
3232
"pci_instances_dashboard_backup_number_of_backups": "Nombre de backups de l'instance",
33-
"pci_instances_dashboard_backup_last_updated_backups": "Date du dernier backup"
33+
"pci_instances_dashboard_backup_last_updated_backups": "Date du dernier backup",
34+
"pci_instances_dashboard_tab_vnc_disabled_text": "L'état de cette instance ne permet pas la connexion via la console VNC"
3435
}

packages/manager/apps/pci-instances/public/translations/dashboard/Messages_fr_FR.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@
3030
"pci_instances_dashboard_backup_empty_message": "Vous n'avez pas de backup",
3131
"pci_instances_dashboard_backup_title": "Gestion du backup",
3232
"pci_instances_dashboard_backup_number_of_backups": "Nombre de backups de l'instance",
33-
"pci_instances_dashboard_backup_last_updated_backups": "Date du dernier backup"
33+
"pci_instances_dashboard_backup_last_updated_backups": "Date du dernier backup",
34+
"pci_instances_dashboard_tab_vnc_disabled_text": "L'état de cette instance ne permet pas la connexion via la console VNC"
3435
}

packages/manager/apps/pci-instances/public/translations/dashboard/Messages_it_IT.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@
3030
"pci_instances_dashboard_backup_empty_message": "Non hai backup",
3131
"pci_instances_dashboard_backup_title": "Gestione del backup",
3232
"pci_instances_dashboard_backup_number_of_backups": "Numero di backup dell’istanza",
33-
"pci_instances_dashboard_backup_last_updated_backups": "Data dell'ultimo backup"
33+
"pci_instances_dashboard_backup_last_updated_backups": "Data dell'ultimo backup",
34+
"pci_instances_dashboard_tab_vnc_disabled_text": "Lo stato di questa istanza non consente la connessione tramite la console VNC"
3435
}

packages/manager/apps/pci-instances/public/translations/dashboard/Messages_pl_PL.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@
3030
"pci_instances_dashboard_backup_empty_message": "Nie posiadasz kopii zapasowej",
3131
"pci_instances_dashboard_backup_title": "Zarządzanie kopiami zapasowymi",
3232
"pci_instances_dashboard_backup_number_of_backups": "Liczba kopii zapasowych instancji",
33-
"pci_instances_dashboard_backup_last_updated_backups": "Data ostatniego backupu"
33+
"pci_instances_dashboard_backup_last_updated_backups": "Data ostatniego backupu",
34+
"pci_instances_dashboard_tab_vnc_disabled_text": "Stan tej instancji nie pozwala na połączenie przez konsolę VNC."
3435
}

packages/manager/apps/pci-instances/public/translations/dashboard/Messages_pt_PT.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@
3030
"pci_instances_dashboard_backup_empty_message": "Não possui backups",
3131
"pci_instances_dashboard_backup_title": "Gestão do backup",
3232
"pci_instances_dashboard_backup_number_of_backups": "Número de backups da instância",
33-
"pci_instances_dashboard_backup_last_updated_backups": "Data do último backup"
33+
"pci_instances_dashboard_backup_last_updated_backups": "Data do último backup",
34+
"pci_instances_dashboard_tab_vnc_disabled_text": "O estado desta instância não permite a conexão via console VNC"
3435
}

packages/manager/apps/pci-instances/src/components/tab/TabsPanel.component.tsx

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,21 @@
11
import { FC, useEffect, useState } from 'react';
22
import { useLocation, useNavigate } from 'react-router-dom';
3-
import { Tabs, TabList, Tab, TabsValueChangeEvent } from '@ovhcloud/ods-react';
3+
import {
4+
Tabs,
5+
TabList,
6+
Tab,
7+
TabsValueChangeEvent,
8+
Tooltip,
9+
TooltipTrigger,
10+
TooltipContent,
11+
} from '@ovhcloud/ods-react';
412

513
type TTabItem = {
614
label: string;
715
to: string;
816
badge?: string;
17+
disabled?: boolean;
18+
tooltipText?: string;
919
};
1020

1121
type TTabsPanelProps = {
@@ -30,9 +40,16 @@ const TabsPanel: FC<TTabsPanelProps> = ({ tabs }) => {
3040
<Tabs value={activeTab} onValueChange={handleTabChange}>
3141
<TabList>
3242
{tabs.map((tab) => (
33-
<Tab key={tab.to} value={tab.to}>
34-
{tab.label}
35-
</Tab>
43+
<Tooltip key={tab.to}>
44+
<TooltipTrigger asChild>
45+
<Tab value={tab.to} disabled={tab.disabled}>
46+
{tab.label}
47+
</Tab>
48+
</TooltipTrigger>
49+
{tab.tooltipText && (
50+
<TooltipContent>{tab.tooltipText}</TooltipContent>
51+
)}
52+
</Tooltip>
3653
))}
3754
</TabList>
3855
</Tabs>

packages/manager/apps/pci-instances/src/data/hooks/instance/selectors/instances.selector.ts

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -120,21 +120,25 @@ const mapInstanceAddresses = (instance: TAggregatedInstanceDto) =>
120120
return acc.set(type, [rest]);
121121
}, new Map<TInstanceAddressType, TAggregatedInstanceAddress[]>());
122122

123+
const isToDisplayAction = ({ name }: { name: TActionName }) => name !== 'vnc';
124+
123125
const mapInstanceActions = (
124126
instance: TAggregatedInstanceDto,
125127
projectUrl: string,
126128
): TAggregatedInstanceActions =>
127-
instance.actions.reduce<TAggregatedInstanceActions>((acc, action) => {
128-
const { group, name } = action;
129-
const newAction = {
130-
label: `pci_instances_list_action_${name}`,
131-
link: getActionHrefByName(projectUrl, name, instance),
132-
};
133-
const foundAction = acc.get(group);
134-
if (!foundAction) return acc.set(group, [newAction]);
135-
foundAction.push(newAction);
136-
return acc;
137-
}, new Map() as TAggregatedInstanceActions);
129+
instance.actions
130+
.filter(isToDisplayAction)
131+
.reduce<TAggregatedInstanceActions>((acc, action) => {
132+
const { group, name } = action;
133+
const newAction = {
134+
label: `pci_instances_list_action_${name}`,
135+
link: getActionHrefByName(projectUrl, name, instance),
136+
};
137+
const foundAction = acc.get(group);
138+
if (!foundAction) return acc.set(group, [newAction]);
139+
foundAction.push(newAction);
140+
return acc;
141+
}, new Map() as TAggregatedInstanceActions);
138142

139143
export const instancesSelector = (
140144
{ pages }: InfiniteData<TAggregatedInstanceDto[], number>,

0 commit comments

Comments
 (0)