From 2062badf5167d942c0eb96d7ca73e0906de7e36b Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sun, 12 Jan 2020 17:30:52 +0000 Subject: Add a small table of recent job events To make it easier to see what recently happened. --- guix-data-service/jobs/load-new-guix-revision.scm | 21 +++++++++++++++ guix-data-service/web/jobs/controller.scm | 4 ++- guix-data-service/web/jobs/html.scm | 33 +++++++++++++++++++++++ 3 files changed, 57 insertions(+), 1 deletion(-) diff --git a/guix-data-service/jobs/load-new-guix-revision.scm b/guix-data-service/jobs/load-new-guix-revision.scm index 038d74f..457f6cb 100644 --- a/guix-data-service/jobs/load-new-guix-revision.scm +++ b/guix-data-service/jobs/load-new-guix-revision.scm @@ -56,6 +56,7 @@ process-load-new-guix-revision-job select-job-for-commit select-jobs-and-events + select-recent-job-events select-unprocessed-jobs-and-events select-jobs-and-events-for-commit record-job-event @@ -1076,6 +1077,26 @@ RETURNING id;") (list commit)))) result)) +(define* (select-recent-job-events conn + #:key (limit 8)) + (define query + (string-append + " +SELECT + load_new_guix_revision_jobs.id, + load_new_guix_revision_jobs.commit, + load_new_guix_revision_jobs.source, + load_new_guix_revision_jobs.git_repository_id, + load_new_guix_revision_job_events.event, + load_new_guix_revision_job_events.occurred_at +FROM load_new_guix_revision_jobs +INNER JOIN load_new_guix_revision_job_events + ON load_new_guix_revision_job_events.job_id = load_new_guix_revision_jobs.id +ORDER BY load_new_guix_revision_job_events.occurred_at DESC +LIMIT " (number->string limit))) + + (exec-query conn query)) + (define (select-jobs-and-events conn before-id limit) (define query (string-append diff --git a/guix-data-service/web/jobs/controller.scm b/guix-data-service/web/jobs/controller.scm index 949fac2..733fb35 100644 --- a/guix-data-service/web/jobs/controller.scm +++ b/guix-data-service/web/jobs/controller.scm @@ -64,11 +64,13 @@ (jobs (select-jobs-and-events conn (assq-ref query-parameters 'before_id) - limit-results))) + limit-results)) + (recent-events (select-recent-job-events conn))) (render-html #:sxml (view-jobs query-parameters jobs + recent-events (and limit-results (>= (length jobs) limit-results)))))) diff --git a/guix-data-service/web/jobs/html.scm b/guix-data-service/web/jobs/html.scm index f2b45b2..830d0e6 100644 --- a/guix-data-service/web/jobs/html.scm +++ b/guix-data-service/web/jobs/html.scm @@ -26,6 +26,7 @@ (define (view-jobs query-parameters jobs-and-events + recent-events show-next-page?) (layout #:body @@ -46,6 +47,38 @@ (href "/jobs/queue") (role "button")) "Queue")))) + (div + (@ (class "row")) + (div + (@ (class "col-sm-1"))) + (div + (@ (class "col-sm-10")) + (table + (@ (class "table")) + (thead + (tr + (th "Job") + (th "Event") + (th "Occurred at"))) + (tbody + ,@(map + (match-lambda + ((id commit source git-repository-id event occurred-at) + `(tr + (td (a (@ (href + ,(string-append + "/revision/" commit))) + (samp ,commit))) + (td ,@(let ((classes '(("start" . "info") + ("success" . "success") + ("failure" . "danger")))) + (or (and=> (assoc-ref classes event) + (lambda (class) + `((@ (class ,class))))) + '())) + ,event) + (td ,occurred-at)))) + recent-events))))) (div (@ (class "row")) (div -- cgit v1.2.3