diff --git a/src/js/restore.js b/src/js/restore.js index f0d3bda04..1a393f474 100644 --- a/src/js/restore.js +++ b/src/js/restore.js @@ -42,6 +42,14 @@ app.controller('RestoreController', ['$scope', 'Client', function ($scope, Clien $scope.setupToken = ''; $scope.skipDnsSetup = false; + $scope.mountOptions = { + host: '', + remoteDir: '', + username: '', + password: '', + diskPath: '' + }; + $scope.sysinfo = { provider: 'generic', ip: '', @@ -144,6 +152,7 @@ app.controller('RestoreController', ['$scope', 'Client', function ($scope, Clien { name: 'DigitalOcean Spaces', value: 'digitalocean-spaces' }, { name: 'Exoscale SOS', value: 'exoscale-sos' }, { name: 'Filesystem', value: 'filesystem' }, + { name: 'Filesystem (Mountpoint)', value: 'mountpoint' }, // legacy { name: 'Google Cloud Storage', value: 'gcs' }, { name: 'IONOS (Profitbricks)', value: 'ionos-objectstorage' }, { name: 'Linode Object Storage', value: 'linode-objectstorage' }, @@ -169,7 +178,7 @@ app.controller('RestoreController', ['$scope', 'Client', function ($scope, Clien }; $scope.mountlike = function (provider) { - return provider === 'sshfs' || provider === 'cifs' || provider === 'nfs'; + return provider === 'sshfs' || provider === 'cifs' || provider === 'nfs' || provider === 'mountpoint' || provider === 'ext4'; }; $scope.restore = function () { @@ -240,11 +249,24 @@ app.controller('RestoreController', ['$scope', 'Client', function ($scope, Clien $scope.busy = false; return; } - } else if (backupConfig.provider === 'sshfs' || backupConfig.provider === 'cifs' || backupConfig.provider === 'nfs') { + } else if ($scope.mountlike(backupConfig.provider)) { backupConfig.mountPoint = $scope.mountPoint; backupConfig.prefix = $scope.prefix; - } else if (backupConfig.provider === 'filesystem') { - backupConfig.backupFolder = $scope.backupFolder; + backupConfig.mountOptions = {}; + + if (backupConfig.provider === 'cifs' || backupConfig.provider === 'sshfs' || backupConfig.provider === 'nfs') { + backupConfig.mountOptions.host = $scope.mountOptions.host; + backupConfig.mountOptions.remoteDir = $scope.mountOptions.remoteDir; + + if (backupConfig.provider === 'cifs') { + backupConfig.mountOptions.username = $scope.mountOptions.username; + backupConfig.mountOptions.password = $scope.mountOptions.password; + } + } else if (backupConfig.provider === 'ext4') { + backupConfig.mountOptions.diskPath = $scope.diskPath; + } + } else if (backupConfig.provider === 'filesystem' || backupConfig.provider === 'mountpoint') { + backupConfig.backupFolder = $scope.configureBackup.backupFolder; } if ($scope.backupId.indexOf('/') === -1) { diff --git a/src/restore.html b/src/restore.html index 50cff2a2d..7aacf252a 100644 --- a/src/restore.html +++ b/src/restore.html @@ -93,10 +93,40 @@ - +