From 5de93aa05cb46cba0b4f1ac233b80ab768a37e66 Mon Sep 17 00:00:00 2001 From: jaredevantabor Date: Mon, 19 Dec 2016 11:37:17 -0800 Subject: [PATCH] removing reload call when a job ends from the socket listener on the job results page --- .../src/job-results/job-results.controller.js | 6 ++++- .../src/job-results/job-results.route.js | 22 ++---------------- .../src/job-results/job-results.service.js | 23 ++++++++++++++++++- 3 files changed, 29 insertions(+), 22 deletions(-) diff --git a/awx/ui/client/src/job-results/job-results.controller.js b/awx/ui/client/src/job-results/job-results.controller.js index c3cd22e851..b4e6793f2c 100644 --- a/awx/ui/client/src/job-results/job-results.controller.js +++ b/awx/ui/client/src/job-results/job-results.controller.js @@ -459,7 +459,11 @@ function(jobData, jobDataOptions, jobLabels, jobFinished, count, $scope, ParseTy data.status === "error" || data.status === "canceled") { clearInterval(elapsedInterval); - $state.go('.', null, { reload: true }); + // When the fob is finished retrieve the job data to + // correct anything that was out of sync from the job run + jobResultsService.getJobData($scope.job.id).then(function(data){ + $scope.job = data; + }) } } else if (parseInt(data.project_id, 10) === parseInt($scope.job.project,10)) { diff --git a/awx/ui/client/src/job-results/job-results.route.js b/awx/ui/client/src/job-results/job-results.route.js index 161f8db587..88154d3114 100644 --- a/awx/ui/client/src/job-results/job-results.route.js +++ b/awx/ui/client/src/job-results/job-results.route.js @@ -34,26 +34,8 @@ export default { }, resolve: { // the GET for the particular job - jobData: ['Rest', 'GetBasePath', '$stateParams', '$q', '$state', 'Alert', function(Rest, GetBasePath, $stateParams, $q, $state, Alert) { - var val = $q.defer(); - - Rest.setUrl(GetBasePath('jobs') + $stateParams.id); - Rest.get() - .then(function(data) { - val.resolve(data.data); - }, function(data) { - val.reject(data); - - if (data.status === 404) { - Alert('Job Not Found', 'Cannot find job.', 'alert-info'); - } else if (data.status === 403) { - Alert('Insufficient Permissions', 'You do not have permission to view this job.', 'alert-info'); - } - - $state.go('jobs'); - }); - - return val.promise; + jobData: ['Rest', 'GetBasePath', '$stateParams', '$q', '$state', 'Alert', 'jobResultsService', function(Rest, GetBasePath, $stateParams, $q, $state, Alert, jobResultsService) { + return jobResultsService.getJobData($stateParams.id); }], Dataset: ['QuerySet', '$stateParams', 'jobData', function(qs, $stateParams, jobData) { diff --git a/awx/ui/client/src/job-results/job-results.service.js b/awx/ui/client/src/job-results/job-results.service.js index 07d442f3d7..1a5210cff7 100644 --- a/awx/ui/client/src/job-results/job-results.service.js +++ b/awx/ui/client/src/job-results/job-results.service.js @@ -5,7 +5,7 @@ *************************************************/ -export default ['$q', 'Prompt', '$filter', 'Wait', 'Rest', '$state', 'ProcessErrors', 'InitiatePlaybookRun', function ($q, Prompt, $filter, Wait, Rest, $state, ProcessErrors, InitiatePlaybookRun) { +export default ['$q', 'Prompt', '$filter', 'Wait', 'Rest', '$state', 'ProcessErrors', 'InitiatePlaybookRun', 'GetBasePath', function ($q, Prompt, $filter, Wait, Rest, $state, ProcessErrors, InitiatePlaybookRun, GetBasePath) { var val = { // the playbook_on_stats event returns the count data in a weird format. // format to what we need! @@ -191,6 +191,27 @@ export default ['$q', 'Prompt', '$filter', 'Wait', 'Rest', '$state', 'ProcessErr relaunchJob: function(scope) { InitiatePlaybookRun({ scope: scope, id: scope.job.id, relaunch: true }); + }, + getJobData: function(id){ + var val = $q.defer(); + + Rest.setUrl(GetBasePath('jobs') + id ); + Rest.get() + .then(function(data) { + val.resolve(data.data); + }, function(data) { + val.reject(data); + + if (data.status === 404) { + Alert('Job Not Found', 'Cannot find job.', 'alert-info'); + } else if (data.status === 403) { + Alert('Insufficient Permissions', 'You do not have permission to view this job.', 'alert-info'); + } + + $state.go('jobs'); + }); + + return val.promise; } }; return val;