tighten up status transitions for relaunch

This commit is contained in:
Jake McDermott
2018-03-29 02:42:24 -04:00
parent 66dcf01088
commit 6c8923d653
4 changed files with 32 additions and 27 deletions

View File

@@ -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: '=',
}, },
}; };
} }

View File

@@ -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) {

View File

@@ -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()">

View File

@@ -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: '=',
}, },