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