summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2016-04-17 11:38:23 -0700
committerKaz Kylheku <kaz@kylheku.com>2016-04-17 11:38:23 -0700
commit6a6b5f8c096c207943aa2ebddcc7da4364d994c9 (patch)
treef25cc81d37fc64629170453e831b1f1f735db808
parent19a2a8cadf52149229f0883155b8fcb562b676b8 (diff)
downloadtamarind-6a6b5f8c096c207943aa2ebddcc7da4364d994c9.tar.gz
tamarind-6a6b5f8c096c207943aa2ebddcc7da4364d994c9.tar.bz2
tamarind-6a6b5f8c096c207943aa2ebddcc7da4364d994c9.zip
When moving around aliases, keep checkbox values.
-rw-r--r--alias-list-form.txr1
-rw-r--r--aliases.txr13
2 files changed, 13 insertions, 1 deletions
diff --git a/alias-list-form.txr b/alias-list-form.txr
index 023e3ad..9f46b41 100644
--- a/alias-list-form.txr
+++ b/alias-list-form.txr
@@ -32,6 +32,7 @@
<tr>
<td align="center">
<input type="checkbox" name="chkbox-@{aliases.address}"
+ @(if (slot aliases 'selected) "checked=\"checked\"" "")
title="Check this box if you wish to delete this alias. @\
You can check multiple aliases and then delete @\
them at the same time with @\
diff --git a/aliases.txr b/aliases.txr
index 2f25997..4bc1d75 100644
--- a/aliases.txr
+++ b/aliases.txr
@@ -1,6 +1,6 @@
@(do
(defstruct (alias address memo creation-time) nil
- address memo creation-time
+ address memo creation-time (selected nil)
(:postinit (alias)
(ifa (stringp alias.creation-time)
(set it (int-str it)))
@@ -23,6 +23,15 @@
[<a href="mailto:@mem" \
onclick="return false;">...</a>] \ \
@(html-encode [mem -27..t])</span>`)))))
+@;
+@(bind selected-alias-keys nil)
+@;
+@(define mark-aliases (aliases selected))
+@ (do (each ((key selected))
+ (let ((a (find key aliases)))
+ (set a.selected t))))
+@(end)
+@;
@(define load-aliases (user aliases))
@ (local time memo)
@ (bind lock @(acquire-lock aliases-file))
@@ -45,6 +54,7 @@
@ (finally)
@ (do (release-lock lock))
@ (end)
+@ (mark-aliases aliases selected-alias-keys)
@(end)
@;
@(define store-aliases (user aliases))
@@ -103,6 +113,7 @@
@ (collect :vars (selected))
chkbox-@selected=on
@ (end)
+@ (load-aliases userid aliases)
@ (next :list url-args)
@ (gather)
memo=@memo