diff --git a/awx/ui/client/src/job-submission/job-submission-factories/launchjob.factory.js b/awx/ui/client/src/job-submission/job-submission-factories/launchjob.factory.js index 6c3d861afa..4005e8164e 100644 --- a/awx/ui/client/src/job-submission/job-submission-factories/launchjob.factory.js +++ b/awx/ui/client/src/job-submission/job-submission-factories/launchjob.factory.js @@ -112,7 +112,7 @@ export default Rest.post(job_launch_data) .success(function(data) { Wait('stop'); - var job = data.job || data.system_job || data.project_update || data.inventory_update || data.ad_hoc_command; + var job = data.job || data.system_job || data.project_update || data.inventory_update || data.ad_hoc_command || data.workflow_job; if((scope.portalMode===false || scope.$parent.portalMode===false ) && Empty(data.system_job) || (base === 'home')){ // use $state.go with reload: true option to re-instantiate sockets in @@ -123,6 +123,9 @@ export default if(_.has(data, 'job')) { goToJobDetails('jobDetail'); } + else if(_.has(data, 'workflow_job')) { + goToJobDetails('workflowResults'); + } else if(_.has(data, 'ad_hoc_command')) { goToJobDetails('adHocJobStdout'); } diff --git a/awx/ui/client/src/job-templates/list/job-templates-list.controller.js b/awx/ui/client/src/job-templates/list/job-templates-list.controller.js index 52cc08e966..ab807971de 100644 --- a/awx/ui/client/src/job-templates/list/job-templates-list.controller.js +++ b/awx/ui/client/src/job-templates/list/job-templates-list.controller.js @@ -7,10 +7,12 @@ export default ['$scope', '$rootScope', '$location', '$stateParams', 'Rest', 'Alert', 'JobTemplateList', 'Prompt', 'ClearScope', 'ProcessErrors', 'GetBasePath', 'InitiatePlaybookRun', 'Wait', '$state', '$filter', 'Dataset', 'rbacUiControlService', 'JobTemplateService', + 'QuerySet', function( $scope, $rootScope, $location, $stateParams, Rest, Alert, JobTemplateList, Prompt, ClearScope, ProcessErrors, GetBasePath, - InitiatePlaybookRun, Wait, $state, $filter, Dataset, rbacUiControlService, JobTemplateService + InitiatePlaybookRun, Wait, $state, $filter, Dataset, rbacUiControlService, JobTemplateService, + qs ) { ClearScope(); @@ -39,8 +41,16 @@ export default ['$scope', '$rootScope', '$location', '$stateParams', 'Rest', 'Al } $scope.$on(`ws-jobs`, function () { - // @issue - this is ham-fisted, expose a simple QuerySet.reload() fn that'll re-fetch dataset - $state.reload(); + // @issue - this is no longer quite as ham-fisted but I'd like for someone else to take a peek + // calling $state.reload(); here was problematic when launching a job because job launch also + // attempts to transition the state and they were squashing each other. + + let path = GetBasePath(list.basePath) || GetBasePath(list.name); + qs.search(path, $stateParams[`${list.iterator}_search`]) + .then(function(searchResponse) { + $scope[`${list.iterator}_dataset`] = searchResponse.data; + $scope[list.name] = $scope[`${list.iterator}_dataset`].results; + }); }); $scope.addJobTemplate = function() { $state.go('jobTemplates.add');