34 lines
1.1 KiB
Scheme
34 lines
1.1 KiB
Scheme
(use-modules (srfi srfi-69) (tracks conns) (tracks register))
|
|
|
|
(define (conns-handler-registered-tracks qlist)
|
|
(let* ((sortf (lambda (ent1 ent2)
|
|
(string< (car ent1) (car ent2))))
|
|
(tracks (sort-list! (hash-table->alist registered-tracks) sortf))
|
|
(clist-mapf (lambda (ent) (cons (caar ent) (cadr ent))))
|
|
(conns-cell
|
|
(lambda (clist)
|
|
`(td (img (@ (src "/conns.svg?"
|
|
,@(conns-query->qstring
|
|
(map clist-mapf clist))))))))
|
|
(make-track-entry
|
|
(lambda (ent)
|
|
(let* ((cvects (cdr ent))
|
|
(clists (vector->list cvects))
|
|
(cells (map-in-order conns-cell clists)))
|
|
`(tr (td ,(car ent))
|
|
,@cells))))
|
|
(track-entries (map-in-order make-track-entry tracks))
|
|
(style (string-append
|
|
"img{height:calc(1em + 20px);width:auto;display:block}"
|
|
"td:not(:first-child){padding:0 !important}")))
|
|
(respond-html
|
|
`(("Known tracks" (style ,style))
|
|
(table (@ (class "standard-table"))
|
|
(tr (th "Name")
|
|
(th (@ (colspan 4)) "Conns"))
|
|
,@track-entries)))))
|
|
|
|
(set! dataserver-handlers
|
|
(cons* (cons '("registered-tracks") conns-handler-registered-tracks)
|
|
dataserver-handlers))
|