Support the search query input on the revision derivations page

This commit is contained in:
Christopher Baines 2020-01-04 21:46:22 +00:00
parent 444649cbc9
commit 6cb7e92257

View file

@ -169,7 +169,8 @@
(guard-against-mutually-exclusive-query-parameters (guard-against-mutually-exclusive-query-parameters
(parse-query-parameters (parse-query-parameters
request request
`((system ,parse-system #:multi-value) `((search_query ,identity)
(system ,parse-system #:multi-value)
(target ,parse-system #:multi-value) (target ,parse-system #:multi-value)
(maximum_builds ,parse-number) (maximum_builds ,parse-number)
(minimum_builds ,parse-number) (minimum_builds ,parse-number)
@ -178,10 +179,7 @@
#:no-default-when (all_results) #:no-default-when (all_results)
#:default 10) #:default 10)
(all_results ,parse-checkbox-value))) (all_results ,parse-checkbox-value)))
;; You can't specify a search query, but then also limit the '((limit_results all_results)))))
;; results by filtering for after a particular package name
'((after_name search_query)
(limit_results all_results)))))
(render-revision-derivations mime-types (render-revision-derivations mime-types
conn conn
@ -637,7 +635,20 @@
(assq-ref query-parameters 'limit_results)) (assq-ref query-parameters 'limit_results))
(all-results (all-results
(assq-ref query-parameters 'all_results)) (assq-ref query-parameters 'all_results))
(search-query
(assq-ref query-parameters 'search_query))
(derivations (derivations
(if search-query
(search-derivations-in-revision
conn
commit-hash
search-query
#:systems (assq-ref query-parameters 'system)
#:targets (assq-ref query-parameters 'target)
#:maximum-builds (assq-ref query-parameters 'maximum_builds)
#:minimum-builds (assq-ref query-parameters 'minimum_builds)
#:limit-results limit-results
#:after-name (assq-ref query-parameters 'after_name))
(select-derivations-in-revision (select-derivations-in-revision
conn conn
commit-hash commit-hash
@ -646,7 +657,7 @@
#:maximum-builds (assq-ref query-parameters 'maximum_builds) #:maximum-builds (assq-ref query-parameters 'maximum_builds)
#:minimum-builds (assq-ref query-parameters 'minimum_builds) #:minimum-builds (assq-ref query-parameters 'minimum_builds)
#:limit-results limit-results #:limit-results limit-results
#:after-name (assq-ref query-parameters 'after_name))) #:after-name (assq-ref query-parameters 'after_name))))
(build-server-urls (build-server-urls
(group-to-alist (group-to-alist
(match-lambda (match-lambda
@ -656,8 +667,9 @@
(show-next-page? (show-next-page?
(if all-results (if all-results
#f #f
(and (not (null? derivations))
(>= (length derivations) (>= (length derivations)
limit-results)))) limit-results)))))
(case (most-appropriate-mime-type (case (most-appropriate-mime-type
'(application/json text/html) '(application/json text/html)
mime-types) mime-types)