mirror of
https://github.com/ansible/awx.git
synced 2026-05-07 17:37:37 -02:30
tighten up status transitions for relaunch
This commit is contained in:
@@ -539,6 +539,7 @@ function AtDetailsController (
|
|||||||
vm.toggleLabels = toggleLabels;
|
vm.toggleLabels = toggleLabels;
|
||||||
|
|
||||||
$scope.$watch('started', value => { vm.started = getStartDetails(value); });
|
$scope.$watch('started', value => { vm.started = getStartDetails(value); });
|
||||||
|
$scope.$watch('status', value => { vm.status = getStatusDetails(value); });
|
||||||
$scope.$watch('finished', value => { vm.finished = getFinishDetails(value); });
|
$scope.$watch('finished', value => { vm.finished = getFinishDetails(value); });
|
||||||
|
|
||||||
$scope.$on(resource.ws.status, (e, data) => handleSocketEvent(data));
|
$scope.$on(resource.ws.status, (e, data) => handleSocketEvent(data));
|
||||||
@@ -575,6 +576,7 @@ function atDetails () {
|
|||||||
finished: '=',
|
finished: '=',
|
||||||
started: '=',
|
started: '=',
|
||||||
resource: '=',
|
resource: '=',
|
||||||
|
status: '=',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,9 +62,9 @@ function JobsIndexController (
|
|||||||
// Panel
|
// Panel
|
||||||
vm.title = resource.model.get('name');
|
vm.title = resource.model.get('name');
|
||||||
|
|
||||||
// Status Bar
|
// Stats
|
||||||
vm.status = {
|
vm.stats = {
|
||||||
stats: statsEvent,
|
event: statsEvent,
|
||||||
elapsed: resource.model.get('elapsed'),
|
elapsed: resource.model.get('elapsed'),
|
||||||
download: resource.model.get('related.stdout'),
|
download: resource.model.get('related.stdout'),
|
||||||
running: Boolean(resource.model.get('started')) && !resource.model.get('finished'),
|
running: Boolean(resource.model.get('started')) && !resource.model.get('finished'),
|
||||||
@@ -75,6 +75,7 @@ function JobsIndexController (
|
|||||||
// Details
|
// Details
|
||||||
vm.details = {
|
vm.details = {
|
||||||
resource,
|
resource,
|
||||||
|
status: resource.model.get('status'),
|
||||||
started: resource.model.get('started'),
|
started: resource.model.get('started'),
|
||||||
finished: resource.model.get('finished'),
|
finished: resource.model.get('finished'),
|
||||||
};
|
};
|
||||||
@@ -106,7 +107,7 @@ function JobsIndexController (
|
|||||||
up: scrollPageUp
|
up: scrollPageUp
|
||||||
};
|
};
|
||||||
|
|
||||||
render.requestAnimationFrame(() => init(!vm.status.running));
|
render.requestAnimationFrame(() => init(!vm.stats.running));
|
||||||
}
|
}
|
||||||
|
|
||||||
function init (pageMode) {
|
function init (pageMode) {
|
||||||
@@ -134,15 +135,16 @@ function init (pageMode) {
|
|||||||
return shift().then(() => append(events, true));
|
return shift().then(() => append(events, true));
|
||||||
},
|
},
|
||||||
onStart () {
|
onStart () {
|
||||||
vm.status.plays = 0;
|
vm.stats.plays = 0;
|
||||||
vm.status.tasks = 0;
|
vm.stats.tasks = 0;
|
||||||
vm.status.running = true;
|
vm.stats.running = true;
|
||||||
|
|
||||||
vm.search.disabled = true;
|
vm.search.disabled = true;
|
||||||
|
vm.details.status = 'running';
|
||||||
},
|
},
|
||||||
onStop () {
|
onStop () {
|
||||||
vm.status.stats = statsEvent;
|
vm.stats.event = statsEvent;
|
||||||
vm.status.running = false;
|
vm.stats.running = false;
|
||||||
|
|
||||||
vm.search.disabled = false;
|
vm.search.disabled = false;
|
||||||
|
|
||||||
@@ -166,7 +168,7 @@ function handleSocketEvent (scope, data) {
|
|||||||
|
|
||||||
vm.details.status = _.get(data, 'summary_fields.job.status');
|
vm.details.status = _.get(data, 'summary_fields.job.status');
|
||||||
|
|
||||||
vm.status.elapsed = moment(data.created)
|
vm.stats.elapsed = moment(data.created)
|
||||||
.diff(resource.model.get('created'), 'seconds');
|
.diff(resource.model.get('created'), 'seconds');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,11 +177,11 @@ function handleSocketEvent (scope, data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (data.event === PLAY_START) {
|
if (data.event === PLAY_START) {
|
||||||
vm.status.plays++;
|
vm.stats.plays++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.event === TASK_START) {
|
if (data.event === TASK_START) {
|
||||||
vm.status.tasks++;
|
vm.stats.tasks++;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.event === JOB_END) {
|
if (data.event === JOB_END) {
|
||||||
|
|||||||
@@ -4,7 +4,8 @@
|
|||||||
<at-details
|
<at-details
|
||||||
resource="vm.details.resource"
|
resource="vm.details.resource"
|
||||||
started="vm.details.started"
|
started="vm.details.started"
|
||||||
finished="vm.details.finished">
|
finished="vm.details.finished"
|
||||||
|
status="vm.details.status">
|
||||||
</at-details>
|
</at-details>
|
||||||
<!-- <p><button class="btn" ng-click="vm.clear(true)">Page Mode</button></p> -->
|
<!-- <p><button class="btn" ng-click="vm.clear(true)">Page Mode</button></p> -->
|
||||||
</at-panel>
|
</at-panel>
|
||||||
@@ -14,13 +15,13 @@
|
|||||||
<at-panel class="at-Stdout">
|
<at-panel class="at-Stdout">
|
||||||
<div class="at-Panel-headingTitle">{{ vm.title }}</div>
|
<div class="at-Panel-headingTitle">{{ vm.title }}</div>
|
||||||
<at-stats
|
<at-stats
|
||||||
download="vm.status.download"
|
download="vm.stats.download"
|
||||||
elapsed="vm.status.elapsed"
|
elapsed="vm.stats.elapsed"
|
||||||
running="vm.status.running"
|
running="vm.stats.running"
|
||||||
stats="vm.status.stats"
|
event="vm.stats.event"
|
||||||
title="vm.status.title"
|
title="vm.stats.title"
|
||||||
plays="vm.status.plays"
|
plays="vm.stats.plays"
|
||||||
tasks="vm.status.tasks">
|
tasks="vm.stats.tasks">
|
||||||
</at-stats>
|
</at-stats>
|
||||||
<!-- search ===================================================================================== -->
|
<!-- search ===================================================================================== -->
|
||||||
<form ng-submit="vm.search.submitSearch()">
|
<form ng-submit="vm.search.submitSearch()">
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ function AtStatsController (strings) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
vm.init = scope => {
|
vm.init = scope => {
|
||||||
const { download, elapsed, running, stats, plays, tasks } = scope;
|
const { download, elapsed, running, event, plays, tasks } = scope;
|
||||||
|
|
||||||
vm.download = download;
|
vm.download = download;
|
||||||
vm.plays = plays;
|
vm.plays = plays;
|
||||||
@@ -56,18 +56,18 @@ function AtStatsController (strings) {
|
|||||||
vm.elapsed = elapsed;
|
vm.elapsed = elapsed;
|
||||||
vm.running = running || false;
|
vm.running = running || false;
|
||||||
|
|
||||||
vm.setStats(stats);
|
vm.setStats(event);
|
||||||
|
|
||||||
scope.$watch('elapsed', value => { vm.elapsed = value; });
|
scope.$watch('elapsed', value => { vm.elapsed = value; });
|
||||||
scope.$watch('running', value => { vm.running = value; });
|
scope.$watch('running', value => { vm.running = value; });
|
||||||
scope.$watch('plays', value => { vm.plays = value; });
|
scope.$watch('plays', value => { vm.plays = value; });
|
||||||
scope.$watch('tasks', value => { vm.tasks = value; });
|
scope.$watch('tasks', value => { vm.tasks = value; });
|
||||||
|
|
||||||
scope.$watch('stats', vm.setStats);
|
scope.$watch('event', vm.setStats);
|
||||||
};
|
};
|
||||||
|
|
||||||
vm.setStats = stats => {
|
vm.setStats = statsEvent => {
|
||||||
const counts = getHostStatusCounts(stats);
|
const counts = getHostStatusCounts(statsEvent);
|
||||||
|
|
||||||
HOST_STATUS_KEYS.forEach(key => {
|
HOST_STATUS_KEYS.forEach(key => {
|
||||||
const count = counts[key];
|
const count = counts[key];
|
||||||
@@ -79,7 +79,7 @@ function AtStatsController (strings) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
vm.hosts = counts.hosts;
|
vm.hosts = counts.hosts;
|
||||||
vm.statsAreAvailable = Boolean(stats);
|
vm.statsAreAvailable = Boolean(statsEvent);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,7 +98,7 @@ function atStats () {
|
|||||||
download: '=',
|
download: '=',
|
||||||
elapsed: '=',
|
elapsed: '=',
|
||||||
running: '=',
|
running: '=',
|
||||||
stats: '=',
|
event: '=',
|
||||||
plays: '=',
|
plays: '=',
|
||||||
tasks: '=',
|
tasks: '=',
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user