From 2214bef26285dc93b5cba411c5513635a590837a Mon Sep 17 00:00:00 2001 From: Oliver Giles Date: Sat, 2 Dec 2017 17:55:21 +0200 Subject: [PATCH] show first run of a job on all jobs page --- src/resources/js/app.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/resources/js/app.js b/src/resources/js/app.js index a7fe887..c843542 100644 --- a/src/resources/js/app.js +++ b/src/resources/js/app.js @@ -286,6 +286,11 @@ const Jobs = function() { var idx = state.jobs.findIndex(job => job.name === msg.running[i].name); if (idx > -1) state.jobs[idx] = msg.running[i]; + else { + // special case: first run of a job. + state.jobs.unshift(msg.running[i]); + state.jobs.sort(function(a, b){return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;}); + } } var tags = {}; for (var i in state.jobs) { @@ -308,13 +313,21 @@ const Jobs = function() { } else { state.jobsRunning[updAt] = data; } + updAt = null; for (var i in state.jobs) { if (state.jobs[i].name === data.name) { - state.jobs[i] = data; - this.$forceUpdate(); + updAt = i; break; } } + if (updAt === null) { + // first execution of new job. TODO insert without resort + state.jobs.unshift(data); + state.jobs.sort(function(a, b){return a.name < b.name ? -1 : a.name > b.name ? 1 : 0;}); + } else { + state.jobs[updAt] = data; + } + this.$forceUpdate(); }, job_completed: function(data) { for (var i in state.jobs) {