diff --git a/src/frontend/src/api/useConfig.ts b/src/frontend/src/api/useConfig.ts
index 825914a2..205a333e 100644
--- a/src/frontend/src/api/useConfig.ts
+++ b/src/frontend/src/api/useConfig.ts
@@ -16,6 +16,7 @@ export interface ApiConfig {
recording?: {
is_enabled?: boolean
available_modes?: RecordingMode[]
+ expiration_days?: number
}
}
diff --git a/src/frontend/src/features/recording/api/fetchRecording.ts b/src/frontend/src/features/recording/api/fetchRecording.ts
index e8c9dfe4..594db12b 100644
--- a/src/frontend/src/features/recording/api/fetchRecording.ts
+++ b/src/frontend/src/features/recording/api/fetchRecording.ts
@@ -9,6 +9,8 @@ export type RecordingApi = {
key: string
mode: RecordingMode
status: RecordingStatus
+ is_expired: boolean
+ expired_at: string
}
export const fetchRecording = ({ recordingId }: { recordingId?: string }) => {
diff --git a/src/frontend/src/features/recording/routes/RecordingDownload.tsx b/src/frontend/src/features/recording/routes/RecordingDownload.tsx
index b72f5eb6..a800f066 100644
--- a/src/frontend/src/features/recording/routes/RecordingDownload.tsx
+++ b/src/frontend/src/features/recording/routes/RecordingDownload.tsx
@@ -13,9 +13,11 @@ import { ErrorScreen } from '@/components/ErrorScreen'
import { LoadingScreen } from '@/components/LoadingScreen'
import { fetchRecording } from '../api/fetchRecording'
import { RecordingStatus } from '@/features/recording'
+import { useConfig } from '@/api/useConfig'
export const RecordingDownload = () => {
const { t } = useTranslation('recording')
+ const { data: configData } = useConfig()
const { recordingId } = useParams()
const { isLoggedIn, isLoading: isAuthLoading } = useUser()
@@ -50,6 +52,17 @@ export const RecordingDownload = () => {
return
}
+ if (data.is_expired) {
+ return (
+
+ )
+ }
+
return (
@@ -74,6 +87,16 @@ export const RecordingDownload = () => {
}),
}}
/>
+
+ {configData?.recording?.expiration_days && (
+ <>
+ {' '}
+ {t('success.expiration', {
+ expiration_days: configData?.recording?.expiration_days,
+ })}
+ >
+ )}
+
{{room}} from {{created_at}}.",
+ "expiration": "Attention, this recording will expire after {{expiration_days}} day(s).",
"button": "Download"
}
}
diff --git a/src/frontend/src/locales/fr/recording.json b/src/frontend/src/locales/fr/recording.json
index 4228afba..0032ef40 100644
--- a/src/frontend/src/locales/fr/recording.json
+++ b/src/frontend/src/locales/fr/recording.json
@@ -1,7 +1,11 @@
{
"error": {
"title": "Enregistrement indisponible",
- "body": "Cet enregistrement est introuvable ou a été supprimé après sa période de validité de 7 jours."
+ "body": "Cet enregistrement est introuvable ou a été supprimé."
+ },
+ "expired": {
+ "title": "Enregistrement expiré",
+ "body": "Cet enregistrement a été supprimé le {{date}}."
},
"authentication": {
"title": "Authentification requise",
@@ -14,6 +18,7 @@
"success": {
"title": "Votre enregistrement est prêt !",
"body": "Enregistrement de la réunion {{room}} du {{created_at}}.",
+ "expiration": "Attention cet enregistrement expirera au bout de {{expiration_days}} jour(s).",
"button": "Télécharger"
}
}
diff --git a/src/frontend/src/locales/nl/recording.json b/src/frontend/src/locales/nl/recording.json
index bda67456..43210731 100644
--- a/src/frontend/src/locales/nl/recording.json
+++ b/src/frontend/src/locales/nl/recording.json
@@ -1,7 +1,11 @@
{
"error": {
"title": "Opname niet beschikbaar",
- "body": "Deze opname is niet gevonden of is verwijderd na de geldigheidsperiode van 7 dagen."
+ "body": "Deze opname is niet gevonden of is verwijderd."
+ },
+ "expired": {
+ "title": "Opname verlopen",
+ "body": "Deze opname is verwijderd op {{date}}."
},
"authentication": {
"title": "Authenticatie vereist",
@@ -14,6 +18,7 @@
"success": {
"title": "Je opname is klaar!",
"body": "Opname van de vergadering {{room}} op {{created_at}}.",
+ "expiration": "Let op, deze opname verloopt na {{expiration_days}} dag(en).",
"button": "Downloaden"
}
}