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     }