diff --git a/src/views/app.html b/src/views/app.html index c0ddc3c8d..cee1518ff 100644 --- a/src/views/app.html +++ b/src/views/app.html @@ -171,6 +171,13 @@ + +
+ + +
+ +
diff --git a/src/views/app.js b/src/views/app.js index d3907edca..9fa1842fb 100644 --- a/src/views/app.js +++ b/src/views/app.js @@ -83,16 +83,19 @@ angular.module('Application').controller('AppController', ['$scope', '$location' $scope.storageProvider = [ { name: 'Amazon S3', value: 's3' }, { name: 'Backblaze B2 (S3 API)', value: 'backblaze-b2' }, + { name: 'CIFS Mount', value: 'cifs' }, { name: 'DigitalOcean Spaces', value: 'digitalocean-spaces' }, { name: 'Exoscale SOS', value: 'exoscale-sos' }, { name: 'Filesystem', value: 'filesystem' }, { name: 'Google Cloud Storage', value: 'gcs' }, { name: 'Linode Object Storage', value: 'linode-objectstorage' }, { name: 'Minio', value: 'minio' }, + { name: 'NFS Mount', value: 'nfs' }, { name: 'OVH Object Storage', value: 'ovh-objectstorage' }, - { name: 'Scaleway Object Storage', value: 'scaleway-objectstorage' }, - // { name: 'No-op (Only for testing)', value: 'noop' }, { name: 'S3 API Compatible (v4)', value: 's3-v4-compat' }, + { name: 'Scaleway Object Storage', value: 'scaleway-objectstorage' }, + { name: 'SSHFS Mount', value: 'sshfs' }, + // { name: 'No-op (Only for testing)', value: 'noop' }, { name: 'Wasabi', value: 'wasabi' } ]; @@ -915,6 +918,10 @@ angular.module('Application').controller('AppController', ['$scope', '$location' || provider === 'linode-objectstorage' || provider === 'ovh-objectstorage'; }; + $scope.mountlike = function (provider) { + return provider === 'sshfs' || provider === 'cifs' || provider === 'nfs'; + }; + $scope.importBackup = { busy: false, error: {}, @@ -923,6 +930,7 @@ angular.module('Application').controller('AppController', ['$scope', '$location' provider: '', bucket: '', prefix: '', + mountPoint: '', accessKeyId: '', secretAccessKey: '', gcsKey: { keyFileName: '', content: '' }, @@ -937,6 +945,7 @@ angular.module('Application').controller('AppController', ['$scope', '$location' // $scope.importBackup.provider = ''; // do not clear since we call this function on provider change $scope.importBackup.bucket = ''; $scope.importBackup.prefix = ''; + $scope.importBackup.mountPoint = ''; $scope.importBackup.accessKeyId = ''; $scope.importBackup.secretAccessKey = ''; $scope.importBackup.gcsKey.keyFileName = ''; @@ -1014,6 +1023,9 @@ angular.module('Application').controller('AppController', ['$scope', '$location' $scope.importBackup.busy = false; return; } + } else if (backupConfig.provider === 'sshfs' || backupConfig.provider === 'cifs' || backupConfig.provider === 'nfs') { + backupConfig.mountPoint = $scope.importBackup.mountPoint; + backupConfig.prefix = $scope.importBackup.prefix; } else if (backupConfig.provider === 'filesystem') { var parts = backupId.split('/'); backupId = parts.pop() || parts.pop(); // removes any trailing slash. this is basename()