#2732 feat(stacks): adding saveStack function to createStackController.js

pull/12341/head
Cesar Munoz 2024-10-20 15:26:41 +02:00
parent 16f4e46738
commit 8a4373a113
No known key found for this signature in database
GPG Key ID: 1211B71005DDB995
1 changed files with 68 additions and 0 deletions

View File

@ -215,6 +215,29 @@ angular
}
}
function saveComposeStack(name, method) {
var env = FormHelper.removeInvalidEnvVars($scope.formValues.Env);
const endpointId = +$state.params.endpointId;
if (method === 'editor' || method === 'template') {
var stackFileContent = $scope.formValues.StackFileContent;
return StackService.saveComposeStackFromFileContent(name, stackFileContent, env, endpointId);
}
throw new Error("Saving is only supported in the editor");
}
function saveSwarmStack(name, method) {
var env = FormHelper.removeInvalidEnvVars($scope.formValues.Env);
const endpointId = +$state.params.endpointId;
if (method === 'template' || method === 'editor') {
var stackFileContent = $scope.formValues.StackFileContent;
return StackService.saveSwarmStackFromFileContent(name, stackFileContent, env, endpointId);
}
throw new Error("Saving is only supported in the editor");
}
$scope.handleEnvVarChange = handleEnvVarChange;
function handleEnvVarChange(value) {
$scope.formValues.Env = value;
@ -265,6 +288,51 @@ angular
});
};
$scope.saveStack = function () {
var name = $scope.formValues.Name;
var method = $scope.state.Method;
var accessControlData = $scope.formValues.AccessControlData;
var userDetails = Authentication.getUserDetails();
var isAdmin = Authentication.isAdmin();
if (method === 'editor' && $scope.formValues.StackFileContent === '') {
$scope.state.formValidationError = 'Stack file content must not be empty';
return;
}
if (!validateForm(accessControlData, isAdmin)) {
return;
}
var type = $scope.state.StackType;
var action = saveSwarmStack;
if (type === 2) {
action = saveComposeStack;
}
$scope.state.actionInProgress = true;
action(name, method)
.then(function success(data) {
if (data.data) {
data = data.data;
}
const userId = userDetails.ID;
const resourceControl = data.ResourceControl;
return ResourceControlService.applyResourceControl(userId, accessControlData, resourceControl);
})
.then(function success() {
Notifications.success('Success', 'Stack successfully saved');
$scope.state.isEditorDirty = false;
$state.go('docker.stacks');
})
.catch(function error(err) {
Notifications.error('Saving error', err, 'Unable to save stack');
})
.finally(function final() {
$scope.state.actionInProgress = false;
});
};
$scope.onChangeFileContent = onChangeFileContent;
function onChangeFileContent(value) {
$scope.formValues.StackFileContent = value;