Job detail page refactoration

Latest changes to job detail page. Making it work with parallel play and task arrivals.
This commit is contained in:
Chris Houseknecht 2014-07-14 13:15:21 -04:00
parent 82ad3c01c2
commit f0b1034d29
2 changed files with 21 additions and 7 deletions

View File

@ -88,6 +88,7 @@ function JobDetailController ($location, $rootScope, $scope, $compile, $routePar
if (parseInt(data.unified_job_id, 10) === parseInt(job_id,10)) {
if (data.status === 'failed' || data.status === 'canceled' ||
data.status === 'error' || data.status === 'successful') {
$scope.liveEventProcessing = false;
if ($rootScope.jobDetailInterval) {
window.clearInterval($rootScope.jobDetailInterval);
}
@ -319,6 +320,7 @@ function JobDetailController ($location, $rootScope, $scope, $compile, $routePar
// this is not the first task
play.tasks[event.id].hostCount = play.tasks[play.firstTask].hostCount;
}
play.taskCount++;
SetTaskStyles({
task: play.tasks[event.id]
});
@ -402,6 +404,7 @@ function JobDetailController ($location, $rootScope, $scope, $compile, $routePar
elapsed: elapsed,
hostCount: 0,
fistTask: null,
taskCount: 0,
playActiveClass: '',
unreachableCount: (event.unreachable_count) ? event.unreachable_count : 0,
tasks: {}
@ -414,6 +417,11 @@ function JobDetailController ($location, $rootScope, $scope, $compile, $routePar
scope.jobData.plays[event.id].hostCount = ok + changed + failed + skipped;
if (scope.jobData.plays[event.id].hostCount > 0) {
// force the play to be on the 'active' list
scope.jobData.plays[event.id].taskCount = 1;
}
scope.host_summary.ok += ok;
scope.host_summary.changed += changed;
scope.host_summary.unreachable += (event.unreachable_count) ? event.unreachable_count : 0;

View File

@ -205,6 +205,7 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
if (newActivePlay && scope.activePlay && newActivePlay !== scope.activePlay) {
scope.jobData.plays[scope.activePlay].tasks = {};
scope.jobData.plays[scope.activePlay].playActiveClass = '';
scope.activeTask = null;
}
if (newActivePlay) {
scope.activePlay = newActivePlay;
@ -284,7 +285,7 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
scope.jobData.plays[event.parent].tasks[event.id] = {
id: event.id,
play_id: event.parent,
name: event.task,
name: (event.task) ? event.task : event.event_display,
status: status,
status_text: status_text,
status_tip: "Event ID: " + event.id + "<br />Status: " + status_text,
@ -378,7 +379,6 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
play.status_text = (changed) ? 'Changed' : (failed) ? 'Failed' : 'OK';
}
}
play.taskCount++;
play.status_tip = "Event ID: " + play.id + "<br />Status: " + play.status_text;
play.finished = modified;
play.elapsed = GetElapsed({
@ -404,10 +404,16 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
id = params.task_id,
modified = params.modified,
no_hosts = params.no_hosts,
task;
play, task;
if (scope.jobData.plays[scope.activePlay].tasks[id] !== undefined) {
task = scope.jobData.plays[scope.activePlay].tasks[scope.activeTask];
// find the task in our hierarchy
for (play in scope.jobData.plays) {
if (scope.jobData.plays[play].tasks[id]) {
task = scope.jobData.plays[play].tasks[id];
}
}
if (task) {
if (no_hosts){
task.status = 'no-matching-hosts';
task.status_text = 'No matching hosts';
@ -545,8 +551,6 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
msg: msg
};
SetActiveTask({ scope: scope });
// increment the unreachable count on the play
if (status === 'unreachable' && scope.jobData.plays[scope.activePlay]) {
scope.jobData.plays[scope.activePlay].unreachableCount++;
@ -571,6 +575,8 @@ function($rootScope, $log, UpdatePlayStatus, UpdateHostStatus, AddHostResult, Ge
SetTaskStyles({
task: task
});
SetActiveTask({ scope: scope });
}
};
}])