From 744ab9366b6d64065137868c89fda24882250edd Mon Sep 17 00:00:00 2001 From: Christopher Baines Date: Sat, 1 Feb 2020 13:33:14 +0100 Subject: Add a very basic repositories page --- guix-data-service/web/controller.scm | 2 ++ guix-data-service/web/repository/controller.scm | 5 ++++ guix-data-service/web/repository/html.scm | 34 ++++++++++++++++++++++++- 3 files changed, 40 insertions(+), 1 deletion(-) 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) -- cgit v1.2.3