Merge pull request #8943 from jmchilton/jobs_list_refactor

Move Jobs updated time display logic to client.
This commit is contained in:
Marius van den Beek
2019-12-10 10:03:56 +01:00
committed by GitHub
4 changed files with 40 additions and 9 deletions
@@ -0,0 +1,33 @@
<template>
<span class="utc-time" v-if="mode == 'date'" :title="elapsedTime">
{{ fullDate }}
</span>
<span class="utc-time utc-time-elapsed" v-else :title="fullDate">
{{ elapsedTime }}
</span>
</template>
<script>
import moment from "moment";
export default {
props: {
date: {
type: String,
required: true
},
mode: {
type: String,
default: "date" // or elapsed
}
},
computed: {
elapsedTime: function() {
return moment(moment.utc(this.date)).from(moment().utc());
},
fullDate: function() {
return moment.utc(this.date).format();
}
}
};
</script>
@@ -166,6 +166,9 @@
{{ data.value["id"] }}
</b-link>
</template>
<template v-slot:cell(update_time)="data">
<utc-date :date="data.value" mode="elapsed" />
</template>
<template v-slot:row-details="row">
<b-card>
<h5>Command Line</h5>
@@ -181,9 +184,11 @@
<script>
import { getAppRoot } from "onload/loadConfig";
import UtcDate from "components/UtcDate";
import axios from "axios";
export default {
components: { UtcDate },
data() {
return {
jobsItems: [],
+1
View File
@@ -38,6 +38,7 @@
"latex-parser": "^0.6.2",
"latex-to-unicode-converter": "^0.5.2",
"markdown-it": "^8.4.2",
"moment": "2.20.1",
"popper.js": "^1.14.7",
"pyre-to-regexp": "^0.0.5",
"raven-js": "^3.27.0",
@@ -1579,14 +1579,6 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP
def prepare_jobs_list(jobs):
res = []
for job in jobs:
delta = datetime.utcnow() - job.update_time
update_time = ""
if delta.days > 0:
update_time = '%s hours ago' % (delta.days * 24 + int(delta.seconds / 60 / 60))
elif delta > timedelta(minutes=59):
update_time = '%s hours ago' % int(delta.seconds / 60 / 60)
else:
update_time = '%s minutes ago' % int(delta.seconds / 60)
inputs = ""
try:
inputs = ", ".join(['{} {}'.format(da.dataset.id, da.dataset.state) for da in job.input_datasets])
@@ -1598,7 +1590,7 @@ class AdminGalaxy(controller.JSAppLauncher, AdminActions, UsesQuotaMixin, QuotaP
'info_url': "{}?jobid={}".format(web.url_for(controller="admin", action="job_info"), job.id)
},
'user': job.history.user.email if job.history and job.history.user else 'anonymous',
'update_time': update_time,
'update_time': job.update_time.isoformat(),
'tool_id': job.tool_id,
'state': job.state,
'input_dataset': inputs,