diff --git a/app/docker/rest/commit.js b/app/docker/rest/commit.js index 077951fa7..364610297 100644 --- a/app/docker/rest/commit.js +++ b/app/docker/rest/commit.js @@ -5,7 +5,6 @@ angular.module('portainer.docker') endpointId: EndpointProvider.endpointID }, { - // commitContainer: {method: 'POST', params: {container: '@id', repo: '@repo', tag: '@tag'}, ignoreLoadingBar: true} commitContainer: {method: 'POST', params: {container: '@id', repo: '@repo'}, ignoreLoadingBar: true} }); }]); diff --git a/app/docker/views/containers/edit/container.html b/app/docker/views/containers/edit/container.html index 92f4ded45..25c5986cd 100644 --- a/app/docker/views/containers/edit/container.html +++ b/app/docker/views/containers/edit/container.html @@ -169,7 +169,7 @@
- +
diff --git a/app/docker/views/containers/edit/containerController.js b/app/docker/views/containers/edit/containerController.js index a090992f3..150b99e44 100644 --- a/app/docker/views/containers/edit/containerController.js +++ b/app/docker/views/containers/edit/containerController.js @@ -2,13 +2,14 @@ import moment from 'moment'; import { PorImageRegistryModel } from 'Docker/models/porImageRegistry'; angular.module('portainer.docker') -.controller('ContainerController', ['$q', '$scope', '$state','$transition$', '$filter', 'Commit', 'ContainerHelper', 'ContainerService', 'ImageHelper', 'NetworkService', 'Notifications', 'ModalService', 'ResourceControlService', 'RegistryService', 'ImageService', 'HttpRequestHelper', 'Authentication', -function ($q, $scope, $state, $transition$, $filter, Commit, ContainerHelper, ContainerService, ImageHelper, NetworkService, Notifications, ModalService, ResourceControlService, RegistryService, ImageService, HttpRequestHelper, Authentication) { +.controller('ContainerController', ['$q', '$scope', '$state','$transition$', '$filter', '$async', 'Commit', 'ContainerHelper', 'ContainerService', 'ImageHelper', 'NetworkService', 'Notifications', 'ModalService', 'ResourceControlService', 'RegistryService', 'ImageService', 'HttpRequestHelper', 'Authentication', +function ($q, $scope, $state, $transition$, $filter, $async, Commit, ContainerHelper, ContainerService, ImageHelper, NetworkService, Notifications, ModalService, ResourceControlService, RegistryService, ImageService, HttpRequestHelper, Authentication) { $scope.activityTime = 0; $scope.portBindings = []; $scope.config = { - RegistryModel: new PorImageRegistryModel() + RegistryModel: new PorImageRegistryModel(), + commitInProgress: false }; $scope.state = { @@ -149,19 +150,23 @@ function ($q, $scope, $state, $transition$, $filter, Commit, ContainerHelper, Co }); }; - // TODO CHANGE - $scope.commit = function () { - const image = $scope.config.Image; - $scope.config.Image = ''; - Commit.commitContainer({id: $transition$.params().id, repo: image}, function () { - update(); + async function commitContainerAsync() { + $scope.config.commitInProgress = true; + const registryModel = $scope.config.RegistryModel; + const imageConfig = ImageHelper.createImageConfigForContainer(registryModel); + try { + await Commit.commitContainer({id: $transition$.params().id, repo: imageConfig.fromImage}).$promise; Notifications.success('Image created', $transition$.params().id); - }, function (e) { - update(); - Notifications.error('Failure', e, 'Unable to create image'); - }); - }; + $state.reload(); + } catch (err) { + Notifications.error('Failure', err, 'Unable to create image'); + $scope.config.commitInProgress = false; + } + } + $scope.commit = function () { + return $async(commitContainerAsync); + }; $scope.confirmRemove = function () { var title = 'You are about to remove a container.';