diff --git a/src/public/app/widgets/type_widgets/options/backup.js b/src/public/app/widgets/type_widgets/options/backup.js index fc3c070a4..35cd4b829 100644 --- a/src/public/app/widgets/type_widgets/options/backup.js +++ b/src/public/app/widgets/type_widgets/options/backup.js @@ -42,7 +42,21 @@ const TPL = `

${t('backup.existing_backups')}

- + + + + + + + + + + + + + +
${t("backup.date-and-time")}${t("backup.path")}
+
`; @@ -73,7 +87,7 @@ export default class BackupOptions extends OptionsWidget { this.$monthlyBackupEnabled.on('change', () => this.updateCheckboxOption('monthlyBackupEnabled', this.$monthlyBackupEnabled)); - this.$existingBackupList = this.$widget.find(".existing-backup-list"); + this.$existingBackupList = this.$widget.find(".existing-backup-list-items"); } optionsLoaded(options) { @@ -85,11 +99,34 @@ export default class BackupOptions extends OptionsWidget { this.$existingBackupList.empty(); if (!backupFiles.length) { - backupFiles = [{filePath: t('backup.no_backup_yet'), mtime: ''}]; + this.$existingBackupList.append($(` + + ${t('backup.no_backup_yet')} + + `)); + + return; } + // Sort the backup files by modification date & time in a desceding order + backupFiles.sort((a, b) => { + if (a.mtime < b.mtime) return 1; + if (a.mtime > b.mtime) return -1; + return 0; + }); + + const dateTimeFormatter = new Intl.DateTimeFormat(navigator.language, { + dateStyle: "medium", + timeStyle: "medium" + }); + for (const {filePath, mtime} of backupFiles) { - this.$existingBackupList.append($("
  • ").text(`${filePath} ${mtime ? ` - ${mtime}` : ''}`)); + this.$existingBackupList.append($(` + + ${(mtime) ? dateTimeFormatter.format(new Date(mtime)) : "-"} + ${filePath} + + `)); } }); } diff --git a/src/public/stylesheets/style.css b/src/public/stylesheets/style.css index 60cda7349..bdcd6a7d8 100644 --- a/src/public/stylesheets/style.css +++ b/src/public/stylesheets/style.css @@ -1238,3 +1238,7 @@ textarea { padding: 1rem; } +.empty-table-placeholder { + text-align: center; + color: var(--muted-text-color); +} \ No newline at end of file diff --git a/src/public/translations/en/translation.json b/src/public/translations/en/translation.json index e74cf0ee1..1c5809120 100644 --- a/src/public/translations/en/translation.json +++ b/src/public/translations/en/translation.json @@ -1183,6 +1183,8 @@ "backup_now": "Backup now", "backup_database_now": "Backup database now", "existing_backups": "Existing backups", + "date-and-time": "Date & time", + "path": "Path", "database_backed_up_to": "Database has been backed up to", "no_backup_yet": "no backup yet" }, diff --git a/src/public/translations/ro/translation.json b/src/public/translations/ro/translation.json index 9bd9b0ccf..13d0ea3cf 100644 --- a/src/public/translations/ro/translation.json +++ b/src/public/translations/ro/translation.json @@ -254,6 +254,8 @@ "enable_monthly_backup": "Activează copia de siguranță lunară", "enable_weekly_backup": "Activează copia de siguranță săptămânală", "existing_backups": "Copii de siguranță existente", + "date-and-time": "Data și ora", + "path": "Calea fișierului", "no_backup_yet": "nu există încă nicio copie de siguranță" }, "basic_properties": {