diff options
author | Christopher Baines <mail@cbaines.net> | 2020-07-01 19:51:21 +0100 |
---|---|---|
committer | Christopher Baines <mail@cbaines.net> | 2020-07-01 19:51:21 +0100 |
commit | dc8b442e128a1338656469e48af759574734f6d6 (patch) | |
tree | 9ede8548a664041fa06cf302f086cdac42ab032f | |
parent | 1e2fefa7cf796b6a74f729b27805fbf140592ca7 (diff) | |
download | data-service-dc8b442e128a1338656469e48af759574734f6d6.tar data-service-dc8b442e128a1338656469e48af759574734f6d6.tar.gz |
Improve the linking to build servers
Add a build-url function that returns the URL to use, and use this where
appropriate.
-rw-r--r-- | guix-data-service/model/build.scm | 26 | ||||
-rw-r--r-- | guix-data-service/web/build/html.scm | 7 | ||||
-rw-r--r-- | guix-data-service/web/html-utils.scm | 12 | ||||
-rw-r--r-- | guix-data-service/web/revision/html.scm | 7 | ||||
-rw-r--r-- | guix-data-service/web/view/html.scm | 15 |
5 files changed, 37 insertions, 30 deletions
diff --git a/guix-data-service/model/build.scm b/guix-data-service/model/build.scm index b9ba241..ac1e870 100644 --- a/guix-data-service/model/build.scm +++ b/guix-data-service/model/build.scm @@ -19,6 +19,7 @@ #:use-module (ice-9 match) #:use-module (squee) #:use-module (json) + #:use-module (guix-data-service database) #:use-module (guix-data-service model utils) #:export (select-build-stats select-builds-with-context @@ -145,7 +146,8 @@ ORDER BY status")) (define query (string-append " -SELECT builds.id, build_servers.url, derivations.file_name, +SELECT builds.id, build_servers.url, + builds.build_server_build_id, derivations.file_name, latest_build_status.timestamp, latest_build_status.status FROM builds INNER JOIN build_servers ON build_servers.id = builds.build_server_id @@ -181,17 +183,17 @@ ON latest_build_status.build_id = builds.id ORDER BY latest_build_status.timestamp DESC LIMIT 100")) - (exec-query conn - query - `(,@(if revision-commit - (list revision-commit) - '()) - ,@(if system - (list system) - '()) - ,@(if target - (list target) - '())))) + (exec-query-with-null-handling conn + query + `(,@(if revision-commit + (list revision-commit) + '()) + ,@(if system + (list system) + '()) + ,@(if target + (list target) + '())))) (define (select-builds-with-context-by-derivation-file-name conn derivation-file-name) diff --git a/guix-data-service/web/build/html.scm b/guix-data-service/web/build/html.scm index c3d7c90..fdbfd7e 100644 --- a/guix-data-service/web/build/html.scm +++ b/guix-data-service/web/build/html.scm @@ -103,14 +103,15 @@ (tbody ,@(map (match-lambda - ((build-id build-server-url derivation-file-name + ((build-id build-server-url build-server-build-id + derivation-file-name timestamp status) `(tr (td (@ (class "text-center")) (a (@ (href - ,(simple-format - #f "/build-server/~A/build?derivation_file_name=~A" + ,(build-url (assoc-ref build-server-options build-server-url) + build-server-build-id derivation-file-name))) ,(build-status-span status))) (td (a (@ (href ,derivation-file-name)) diff --git a/guix-data-service/web/html-utils.scm b/guix-data-service/web/html-utils.scm index 6286b8f..bdafae3 100644 --- a/guix-data-service/web/html-utils.scm +++ b/guix-data-service/web/html-utils.scm @@ -25,6 +25,7 @@ build-status-value->display-string build-status-span + build-url build-status-alist->build-icon)) (define (sexp-div sexp) @@ -67,6 +68,17 @@ ("" . "Unknown")) value)) +(define (build-url build-server-id build-server-build-id derivation-file-name) + (if (string? build-server-build-id) + (simple-format + #f "/build-server/~A/build?build_server_build_id=~A" + build-server-id + build-server-build-id) + (simple-format + #f "/build-server/~A/build?derivation_file_name=~A" + build-server-id + derivation-file-name))) + (define (build-status-span status) `(span (@ (class ,(string-append "label label-" diff --git a/guix-data-service/web/revision/html.scm b/guix-data-service/web/revision/html.scm index 60c6466..b2622b3 100644 --- a/guix-data-service/web/revision/html.scm +++ b/guix-data-service/web/revision/html.scm @@ -1929,14 +1929,15 @@ figure { (tbody ,@(map (match-lambda - ((build-id build-server-url derivation-file-name + ((build-id build-server-url build-server-build-id + derivation-file-name timestamp status) `(tr (td (@ (class "text-center")) (a (@ (href - ,(simple-format - #f "/build-server/~A/build?derivation_file_name=~A" + ,(build-url (assoc-ref build-server-options build-server-url) + build-server-build-id derivation-file-name))) ,(build-status-span status))) (td (a (@ (href ,derivation-file-name)) diff --git a/guix-data-service/web/view/html.scm b/guix-data-service/web/view/html.scm index cf5421a..9dcd7aa 100644 --- a/guix-data-service/web/view/html.scm +++ b/guix-data-service/web/view/html.scm @@ -634,21 +634,12 @@ time." ((build-server-id build-server-url build-server-build-id timestamp status) - (define build-url - (if (string? build-server-build-id) - (simple-format - #f "/build-server/~A/build?build_server_build_id=~A" - build-server-id - build-server-build-id) - (simple-format - #f "/build-server/~A/build?derivation_file_name=~A" - build-server-id - (second derivation)))) - `(div (@ (class "text-center")) (div - (a (@ (href ,build-url)) + (a (@ (href ,(build-url build-server-id + build-server-build-id + (second derivation)))) ,(build-status-span status))) (a (@ (style "display: inline-block; margin-top: 0.4em;") (href ,(simple-format |