From 40a37420f8a70a201db740d9554ad7d70de085c3 Mon Sep 17 00:00:00 2001 From: damienrunnable Date: Tue, 18 Apr 2017 14:04:07 -0700 Subject: [PATCH 1/2] SAN-6097 --- .../components/mirrorDockerfile/addDockerfileDirective.js | 4 ++-- .../components/mirrorDockerfile/addDockerfileView.jade | 2 +- .../components/mirrorDockerfile/composeFilePath.js | 2 ++ .../mirrorDockerfile/mirrorDockerfileController.js | 5 ++++- .../newContainer/forms/compose/composeFilePathView.jade | 3 ++- .../newContainer/forms/configureNewServiceView.jade | 4 ++-- .../components/newContainer/forms/nameNewServiceView.jade | 1 + .../components/newContainer/newContainerController.js | 4 ++++ 8 files changed, 18 insertions(+), 7 deletions(-) diff --git a/client/directives/components/mirrorDockerfile/addDockerfileDirective.js b/client/directives/components/mirrorDockerfile/addDockerfileDirective.js index 87325a323..669073f24 100644 --- a/client/directives/components/mirrorDockerfile/addDockerfileDirective.js +++ b/client/directives/components/mirrorDockerfile/addDockerfileDirective.js @@ -4,8 +4,6 @@ require('app') .directive('addDockerfile', addDockerfile); function addDockerfile( - $q, - $timeout, fetchRepoDockerfile, doesDockerfileExist ) { @@ -20,6 +18,8 @@ function addDockerfile( fileType: '@' }, link: function ($scope, elem, attrs, MDC) { + $scope.MDC = MDC; + var COMPOSE_DEFAULT = 'docker-compose.yml'; var COMPOSE_TEST_DEFAULT = 'docker-compose.test.yml'; var DOCKER_DEFAULT = 'Dockerfile'; diff --git a/client/directives/components/mirrorDockerfile/addDockerfileView.jade b/client/directives/components/mirrorDockerfile/addDockerfileView.jade index 980a92e73..f5d99eea1 100644 --- a/client/directives/components/mirrorDockerfile/addDockerfileView.jade +++ b/client/directives/components/mirrorDockerfile/addDockerfileView.jade @@ -15,7 +15,7 @@ form( dockerfile-exists-validator = "{{fileType}}" full-repo = "fullRepo" id = "add-dockerfile-input" - ng-disabled = "state.dockerFileAdded" + ng-disabled = "state.dockerFileAdded || MDC.isSaving()" ng-model = "newDockerfile" ng-model-options = "{ debounce: { 'default': 100, 'blur': 0 } }" placeholder = "{{ fileName }}" diff --git a/client/directives/components/mirrorDockerfile/composeFilePath.js b/client/directives/components/mirrorDockerfile/composeFilePath.js index 96cb970f5..e514f1d49 100644 --- a/client/directives/components/mirrorDockerfile/composeFilePath.js +++ b/client/directives/components/mirrorDockerfile/composeFilePath.js @@ -21,6 +21,8 @@ function composeFilePath( fullRepo: '=' }, link: function ($scope, elem, attr, MDC) { + $scope.MDC = MDC; + MDC.state.configurationMethod = 'dockerComposeFile'; $scope.dockerComposeState = MDC.state; $scope.dockerfile = {}; diff --git a/client/directives/components/mirrorDockerfile/mirrorDockerfileController.js b/client/directives/components/mirrorDockerfile/mirrorDockerfileController.js index 6772ccaa6..e3fad7b8b 100644 --- a/client/directives/components/mirrorDockerfile/mirrorDockerfileController.js +++ b/client/directives/components/mirrorDockerfile/mirrorDockerfileController.js @@ -6,7 +6,6 @@ require('app') function MirrorDockerfileController( $q, $rootScope, - $timeout, errs, doesDockerfileExist, fetchRepoDockerfile, @@ -74,5 +73,9 @@ function MirrorDockerfileController( } }); }; + + MDC.isSaving = function () { + return $rootScope.isLoading.newContainerSingleRepo || $rootScope.isLoading.creatingDockerCompose; + }; } diff --git a/client/directives/components/newContainer/forms/compose/composeFilePathView.jade b/client/directives/components/newContainer/forms/compose/composeFilePathView.jade index f0bdadaf5..1b1eb48bd 100644 --- a/client/directives/components/newContainer/forms/compose/composeFilePathView.jade +++ b/client/directives/components/newContainer/forms/compose/composeFilePathView.jade @@ -5,6 +5,7 @@ input.toggle-input( ng-model = "pathEnabled" type = "checkbox" + ng-disabled = "MDC.isSaving()" ) .toggle-group.toggle-sm @@ -40,7 +41,7 @@ - Copy: "Select a Container" fancy-select.btn-md.white( disabled - ng-disabled = "loadingFile || !dockerComposeTestServices.length" + ng-disabled = "loadingFile || !dockerComposeTestServices.length || MDC.isSaving()" ng-required = "true" spinner-flag = "loadingFile" value = "dockerComposeState.testReporter" diff --git a/client/directives/components/newContainer/forms/configureNewServiceView.jade b/client/directives/components/newContainer/forms/configureNewServiceView.jade index 33d76790b..b538c4104 100644 --- a/client/directives/components/newContainer/forms/configureNewServiceView.jade +++ b/client/directives/components/newContainer/forms/configureNewServiceView.jade @@ -28,7 +28,7 @@ section.grid-block.vertical.modal-body label.grid-block.align-center.btn.btn-radio( data-event-name = "Selected Compose Setup" ng-class = "{'active': NCC.state.dockerFileTab === 'compose'}" - ng-click = "NCC.state.dockerFileTab = 'compose'; NCC.state.configurationMethod = 'dockerComposeFile'" + ng-click = "NCC.isSaving() || ((NCC.state.dockerFileTab = 'compose') && (NCC.state.configurationMethod = 'dockerComposeFile'))" ) svg.grid-block.shrink.btn.btn-xs.btn-icon.btn-add.iconnables.icons-check use( @@ -41,7 +41,7 @@ section.grid-block.vertical.modal-body label.grid-block.align-center.btn.btn-radio( data-event-name = "Selected Dockerfile Setup" ng-class = "{'active': NCC.state.dockerFileTab === 'dockerfile'}" - ng-click = "NCC.state.dockerFileTab = 'dockerfile'; NCC.state.configurationMethod = 'dockerfile'" + ng-click = "NCC.isSaving() || ((NCC.state.dockerFileTab = 'dockerfile') && (NCC.state.configurationMethod = 'dockerfile'))" ng-if = "!$root.featureFlags.kubernetes" ) svg.grid-block.shrink.btn.btn-xs.btn-icon.btn-add.iconnables.icons-check diff --git a/client/directives/components/newContainer/forms/nameNewServiceView.jade b/client/directives/components/newContainer/forms/nameNewServiceView.jade index d4d05e629..58e39ea6d 100644 --- a/client/directives/components/newContainer/forms/nameNewServiceView.jade +++ b/client/directives/components/newContainer/forms/nameNewServiceView.jade @@ -12,6 +12,7 @@ label required spellcheck = "false" unique-validator = "NCC.state.namesForAllInstances" + ng-disabled = "NCC.isSaving()" ) svg.iconnables.icons-check( ng-if = "NCC.nameForm.$valid" diff --git a/client/directives/components/newContainer/newContainerController.js b/client/directives/components/newContainer/newContainerController.js index 8c4184b98..73596b5ef 100644 --- a/client/directives/components/newContainer/newContainerController.js +++ b/client/directives/components/newContainer/newContainerController.js @@ -394,6 +394,10 @@ function NewContainerController( (NCC.state.types.stage ? NCC.state.dockerComposeFile : NCC.state.types.test)))); }; + NCC.isSaving = function () { + return $rootScope.isLoading.newContainerSingleRepo || $rootScope.isLoading.creatingDockerCompose; + }; + NCC.populateComposeErrorMessage = function (errorMsg) { var err = /ValidationError(.*)/.exec(errorMsg); if (err) { From 970a75faf4a00ad9be0da48d1e52bbb70f8244e4 Mon Sep 17 00:00:00 2001 From: damienrunnable Date: Wed, 26 Apr 2017 16:46:11 -0700 Subject: [PATCH 2/2] SAN-6097 Code review change --- .../newContainer/forms/setupMethodView.jade | 4 ++-- .../newContainer/newContainerController.js | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/client/directives/components/newContainer/forms/setupMethodView.jade b/client/directives/components/newContainer/forms/setupMethodView.jade index f4c69c261..e63778103 100644 --- a/client/directives/components/newContainer/forms/setupMethodView.jade +++ b/client/directives/components/newContainer/forms/setupMethodView.jade @@ -17,7 +17,7 @@ label.grid-block.align-center.btn.btn-radio( label.grid-block.align-center.btn.btn-radio( data-event-name = "Selected Compose Setup" ng-class = "{'active': NCC.state.dockerFileTab === 'compose'}" - ng-click = "NCC.state.dockerFileTab = 'compose'; NCC.state.configurationMethod = 'dockerComposeFile'" + ng-click = "NCC.setToComposeTab()" ) svg.grid-block.shrink.btn.btn-xs.btn-icon.btn-add.iconnables.icons-check use( @@ -30,7 +30,7 @@ label.grid-block.align-center.btn.btn-radio( label.grid-block.align-center.btn.btn-radio( data-event-name = "Selected Dockerfile Setup" ng-class = "{'active': NCC.state.dockerFileTab === 'dockerfile'}" - ng-click = "NCC.state.dockerFileTab = 'dockerfile'; NCC.state.configurationMethod = 'dockerfile'" + ng-click = "NCC.setToDockerTab()" ng-if = "!$root.featureFlags.kubernetes" ) svg.grid-block.shrink.btn.btn-xs.btn-icon.btn-add.iconnables.icons-check diff --git a/client/directives/components/newContainer/newContainerController.js b/client/directives/components/newContainer/newContainerController.js index a38c29fcc..567915c45 100644 --- a/client/directives/components/newContainer/newContainerController.js +++ b/client/directives/components/newContainer/newContainerController.js @@ -400,6 +400,20 @@ function NewContainerController( return $rootScope.isLoading.newContainerSingleRepo || $rootScope.isLoading.creatingDockerCompose; }; + NCC.setToComposeTab = function () { + if (!NCC.isSaving()) { + NCC.state.dockerFileTab = 'compose'; + NCC.state.configurationMethod = 'dockerComposeFile'; + } + }; + + NCC.setToDockerTab = function () { + if (!NCC.isSaving()) { + NCC.state.dockerFileTab = 'dockerfile'; + NCC.state.configurationMethod = 'dockerfile'; + } + }; + NCC.populateComposeErrorMessage = function (errorMsg) { var err = /ValidationError(.*)/.exec(errorMsg); if (err) {