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

This commit is contained in:
default 2022-12-19 06:16:52 +01:00
parent 020b854675
commit dda60374f7

20
html.c
View file

@ -753,9 +753,11 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, int local, int level, cons
/** children **/ /** children **/
xs *children = object_children(id); xs *children = object_children(id);
int left = xs_list_len(children);
if (xs_list_len(children)) { if (left) {
char *p, *cmd5; char *p, *cmd5;
int older_open = 0;
s = xs_str_cat(s, "<details open><summary>...</summary><p>\n"); 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 else
s = xs_str_cat(s, "<div>\n"); 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; p = children;
while (xs_list_iter(&p, &cmd5)) { while (xs_list_iter(&p, &cmd5)) {
xs *chd = NULL; xs *chd = NULL;
object_get_by_md5(cmd5, &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) if (chd != NULL)
s = html_entry(snac, s, chd, local, level + 1, cmd5); s = html_entry(snac, s, chd, local, level + 1, cmd5);
else else
snac_debug(snac, 2, xs_fmt("cannot read from timeline child %s", cmd5)); 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, "</div>\n");
s = xs_str_cat(s, "</details>\n"); s = xs_str_cat(s, "</details>\n");
} }