summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--html.c27
1 files changed, 17 insertions, 10 deletions
diff --git a/html.c b/html.c
index 666bbb2..8298d87 100644
--- a/html.c
+++ b/html.c
@@ -764,17 +764,19 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, int local, int level, cons
764 if (left) { 764 if (left) {
765 char *p, *cmd5; 765 char *p, *cmd5;
766 int older_open = 0; 766 int older_open = 0;
767 xs *ss = xs_str_new(NULL);
768 int n_children = 0;
767 769
768 s = xs_str_cat(s, "<details open><summary>...</summary><p>\n"); 770 ss = xs_str_cat(ss, "<details open><summary>...</summary><p>\n");
769 771
770 if (level < 4) 772 if (level < 4)
771 s = xs_str_cat(s, "<div class=\"snac-children\">\n"); 773 ss = xs_str_cat(ss, "<div class=\"snac-children\">\n");
772 else 774 else
773 s = xs_str_cat(s, "<div>\n"); 775 ss = xs_str_cat(ss, "<div>\n");
774 776
775 if (left > 3) { 777 if (left > 3) {
776 xs *s1 = xs_fmt("<details><summary>%s</summary>\n", L("Older...")); 778 xs *s1 = xs_fmt("<details><summary>%s</summary>\n", L("Older..."));
777 s = xs_str_cat(s, s1); 779 ss = xs_str_cat(ss, s1);
778 older_open = 1; 780 older_open = 1;
779 } 781 }
780 782
@@ -784,12 +786,14 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, int local, int level, cons
784 object_get_by_md5(cmd5, &chd, NULL); 786 object_get_by_md5(cmd5, &chd, NULL);
785 787
786 if (older_open && left <= 3) { 788 if (older_open && left <= 3) {
787 s = xs_str_cat(s, "</details>\n"); 789 ss = xs_str_cat(ss, "</details>\n");
788 older_open = 0; 790 older_open = 0;
789 } 791 }
790 792
791 if (chd != NULL) 793 if (chd != NULL) {
792 s = html_entry(snac, s, chd, local, level + 1, cmd5); 794 ss = html_entry(snac, ss, chd, local, level + 1, cmd5);
795 n_children++;
796 }
793 else 797 else
794 snac_debug(snac, 2, xs_fmt("cannot read from timeline child %s", cmd5)); 798 snac_debug(snac, 2, xs_fmt("cannot read from timeline child %s", cmd5));
795 799
@@ -797,10 +801,13 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, int local, int level, cons
797 } 801 }
798 802
799 if (older_open) 803 if (older_open)
800 s = xs_str_cat(s, "</details>\n"); 804 ss = xs_str_cat(ss, "</details>\n");
801 805
802 s = xs_str_cat(s, "</div>\n"); 806 ss = xs_str_cat(ss, "</div>\n");
803 s = xs_str_cat(s, "</details>\n"); 807 ss = xs_str_cat(ss, "</details>\n");
808
809 if (n_children)
810 s = xs_str_cat(s, ss);
804 } 811 }
805 812
806 s = xs_str_cat(s, "</div>\n</div>\n"); 813 s = xs_str_cat(s, "</div>\n</div>\n");