Skip to content

Commit

Permalink
feat(pci-cold-archive): add modal to archive container
Browse files Browse the repository at this point in the history
ref: DTCORE-3074
Signed-off-by: Yoann Fievez <[email protected]>
  • Loading branch information
kqesar committed Feb 7, 2025
1 parent 8d22bfe commit 3252bc2
Show file tree
Hide file tree
Showing 18 changed files with 528 additions and 27 deletions.
4 changes: 2 additions & 2 deletions packages/manager/apps/pci-cold-archive/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
"@ovh-ux/manager-react-shell-client": "^0.8.5",
"@ovh-ux/manager-tailwind-config": "^0.2.1",
"@ovh-ux/shell": "^4.1.2",
"@ovhcloud/ods-components": "18.5.0",
"@ovhcloud/ods-themes": "18.5.0",
"@ovhcloud/ods-components": "18.5.1",
"@ovhcloud/ods-themes": "18.5.1",
"@tanstack/react-query": "^5.51.21",
"@tanstack/react-table": "^8.20.1",
"date-fns": "^4.1.0",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"pci_projects_project_storages_cold_archive_containers_container_archive_title": "Ihren Container archivieren",
"pci_projects_project_storages_cold_archive_containers_container_archive_description": "Sie sind im Begriff, Ihren Container {{ containerName }} zu archivieren.",
"pci_projects_project_storages_cold_archive_containers_container_archive_submit_label": "Archivieren",
"pci_projects_project_storages_cold_archive_containers_container_archive_cancel_label": "Abbrechen",
"pci_projects_project_storages_cold_archive_containers_container_archive_success_message": "Der Container {{ containerName }} wird gerade archiviert.",
"pci_projects_project_storages_cold_archive_containers_container_archive_error_message": "Beim Archivieren des Containers {{ containerName }} ist ein Fehler aufgetreten: {{ message }}",
"pci_projects_project_storages_cold_archive_containers_container_archive_description_2": "Wenn Sie eine Aufbewahrungsdauer konfigurieren, wird Ihr Archiv gesperrt und Sie können Ihre Daten während der gesamten Aufbewahrungsdauer nicht mehr löschen.",
"pci_projects_project_storages_cold_archive_containers_container_archive_has_retention": "Beibehaltungsdauer planen",
"pci_projects_project_storages_cold_archive_containers_container_archive_has_no_retention": "Aufbewahrungsdauer nicht planen",
"pci_projects_project_storages_cold_archive_containers_container_archive_retention_days": "Anzahl der Aufbewahrungstage hinzufügen",
"pci_projects_project_storages_cold_archive_containers_container_retention_warning": "Ihre Vorhaltedauer endet am <strong> {{ date }}</strong> .",
"pci_projects_project_storages_cold_archive_containers_container_retention_warning_2": "Sie können erst nach Ablauf dieses Datums mit der Löschung Ihrer Daten fortfahren.",
"pci_projects_project_storages_cold_archive_containers_container_retention_retention_value_wartning": "Anzahl der Aufbewahrungstage hinzufügen (mindestens 1 Tag, maximal 4500 Tage)"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"pci_projects_project_storages_cold_archive_containers_container_archive_title": "Archive your container",
"pci_projects_project_storages_cold_archive_containers_container_archive_description": "You are about to archive your {{ containerName }} container.",
"pci_projects_project_storages_cold_archive_containers_container_archive_submit_label": "Archive",
"pci_projects_project_storages_cold_archive_containers_container_archive_cancel_label": "Exit",
"pci_projects_project_storages_cold_archive_containers_container_archive_success_message": "Archiving the {{containerName}} container.",
"pci_projects_project_storages_cold_archive_containers_container_archive_error_message": "An error has occurred archiving the {{containerName}} container: {{message}}",
"pci_projects_project_storages_cold_archive_containers_container_archive_description_2": "By configuring a retention period, your archive will be locked and you will no longer be able to delete your data during the entire retention period.",
"pci_projects_project_storages_cold_archive_containers_container_archive_has_retention": "Schedule a retention period",
"pci_projects_project_storages_cold_archive_containers_container_archive_has_no_retention": "Do not schedule a retention period",
"pci_projects_project_storages_cold_archive_containers_container_archive_retention_days": "Add the number of retention days",
"pci_projects_project_storages_cold_archive_containers_container_retention_warning": "Your retention period will end on <strong> {{ date }}</strong> .",
"pci_projects_project_storages_cold_archive_containers_container_retention_warning_2": "You can only delete your data once this date has passed.",
"pci_projects_project_storages_cold_archive_containers_container_retention_retention_value_wartning": "Add the number of retention days (minimum 1 day, maximum 4,500 days)"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"pci_projects_project_storages_cold_archive_containers_container_archive_title": "Archivar el contenedor",
"pci_projects_project_storages_cold_archive_containers_container_archive_description": "Va a archivar su contenedor {{ containerName }}.",
"pci_projects_project_storages_cold_archive_containers_container_archive_submit_label": "Archivar",
"pci_projects_project_storages_cold_archive_containers_container_archive_cancel_label": "Cancelar",
"pci_projects_project_storages_cold_archive_containers_container_archive_success_message": "El contenedor {{ containerName }} se está archivando...",
"pci_projects_project_storages_cold_archive_containers_container_archive_error_message": "Se ha producido un error al archivar el contenedor {{ containerName }}: {{ message }}.",
"pci_projects_project_storages_cold_archive_containers_container_archive_description_2": "Al configurar una duración de retención, el archivo se bloqueará y no podrá eliminar sus datos durante todo el período de retención.",
"pci_projects_project_storages_cold_archive_containers_container_archive_has_retention": "Programar una duración de retención",
"pci_projects_project_storages_cold_archive_containers_container_archive_has_no_retention": "No programar duración de retención",
"pci_projects_project_storages_cold_archive_containers_container_archive_retention_days": "Añadir el número de días de retención",
"pci_projects_project_storages_cold_archive_containers_container_retention_warning": "Su período de retención finalizará el <strong> {{ date }}</strong> .",
"pci_projects_project_storages_cold_archive_containers_container_retention_warning_2": "Solo podrá eliminar sus datos una vez superada esta fecha.",
"pci_projects_project_storages_cold_archive_containers_container_retention_retention_value_wartning": "Añadir el número de días de retención (mínimo 1 día, máximo 4500 días)"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"pci_projects_project_storages_cold_archive_containers_container_archive_title": "Archiver votre conteneur",
"pci_projects_project_storages_cold_archive_containers_container_archive_description": "Vous êtes sur le point d'archiver votre conteneur {{ containerName }}.",
"pci_projects_project_storages_cold_archive_containers_container_archive_description_2": "En configurant une durée de rétention, votre archive sera verrouillée et vous ne pourrez plus supprimer vos données pendant toute la période de rétention.",
"pci_projects_project_storages_cold_archive_containers_container_archive_submit_label": "Archiver",
"pci_projects_project_storages_cold_archive_containers_container_archive_cancel_label": "Annuler",
"pci_projects_project_storages_cold_archive_containers_container_archive_success_message": "Le conteneur {{ containerName }} est en cours d'archivage.",
"pci_projects_project_storages_cold_archive_containers_container_archive_error_message": "Une erreur est survenue lors de l'archivage du conteneur {{ containerName }} : {{ message }}.",
"pci_projects_project_storages_cold_archive_containers_container_archive_has_retention": "Planifier une durée de rétention",
"pci_projects_project_storages_cold_archive_containers_container_archive_has_no_retention": "Ne pas planifier de durée de rétention",
"pci_projects_project_storages_cold_archive_containers_container_archive_retention_days": "Ajouter le nombre de jours de rétention",
"pci_projects_project_storages_cold_archive_containers_container_retention_warning": "Votre durée de rétention prendra fin le <strong>{{ date }}</strong>.",
"pci_projects_project_storages_cold_archive_containers_container_retention_warning_2": "Vous ne pourrez procéder à la suppression de vos données qu'une fois cette date passée.",
"pci_projects_project_storages_cold_archive_containers_container_retention_retention_value_wartning": "Ajouter le nombre de jours de rétention (minimum 1 jour, maximum 4500 jours)"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"pci_projects_project_storages_cold_archive_containers_container_archive_title": "Archiver votre conteneur",
"pci_projects_project_storages_cold_archive_containers_container_archive_description": "Vous êtes sur le point d'archiver votre conteneur {{ containerName }}.",
"pci_projects_project_storages_cold_archive_containers_container_archive_description_2": "En configurant une durée de rétention, votre archive sera verrouillée et vous ne pourrez plus supprimer vos données pendant toute la période de rétention.",
"pci_projects_project_storages_cold_archive_containers_container_archive_submit_label": "Archiver",
"pci_projects_project_storages_cold_archive_containers_container_archive_cancel_label": "Annuler",
"pci_projects_project_storages_cold_archive_containers_container_archive_success_message": "Le conteneur {{ containerName }} est en cours d'archivage.",
"pci_projects_project_storages_cold_archive_containers_container_archive_error_message": "Une erreur est survenue lors de l'archivage du conteneur {{ containerName }} : {{ message }}.",
"pci_projects_project_storages_cold_archive_containers_container_archive_has_retention": "Planifier une durée de rétention",
"pci_projects_project_storages_cold_archive_containers_container_archive_has_no_retention": "Ne pas planifier de durée de rétention",
"pci_projects_project_storages_cold_archive_containers_container_archive_retention_days": "Ajouter le nombre de jours de rétention",
"pci_projects_project_storages_cold_archive_containers_container_retention_warning": "Votre durée de rétention prendra fin le <strong>{{ date }}</strong>.",
"pci_projects_project_storages_cold_archive_containers_container_retention_warning_2": "Vous ne pourrez procéder à la suppression de vos données qu'une fois cette date passée.",
"pci_projects_project_storages_cold_archive_containers_container_retention_retention_value_wartning": "Ajouter le nombre de jours de rétention (minimum 1 jour, maximum 4500 jours)"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"pci_projects_project_storages_cold_archive_containers_container_archive_title": "Archiviare il container",
"pci_projects_project_storages_cold_archive_containers_container_archive_description": "Stai per archiviare il container {{ containerName }}.",
"pci_projects_project_storages_cold_archive_containers_container_archive_submit_label": "Archivia",
"pci_projects_project_storages_cold_archive_containers_container_archive_cancel_label": "Annullare",
"pci_projects_project_storages_cold_archive_containers_container_archive_success_message": "Archiviazione del container {{ containerName }} in corso...",
"pci_projects_project_storages_cold_archive_containers_container_archive_error_message": "Si è verificato un errore durante l'archiviazione del container {{ containerName }}: {{ message }}",
"pci_projects_project_storages_cold_archive_containers_container_archive_description_2": "Impostando una durata di conservazione, l'archivio verrà bloccato e non sarà possibile eliminare i dati per l'intero periodo di conservazione.",
"pci_projects_project_storages_cold_archive_containers_container_archive_has_retention": "Pianificare un periodo di conservazione",
"pci_projects_project_storages_cold_archive_containers_container_archive_has_no_retention": "Non pianificare periodi di conservazione",
"pci_projects_project_storages_cold_archive_containers_container_archive_retention_days": "Aggiungi il numero di giorni di retention",
"pci_projects_project_storages_cold_archive_containers_container_retention_warning": "Il periodo di retention terminerà il <strong>{{ date }}</strong> .",
"pci_projects_project_storages_cold_archive_containers_container_retention_warning_2": "I tuoi dati potranno essere cancellati solo dopo questa data.",
"pci_projects_project_storages_cold_archive_containers_container_retention_retention_value_wartning": "Aggiungere il numero di giorni di retention (minimo 1 giorno, massimo 4500 giorni)"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"pci_projects_project_storages_cold_archive_containers_container_archive_title": "Zarchiwizuj kontener",
"pci_projects_project_storages_cold_archive_containers_container_archive_description": "Za chwilę zarchiwizujesz kontener {{ containerName }}.",
"pci_projects_project_storages_cold_archive_containers_container_archive_submit_label": "Archiwizacja",
"pci_projects_project_storages_cold_archive_containers_container_archive_cancel_label": "Anuluj",
"pci_projects_project_storages_cold_archive_containers_container_archive_success_message": "Trwa archiwizacja kontenera {{containerName}}.",
"pci_projects_project_storages_cold_archive_containers_container_archive_error_message": "Wystąpił błąd podczas archiwizowania kontenera {{containerName}}: {{message}}",
"pci_projects_project_storages_cold_archive_containers_container_archive_description_2": "Po skonfigurowaniu czasu retencji Twoje archiwum zostanie zablokowane i nie będziesz mógł usunąć danych przez cały okres retencji.",
"pci_projects_project_storages_cold_archive_containers_container_archive_has_retention": "Zaplanuj czas retencji",
"pci_projects_project_storages_cold_archive_containers_container_archive_has_no_retention": "Nie planuj czasu retencji",
"pci_projects_project_storages_cold_archive_containers_container_archive_retention_days": "Dodaj liczbę dni retencji",
"pci_projects_project_storages_cold_archive_containers_container_retention_warning": "Czas retencji wygaśnie w dniu <strong>{{ date }}</strong>.",
"pci_projects_project_storages_cold_archive_containers_container_retention_warning_2": "Nie będziesz mógł usunąć danych, dopóki nie upłynie ta data.",
"pci_projects_project_storages_cold_archive_containers_container_retention_retention_value_wartning": "Dodaj liczbę dni retencji (minimum 1 dzień, maksimum 4500 dni)"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"pci_projects_project_storages_cold_archive_containers_container_archive_title": "Arquivar o seu container",
"pci_projects_project_storages_cold_archive_containers_container_archive_description": "Está prestes a arquivar o seu container {{ containerName }}.",
"pci_projects_project_storages_cold_archive_containers_container_archive_submit_label": "Arquivar",
"pci_projects_project_storages_cold_archive_containers_container_archive_cancel_label": "Anular",
"pci_projects_project_storages_cold_archive_containers_container_archive_success_message": "O container {{ containerName }} está a ser arquivado.",
"pci_projects_project_storages_cold_archive_containers_container_archive_error_message": "Ocorreu um erro ao arquivar o container {{ containerName }}: {{ message }}.",
"pci_projects_project_storages_cold_archive_containers_container_archive_description_2": "Ao configurar uma duração de retenção, o seu arquivo será bloqueado e não poderá eliminar os seus dados durante todo o período de retenção.",
"pci_projects_project_storages_cold_archive_containers_container_archive_has_retention": "Planificar uma duração de retenção",
"pci_projects_project_storages_cold_archive_containers_container_archive_has_no_retention": "Não programar duração de retenção",
"pci_projects_project_storages_cold_archive_containers_container_archive_retention_days": "Adicionar o número de dias de retenção",
"pci_projects_project_storages_cold_archive_containers_container_retention_warning": "A sua duração de retenção terminará a <strong>{{ date }}</strong> .",
"pci_projects_project_storages_cold_archive_containers_container_retention_warning_2": "Só poderá proceder à eliminação dos seus dados após essa data.",
"pci_projects_project_storages_cold_archive_containers_container_retention_retention_value_wartning": "Adicionar o número de dias de retenção (mínimo 1 dia, máximo 4500 dias)"
}
20 changes: 20 additions & 0 deletions packages/manager/apps/pci-cold-archive/src/api/data/archive.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,23 @@ export const restoreArchiveContainer = async ({
);
return data;
};

