From 60cbf9cab14aa492899699e505501d144d30ca14 Mon Sep 17 00:00:00 2001
From: Kai Reinhard <K.Reinhard@micromata.de>
Date: Tue, 15 Jan 2019 23:39:20 +0000
Subject: [PATCH] Show old jobs...
---
borgbutler-webapp/src/components/views/jobs/JobMonitorPanel.jsx | 2
borgbutler-webapp/src/components/views/jobs/Job.jsx | 23 +++++++----
borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/JobsRest.java | 45 +++++++++++++---------
3 files changed, 42 insertions(+), 28 deletions(-)
diff --git a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/JobsRest.java b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/JobsRest.java
index 7c6539c..d7d8835 100644
--- a/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/JobsRest.java
+++ b/borgbutler-server/src/main/java/de/micromata/borgbutler/server/rest/JobsRest.java
@@ -26,7 +26,7 @@
public class JobsRest {
private static Logger log = LoggerFactory.getLogger(JobsRest.class);
- private static List<JsonJobQueue> testList;
+ private static List<JsonJobQueue> testList, oldJobsTestList;
@GET
@Produces(MediaType.APPLICATION_JSON)
@@ -43,7 +43,7 @@
@QueryParam("prettyPrinter") boolean prettyPrinter) {
if (testMode) {
// Return dynamic test queue:
- return returnTestList(prettyPrinter);
+ return returnTestList(oldJobs, prettyPrinter);
}
boolean validRepo = false;
if (StringUtils.isNotBlank(repo) && !"null".equals(repo) && !"undefined".equals(repo)) {
@@ -104,28 +104,31 @@
/**
* Only for test purposes and development.
*
+ * @param oldJobs
* @param prettyPrinter
* @return
*/
- private String returnTestList(boolean prettyPrinter) {
- if (testList == null) {
- testList = new ArrayList<>();
+ private String returnTestList(boolean oldJobs, boolean prettyPrinter) {
+ List<JsonJobQueue> list = oldJobs ? oldJobsTestList : testList;
+ if (list == null) {
+ list = new ArrayList<>();
long uniqueJobNumber = 100000;
JsonJobQueue queue = new JsonJobQueue().setRepo("My Computer");
- addTestJob(queue, "info", "my-macbook", 0, 2342)
- .setUniqueJobNumber(uniqueJobNumber++);
- addTestJob(queue, "list", "my-macbook", -1, -1)
- .setUniqueJobNumber(uniqueJobNumber++);
- testList.add(queue);
+ addTestJob(queue, "info", "my-macbook", 0, 2342, uniqueJobNumber++, oldJobs);
+ addTestJob(queue, "list", "my-macbook", -1, -1, uniqueJobNumber++, oldJobs);
+ list.add(queue);
queue = new JsonJobQueue().setRepo("My Server");
- addTestJob(queue, "list", "my-server", 0, 1135821)
- .setUniqueJobNumber(uniqueJobNumber++);
- addTestJob(queue, "info", "my-server", -1, -1)
- .setUniqueJobNumber(uniqueJobNumber++);
- testList.add(queue);
- } else {
- for (JsonJobQueue jobQueue : testList) {
+ addTestJob(queue, "list", "my-server", 0, 1135821, uniqueJobNumber++, oldJobs);
+ addTestJob(queue, "info", "my-server", -1, -1, uniqueJobNumber++, oldJobs);
+ list.add(queue);
+ if (oldJobs) {
+ oldJobsTestList = list;
+ } else {
+ testList = list;
+ }
+ } else if (!oldJobs) {
+ for (JsonJobQueue jobQueue : list) {
for (JsonJob job : jobQueue.getJobs()) {
if (job.getStatus() != AbstractJob.Status.RUNNING) continue;
long current = job.getProgressInfo().getCurrent();
@@ -148,7 +151,7 @@
}
}
}
- return JsonUtils.toJson(testList, prettyPrinter);
+ return JsonUtils.toJson(list, prettyPrinter);
}
/**
@@ -161,7 +164,7 @@
* @param total
* @return
*/
- private JsonJob addTestJob(JsonJobQueue queue, String operation, String host, long current, long total) {
+ private JsonJob addTestJob(JsonJobQueue queue, String operation, String host, long current, long total, long uniqueNumber, boolean oldJobs) {
ProgressInfo progressInfo = new ProgressInfo()
.setCurrent(current)
.setTotal(total);
@@ -186,6 +189,10 @@
if (queue.getJobs() == null) {
queue.setJobs(new ArrayList<>());
}
+ job.setUniqueJobNumber(uniqueNumber);
+ if (oldJobs) {
+ job.setStatus(uniqueNumber % 2 == 0 ? AbstractJob.Status.CANCELLED : AbstractJob.Status.DONE);
+ }
queue.getJobs().add(job);
return job;
}
diff --git a/borgbutler-webapp/src/components/views/jobs/Job.jsx b/borgbutler-webapp/src/components/views/jobs/Job.jsx
index dcf01f4..c069fd8 100644
--- a/borgbutler-webapp/src/components/views/jobs/Job.jsx
+++ b/borgbutler-webapp/src/components/views/jobs/Job.jsx
@@ -39,6 +39,14 @@
render() {
let content = undefined;
let job = this.props.job;
+ let cancelDisabled = undefined;
+ 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 +57,15 @@
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 === '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 +80,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>
diff --git a/borgbutler-webapp/src/components/views/jobs/JobMonitorPanel.jsx b/borgbutler-webapp/src/components/views/jobs/JobMonitorPanel.jsx
index 83fcdbb..8338ca3 100644
--- a/borgbutler-webapp/src/components/views/jobs/JobMonitorPanel.jsx
+++ b/borgbutler-webapp/src/components/views/jobs/JobMonitorPanel.jsx
@@ -102,7 +102,7 @@
content = <React.Fragment>No jobs are running or queued.</React.Fragment>
}
}
- let oldJobs = 'Old jobs...';
+ let oldJobs = 'No old jobs yet to display...';
if (this.state.oldJobsQueues && this.state.oldJobsQueues.length > 0) {
oldJobs = <React.Fragment>
{this.state.oldJobsQueues
--
Gitblit v1.10.0