guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

03/05: Improve the revision builds page


From: Christopher Baines
Subject: 03/05: Improve the revision builds page
Date: Sat, 4 Jul 2020 04:32:05 -0400 (EDT)

cbaines pushed a commit to branch master
in repository data-service.

commit 4b1dc76f186439cbc2b2c8d8238814b242b68417
Author: Christopher Baines <mail@cbaines.net>
AuthorDate: Fri Jul 3 20:33:16 2020 +0100

    Improve the revision builds page
    
    Allow specifying how many results to show, and say how many results are 
being
    shown.
---
 guix-data-service/web/revision/controller.scm | 22 +++++++++++++++-------
 guix-data-service/web/revision/html.scm       |  8 ++++++++
 2 files changed, 23 insertions(+), 7 deletions(-)

diff --git a/guix-data-service/web/revision/controller.scm 
b/guix-data-service/web/revision/controller.scm
index 5ef3451..ceb8d1d 100644
--- a/guix-data-service/web/revision/controller.scm
+++ b/guix-data-service/web/revision/controller.scm
@@ -282,12 +282,18 @@
     (('GET "revision" commit-hash "builds")
      (if (guix-commit-exists? conn commit-hash)
          (let ((parsed-query-parameters
-                (parse-query-parameters
-                 request
-                 `((build_status ,parse-build-status #:multi-value)
-                   (build_server ,(parse-build-server conn) #:multi-value)
-                   (system ,parse-system #:default "x86_64-linux")
-                   (target ,parse-target #:default "")))))
+                (guard-against-mutually-exclusive-query-parameters
+                 (parse-query-parameters
+                  request
+                  `((build_status ,parse-build-status #:multi-value)
+                    (build_server ,(parse-build-server conn) #:multi-value)
+                    (system ,parse-system #:default "x86_64-linux")
+                    (target ,parse-target #:default "")
+                    (limit_results         ,parse-result-limit
+                                           #:no-default-when (all_results)
+                                           #:default 50)
+                    (all_results           ,parse-checkbox-value)))
+                 '((limit_results all_results)))))
 
            (render-revision-builds mime-types
                                    conn
@@ -1057,7 +1063,9 @@
                                                  'build_server)
                                        #:revision-commit commit-hash
                                        #:system system
-                                       #:target target))))))
+                                       #:target target
+                                       #:limit (assq-ref query-parameters
+                                                         'limit_results)))))))
 
 (define* (render-revision-lint-warnings mime-types
                                         conn
diff --git a/guix-data-service/web/revision/html.scm 
b/guix-data-service/web/revision/html.scm
index 6aa3218..543fba8 100644
--- a/guix-data-service/web/revision/html.scm
+++ b/guix-data-service/web/revision/html.scm
@@ -1908,6 +1908,13 @@ figure {
             #:allow-selecting-multiple-options #f
             #:help-text "Only include derivations that are build for this 
system."
             #:font-family "monospace")
+          ,(form-horizontal-control
+            "Limit results" query-parameters
+            #:help-text "The maximum number of results 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")
@@ -1915,6 +1922,7 @@ figure {
                             "Update results")))))))
       (div
        (@ (class "row"))
+       (p "Showing " ,(length builds) " results")
        (div
         (@ (class "col-sm-12"))
         (table



reply via email to

[Prev in Thread] Current Thread [Next in Thread]