Provide a dropdown for disk mounting

This commit is contained in:
Johannes Zellner
2023-01-23 18:43:54 +01:00
parent d9db12590f
commit 3543c0b237
3 changed files with 34 additions and 4 deletions

View File

@@ -11,6 +11,7 @@ angular.module('Application').controller('VolumesController', ['$scope', '$locat
$scope.config = Client.getConfig();
$scope.volumes = [];
$scope.devices = [];
$scope.ready = false;
$scope.mountTypes = [
@@ -104,6 +105,7 @@ angular.module('Application').controller('VolumesController', ['$scope', '$locat
$scope.volumeAdd.username = '';
$scope.volumeAdd.password = '';
$scope.volumeAdd.diskPath = '';
$scope.volumeAdd.customDiskPath = '';
$scope.volumeAdd.user = '';
$scope.volumeAdd.seal = false;
$scope.volumeAdd.port = 22;
@@ -116,7 +118,25 @@ angular.module('Application').controller('VolumesController', ['$scope', '$locat
show: function () {
$scope.volumeAdd.reset();
$('#volumeAddModal').modal('show');
$scope.blockDevices = [];
Client.getBlockDevices(function (error, result) {
if (error) console.error('Failed to list blockdevices:', error);
// only offer unmounted disks
result = result.filter(function (d) { return !d.mountpoint; });
// amend label for UI
result.forEach(function (d) { d.label = d.path; });
// add custom fake option
result.push({ path: 'custom', label: 'Custom' });
$scope.blockDevices = result;
$scope.volumeAdd.diskPath = $scope.blockDevices[0].path;
$('#volumeAddModal').modal('show');
});
},
submit: function () {
@@ -148,7 +168,7 @@ angular.module('Application').controller('VolumesController', ['$scope', '$locat
};
} else if ($scope.volumeAdd.mountType === 'ext4' || $scope.volumeAdd.mountType === 'xfs') {
mountOptions = {
diskPath: $scope.volumeAdd.diskPath
diskPath: $scope.volumeAdd.diskPath === 'custom' ? $scope.volumeAdd.customDiskPath : $scope.volumeAdd.diskPath
};
}