diff --git a/src/js/client.js b/src/js/client.js index 114f6cce5..7f575d495 100644 --- a/src/js/client.js +++ b/src/js/client.js @@ -811,6 +811,15 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout }); }; + Client.prototype.remountBackupStorage = function (callback) { + post('/api/v1/backups/remount', {}, null, function (error, data, status) { + if (error) return callback(error); + if (status !== 202) return callback(new ClientError(status, data)); + + callback(null); + }); + }; + Client.prototype.getSupportConfig = function (callback) { get('/api/v1/settings/support_config', null, function (error, data, status) { if (error) return callback(error); diff --git a/src/translation/en.json b/src/translation/en.json index e5c9daf3f..4299008de 100644 --- a/src/translation/en.json +++ b/src/translation/en.json @@ -428,7 +428,8 @@ "location": "Location", "endpoint": "Endpoint", "format": "Storage Format", - "configure": "Configure" + "configure": "Configure", + "remount": "Remount Storage" }, "schedule": { "title": "Schedule and Retention", diff --git a/src/views/backups.html b/src/views/backups.html index 71070fad0..cf7699328 100644 --- a/src/views/backups.html +++ b/src/views/backups.html @@ -440,8 +440,9 @@
-
+
+
diff --git a/src/views/backups.js b/src/views/backups.js index bc6931b6f..5d9502ad4 100644 --- a/src/views/backups.js +++ b/src/views/backups.js @@ -190,6 +190,31 @@ angular.module('Application').controller('BackupsController', ['$scope', '$locat return tmp ? tmp.name : ''; }; + $scope.remount = { + busy: false, + error: null, + + submit: function () { + if (!$scope.mountlike($scope.backupConfig.provider)) return; + + $scope.remount.busy = true; + $scope.remount.error = null; + + Client.remountBackupStorage(function (error) { + if (error) { + console.error('Failed to remount backup storage.', error); + $scope.remount.error = error.message; + } + + // give the backend some time + $timeout(function () { + $scope.remount.busy = false; + getBackupConfig(); + }, 2000); + }); + } + }; + $scope.createBackup = { busy: false, percent: 0, diff --git a/src/views/volumes.js b/src/views/volumes.js index 165a51fe9..88698145b 100644 --- a/src/views/volumes.js +++ b/src/views/volumes.js @@ -70,7 +70,7 @@ angular.module('Application').controller('VolumesController', ['$scope', '$locat $timeout(function () { volume.remounting = false; refreshVolumes(function (error) { if (error) console.error('Failed to refresh volume states.', error); }); - }, 3000); + }, 2000); }); };