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

fix(edge/templates): fix issues with git templates [EE-6357] (#10679)

This commit is contained in:
Chaim Lev-Ari 2023-12-04 08:46:44 +02:00 committed by GitHub
parent 974378c9b5
commit 2a18c9f215
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 201 additions and 116 deletions

View file

@ -112,8 +112,7 @@ export default class CreateEdgeStackViewController {
PrePullImage: template.EdgeSettings.PrePullImage || false,
RetryDeploy: template.EdgeSettings.RetryDeploy || false,
PrivateRegistryId: template.EdgeSettings.PrivateRegistryId || null,
SupportRelativePath: template.EdgeSettings.RelativePathSettings.SupportRelativePath || false,
FilesystemPath: template.EdgeSettings.RelativePathSettings.FilesystemPath || '',
...template.EdgeSettings.RelativePathSettings,
}
: {}),
};
@ -195,11 +194,7 @@ export default class CreateEdgeStackViewController {
createStack() {
return this.$async(async () => {
const name = this.formValues.Name;
let method = this.state.Method;
if (method === 'template') {
method = 'editor';
}
const method = getMethod(this.state.Method, this.state.templateValues.template);
if (!this.validateForm(method)) {
return;
@ -338,3 +333,20 @@ export default class CreateEdgeStackViewController {
);
}
}
/**
*
* @param {'template'|'repository' | 'editor' | 'upload'} method
* @param {import('@/react/portainer/templates/custom-templates/types').CustomTemplate | undefined} template
* @returns 'repository' | 'editor' | 'upload'
*/
function getMethod(method, template) {
if (method !== 'template') {
return method;
}
if (template && template.GitConfig) {
return 'repository';
}
return 'editor';
}

View file

@ -12,6 +12,11 @@ class DockerComposeFormController {
this.onChangeFile = this.onChangeFile.bind(this);
this.onChangeMethod = this.onChangeMethod.bind(this);
this.onChangeFormValues = this.onChangeFormValues.bind(this);
this.isGitTemplate = this.isGitTemplate.bind(this);
}
isGitTemplate() {
return this.state.Method === 'template' && !!this.templateValues.template && !!this.templateValues.template.GitConfig;
}
onChangeFormValues(newValues) {

View file

@ -15,7 +15,8 @@
ng-required="true"
yml="true"
placeholder="Define or paste the content of your docker compose file here"
read-only="$ctrl.state.Method === 'template' && $ctrl.template.GitConfig"
versions="$ctrl.formValues.versions"
read-only="$ctrl.isGitTemplate()"
>
<editor-description>
You can get more information about Compose file format in the
@ -28,7 +29,7 @@
<file-upload-description> You can upload a Compose file from your computer. </file-upload-description>
</file-upload-form>
<div ng-if="$ctrl.state.Method == 'repository'">
<div ng-if="$ctrl.state.Method == 'repository' || $ctrl.isGitTemplate()">
<git-form
value="$ctrl.formValues"
on-change="($ctrl.onChangeFormValues)"