diff --git a/plugins/setting-assets/lang/cs.json b/plugins/setting-assets/lang/cs.json index 1fb667b624..b6cfb8820b 100644 --- a/plugins/setting-assets/lang/cs.json +++ b/plugins/setting-assets/lang/cs.json @@ -122,14 +122,14 @@ "OwnerOrMaintainerRequired": "Musíte být vlastníkem nebo správcem pracovního prostoru", "Backup": "Záloha", "BackupLast": "Poslední záloha", - "BackupTotalSnapshots": "Celkem snímků", + "BackupTotalSnapshots": "Celkový počet snímků", "BackupTotalFiles": "Soubory", "BackupSize": "Velikost zálohy", - "BackupLinkInfo": "Záložní adresář je dostupný na", - "BackupBearerTokenInfo": "Pro přístup k záloze je vyžadován přístupový token. Klikněte na tlačítko pro zkopírování tokenu do schránky.", - "BackupSnapshots": "Snímky", - "BackupFileDownload": "Stáhnout", - "BackupFiles": "Soubory", - "BackupNoBackup": "Žádná záloha není k dispozici" + "BackupLinkInfo": "URL adresář zálohy, který lze stáhnout rekurzivně pomocí nástrojů jako wget nebo curl.", + "BackupBearerTokenInfo": "Přístup k záloze vyžaduje bearer token.", + "BackupSnapshots": "Snímky záloh", + "BackupFileDownload": "Stáhnout soubor", + "BackupFiles": "Soubory záloh", + "BackupNoBackup": "V současné době nejsou k dispozici žádné zálohy." } } \ No newline at end of file diff --git a/plugins/setting-assets/lang/de.json b/plugins/setting-assets/lang/de.json index 517ad825eb..d1d129fb55 100644 --- a/plugins/setting-assets/lang/de.json +++ b/plugins/setting-assets/lang/de.json @@ -122,14 +122,14 @@ "OwnerOrMaintainerRequired": "Sie müssen Eigentümer oder Betreuer des Arbeitsbereichs sein", "Backup": "Sicherung", "BackupLast": "Letzte Sicherung", - "BackupTotalSnapshots": "Gesamtanzahl Snapshots", + "BackupTotalSnapshots": "Gesamtanzahl der Schnappschüsse", "BackupTotalFiles": "Dateien", "BackupSize": "Sicherungsgröße", - "BackupLinkInfo": "Ein Sicherungsverzeichnis ist verfügbar unter", - "BackupBearerTokenInfo": "Für den Zugriff auf die Sicherung wird ein Bearer-Token benötigt. Bitte klicken Sie auf die Schaltfläche 'Kopieren', um den Token in die Zwischenablage zu kopieren.", - "BackupSnapshots": "Snapshots", - "BackupFileDownload": "Herunterladen", - "BackupFiles": "Dateien", - "BackupNoBackup": "Keine Sicherung verfügbar" + "BackupLinkInfo": "Die URL eines Sicherungsverzeichnisses, das rekursiv mit Tools wie wget oder curl heruntergeladen werden kann.", + "BackupBearerTokenInfo": "Ein Bearer-Token ist erforderlich, um auf die Sicherung zuzugreifen.", + "BackupSnapshots": "Sicherungsschnappschüsse", + "BackupFileDownload": "Datei herunterladen", + "BackupFiles": "Sicherungsdateien", + "BackupNoBackup": "Derzeit sind keine Sicherungen verfügbar." } } diff --git a/plugins/setting-assets/lang/en.json b/plugins/setting-assets/lang/en.json index 1954a468b0..6b93b3fc05 100644 --- a/plugins/setting-assets/lang/en.json +++ b/plugins/setting-assets/lang/en.json @@ -125,11 +125,11 @@ "BackupTotalSnapshots": "Total Snapshots", "BackupTotalFiles": "Files", "BackupSize": "Backup size", - "BackupLinkInfo": "A backup directory is available at", - "BackupBearerTokenInfo": "A bearer token is required to access the backup. Please click copy to clipboard button to copy the token." , - "BackupSnapshots": "Snapshots", - "BackupFileDownload": "Download", - "BackupFiles": "Files", - "BackupNoBackup": "No backup available" + "BackupLinkInfo": "The URL of a backup directory that can be downloaded recursively using tools like wget or curl.", + "BackupBearerTokenInfo": "A bearer token is required to access the backup.", + "BackupSnapshots": "Backup Snapshots", + "BackupFileDownload": "Download File", + "BackupFiles": "Backup Files", + "BackupNoBackup": "No backups are currently available." } } diff --git a/plugins/setting-assets/lang/es.json b/plugins/setting-assets/lang/es.json index fec61037bd..27772bf25b 100644 --- a/plugins/setting-assets/lang/es.json +++ b/plugins/setting-assets/lang/es.json @@ -113,14 +113,14 @@ "OwnerOrMaintainerRequired": "Necesitas ser Propietario o Mantenedor del espacio de trabajo", "Backup": "Copia de seguridad", "BackupLast": "Última copia de seguridad", - "BackupTotalSnapshots": "Total de instantáneas", + "BackupTotalSnapshots": "Total instantáneas", "BackupTotalFiles": "Archivos", - "BackupSize": "Tamaño de la copia", - "BackupLinkInfo": "El directorio de copias de seguridad está disponible en", - "BackupBearerTokenInfo": "Se requiere un token de acceso para acceder a la copia de seguridad. Por favor, haga clic en el botón para copiar el token al portapapeles.", - "BackupSnapshots": "Instantáneas", - "BackupFileDownload": "Descargar", - "BackupFiles": "Archivos", - "BackupNoBackup": "No hay copias de seguridad disponibles" + "BackupSize": "Tamaño de la copia de seguridad", + "BackupLinkInfo": "La URL de un directorio de copia de seguridad que se puede descargar de forma recursiva usando herramientas como wget o curl.", + "BackupBearerTokenInfo": "Se requiere un token de portador para acceder a la copia de seguridad.", + "BackupSnapshots": "Instantáneas de copia de seguridad", + "BackupFileDownload": "Descargar archivo", + "BackupFiles": "Archivos de copia de seguridad", + "BackupNoBackup": "No hay copias de seguridad disponibles actualmente." } } \ No newline at end of file diff --git a/plugins/setting-assets/lang/fr.json b/plugins/setting-assets/lang/fr.json index 1c831fd9ce..b74aa41f05 100644 --- a/plugins/setting-assets/lang/fr.json +++ b/plugins/setting-assets/lang/fr.json @@ -125,11 +125,11 @@ "BackupTotalSnapshots": "Total des instantanés", "BackupTotalFiles": "Fichiers", "BackupSize": "Taille de la sauvegarde", - "BackupLinkInfo": "Un répertoire de sauvegarde est disponible à", - "BackupBearerTokenInfo": "Un jeton d'authentification est nécessaire pour accéder à la sauvegarde. Veuillez cliquer sur le bouton pour copier le jeton dans le presse-papiers.", - "BackupSnapshots": "Instantanés", - "BackupFileDownload": "Télécharger", - "BackupFiles": "Fichiers", - "BackupNoBackup": "Aucune sauvegarde disponible" + "BackupLinkInfo": "L'URL d'un répertoire de sauvegarde pouvant être téléchargé de manière récursive à l'aide d'outils comme wget ou curl.", + "BackupBearerTokenInfo": "Un jeton d'accès est requis pour accéder à la sauvegarde.", + "BackupSnapshots": "Instantanés de sauvegarde", + "BackupFileDownload": "Télécharger le fichier", + "BackupFiles": "Fichiers de sauvegarde", + "BackupNoBackup": "Aucune sauvegarde n'est actuellement disponible." } } \ No newline at end of file diff --git a/plugins/setting-assets/lang/it.json b/plugins/setting-assets/lang/it.json index e87c4a798f..14c3afa0da 100644 --- a/plugins/setting-assets/lang/it.json +++ b/plugins/setting-assets/lang/it.json @@ -125,11 +125,11 @@ "BackupTotalSnapshots": "Totale istantanee", "BackupTotalFiles": "File", "BackupSize": "Dimensione backup", - "BackupLinkInfo": "Una directory di backup è disponibile in", - "BackupBearerTokenInfo": "È richiesto un token di accesso per accedere al backup. Fare clic sul pulsante per copiare il token negli appunti.", - "BackupSnapshots": "Istantanee", - "BackupFileDownload": "Scarica", - "BackupFiles": "File", - "BackupNoBackup": "Nessun backup disponibile" + "BackupLinkInfo": "L'URL di una directory di backup che può essere scaricata ricorsivamente utilizzando strumenti come wget o curl.", + "BackupBearerTokenInfo": "È richiesto un token di accesso per accedere al backup.", + "BackupSnapshots": "Istantanee di backup", + "BackupFileDownload": "Scarica file", + "BackupFiles": "File di backup", + "BackupNoBackup": "Non sono attualmente disponibili backup." } } diff --git a/plugins/setting-assets/lang/pt.json b/plugins/setting-assets/lang/pt.json index 491fa688e8..c85e5dee33 100644 --- a/plugins/setting-assets/lang/pt.json +++ b/plugins/setting-assets/lang/pt.json @@ -113,14 +113,14 @@ "OwnerOrMaintainerRequired": "Precisa de ser proprietário ou mantenedor do espaço de trabalho", "Backup": "Backup", "BackupLast": "Último backup", - "BackupTotalSnapshots": "Total de instantâneos", + "BackupTotalSnapshots": "Total de Snapshots", "BackupTotalFiles": "Arquivos", "BackupSize": "Tamanho do backup", - "BackupLinkInfo": "Um diretório de backup está disponível em", - "BackupBearerTokenInfo": "É necessário um token de acesso para acessar o backup. Clique no botão para copiar o token para a área de transferência.", - "BackupSnapshots": "Instantâneos", - "BackupFileDownload": "Baixar", - "BackupFiles": "Arquivos", - "BackupNoBackup": "Nenhum backup disponível" + "BackupLinkInfo": "A URL de um diretório de backup que pode ser baixado recursivamente usando ferramentas como wget ou curl.", + "BackupBearerTokenInfo": "É necessário um token bearer para acessar o backup.", + "BackupSnapshots": "Snapshots de Backup", + "BackupFileDownload": "Baixar Arquivo", + "BackupFiles": "Arquivos de Backup", + "BackupNoBackup": "Não há backups disponíveis no momento." } } \ No newline at end of file diff --git a/plugins/setting-assets/lang/ru.json b/plugins/setting-assets/lang/ru.json index 23766dd592..53d745bb6c 100644 --- a/plugins/setting-assets/lang/ru.json +++ b/plugins/setting-assets/lang/ru.json @@ -121,16 +121,16 @@ "WorkspaceName": "Название рабочего пространства", "Workspace": "Рабочее пространство", "OwnerOrMaintainerRequired": "Вы должны иметь роль Владельца/Сопровождаемого", - "Backup": "Резервная копия", - "BackupLast": "Последняя резервная копия", + "Backup": "Резервное копирование", + "BackupLast": "Последнее резервное копирование", "BackupTotalSnapshots": "Всего снимков", "BackupTotalFiles": "Файлы", "BackupSize": "Размер резервной копии", - "BackupLinkInfo": "Директория резервных копий доступна по адресу", - "BackupBearerTokenInfo": "Для доступа к резервной копии требуется токен авторизации. Пожалуйста, нажмите кнопку, чтобы скопировать токен в буфер обмена.", - "BackupSnapshots": "Снимки", - "BackupFileDownload": "Скачать", - "BackupFiles": "Файлы", - "BackupNoBackup": "Резервные копии отсутствуют" + "BackupLinkInfo": "URL-адрес каталога резервной копии, который можно скачать рекурсивно с помощью инструментов, таких как wget или curl.", + "BackupBearerTokenInfo": "Для доступа к резервной копии требуется токен доступа.", + "BackupSnapshots": "Снимки резервной копии", + "BackupFileDownload": "Скачать файл", + "BackupFiles": "Файлы резервной копии", + "BackupNoBackup": "В настоящее время резервные копии недоступны." } } diff --git a/plugins/setting-assets/lang/zh.json b/plugins/setting-assets/lang/zh.json index 14664d5c4a..d9e938cdd8 100644 --- a/plugins/setting-assets/lang/zh.json +++ b/plugins/setting-assets/lang/zh.json @@ -121,15 +121,15 @@ "Workspace": "工作区", "OwnerOrMaintainerRequired": "您需要成为工作空间所有者或维护者", "Backup": "备份", - "BackupLast": "最近备份", + "BackupLast": "上次备份", "BackupTotalSnapshots": "快照总数", - "BackupTotalFiles": "文件", + "BackupTotalFiles": "文件数量", "BackupSize": "备份大小", - "BackupLinkInfo": "备份目录位于", - "BackupBearerTokenInfo": "访问备份需要访问令牌。请点击复制按钮将令牌复制到剪贴板。", - "BackupSnapshots": "快照", - "BackupFileDownload": "下载", - "BackupFiles": "文件", - "BackupNoBackup": "暂无可用备份" + "BackupLinkInfo": "可以使用 wget 或 curl 等工具递归下载的备份目录的 URL。", + "BackupBearerTokenInfo": "访问备份需要一个持票者令牌。", + "BackupSnapshots": "备份快照", + "BackupFileDownload": "下载文件", + "BackupFiles": "备份文件", + "BackupNoBackup": "当前没有可用的备份。" } } diff --git a/plugins/setting-resources/src/components/Backup.svelte b/plugins/setting-resources/src/components/Backup.svelte index 24641b779e..a981ab9809 100644 --- a/plugins/setting-resources/src/components/Backup.svelte +++ b/plugins/setting-resources/src/components/Backup.svelte @@ -22,6 +22,7 @@ import { onMount } from 'svelte' import setting from '../plugin' import { BackupInfo, BackupSnapshot } from '../types' + import Expand from '@hcengineering/ui/src/components/icons/Expand.svelte' let loading = true @@ -108,9 +109,9 @@ if (diffHours < 24) { if (diffHours === 0) { const diffMinutes = Math.floor(diffMs / (1000 * 60)) - return `- ${diffMinutes} minutes ago` + return `${diffMinutes} minutes ago` } - return `- ${diffHours} hours ago` + return `${diffHours} hours ago` } return '' @@ -142,6 +143,7 @@ } } let copied = false + let copied2 = false $: snapshots = backupInfo?.info?.snapshots ?? [] @@ -172,47 +174,48 @@ - -
-
-
-
-
-
-
+
+
+
+
{'index.json'}
+
+ + {getSize(JSON.stringify(backupInfo).length)} + +
+
+
+
+
+
{'backup.json.gz'}
+
+ + {getSize(fileSizes.get('backup.json.gz') ?? 0)} + +
+
+
+
+
+ {#if backupInfo?.info?.snapshots} - {#each backupInfo.info.snapshots as snapshot, i} + {@const snLen = backupInfo.info.snapshots.length} + {#each backupInfo.info.snapshots.reverse() as snapshot, i}
-
- #{i} +
+ #{snLen - i} {formatDate(snapshot.date)} {formatAgoHours(snapshot.date)} - {getSnapshotSummary(snapshot)} @@ -241,6 +244,22 @@
{/each} + {#each data.snapshots ?? [] as filename} +
+
{filename}
+
+ + {getSize(fileSizes.get(filename) ?? 0)} + +
+
+
+
+ {/each}
{/if} @@ -260,27 +279,67 @@ {/if}
- + -
-