commit dda6037
default
·
2022-12-19 05:16:52 +0000 UTC
parent 020b854
The 'Older...' details are back, now better.
1 files changed,
+19,
-1
M
html.c
M
html.c
+19,
-1
1@@ -753,9 +753,11 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, int local, int level, cons
2
3 /** children **/
4 xs *children = object_children(id);
5+ int left = xs_list_len(children);
6
7- if (xs_list_len(children)) {
8+ if (left) {
9 char *p, *cmd5;
10+ int older_open = 0;
11
12 s = xs_str_cat(s, "<details open><summary>...</summary><p>\n");
13
14@@ -764,17 +766,33 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, int local, int level, cons
15 else
16 s = xs_str_cat(s, "<div>\n");
17
18+ if (left > 3) {
19+ xs *s1 = xs_fmt("<details><summary>%s</summary>\n", L("Older..."));
20+ s = xs_str_cat(s, s1);
21+ older_open = 1;
22+ }
23+
24 p = children;
25 while (xs_list_iter(&p, &cmd5)) {
26 xs *chd = NULL;
27 object_get_by_md5(cmd5, &chd, NULL);
28
29+ if (older_open && left <= 3) {
30+ s = xs_str_cat(s, "</details>\n");
31+ older_open = 0;
32+ }
33+
34 if (chd != NULL)
35 s = html_entry(snac, s, chd, local, level + 1, cmd5);
36 else
37 snac_debug(snac, 2, xs_fmt("cannot read from timeline child %s", cmd5));
38+
39+ left--;
40 }
41
42+ if (older_open)
43+ s = xs_str_cat(s, "</details>\n");
44+
45 s = xs_str_cat(s, "</div>\n");
46 s = xs_str_cat(s, "</details>\n");
47 }