aboutsummaryrefslogtreecommitdiff
path: root/guix-data-service
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2019-12-16 20:18:34 +0000
committerChristopher Baines <mail@cbaines.net>2019-12-16 20:18:34 +0000
commitdc82112bf8c59fd71f2307cd6b7ca2990cc60807 (patch)
tree9f64d16864d5bb31dce483daff6ea0e4619aa1a2 /guix-data-service
parent3305d85ef0fbcab56a84a6c9c5e01435994e29f6 (diff)
downloaddata-service-dc82112bf8c59fd71f2307cd6b7ca2990cc60807.tar
data-service-dc82112bf8c59fd71f2307cd6b7ca2990cc60807.tar.gz
Simplify the derivations page display
Displaing the outputs didn't add much, so focus on neatly displaying the builds.
Diffstat (limited to 'guix-data-service')
-rw-r--r--guix-data-service/web/revision/controller.scm7
-rw-r--r--guix-data-service/web/revision/html.scm79
2 files changed, 36 insertions, 50 deletions
diff --git a/guix-data-service/web/revision/controller.scm b/guix-data-service/web/revision/controller.scm
index 8d787ad..d65de15 100644
--- a/guix-data-service/web/revision/controller.scm
+++ b/guix-data-service/web/revision/controller.scm
@@ -639,6 +639,12 @@
#:minimum-builds (assq-ref query-parameters 'minimum_builds)
#:limit-results limit-results
#:after-name (assq-ref query-parameters 'after_name)))
+ (build-server-urls
+ (group-to-alist
+ (match-lambda
+ ((id url lookup-all-derivations)
+ (cons id url)))
+ (select-build-servers conn)))
(show-next-page?
(if all-results
#f
@@ -656,6 +662,7 @@
query-parameters
(valid-systems conn)
derivations
+ build-server-urls
show-next-page?
#:path-base path-base
#:header-text header-text
diff --git a/guix-data-service/web/revision/html.scm b/guix-data-service/web/revision/html.scm
index 53a146e..8443ac9 100644
--- a/guix-data-service/web/revision/html.scm
+++ b/guix-data-service/web/revision/html.scm
@@ -862,6 +862,7 @@ figure {
query-parameters
valid-systems
derivations
+ build-server-urls
show-next-page?
#:key (path-base "/revision/")
header-text
@@ -941,56 +942,34 @@ figure {
,@(map
(match-lambda
((file-name system target builds outputs)
- (let ((build-server-ids
- (sort
- (delete-duplicates
- (append
- (map (lambda (build)
- (assoc-ref build "build_server_id"))
- (vector->list builds))
- (append-map
- (lambda (output)
- (map (lambda (nar)
- (assoc-ref nar "build_server_id"))
- (vector->list
- (or (assoc-ref output "nars")
- #()))))
- (vector->list outputs))))
- <)))
- `(tr
- (td (a (@ (href ,file-name))
- ,(display-store-item-short file-name)))
- (td (@ (style "font-family: monospace;"))
- ,system)
- (td (@ (style "font-family: monospace;"))
- ,target)
- (td ,@(map
- (lambda (build-server-id)
- `(div
- ,@(map build-status-alist->build-icon
- (filter
- (lambda (build)
- (eq? build-server-id
- (assoc-ref build "build_server_id")))
- (vector->list builds)))
- ,@(map (lambda (output)
- `(div
- "Output: " ,(assoc-ref output "output_name")
- ,@(map (lambda (nar)
- `(div
- (a (@ (href
- ,(assoc-ref output "output_path")))
- "Build server "
- ,(assoc-ref nar "build_server_id"))))
- (filter
- (lambda (nar)
- (eq? build-server-id
- (assoc-ref nar "build_server_id")))
- (vector->list
- (or (assoc-ref output "nars")
- #()))))))
- (vector->list outputs))))
- build-server-ids))))))
+ `(tr
+ (td (a (@ (href ,file-name))
+ ,(display-store-item-short file-name)))
+ (td (@ (style "font-family: monospace;"))
+ ,system)
+ (td (@ (style "font-family: monospace;"))
+ ,target)
+ (td
+ (dl
+ ,@(append-map
+ (lambda (build)
+ (let ((build-server-id
+ (assoc-ref build "build_server_id")))
+ `((dt
+ (@ (style "font-weight: unset;"))
+ (a (@ (href
+ ,(assq-ref build-server-urls
+ build-server-id)))
+ ,(assq-ref build-server-urls
+ build-server-id)))
+ (dd
+ (a (@ (href
+ ,(simple-format
+ #f "/build-server/~A/build?derivation_file_name=~A"
+ build-server-id
+ file-name)))
+ ,(build-status-alist->build-icon build))))))
+ (vector->list builds)))))))
derivations)))
,@(if show-next-page?
`((div