diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2016-10-09 08:13:33 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2016-10-09 08:13:33 -0700 |
commit | 9ce49a16dc80c8a443bcea77acdb9121dd64b175 (patch) | |
tree | 6299a03f4bc51f0397b3ec1e8560d6105eb74f14 | |
parent | 6ddeab9257818ea2c750b813e0eece31a0af0b1d (diff) | |
download | tamarind-9ce49a16dc80c8a443bcea77acdb9121dd64b175.tar.gz tamarind-9ce49a16dc80c8a443bcea77acdb9121dd64b175.tar.bz2 tamarind-9ce49a16dc80c8a443bcea77acdb9121dd64b175.zip |
Quick and dirty search box feature.
-rw-r--r-- | alias-list-form.txr | 14 | ||||
-rw-r--r-- | aliases.txr | 13 | ||||
-rw-r--r-- | config.txr | 1 |
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)} @\ <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) @@ -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") |