commit 28816aa

default  ·  2022-12-07 09:04:19 +0000 UTC
parent 060a9fc
Minor tweaks to paged timeline output.
1 files changed,  +18, -17
M html.c
M html.c
+18, -17
 1@@ -780,7 +780,7 @@ d_char *html_user_footer(snac *snac, d_char *s)
 2 }
 3 
 4 
 5-d_char *html_timeline(snac *snac, char *list, int local)
 6+d_char *html_timeline(snac *snac, char *list, int local, int skip, int show, int show_more)
 7 /* returns the HTML for the timeline */
 8 {
 9     d_char *s = xs_str_new(NULL);
10@@ -839,6 +839,15 @@ d_char *html_timeline(snac *snac, char *list, int local)
11         s = xs_str_cat(s, s1);
12     }
13 
14+    if (show_more) {
15+        xs *s1 = xs_fmt(
16+            "<p>"
17+            "<a href=\"%s%s?skip=%d&show=%d\" name=\"snac-more\">%s</a>"
18+            "</p>\n", local ? "" : "/admin", snac->actor, skip + show, show, L("More..."));
19+
20+        s = xs_str_cat(s, s1);
21+    }
22+
23     s = xs_str_cat(s, "</body>\n</html>\n");
24 
25     return s;
26@@ -1006,7 +1015,7 @@ int html_get_handler(d_char *req, char *q_path, char **body, int *b_size, char *
27         cache = 0;
28 
29     int skip = 0;
30-    int show = 50;
31+    int show = xs_number_get(xs_dict_get(srv_config, "max_timeline_entries"));
32     char *q_vars = xs_dict_get(req, "q_vars");
33     if ((v = xs_dict_get(q_vars, "skip")) != NULL)
34         skip = atoi(v), cache = 0, save = 0;
35@@ -1026,14 +1035,10 @@ int html_get_handler(d_char *req, char *q_path, char **body, int *b_size, char *
36         }
37         else {
38             xs *list = timeline_list(&snac, "public", skip, show);
39+            xs *next = timeline_list(&snac, "public", skip + show, show);
40+
41+            *body = html_timeline(&snac, list, 1, skip, show, xs_list_len(next));
42 
43-            *body = html_timeline(&snac, list, 1);
44-            if (xs_list_len(list) == show)
45-                *body = xs_str_cat(
46-                    *body, xs_fmt(
47-                        "<p>"
48-                        "<a href=\"%s?skip=%d&show=%d\" name=\"snac-more\">More…</a>"
49-                        "</p>\n", snac.actor, skip + show, show));
50             *b_size = strlen(*body);
51             status  = 200;
52 
53@@ -1059,14 +1064,10 @@ int html_get_handler(d_char *req, char *q_path, char **body, int *b_size, char *
54                 snac_debug(&snac, 1, xs_fmt("building timeline"));
55 
56                 xs *list = timeline_list(&snac, "private", skip, show);
57+                xs *next = timeline_list(&snac, "private", skip + show, show);
58+
59+                *body   = html_timeline(&snac, list, 0, skip, show, xs_list_len(next));
60 
61-                *body   = html_timeline(&snac, list, 0);
62-                if (xs_list_len(list) == show)
63-                    *body = xs_str_cat(
64-                        *body, xs_fmt(
65-                            "<p>"
66-                            "<a href=\"%s/admin?skip=%d&show=%d\" name=\"snac-more\">More…</a>"
67-                            "</p>\n", snac.actor, skip + show, show));
68                 *b_size = strlen(*body);
69                 status  = 200;
70 
71@@ -1099,7 +1100,7 @@ int html_get_handler(d_char *req, char *q_path, char **body, int *b_size, char *
72 
73             list = xs_list_append(list, md5);
74 
75-            *body   = html_timeline(&snac, list, 1);
76+            *body   = html_timeline(&snac, list, 1, 0, 0, 0);
77             *b_size = strlen(*body);
78             status  = 200;
79         }