export const startArchiveContainer = async ({
projectId,
region,
archiveName,
lockedUntilDays,
}: {
projectId: string;
region: string;
archiveName: string;
lockedUntilDays: number;
}) => {
const params = lockedUntilDays ? { lockedUntilDays } : {};

const { data } = await v6.post(
`/cloud/project/${projectId}/region/${region}/coldArchive/${archiveName}/archive`,
params,
);
return data;
};
40 changes: 40 additions & 0 deletions packages/manager/apps/pci-cold-archive/src/api/hooks/useArchive.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
deleteArchiveContainer,
getArchiveContainers,
restoreArchiveContainer,
startArchiveContainer,
TArchiveContainer,
} from '../data/archive';
import { paginateResults, sortResults } from '@/helpers';
Expand Down Expand Up @@ -171,3 +172,42 @@ export const useAddUser = ({
...mutation,
};
};

type StartArchiveContainerProps = {
projectId: string;
containerName: string;
region: string;
lockedUntilDays?: number;
onError: (cause: Error) => void;
onSuccess: () => void;
};

export const useStartArchiveContainer = ({
projectId,
containerName,
region,
lockedUntilDays,
onError,
onSuccess,
}: Readonly<StartArchiveContainerProps>) => {
const mutation = useMutation({
mutationFn: () =>
startArchiveContainer({
projectId,
region,
archiveName: containerName,
lockedUntilDays,
}),
onError,
onSuccess: async () => {
await queryClient.invalidateQueries({
queryKey: getQueryKeyArchive(projectId, region),
});
onSuccess();
},
});
return {
startArchiveContainer: () => mutation.mutate(),
...mutation,
};
};
Loading

0 comments on commit 3252bc2

Please sign in to comment.