diff --git a/app/docker/react/components/containers.ts b/app/docker/react/components/containers.ts index d562205ce..e12ea93d8 100644 --- a/app/docker/react/components/containers.ts +++ b/app/docker/react/components/containers.ts @@ -34,6 +34,10 @@ import { CapabilitiesTab, capabilitiesTabUtils, } from '@/react/docker/containers/CreateView/CapabilitiesTab'; +import { + RestartPolicyTab, + restartPolicyTabUtils, +} from '@/react/docker/containers/CreateView/RestartPolicyTab'; const ngModule = angular .module('portainer.docker.react.components.containers', []) @@ -103,3 +107,10 @@ withFormValidation( [], capabilitiesTabUtils.validation ); +withFormValidation( + ngModule, + RestartPolicyTab, + 'dockerCreateContainerRestartPolicyTab', + [], + restartPolicyTabUtils.validation +); diff --git a/app/docker/views/containers/create/createContainerController.js b/app/docker/views/containers/create/createContainerController.js index d17067cef..4e6b7d617 100644 --- a/app/docker/views/containers/create/createContainerController.js +++ b/app/docker/views/containers/create/createContainerController.js @@ -17,6 +17,7 @@ import './createcontainer.css'; import { envVarsTabUtils } from '@/react/docker/containers/CreateView/EnvVarsTab'; import { getContainers } from '@/react/docker/containers/queries/containers'; import { resourcesTabUtils } from '@/react/docker/containers/CreateView/ResourcesTab'; +import { restartPolicyTabUtils } from '@/react/docker/containers/CreateView/RestartPolicyTab'; angular.module('portainer.docker').controller('CreateContainerController', [ '$q', @@ -86,12 +87,14 @@ angular.module('portainer.docker').controller('CreateContainerController', [ AccessControlData: new AccessControlFormData(), NodeName: null, RegistryModel: new PorImageRegistryModel(), + commands: commandsTabUtils.getDefaultViewModel(), envVars: envVarsTabUtils.getDefaultViewModel(), volumes: volumesTabUtils.getDefaultViewModel(), network: networkTabUtils.getDefaultViewModel(), resources: resourcesTabUtils.getDefaultViewModel(), capabilities: capabilitiesTabUtils.getDefaultViewModel(), + restartPolicy: restartPolicyTabUtils.getDefaultViewModel(), }; $scope.state = { @@ -146,6 +149,12 @@ angular.module('portainer.docker').controller('CreateContainerController', [ }); }; + $scope.onRestartPolicyChange = function (restartPolicy) { + return $scope.$evalAsync(() => { + $scope.formValues.restartPolicy = restartPolicy; + }); + }; + function onAlwaysPullChange(checked) { return $scope.$evalAsync(() => { $scope.formValues.alwaysPull = checked; @@ -315,6 +324,7 @@ angular.module('portainer.docker').controller('CreateContainerController', [ config = networkTabUtils.toRequest(config, $scope.formValues.network, $scope.fromContainer.Id); config = resourcesTabUtils.toRequest(config, $scope.formValues.resources); config = capabilitiesTabUtils.toRequest(config, $scope.formValues.capabilities); + config = restartPolicyTabUtils.toRequest(config, $scope.formValues.restartPolicy); prepareImageConfig(config); preparePortBindings(config); @@ -372,6 +382,8 @@ angular.module('portainer.docker').controller('CreateContainerController', [ $scope.formValues.resources = resourcesTabUtils.toViewModel(d); $scope.formValues.capabilities = capabilitiesTabUtils.toViewModel(d); + $scope.formValues.restartPolicy = restartPolicyTabUtils.toViewModel(d); + loadFromContainerPortBindings(d); loadFromContainerLabels(d); loadFromContainerImageConfig(d); diff --git a/app/docker/views/containers/create/createcontainer.html b/app/docker/views/containers/create/createcontainer.html index 5cbe87427..821c3f3f6 100644 --- a/app/docker/views/containers/create/createcontainer.html +++ b/app/docker/views/containers/create/createcontainer.html @@ -264,23 +264,11 @@ > - +