Basic grid layout.

This commit is contained in:
Dominik Pantůček 2023-06-19 15:25:57 +02:00
parent d77beadf91
commit 3e5251608d
2 changed files with 80 additions and 62 deletions

View file

@ -473,7 +473,7 @@ util-list.import.scm: $(UTIL-LIST-SOURCES)
EXPORT-WEB-STATIC-SOURCES=export-web-static.scm brmember.import.scm \ EXPORT-WEB-STATIC-SOURCES=export-web-static.scm brmember.import.scm \
util-dir.import.scm mbase.import.scm \ util-dir.import.scm mbase.import.scm \
members-payments.import.scm cal-day.import.scm \ members-payments.import.scm cal-day.import.scm \
util-git.import.scm configuration.import.scm util-git.import.scm configuration.import.scm texts.import.scm
export-web-static.o: export-web-static.import.scm export-web-static.o: export-web-static.import.scm
export-web-static.import.scm: $(EXPORT-WEB-STATIC-SOURCES) export-web-static.import.scm: $(EXPORT-WEB-STATIC-SOURCES)

View file

@ -42,7 +42,8 @@
members-payments members-payments
cal-day cal-day
util-git util-git
configuration) configuration
texts)
;; HTML entities ;; HTML entities
(define (sanitize-html str) (define (sanitize-html str)
@ -52,66 +53,83 @@
;; Prints the HTML summary for given member to current-output-port ;; Prints the HTML summary for given member to current-output-port
(define (print-html-member mr) (define (print-html-member mr)
(print "<html>") (let ((bhs (brmember-balance-history mr)))
(print "<head>") (print "<!DOCTYPE html>")
(print "<title>Brmlab member " (print "<html>")
(brmember-nick mr) (print "<head>")
"</title>") (print "<meta charset=\"utf-8\">")
(print "<style>") (print "<title>Brmlab member "
(print "table{border-collapse:collapse;border:1px solid grey}") (brmember-nick mr)
(print "td,th{border:1px solid grey}") "</title>")
(print ".r{text-align:right}") (print "<style>")
(print "</style>") (print "body{padding:0px;margin:0px}")
(print "</head>") (print "h1{padding:0px;margin:0px;text-indent:10px}")
(print "<body>") (print "h1:after{display:block;border-top:1px solid #8cacbb;border-bottom:1px solid #8cacbb;padding:10px;content:\"\";background:#dee7ec;height:10px;padding:0px}")
(print "<h1>Brmlab member " (brmember-nick mr) "</h1>") (print "table{border-collapse:collapse;border:1px solid grey}")
(print "<hr>") (print "td,th{border:1px solid grey}")
(print "<dl>") (print ".r{text-align:right}")
(print "<dt>Nick:</dt><dd>" (brmember-nick mr) "</dd>") (print ".gc{display:grid}")
(print "<dt>Id:</dt><dd>" (brmember-id mr) "</dd>") (print ".gl{grid-column:1}")
(print "</dl>") (print ".gr{grid-column:2}")
(print "<hr>") (print "footer{background:#dee7ec;border-top:1px solid #8cacbb;padding:10px}")
(print "<h2>Member file</h2>") (print "</style>")
(print "<pre>") (print "</head>")
(print (sanitize-html (print "<body>")
(string-intersperse (brmember-source mr) "\n"))) (print "<h1>Brmlab member " (brmember-nick mr) "</h1>")
(print "</pre>") (print "<div class=\"gc\">")
(print "<hr>") (print "<div class=\"gl\">")
(print "<h2>Payments history</h2>") (print "<dl>")
(print "<table>") (print "<dt>Nick:</dt><dd>" (brmember-nick mr) "</dd>")
(print "<thead><tr><th>Date</th><th>Type</th><th>Comment</th><th>Amount</th><th>Currency</th><th>Amount [CZK]</th><th>Balance</th></tr></thead>") (print "<dt>Id:</dt><dd>" (brmember-id mr) "</dd>")
(print "<tbody>") (print "<dt>Balance:</dt><dd>" (caar (reverse bhs)) "</dd>")
(for-each (lambda (hr) (print "</dl>")
(print "<tr><td>" (print "<hr>")
(cal-day->string (cadr hr)) (print "<h2>Payments history</h2>")
"</td><td>" (print "<table>")
(list-ref hr 6) (print "<thead><tr><th>Date</th><th>Type</th><th>Comment</th><th>Amount</th><th>Currency</th><th>Amount [CZK]</th><th>Balance</th></tr></thead>")
"</td><td>" (print "<tbody>")
(list-ref hr 4) (for-each (lambda (hr)
"</td><td class=\"r\">" (print "<tr><td>"
(exact->inexact (list-ref hr 2)) (cal-day->string (cadr hr))
"</td><td>" "</td><td>"
(list-ref hr 3) (list-ref hr 6)
"</td><td class=\"r\">" "</td><td>"
(list-ref hr 5) (list-ref hr 4)
"</td><td class=\"r\">" "</td><td class=\"r\">"
(exact->inexact (car hr)) (exact->inexact (list-ref hr 2))
"</td></tr>" "</td><td>"
)) (list-ref hr 3)
(brmember-balance-history mr)) "</td><td class=\"r\">"
(print "</tbody>") (list-ref hr 5)
(print "</table>") "</td><td class=\"r\">"
(print "<hr>") (exact->inexact (car hr))
(print "<h2>Member File Git Log</h2>") "</td></tr>"
(print "<pre>") ))
(for-each (lambda (l) bhs)
(print (sanitize-html l))) (print "</tbody>")
((git (*members-directory*) #:output) (print "</table>")
'log '-p '-- (print "</div>")
(brmember-file-name mr))) (print "<div class=\"gr\">")
(print "</pre>") (print "<hr>")
(print "</body>") (print "<h2>Member file</h2>")
(print "</html>")) (print "<pre>")
(print (sanitize-html
(string-intersperse (brmember-source mr) "\n")))
(print "</pre>")
(print "<hr>")
(print "<h2>Member File Git Log</h2>")
(print "<pre>")
(for-each (lambda (l)
(print (sanitize-html l)))
((git (*members-directory*) #:output)
'log '-p '--
(brmember-file-name mr)))
(print "</pre>")
(print "</div>")
(print "</div>")
(print "<footer>Generated by " banner-line "</footer>")
(print "</body>")
(print "</html>")))
;; Generates a single member in given directory ;; Generates a single member in given directory
(define (gen-html-member mr dir) (define (gen-html-member mr dir)