This repository has been archived on 2020-03-24. You can view files and clone it, but cannot push or open issues or pull requests.
quay/static/js/directives/components/pages/repo-page/build.tsx
2016-12-22 15:48:46 -05:00

73 lines
2 KiB
TypeScript

import * as React from 'react';
import * as moment from "moment";
import Throbber from "./throbber";
export default class Build extends React.Component<any, any> {
render () {
let builds: any = this.props.data;
let buildsTable: any = [];
let table: any;
if (Object.keys(builds).length === 0) {
buildsTable.push('Loading')
table = <Throbber />
}
else {
// Get Builds
builds.forEach((element, i) => {
let tags: Array<any> = []
element.tags.forEach(tag => {
tags.push(
<span className="building-tag">
<span className="tag-span rp-tagSpan">
<i className="fa fa-tag"></i> {tag}
</span>
</span>
);
});
let buildId: string = element.id.split('-')[0];
let phase: string = element.phase ? element.phase : 'Cannot retrieve phase';
let started: string = element.started ? element.started : 'Cannot retrieve start date';
let message: string;
if (element.trigger_metadata && element.trigger_metadata.commit_info && element.trigger_metadata.commit_info.message){
message = element.trigger_metadata.commit_info.message;
}
else {
message = 'Cannot retrieve message';
}
buildsTable.push(
<tr key={buildId}>
<td>{phase}</td>
<td>{buildId}</td>
<td>{message}</td>
<td>{moment(started).format('l')}</td>
<td>{tags}</td>
</tr>
)
});
// Build the table
table = (
<table className="co-table">
<thead>
<tr>
<td></td>
<td>BUILD ID</td>
<td>TRIGGERED BY</td>
<td>DATE STARTED</td>
<td>TAGS</td>
</tr>
</thead>
<tbody>
{buildsTable}
</tbody>
</table>
);
}
return(
<div className="row">
{table}
</div>
);
}
}