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 }