diff --git a/client/components/tables/BackupsTable.vue b/client/components/tables/BackupsTable.vue
index c59bbcf8..3a757a86 100644
--- a/client/components/tables/BackupsTable.vue
+++ b/client/components/tables/BackupsTable.vue
@@ -13,17 +13,20 @@
/{{ backup.path.replace(/\\/g, '/') }}
|
- {{ backup.datePretty }} |
- {{ $bytesPretty(backup.fileSize) }} |
+ {{ backup.datePretty }} |
+ {{ $bytesPretty(backup.fileSize) }} |
@@ -176,11 +179,11 @@ export default {
text-align: center;
}
-#backups tr:nth-child(even) {
+#backups tr:nth-child(even):not(.bg-error) {
background-color: #3a3a3a;
}
-#backups tr:not(.staticrow):hover {
+#backups tr:not(.staticrow):not(.bg-error):hover {
background-color: #444;
}
diff --git a/server/managers/BackupManager.js b/server/managers/BackupManager.js
index 5c56fd13..9c1002cd 100644
--- a/server/managers/BackupManager.js
+++ b/server/managers/BackupManager.js
@@ -92,6 +92,12 @@ class BackupManager {
var details = data.toString('utf8').split('\n')
var backup = new Backup({ details, fullPath: tempPath })
+
+ if (!backup.serverVersion) {
+ Logger.error(`[BackupManager] Invalid backup with no server version - might be a backup created before version 2.0.0`)
+ return res.status(500).send('Invalid backup. Might be a backup created before version 2.0.0.')
+ }
+
backup.fileSize = await getFileSize(backup.fullPath)
var existingBackupIndex = this.backups.findIndex(b => b.id === backup.id)
@@ -133,6 +139,11 @@ class BackupManager {
var details = data.toString('utf8').split('\n')
var backup = new Backup({ details, fullPath: fullFilePath })
+
+ if (!backup.serverVersion) {
+ Logger.error(`[BackupManager] Old unsupported backup was found "${backup.fullPath}"`)
+ }
+
backup.fileSize = await getFileSize(backup.fullPath)
var existingBackupWithId = this.backups.find(b => b.id === backup.id)
if (existingBackupWithId) {
diff --git a/server/objects/Backup.js b/server/objects/Backup.js
index 727a9ff6..a9fa9de5 100644
--- a/server/objects/Backup.js
+++ b/server/objects/Backup.js
@@ -1,5 +1,6 @@
const Path = require('path')
const date = require('date-and-time')
+const version = require('../../package.json').version
class Backup {
constructor(data = null) {
@@ -11,6 +12,7 @@ class Backup {
this.filename = null
this.path = null
this.fullPath = null
+ this.serverVersion = null
this.fileSize = null
this.createdAt = null
@@ -25,6 +27,7 @@ class Backup {
details.push(this.id)
details.push(this.backupMetadataCovers ? '1' : '0')
details.push(this.createdAt)
+ details.push(this.serverVersion)
return details.join('\n')
}
@@ -32,6 +35,7 @@ class Backup {
this.id = data.details[0]
this.backupMetadataCovers = data.details[1] === '1'
this.createdAt = Number(data.details[2])
+ this.serverVersion = data.details[3] || null
this.datePretty = date.format(new Date(this.createdAt), 'ddd, MMM D YYYY HH:mm')
@@ -51,7 +55,8 @@ class Backup {
path: this.path,
filename: this.filename,
fileSize: this.fileSize,
- createdAt: this.createdAt
+ createdAt: this.createdAt,
+ serverVersion: this.serverVersion
}
}
@@ -67,6 +72,8 @@ class Backup {
this.path = Path.join('backups', this.filename)
this.fullPath = Path.join(this.backupDirPath, this.filename)
+ this.serverVersion = version
+
this.createdAt = Date.now()
}
}
|