summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-10-09 08:13:33 -0700
committerKaz Kylheku <kaz@kylheku.com>2016-10-09 08:13:33 -0700
commit9ce49a16dc80c8a443bcea77acdb9121dd64b175 (patch)
tree6299a03f4bc51f0397b3ec1e8560d6105eb74f14
parent6ddeab9257818ea2c750b813e0eece31a0af0b1d (diff)
downloadtamarind-9ce49a16dc80c8a443bcea77acdb9121dd64b175.tar.gz
tamarind-9ce49a16dc80c8a443bcea77acdb9121dd64b175.tar.bz2
tamarind-9ce49a16dc80c8a443bcea77acdb9121dd64b175.zip
Quick and dirty search box feature.
-rw-r--r--alias-list-form.txr14
-rw-r--r--aliases.txr13
-rw-r--r--config.txr1
3 files changed, 26 insertions, 2 deletions
diff --git a/alias-list-form.txr b/alias-list-form.txr
index c9293ae..eeea9d0 100644
--- a/alias-list-form.txr
+++ b/alias-list-form.txr
@@ -18,6 +18,18 @@
<h3>Your mail aliases:</h2>
<form name="aliaslist" method="post" action="?update-aliases">
@ (end)
+@ (if (cdddr aliases))
+@ (output)
+ <div>
+ <label for="query">Find:</label>
+ <input type="text" name="query" value="@{(html-encode search-query)}" @\
+ size="60">
+ <input type="submit" name="search" value="Search">
+ </div>
+@ (end)
+@ (end)
+@ (do (if search-regex
+ (set aliases (keep-if (op (umeth match) @1 search-regex) aliases))))
@ (if aliases)
@ (output)
<div>
@@ -47,7 +59,7 @@
send you e-mail. Attempts to send e-mail to a deleted @\
alias result in a non-delivery notice (bounce).">@\
@{aliases.address}@@@domain</a></td>
- <td>@(time-string-local aliases.creation-time "%Y-%m-%d %H:%M %Z")</td>
+ <td>@(time-string-local aliases.creation-time date-format)</td>
<td>@{aliases.(get-html-memo)}&nbsp;@\
<sup>[<a href="?edit=@{aliases.address}">edit</a>]</sup></td>
</tr>
diff --git a/aliases.txr b/aliases.txr
index 67874c7..895813d 100644
--- a/aliases.txr
+++ b/aliases.txr
@@ -15,9 +15,15 @@
(url-decode alias.memo))
(:method get-html-memo (alias)
(let* ((mem alias.(get-decoded-memo)))
- (html-encode-with-http mem)))))
+ (html-encode-with-http mem)))
+ (:method match (alias regex)
+ (or [regex alias.(get-decoded-memo)]
+ [regex alias.address]
+ [regex (time-string-local alias.creation-time date-format)]))))
@;
@(bind selected-alias-keys nil)
+@(bind search-query "")
+@(bind search-regex nil)
@;
@(define mark-aliases (aliases selected))
@ (do (each ((key selected))
@@ -111,7 +117,12 @@ chkbox-@selected=on
@ (next :list url-args)
@ (gather)
memo=@memo
+query=@query
@ (end)
+@ (set search-query @(url-decode query))
+@ (set search-regex @(if (equal search-query "")
+ nil
+ (ignerr (regex-compile search-query))))
@ (next :list url-args)
@ (cases)
@ (skip)
diff --git a/config.txr b/config.txr
index 74315ba..ca7c326 100644
--- a/config.txr
+++ b/config.txr
@@ -4,3 +4,4 @@
@(bind auth :imap)
@(bind sasl-sock "/var/run/saslauthd/mux")
@(bind csslink "")
+@(bind date-format "%Y-%m-%d %H:%M %Z")