view: Add /help page.
authorRicardo Wurmus <rekado@elephly.net>
Mon, 3 Sep 2018 12:49:34 +0000 (14:49 +0200)
committerRicardo Wurmus <rekado@elephly.net>
Mon, 3 Sep 2018 12:49:34 +0000 (14:49 +0200)
assets/css/screen.css
mumi/web/controller.scm
mumi/web/view/html.scm

index 389cffb..1517a56 100644 (file)
@@ -206,6 +206,16 @@ table {
     color: #888;
 }
 
+.filter {
+    display: inline-block;
+    color: #fff;
+    background: #aaa;
+    text-align: center;
+    padding: 2px;
+    border-radius: 3px;
+    font-family: monospace;
+}
+
 .status-tag {
     display: inline-block;
     color: #fff;
index d19e961..414b42e 100644 (file)
       `(p "Could not access issue #" (strong ,id) ".")))
     ((GET "issue" not-an-id)
      (apply render-html (unknown not-an-id)))
+    ((GET "help")
+     (apply render-html (help)))
     ((GET path ...)
      (render-static-asset request))))
index 9d5511d..3098bc3 100644 (file)
@@ -24,6 +24,7 @@
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-19)
   #:export (index
+            help
             unknown
             error-page
             issue-page
               `((h2 "Recent activity")
                 ,(list-of-bugs bugs))))))))
 
+(define (help)
+  (layout
+   #:extra-headers
+   ;; Cache for 24 hours.
+   '((cache-control . ((max-age . 86400))))
+   #:body
+   `(,(header #:search-bar? #f)
+     (div
+      (@ (class "container"))
+      (h1 "Help")
+      (a (@ (href "search")))
+      (p "You can improve the search results by making use of the
+simple query language.  Here is a list of supported query terms with
+some examples.")
+      (table
+       (@ (class "table"))
+       (thead
+        (tr
+         (th (@ (class "col-md-3")) "Filter")
+         (th (@ (class "col-md-9")) "Description")))
+       (tbody
+        (tr
+         (td (span (@ (class "filter")) "is:open") ", "
+             (span (@ (class "filter")) "is:pending"))
+         (td "Open issues."))
+        (tr
+         (td (span (@ (class "filter")) "is:closed") ", "
+             (span (@ (class "filter")) "is:done"))
+         (td "Issues marked as done."))
+        (tr
+         (td (span (@ (class "filter")) "submitter:<who>"))
+         (td "Issues submitted by a person named " (strong "who")
+             ", e.g. "
+             (span (@ (class "filter")) "author:ludo")
+             " for all issues submitted by ludo. "
+             "The filter matches both the email address and the name."))
+        (tr
+         (td (span (@ (class "filter")) "author:<who>"))
+         (td "Issues where a person named " (strong "who")
+             " has commented, e.g. "
+             (span (@ (class "filter")) "author:rekado")
+             " for all messages where rekado has commented. "
+             "The filter matches both the email address and the name."))
+        (tr
+         (td (span (@ (class "filter")) "date:<start>..<end>"))
+         (td "Issues submitted within the provided range.  "
+             (strong "start") " and " (strong "end") " can be one of "
+             (strong "now") ", " (strong "today") ", " (strong "yesterday")
+             ", a date in the formats "
+             (strong "YYYY-MM-DD") " or " (strong "YYYYMMDD")
+             ", or an amount and a unit for a point in the past, such as "
+             (strong "12d") " for 12 days ago. "
+             "Supported units are: "
+             (strong "h") " (hours), "
+             (strong "d") " (days), "
+             (strong "w") " (weeks), "
+             (strong "m") " (months), and "
+             (strong "y") " (years)."))
+        (tr
+         (td (span (@ (class "filter")) "mdate:<start>..<end>"))
+         (td "Issues with comments submitted within the provided
+range.  The supported arguments are the same as for "
+             (span (@ (class "filter")) "date:") "."))))))))
+
 (define (unknown id)
   (layout
    #:body