aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2020-02-01 13:33:14 +0100
committerChristopher Baines <mail@cbaines.net>2020-02-01 13:33:14 +0100
commit744ab9366b6d64065137868c89fda24882250edd (patch)
tree3d62909d689a37e9a4fc8e11089b8c772f72ae21
parent6bc753dd0e3f277128a1fe0687720fd1e66b430f (diff)
downloaddata-service-744ab9366b6d64065137868c89fda24882250edd.tar
data-service-744ab9366b6d64065137868c89fda24882250edd.tar.gz
Add a very basic repositories page
-rw-r--r--guix-data-service/web/controller.scm2
-rw-r--r--guix-data-service/web/repository/controller.scm5
-rw-r--r--guix-data-service/web/repository/html.scm34
3 files changed, 40 insertions, 1 deletions
diff --git a/guix-data-service/web/controller.scm b/guix-data-service/web/controller.scm
index f8903c9..5a89ed7 100644
--- a/guix-data-service/web/controller.scm
+++ b/guix-data-service/web/controller.scm
@@ -289,6 +289,8 @@
(count-derivations conn))))
(('GET "revision" args ...)
(delegate-to revision-controller))
+ (('GET "repositories")
+ (delegate-to repository-controller))
(('GET "repository" _ ...)
(delegate-to repository-controller))
(('GET "gnu" "store" filename)
diff --git a/guix-data-service/web/repository/controller.scm b/guix-data-service/web/repository/controller.scm
index 30e7ffd..aaf763c 100644
--- a/guix-data-service/web/repository/controller.scm
+++ b/guix-data-service/web/repository/controller.scm
@@ -42,6 +42,11 @@
(uri-path (request-uri request)))
(match method-and-path-components
+ (('GET "repositories")
+ (let ((git-repositories (all-git-repositories conn)))
+ (render-html
+ #:sxml
+ (view-git-repositories git-repositories))))
(('GET "repository" id)
(match (select-git-repository conn id)
((label url cgit-url-base)
diff --git a/guix-data-service/web/repository/html.scm b/guix-data-service/web/repository/html.scm
index 4503f08..b001be7 100644
--- a/guix-data-service/web/repository/html.scm
+++ b/guix-data-service/web/repository/html.scm
@@ -21,12 +21,44 @@
#:use-module (ice-9 match)
#:use-module (guix-data-service web html-utils)
#:use-module (guix-data-service web view html)
- #:export (view-git-repository
+ #:export (view-git-repositories
+ view-git-repository
view-branches
view-branch
view-branch-package
view-branch-package-derivations))
+(define* (view-git-repositories git-repositories)
+ (layout
+ #:body
+ `(,(header)
+ (div
+ (@ (class "container"))
+ (div
+ (@ (class "row"))
+ (div
+ (@ (class "col-md-12"))
+ (h1 "Git repositories")))
+ ,@(map
+ (match-lambda
+ ((id label url cgit-base-url)
+ `(div
+ (@ (class "row"))
+ (div
+ (@ (class "col-md-12"))
+ (h3 ,url)
+ (a (@ (href ,(string-append "/repository/" (number->string id))))
+ "View repository")
+ (dl
+ (@ (class "dl-horizontal"))
+ (dt "Label")
+ (dd ,label)
+ (dt "URL")
+ (dd ,url)
+ (dt "cgit base URL")
+ (dd ,cgit-base-url))))))
+ git-repositories)))))
+
(define* (view-git-repository git-repository-id
label url cgit-url-base
branches-with-most-recent-commits)