Add generalized resource to job results view

This commit is contained in:
gconsidine
2018-02-06 15:55:44 -05:00
committed by Jake McDermott
parent 41d3d29ae8
commit 07ff25a241
2 changed files with 25 additions and 12 deletions

View File

@@ -3,7 +3,8 @@ import hasAnsi from 'has-ansi';
let vm; let vm;
let ansi; let ansi;
let job; let resource;
let related;
let container; let container;
let $timeout; let $timeout;
let $sce; let $sce;
@@ -38,7 +39,7 @@ const TIME_EVENTS = [
]; ];
function JobsIndexController ( function JobsIndexController (
_job_, _resource_,
_$sce_, _$sce_,
_$timeout_, _$timeout_,
_$scope_, _$scope_,
@@ -50,11 +51,12 @@ function JobsIndexController (
$compile = _$compile_; $compile = _$compile_;
$scope = _$scope_; $scope = _$scope_;
$q = _$q_; $q = _$q_;
job = _job_; resource = _resource_;
ansi = new Ansi(); ansi = new Ansi();
related = getRelated();
const events = job.get('related.job_events.results'); const events = resource.get(`related.${related}.results`);
const parsed = parseEvents(events); const parsed = parseEvents(events);
const html = $sce.trustAsHtml(parsed.html); const html = $sce.trustAsHtml(parsed.html);
@@ -98,9 +100,20 @@ function JobsIndexController (
}); });
} }
function getRelated () {
const name = resource.constructor.name;
switch (name) {
case 'ProjectUpdateModel':
return 'events';
case 'JobModel':
return 'job_events';
}
}
function next () { function next () {
const config = { const config = {
related: 'job_events', related,
page: meta.page.cache[meta.page.cache.length - 1].page + 1, page: meta.page.cache[meta.page.cache.length - 1].page + 1,
params: { params: {
order_by: 'start_line' order_by: 'start_line'
@@ -108,7 +121,7 @@ function next () {
}; };
console.log('[2] getting next page', config.page, meta.page.cache); console.log('[2] getting next page', config.page, meta.page.cache);
return job.goToPage(config) return resource.goToPage(config)
.then(data => { .then(data => {
if (!data || !data.results) { if (!data || !data.results) {
return $q.resolve(); return $q.resolve();
@@ -125,7 +138,7 @@ function next () {
function prev () { function prev () {
const config = { const config = {
related: 'job_events', related,
page: meta.page.cache[0].page - 1, page: meta.page.cache[0].page - 1,
params: { params: {
order_by: 'start_line' order_by: 'start_line'
@@ -133,7 +146,7 @@ function prev () {
}; };
console.log('[2] getting previous page', config.page, meta.page.cache); console.log('[2] getting previous page', config.page, meta.page.cache);
return job.goToPage(config) return resource.goToPage(config)
.then(data => { .then(data => {
if (!data || !data.results) { if (!data || !data.results) {
return $q.resolve(); return $q.resolve();
@@ -569,7 +582,7 @@ function onScroll () {
} }
JobsIndexController.$inject = [ JobsIndexController.$inject = [
'job', 'resource',
'$sce', '$sce',
'$timeout', '$timeout',
'$scope', '$scope',

View File

@@ -10,7 +10,7 @@ const indexTemplate = require('~features/output/index.view.html');
const MODULE_NAME = 'at.features.output'; const MODULE_NAME = 'at.features.output';
function resolveJob (Job, ProjectUpdate, AdHocCommand, SystemJob, WorkflowJob, $stateParams) { function resolveResource (Job, ProjectUpdate, AdHocCommand, SystemJob, WorkflowJob, $stateParams) {
const { id } = $stateParams; const { id } = $stateParams;
const { type } = $stateParams; const { type } = $stateParams;
@@ -73,14 +73,14 @@ function JobsRun ($stateExtender, strings) {
} }
}, },
resolve: { resolve: {
job: [ resource: [
'JobModel', 'JobModel',
'ProjectUpdateModel', 'ProjectUpdateModel',
'AdHocCommandModel', 'AdHocCommandModel',
'SystemJobModel', 'SystemJobModel',
'WorkflowJobModel', 'WorkflowJobModel',
'$stateParams', '$stateParams',
resolveJob resolveResource
] ]
} }
}); });