diff --git a/client/pages/config/backups.vue b/client/pages/config/backups.vue index ba6ff2be..e02575b0 100644 --- a/client/pages/config/backups.vue +++ b/client/pages/config/backups.vue @@ -134,6 +134,23 @@ export default { this.enableBackups = !!this.newServerSettings.backupSchedule this.maxBackupSize = this.newServerSettings.maxBackupSize || 1 this.cronExpression = this.newServerSettings.backupSchedule || '30 1 * * *' + + this.loadBackupLocation() + }, + loadBackupLocation() { + this.processing = true + this.$axios + .$get('/api/backups/location') + .then((data) => { + this.backupLocation = data.backupLocation + }) + .catch((error) => { + console.error('Failed to load backup location', error) + this.$toast.error('Failed to load backup location') + }) + .finally(() => { + this.processing = false + }) } }, mounted() { diff --git a/client/strings/en-us.json b/client/strings/en-us.json index 75606da2..1bbecb48 100644 --- a/client/strings/en-us.json +++ b/client/strings/en-us.json @@ -188,6 +188,7 @@ "LabelBackToUser": "Back to User", "LabelBackupsEnableAutomaticBackups": "Enable automatic backups", "LabelBackupsEnableAutomaticBackupsHelp": "Backups saved in /metadata/backups", + "LabelBackupLocation": "Backup Location", "LabelBackupsMaxBackupSize": "Maximum backup size (in GB)", "LabelBackupsMaxBackupSizeHelp": "As a safeguard against misconfiguration, backups will fail if they exceed the configured size.", "LabelBackupsNumberToKeep": "Number of backups to keep", @@ -711,4 +712,4 @@ "ToastSocketFailedToConnect": "Socket failed to connect", "ToastUserDeleteFailed": "Failed to delete user", "ToastUserDeleteSuccess": "User deleted" -} \ No newline at end of file +} diff --git a/server/controllers/BackupController.js b/server/controllers/BackupController.js index c578c63f..d4e818b6 100644 --- a/server/controllers/BackupController.js +++ b/server/controllers/BackupController.js @@ -10,6 +10,12 @@ class BackupController { }) } + getBackupLocation(req, res) { + res.json({ + backupLocation: this.backupManager.backupLocation + }) + } + create(req, res) { this.backupManager.requestCreateBackup(res) } diff --git a/server/managers/BackupManager.js b/server/managers/BackupManager.js index e19b1db6..50d6d19c 100644 --- a/server/managers/BackupManager.js +++ b/server/managers/BackupManager.js @@ -26,6 +26,10 @@ class BackupManager { this.backups = [] } + get backupLocation() { + return this.BackupPath + } + get backupSchedule() { return global.ServerSettings.backupSchedule } diff --git a/server/routers/ApiRouter.js b/server/routers/ApiRouter.js index 71d9429e..2346f114 100644 --- a/server/routers/ApiRouter.js +++ b/server/routers/ApiRouter.js @@ -187,6 +187,7 @@ class ApiRouter { this.router.get('/backups/:id/download', BackupController.middleware.bind(this), BackupController.download.bind(this)) this.router.get('/backups/:id/apply', BackupController.middleware.bind(this), BackupController.apply.bind(this)) this.router.post('/backups/upload', BackupController.middleware.bind(this), BackupController.upload.bind(this)) + this.router.get('/backups/location', BackupController.middleware.bind(this), BackupController.getBackupLocation.bind(this)) // // File System Routes