diff options
Diffstat (limited to 'guix-data-service/web/jobs/html.scm')
-rw-r--r-- | guix-data-service/web/jobs/html.scm | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/guix-data-service/web/jobs/html.scm b/guix-data-service/web/jobs/html.scm index 3467cbf..bf6b369 100644 --- a/guix-data-service/web/jobs/html.scm +++ b/guix-data-service/web/jobs/html.scm @@ -21,6 +21,7 @@ #:use-module (guix-data-service web html-utils) #:use-module (guix-data-service web view html) #:export (view-jobs + view-job-events view-job-queue view-job)) @@ -171,6 +172,74 @@ "Next page"))) '()))))))) +(define (view-job-events query-parameters + recent-events) + (layout + #:body + `(,(header) + (div + (@ (class "container")) + (div + (@ (class "row")) + (div + (@ (class "col-sm-12")) + (a (@ (href "/jobs")) + (h3 "Jobs")) + (h1 "Recent events"))) + (div + (@ (class "row")) + (div + (@ (class "col-sm-12")) + (div + (@ (class "well")) + (form + (@ (method "get") + (action "") + (style "padding-bottom: 0") + (class "form-horizontal")) + ,(form-horizontal-control + "Limit results" query-parameters + #:help-text "The maximum number of jobs to return.") + ,(form-horizontal-control + "All results" query-parameters + #:type "checkbox" + #:help-text "Return all results.") + (div (@ (class "form-group form-group-lg")) + (div (@ (class "col-sm-offset-2 col-sm-10")) + (button (@ (type "submit") + (class "btn btn-lg btn-primary")) + "Update results"))))))) + (div + (@ (class "row")) + (div + (@ (class "col-sm-12")) + (table + (@ (class "table")) + (thead + (tr + (th "Commit") + (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))))))))) + (define (view-job-queue jobs-and-events) (layout #:body |