From 1c087fae322a1b07bb7bd554ee10ff473c47c727 Mon Sep 17 00:00:00 2001
From: Fin Reinhard <fin.reinhard@icloud.com>
Date: Tue, 22 Jan 2019 20:51:03 +0000
Subject: [PATCH] Merge branch 'master' into feature/15-archive-view-url

---
 borgbutler-webapp/src/components/views/jobs/Job.jsx |   36 +++++++++++++++++++++++++++---------
 1 files changed, 27 insertions(+), 9 deletions(-)

diff --git a/borgbutler-webapp/src/components/views/jobs/Job.jsx b/borgbutler-webapp/src/components/views/jobs/Job.jsx
index dcf01f4..e9b0a14 100644
--- a/borgbutler-webapp/src/components/views/jobs/Job.jsx
+++ b/borgbutler-webapp/src/components/views/jobs/Job.jsx
@@ -39,6 +39,22 @@
     render() {
         let content = undefined;
         let job = this.props.job;
+        let cancelDisabled = undefined;
+        let times = ' (created: ' + job.createTime;
+        if (job.startTime) {
+            times += ', started: ' + job.startTime;
+        }
+        if (job.stopTime) {
+            times += ', ended: ' + job.stopTime;
+        }
+        times += ')';
+        if ((job.status !== 'RUNNING' && job.status !== 'QUEUED') || job.cancellationRequested) {
+            cancelDisabled = true;
+        }
+        let cancelButton = <div className="job-cancel"><Button color={'danger'}
+                                                               onClick={() => this.cancelJob(job.uniqueJobNumber)}
+                                                               disabled={cancelDisabled}><IconCancel/></Button>
+        </div>;
         if (job.status === 'RUNNING') {
             let progressPercent = 100;
             let color = 'success';
@@ -49,13 +65,18 @@
                 progressPercent = job.progressPercent;
             }
             content = <Progress animated color={color} value={progressPercent}>{job.progressText}</Progress>;
+        } else if (job.status === 'CANCELLED') {
+            content = <Progress color={'warning'} value={100}>{job.status}</Progress>
+            cancelButton = '';
+        } else if (job.status === 'FAILED') {
+            content = <Progress color={'danger'} value={100}>{job.status}</Progress>
+            cancelButton = '';
+        } else if (job.status === 'DONE') {
+            content = <Progress color={'success'} value={100}>{job.status}</Progress>
+            cancelButton = '';
         } else {
             content = <Progress color={'info'} value={100}>{job.status}</Progress>
         }
-        let cancelDisabled = undefined;
-        if ((job.status !== 'RUNNING' && job.status !== 'QUEUED') || job.cancellationRequested) {
-            cancelDisabled = true;
-        }
         let environmentVariables = '';
         if (job.environmentVariables && Array.isArray(job.environmentVariables)) {
             environmentVariables = job.environmentVariables.map((variable, index) => <React.Fragment key={index}>
@@ -70,10 +91,7 @@
                         <Button color="link" onClick={this.toggle}>{job.description}</Button>
                         {content}
                     </div>
-                    <div className="job-cancel"><Button color={'danger'}
-                                                        onClick={() => this.cancelJob(job.uniqueJobNumber)}
-                                                        disabled={cancelDisabled}><IconCancel/></Button>
-                    </div>
+                    {cancelButton}
                 </div>
                 <Collapse isOpen={this.state.collapse}>
                     <Card>
@@ -82,7 +100,7 @@
                                 <tbody>
                                 <tr>
                                     <th>Status</th>
-                                    <td>{job.status}</td>
+                                    <td>{job.status} {times}</td>
                                 </tr>
                                 <tr>
                                     <th>Command line</th>

--
Gitblit v1.10.0