1
0
Fork 0
mirror of https://github.com/portainer/portainer.git synced 2025-08-08 15:25:22 +02:00

feat(volume-creation) : NFS volume creation (#2083) (#2108)

* feat(volume-creation): NFS support for volume creation - layout

* feat(volume-creation): NFS support for volume creation

* fix(volume-creation): NFS style, display and check on submit

* refactor(volume-creation): remove useless controller + refactor var naming

* refactor(volume-creation): NFS wording, help and style
This commit is contained in:
baron_l 2018-08-09 10:33:16 +02:00 committed by Anthony Lapenna
parent ee9c8d7d1a
commit 5222413532
5 changed files with 131 additions and 8 deletions

View file

@ -6,7 +6,8 @@ function ($q, $scope, $state, VolumeService, PluginService, ResourceControlServi
Driver: 'local',
DriverOptions: [],
AccessControlData: new AccessControlFormData(),
NodeName: null
NodeName: null,
NFSData: new VolumesNFSFormData()
};
$scope.state = {
@ -36,8 +37,19 @@ function ($q, $scope, $state, VolumeService, PluginService, ResourceControlServi
return true;
}
$scope.create = function () {
function prepareNFSConfiguration(driverOptions) {
var data = $scope.formValues.NFSData;
driverOptions.push({ name: 'type', value: data.version.toLowerCase() });
var options = 'addr=' + data.serverAddress + ',' + data.options;
driverOptions.push({ name: 'o', value: options });
var mountPoint = data.mountPoint[0] === ':' ? data.mountPoint : ':' + data.mountPoint;
driverOptions.push({ name: 'device', value: mountPoint });
}
$scope.create = function () {
var name = $scope.formValues.Name;
var driver = $scope.formValues.Driver;
var driverOptions = $scope.formValues.DriverOptions;
@ -47,6 +59,10 @@ function ($q, $scope, $state, VolumeService, PluginService, ResourceControlServi
driverOptions.push({ name: 'profile', value: storidgeProfile.Name });
}
if ($scope.formValues.NFSData.useNFS) {
prepareNFSConfiguration(driverOptions);
}
var volumeConfiguration = VolumeService.createVolumeConfiguration(name, driver, driverOptions);
var accessControlData = $scope.formValues.AccessControlData;
var userDetails = Authentication.getUserDetails();

View file

@ -9,11 +9,11 @@
<div class="col-sm-12">
<rd-widget>
<rd-widget-body>
<form class="form-horizontal">
<form class="form-horizontal" name="volumeCreationForm">
<!-- name-input -->
<div class="form-group">
<label for="volume_name" class="col-sm-1 control-label text-left">Name</label>
<div class="col-sm-11">
<label for="volume_name" class="col-sm-2 col-md-1 control-label text-left">Name</label>
<div class="col-sm-10 col-md-11">
<input type="text" class="form-control" ng-model="formValues.Name" id="volume_name" placeholder="e.g. myVolume">
</div>
</div>
@ -23,8 +23,8 @@
</div>
<!-- driver-input -->
<div class="form-group">
<label for="volume_driver" class="col-sm-1 control-label text-left">Driver</label>
<div class="col-sm-11">
<label for="volume_driver" class="col-sm-2 col-md-1 control-label text-left">Driver</label>
<div class="col-sm-10 col-md-11">
<select class="form-control" ng-options="driver for driver in availableVolumeDrivers" ng-model="formValues.Driver" ng-if="availableVolumeDrivers.length > 0">
<option disabled hidden value="">Select a driver</option>
</select>
@ -62,6 +62,9 @@
<!-- !driver-options-input-list -->
</div>
<!-- !driver-options -->
<!-- nfs-management -->
<volumes-nfs-form data="formValues.NFSData" ng-show="formValues.Driver === 'local'"></volumes-nfs-form>
<!-- !nfs-management -->
<!-- storidge -->
<div ng-if="formValues.Driver === 'cio:latest'">
<div class="col-sm-12 form-section-title">
@ -89,7 +92,7 @@
</div>
<div class="form-group">
<div class="col-sm-12">
<button type="button" class="btn btn-primary btn-sm" ng-click="create()" ng-disabled="state.actionInProgress" button-spinner="state.actionInProgress">
<button type="button" class="btn btn-primary btn-sm" ng-click="create()" ng-disabled="state.actionInProgress || (formValues.NFSData.useNFS && !volumeCreationForm.$valid)" button-spinner="state.actionInProgress">
<span ng-hide="state.actionInProgress">Create the volume</span>
<span ng-show="state.actionInProgress">Creating volume...</span>
</button>