From e2a602d16dfad5325960dec0a16ee2b88560a36f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Sun, 9 Aug 2020 15:44:44 +0200 Subject: Add basic (semi broken) paginator to HTML search. --- module/output/html-search.scm | 39 +++++++++++++++++++++++++++++++++++++++ module/output/html.scm | 16 ++++++++-------- 2 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 module/output/html-search.scm (limited to 'module/output') diff --git a/module/output/html-search.scm b/module/output/html-search.scm new file mode 100644 index 00000000..e8414d18 --- /dev/null +++ b/module/output/html-search.scm @@ -0,0 +1,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))) + "ยป")))) + )) + )))) diff --git a/module/output/html.scm b/module/output/html.scm index e3668f08..6e6fcd30 100644 --- a/module/output/html.scm +++ b/module/output/html.scm @@ -125,6 +125,7 @@ `(div (@ (class "tab")) (input (@ (type "radio") (id ,id) (name ,tabgroup) ,@(when (zero? i) '((checked))))) + ;; TODO title attribute for label (label (@ (for ,id) (style "top: " ,(* 6 i) "ex")) ,key) (div (@ (class "content")) ,body))))) @@ -144,14 +145,13 @@ onclick: "remove_event(document.getElementById(this.closest('.popup-container').id.substr(5)))")) ,(tabset - (append - `(("๐Ÿ“…" ,(fmt-single-event ev)) - ("โค“" (div (@ (style "font-family:sans")) - (p "Ladda ner") - (ul (li (a (@ (href "/calendar/" ,(prop ev 'UID) ".ics")) - "som iCal")) - (li (a (@ (href "/calendar/" ,(prop ev 'UID) ".xcs")) - "som xCal"))))))))))) + `(("๐Ÿ“…" ,(fmt-single-event ev)) + ("โค“" (div (@ (style "font-family:sans")) + (p "Ladda ner") + (ul (li (a (@ (href "/calendar/" ,(prop ev 'UID) ".ics")) + "som iCal")) + (li (a (@ (href "/calendar/" ,(prop ev 'UID) ".xcs")) + "som xCal")))))))))) -- cgit v1.2.3