From 9f1efeee7d150d1a1a349d250891b714469ba474 Mon Sep 17 00:00:00 2001 From: Gregory Eremin Date: Sat, 4 Nov 2017 21:55:01 +0100 Subject: [PATCH] History page refactoring --- frontend/src/pages/history.js | 81 +++++++++++++++++++---------------- 1 file changed, 44 insertions(+), 37 deletions(-) diff --git a/frontend/src/pages/history.js b/frontend/src/pages/history.js index 2bddd2e..a0b1de9 100644 --- a/frontend/src/pages/history.js +++ b/frontend/src/pages/history.js @@ -1,61 +1,68 @@ -import React, { Component } from 'react'; -import { Link } from 'react-router-dom'; +import React, { Component } from 'react' +import { Link } from 'react-router-dom' -import Nav from '../blocks/nav.js'; -import JobList from '../blocks/job_list.js'; -import User from '../blocks/user.js'; -import { api, httpGET } from '../http.js'; -import './history.css'; +import Nav from '../blocks/nav.js' +import JobList from '../blocks/job_list.js' +import User from '../blocks/user.js' +import Alert from '../blocks/alert.js' +import { api, httpGET } from '../http.js' +import './history.css' export default class History extends Component { constructor(props) { - super(props); - this.state = {}; + super(props) + this.state = {} } componentDidMount() { - var url; - if (this.props.cmd !== undefined) { - url = api("/commands/" + this.props.cmd + "/jobs") - } else if (this.props.userID !== undefined) { - url = api("/users/" + this.props.userID + "/jobs") - } else { - url = api("/jobs") - } - httpGET(url, + httpGET(this.endpointFromProps(this.props), (status, body) => { - let jobs = JSON.parse(body); - this.setState({jobs: jobs}); + let jobs = JSON.parse(body) + this.setState({jobs: jobs}) }, (error) => { - console.log("Failed to load jobs:", error); + this.setState({error: "Failed to load jobs: "+ error}) }, - ); + ) + } + + endpointFromProps(props) { + if (props.cmd !== undefined) { + return api("/commands/" + props.cmd + "/jobs") + } else if (props.userID !== undefined) { + return api("/users/" + props.userID + "/jobs") + } else { + return api("/jobs") + } } render() { - let details; - if (this.props.cmd !== undefined) { - details = ( -
- Command -
{this.props.cmd}
-
- ); - } else if (this.props.userID !== undefined) { - details = ( - - ); - } return (
- ); + ) + } + + renderJobDetails() { + if (this.props.cmd !== undefined) { + return ( +
+ Command +
{this.props.cmd}
+
+ ) + } else if (this.props.userID !== undefined) { + return ( + + ) + } + return null } }