ywatds/webui/registered-tracks.scm

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))