summaryrefslogtreecommitdiff
path: root/html.c
diff options
context:
space:
mode:
authordefault <nobody@localhost>2023-05-24 13:19:40 +0200
committerdefault <nobody@localhost>2023-05-24 13:19:40 +0200
commit6eb0aa105ad883ecb541aafa931c30dd48a14cc3 (patch)
treec5480d871aaecf5378e5d12bc4a7e1e822a474c8 /html.c
parent5d8e370ec39d8345c95f6f2a5d8b6865b429b8fa (diff)
Show the poll as closed if we already voted for it.
Diffstat (limited to 'html.c')
-rw-r--r--html.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/html.c b/html.c
index 7de26bc..cca6d82 100644
--- a/html.c
+++ b/html.c
@@ -896,10 +896,30 @@ xs_str *html_entry(snac *snac, xs_str *os, const xs_dict *msg, int local,
xs_list *ao = xs_dict_get(msg, "anyOf");
xs_list *p;
xs_dict *v;
+ int closed = 0;
+ if (xs_dict_get(msg, "closed"))
+ closed = 1;
+ else {
+ /* not yet closed? check if we already voted for this */
+ xs *children = object_children(id);
+ p = children;
+ while (!closed && xs_list_iter(&p, &v)) {
+ xs *msg = NULL;
+
+ if (valid_status(object_get_by_md5(v, &msg))) {
+ const char *atto = xs_dict_get(msg, "attributedTo");
+
+ if (atto && strcmp(atto, snac->actor) == 0)
+ closed = 1; /* closed for us */
+ }
+ }
+ }
+
+ /* get the appropriate list of options */
p = oo != NULL ? oo : ao;
- if (!xs_is_null(xs_dict_get(msg, "closed"))) {
+ if (closed) {
/* closed poll */
c = xs_str_cat(c, "<table>\n");