snac2

Fork of https://codeberg.org/grunfink/snac2
git clone https://git.inz.fi/snac2
Log | Files | Refs | README | LICENSE

commit dda60374f7a863b289c8c1e8a585c2a9275fd615
parent 020b8546757bca70037e49597558528497fdac50
Author: default <nobody@localhost>
Date:   Mon, 19 Dec 2022 06:16:52 +0100

The 'Older...' details are back, now better.

Diffstat:
Mhtml.c | 20+++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/html.c b/html.c @@ -753,9 +753,11 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, int local, int level, cons /** children **/ xs *children = object_children(id); + int left = xs_list_len(children); - if (xs_list_len(children)) { + if (left) { char *p, *cmd5; + int older_open = 0; s = xs_str_cat(s, "<details open><summary>...</summary><p>\n"); @@ -764,17 +766,33 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, int local, int level, cons else s = xs_str_cat(s, "<div>\n"); + if (left > 3) { + xs *s1 = xs_fmt("<details><summary>%s</summary>\n", L("Older...")); + s = xs_str_cat(s, s1); + older_open = 1; + } + p = children; while (xs_list_iter(&p, &cmd5)) { xs *chd = NULL; object_get_by_md5(cmd5, &chd, NULL); + if (older_open && left <= 3) { + s = xs_str_cat(s, "</details>\n"); + older_open = 0; + } + if (chd != NULL) s = html_entry(snac, s, chd, local, level + 1, cmd5); else snac_debug(snac, 2, xs_fmt("cannot read from timeline child %s", cmd5)); + + left--; } + if (older_open) + s = xs_str_cat(s, "</details>\n"); + s = xs_str_cat(s, "</div>\n"); s = xs_str_cat(s, "</details>\n"); }