IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an email to s dot adaszewski at gmail dot com. User accounts are meant only to report issues and/or generate pull requests. This is a purpose-specific Git hosting for ADARED projects. Thank you for your understanding!
Browse Source

Add wbProcessStateName for reuse.

pull/1/head
parent
commit
49574a208a
3 changed files with 22 additions and 27 deletions
  1. +2
    -9
      frontend/src/js/component/wb-collection-fields.js
  2. +2
    -18
      frontend/src/js/component/wb-process-dashboard.js
  3. +18
    -0
      frontend/src/js/misc/wb-process-state-name.js

+ 2
- 9
frontend/src/js/component/wb-collection-fields.js View File

@@ -7,14 +7,7 @@ import urlForObject from 'url-for-object';
import wbFormatDate from 'wb-format-date'; import wbFormatDate from 'wb-format-date';
import WBNameAndUuid from 'wb-name-and-uuid'; import WBNameAndUuid from 'wb-name-and-uuid';
import WBAccordion from 'wb-accordion'; import WBAccordion from 'wb-accordion';
function formatSpecialValue(value) {
if (value === null) return (<i>null</i>);
if (value === undefined) return (<i>undefined</i>);
if (typeof(value) === 'boolean') return (<i>{ String(value) }</i>);
if (value === '') return '-';
return String(value);
}
import wbFormatSpecialValue from 'wb-format-special-value';
class WBCollectionFields extends Component { class WBCollectionFields extends Component {
componentDidMount() { componentDidMount() {
@@ -43,7 +36,7 @@ class WBCollectionFields extends Component {
throw Error('Item not found'); throw Error('Item not found');
let rows = [ let rows = [
[ 'Name', item.name ], [ 'Name', item.name ],
[ 'Description', formatSpecialValue(item.description) ],
[ 'Description', wbFormatSpecialValue(item.description) ],
[ 'Properties', ( [ 'Properties', (
<WBAccordion names={ ['Properties'] } cardHeaderClass="card-header-sm"> <WBAccordion names={ ['Properties'] } cardHeaderClass="card-header-sm">
<pre class="word-wrap">{ JSON.stringify(item.properties, null, 2) }</pre> <pre class="word-wrap">{ JSON.stringify(item.properties, null, 2) }</pre>


+ 2
- 18
frontend/src/js/component/wb-process-dashboard.js View File

@@ -1,6 +1,7 @@
import { h, Component } from 'preact'; import { h, Component } from 'preact';
import WBTable from 'wb-table'; import WBTable from 'wb-table';
import makeArvadosRequest from 'make-arvados-request'; import makeArvadosRequest from 'make-arvados-request';
import wbProcessStateName from 'wb-process-state-name';
function getAll(makeRequest) { function getAll(makeRequest) {
let prom = makeRequest(0); let prom = makeRequest(0);
@@ -20,23 +21,6 @@ function getAll(makeRequest) {
return prom; return prom;
} }
function determineState(containerRequest) {
const cr = containerRequest;
const c = cr.container;
if (cr.state !== 'Uncommitted' && cr.priority === 0)
return 'Cancelled';
if (cr.state === 'Uncommitted' || !c || c.state === 'Queued' || c.state === 'Locked')
return 'Pending';
if (c.state === 'Running')
return 'Running';
if (c.state === 'Complete' && c.exit_code === 0)
return 'Complete';
if (c.state === 'Complete' && c.exit_code !== 0)
return 'Failed';
if (c.state === 'Cancelled')
return 'Cancelled';
}
class WBProcessDashboard extends Component { class WBProcessDashboard extends Component {
constructor(...args) { constructor(...args) {
super(...args); super(...args);
@@ -85,7 +69,7 @@ class WBProcessDashboard extends Component {
}); });
prom = prom.then(cl => { prom = prom.then(cl => {
cl.map(a => (crlist.find(b => (b.container_uuid === a.uuid)).container = a)); cl.map(a => (crlist.find(b => (b.container_uuid === a.uuid)).container = a));
crlist.map(a => (a.wb_state = determineState(a)));
crlist.map(a => (a.wb_state = wbProcessStateName(a, a.container)));
const stats = {}; const stats = {};
for (let state in { 'Pending': 1, 'Running': 1, 'Complete': 1, 'Failed': 1, 'Cancelled': 1 }) { for (let state in { 'Pending': 1, 'Running': 1, 'Complete': 1, 'Failed': 1, 'Cancelled': 1 }) {
const f = crlist.filter(a => (a.wb_state === state)); const f = crlist.filter(a => (a.wb_state === state));


+ 18
- 0
frontend/src/js/misc/wb-process-state-name.js View File

@@ -0,0 +1,18 @@
function wbProcessStateName(containerRequest, container) {
const cr = containerRequest;
const c = container;
if (cr.state !== 'Uncommitted' && cr.priority === 0)
return 'Cancelled';
if (cr.state === 'Uncommitted' || !c || c.state === 'Queued' || c.state === 'Locked')
return 'Pending';
if (c.state === 'Running')
return 'Running';
if (c.state === 'Complete' && c.exit_code === 0)
return 'Complete';
if (c.state === 'Complete' && c.exit_code !== 0)
return 'Failed';
if (c.state === 'Cancelled')
return 'Cancelled';
}
export default wbProcessStateName;

Loading…
Cancel
Save