From 6bfbf58cdb8c290fb3d141551763533be8983b39 Mon Sep 17 00:00:00 2001
From: fhanportainer <79428273+fhanportainer@users.noreply.github.com>
Date: Wed, 26 May 2021 04:55:50 +1200
Subject: [PATCH 1/3] fix(template): fixed disabled deploy button EE-812
(#5105)
---
.../stackFromTemplateForm.html | 4 ++--
.../views/templates/templatesController.js | 22 ++++++++++++++++++-
2 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/app/portainer/components/forms/stack-from-template-form/stackFromTemplateForm.html b/app/portainer/components/forms/stack-from-template-form/stackFromTemplateForm.html
index 336ccb8a4..1f3907ee4 100644
--- a/app/portainer/components/forms/stack-from-template-form/stackFromTemplateForm.html
+++ b/app/portainer/components/forms/stack-from-template-form/stackFromTemplateForm.html
@@ -55,7 +55,7 @@
{{ $ctrl.state.formValidationError }}
- This template type cannot be deployed on this endpoint.
diff --git a/app/portainer/views/templates/templatesController.js b/app/portainer/views/templates/templatesController.js
index cdf36a38a..4ceccbb61 100644
--- a/app/portainer/views/templates/templatesController.js
+++ b/app/portainer/views/templates/templatesController.js
@@ -36,6 +36,9 @@ angular.module('portainer.app').controller('TemplatesController', [
StackService,
endpoint
) {
+ const DOCKER_STANDALONE = 'DOCKER_STANDALONE';
+ const DOCKER_SWARM_MODE = 'DOCKER_SWARM_MODE';
+
$scope.state = {
selectedTemplate: null,
showAdvancedOptions: false,
@@ -240,9 +243,27 @@ angular.module('portainer.app').controller('TemplatesController', [
$scope.formValues.name = template.Name ? template.Name : '';
$scope.state.selectedTemplate = template;
+ $scope.state.deployable = isDeployable($scope.applicationState.endpoint, template.Type);
$anchorScroll('view-top');
};
+ function isDeployable(endpoint, templateType) {
+ let deployable = false;
+ switch (templateType) {
+ case 1:
+ deployable = endpoint.mode.provider === DOCKER_SWARM_MODE || endpoint.mode.provider === DOCKER_STANDALONE;
+ break;
+ case 2:
+ deployable = endpoint.mode.provider === DOCKER_SWARM_MODE;
+ break;
+ case 3:
+ deployable = endpoint.mode.provider === DOCKER_STANDALONE;
+ break;
+ }
+
+ return deployable;
+ }
+
function createTemplateConfiguration(template) {
var network = $scope.formValues.network;
var name = $scope.formValues.name;
@@ -254,7 +275,6 @@ angular.module('portainer.app').controller('TemplatesController', [
var endpointMode = $scope.applicationState.endpoint.mode;
var apiVersion = $scope.applicationState.endpoint.apiVersion;
- $scope.state.provider = endpointMode.provider === 'DOCKER_STANDALONE' ? 2 : 1;
$q.all({
templates: TemplateService.templates(),
From d7fcfee2a24b641ff47b8d0f2843914b576d91c0 Mon Sep 17 00:00:00 2001
From: fhanportainer <79428273+fhanportainer@users.noreply.github.com>
Date: Thu, 27 May 2021 08:56:13 +1200
Subject: [PATCH 2/3] fix(templates): checking windows endpoint and template
properties. (#5108)
* fix(templates): checking windows endpoint and template properties.
* fix(templates): removed debug code.
* fix(templates): fixed type issue in custom template.
---
.../customTemplatesViewController.js | 24 ++++++++++++++++---
.../views/templates/templatesController.js | 1 -
2 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/app/portainer/views/custom-templates/custom-templates-view/customTemplatesViewController.js b/app/portainer/views/custom-templates/custom-templates-view/customTemplatesViewController.js
index fa50213ba..224a33b9a 100644
--- a/app/portainer/views/custom-templates/custom-templates-view/customTemplatesViewController.js
+++ b/app/portainer/views/custom-templates/custom-templates-view/customTemplatesViewController.js
@@ -34,13 +34,16 @@ class CustomTemplatesViewController {
this.StateManager = StateManager;
this.StackService = StackService;
+ this.DOCKER_STANDALONE = 'DOCKER_STANDALONE';
+ this.DOCKER_SWARM_MODE = 'DOCKER_SWARM_MODE';
+
this.state = {
selectedTemplate: null,
showAdvancedOptions: false,
formValidationError: '',
actionInProgress: false,
isEditorVisible: false,
- provider: 0,
+ deployable: false,
};
this.currentUser = {
@@ -182,7 +185,8 @@ class CustomTemplatesViewController {
this.formValues.name = template.Title ? template.Title : '';
this.state.selectedTemplate = template;
this.$anchorScroll('view-top');
-
+ const applicationState = this.StateManager.getState();
+ this.state.deployable = this.isDeployable(applicationState.endpoint, template.Type);
const file = await this.CustomTemplateService.customTemplateFile(template.Id);
this.formValues.fileContent = file;
}
@@ -224,6 +228,21 @@ class CustomTemplatesViewController {
this.formValues.fileContent = cm.getValue();
}
+ isDeployable(endpoint, templateType) {
+ let deployable = false;
+ switch (templateType) {
+ case 1:
+ deployable = endpoint.mode.provider === this.DOCKER_SWARM_MODE;
+ break;
+ case 2:
+ deployable = endpoint.mode.provider === this.DOCKER_STANDALONE;
+ break;
+
+ }
+
+ return deployable;
+ }
+
$onInit() {
const applicationState = this.StateManager.getState();
@@ -232,7 +251,6 @@ class CustomTemplatesViewController {
apiVersion,
} = applicationState;
- this.state.provider = endpointMode.provider === 'DOCKER_STANDALONE' ? 2 : 1;
this.getTemplates(endpointMode);
this.getNetworks(endpointMode.provider, apiVersion);
diff --git a/app/portainer/views/templates/templatesController.js b/app/portainer/views/templates/templatesController.js
index 4ceccbb61..f276b768e 100644
--- a/app/portainer/views/templates/templatesController.js
+++ b/app/portainer/views/templates/templatesController.js
@@ -260,7 +260,6 @@ angular.module('portainer.app').controller('TemplatesController', [
deployable = endpoint.mode.provider === DOCKER_STANDALONE;
break;
}
-
return deployable;
}
From ee403ca32aae61e07fa4ac6e3769f4cad75fb5e4 Mon Sep 17 00:00:00 2001
From: cong meng
Date: Thu, 27 May 2021 13:52:02 +1200
Subject: [PATCH 3/3] fix(image) Confirmation modal on builder output view
EE-816 (#5114)
Co-authored-by: Simon Meng
---
app/docker/views/images/build/buildImageController.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/app/docker/views/images/build/buildImageController.js b/app/docker/views/images/build/buildImageController.js
index 817807dc7..5b7ddd23c 100644
--- a/app/docker/views/images/build/buildImageController.js
+++ b/app/docker/views/images/build/buildImageController.js
@@ -79,6 +79,7 @@ angular.module('portainer.docker').controller('BuildImageController', [
Notifications.error('An error occured during build', { msg: 'Please check build logs output' });
} else {
Notifications.success('Image successfully built');
+ $scope.state.isEditorDirty = false;
}
})
.catch(function error(err) {