diff options
author | default <nobody@localhost> | 2023-05-24 13:19:40 +0200 |
---|---|---|
committer | default <nobody@localhost> | 2023-05-24 13:19:40 +0200 |
commit | 6eb0aa105ad883ecb541aafa931c30dd48a14cc3 (patch) | |
tree | c5480d871aaecf5378e5d12bc4a7e1e822a474c8 /html.c | |
parent | 5d8e370ec39d8345c95f6f2a5d8b6865b429b8fa (diff) |
Show the poll as closed if we already voted for it.
Diffstat (limited to 'html.c')
-rw-r--r-- | html.c | 22 |
1 files changed, 21 insertions, 1 deletions
@@ -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"); |