diff options
Diffstat (limited to 'html.c')
| -rw-r--r-- | html.c | 20 |
1 files changed, 19 insertions, 1 deletions
| @@ -753,9 +753,11 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, int local, int level, cons | |||
| 753 | 753 | ||
| 754 | /** children **/ | 754 | /** children **/ |
| 755 | xs *children = object_children(id); | 755 | xs *children = object_children(id); |
| 756 | int left = xs_list_len(children); | ||
| 756 | 757 | ||
| 757 | if (xs_list_len(children)) { | 758 | if (left) { |
| 758 | char *p, *cmd5; | 759 | char *p, *cmd5; |
| 760 | int older_open = 0; | ||
| 759 | 761 | ||
| 760 | s = xs_str_cat(s, "<details open><summary>...</summary><p>\n"); | 762 | s = xs_str_cat(s, "<details open><summary>...</summary><p>\n"); |
| 761 | 763 | ||
| @@ -764,17 +766,33 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, int local, int level, cons | |||
| 764 | else | 766 | else |
| 765 | s = xs_str_cat(s, "<div>\n"); | 767 | s = xs_str_cat(s, "<div>\n"); |
| 766 | 768 | ||
| 769 | if (left > 3) { | ||
| 770 | xs *s1 = xs_fmt("<details><summary>%s</summary>\n", L("Older...")); | ||
| 771 | s = xs_str_cat(s, s1); | ||
| 772 | older_open = 1; | ||
| 773 | } | ||
| 774 | |||
| 767 | p = children; | 775 | p = children; |
| 768 | while (xs_list_iter(&p, &cmd5)) { | 776 | while (xs_list_iter(&p, &cmd5)) { |
| 769 | xs *chd = NULL; | 777 | xs *chd = NULL; |
| 770 | object_get_by_md5(cmd5, &chd, NULL); | 778 | object_get_by_md5(cmd5, &chd, NULL); |
| 771 | 779 | ||
| 780 | if (older_open && left <= 3) { | ||
| 781 | s = xs_str_cat(s, "</details>\n"); | ||
| 782 | older_open = 0; | ||
| 783 | } | ||
| 784 | |||
| 772 | if (chd != NULL) | 785 | if (chd != NULL) |
| 773 | s = html_entry(snac, s, chd, local, level + 1, cmd5); | 786 | s = html_entry(snac, s, chd, local, level + 1, cmd5); |
| 774 | else | 787 | else |
| 775 | snac_debug(snac, 2, xs_fmt("cannot read from timeline child %s", cmd5)); | 788 | snac_debug(snac, 2, xs_fmt("cannot read from timeline child %s", cmd5)); |
| 789 | |||
| 790 | left--; | ||
| 776 | } | 791 | } |
| 777 | 792 | ||
| 793 | if (older_open) | ||
| 794 | s = xs_str_cat(s, "</details>\n"); | ||
| 795 | |||
| 778 | s = xs_str_cat(s, "</div>\n"); | 796 | s = xs_str_cat(s, "</div>\n"); |
| 779 | s = xs_str_cat(s, "</details>\n"); | 797 | s = xs_str_cat(s, "</details>\n"); |
| 780 | } | 798 | } |