aboutsummaryrefslogtreecommitdiff
path: root/module/output/html-search.scm
blob: e8414d183d864c87d0e496b2bee17675852337c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
;; TODO rename this module
(define-module (output html-search)
  :use-module (util)
  :use-module (vcomponent)
  :use-module (ice-9 format)
  )

(define-public (search-result-page search-term search-result mp q=)
  `(*TOP*
    (*PI* xml "version=\"1.0\" encoding=\"utf-8\"")
    (html (@ (xmlns "http://www.w3.org/1999/xhtml") (lang sv))
          (head (title "Search results")
                ;; TODO (@ (output html) include-css)
                (link (@ (type "text/css")
                         (rel "stylesheet")
                         (href "/static/style.css"))))
          (body
           (h2 "Search term")
           (form
            (pre (textarea (@ (name "q") (rows 5) (spellcheck false)
                              (style "width:100%"))
                           ,(format #f "~y" search-term)))
            (input (@ (type submit))))
           (h2 "Result")
           (ul
            ,@(for event in search-result
                   `(li (@ (class "event"))
                        ,(prop event 'SUMMARY))))
           (div (@ (class "paginator"))
                ,@(let ()
                    (define (make-link n) `(a (@ (href "?" ,q= "&p=" ,n))
                                              ,n))
                    (if (car mp)         ; true max page
                        (map make-link (iota (cdr mp)))
                        (append (map make-link (iota (cdr mp)))
                                `((a (@ (href "?" ,q= "&p=" ,(cdr mp)))
                                     "»"))))
                    ))
           ))))