summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--html.c35
1 files changed, 18 insertions, 17 deletions
diff --git a/html.c b/html.c
index 5614956..89285c7 100644
--- a/html.c
+++ b/html.c
@@ -780,7 +780,7 @@ d_char *html_user_footer(snac *snac, d_char *s)
780} 780}
781 781
782 782
783d_char *html_timeline(snac *snac, char *list, int local) 783d_char *html_timeline(snac *snac, char *list, int local, int skip, int show, int show_more)
784/* returns the HTML for the timeline */ 784/* returns the HTML for the timeline */
785{ 785{
786 d_char *s = xs_str_new(NULL); 786 d_char *s = xs_str_new(NULL);
@@ -839,6 +839,15 @@ d_char *html_timeline(snac *snac, char *list, int local)
839 s = xs_str_cat(s, s1); 839 s = xs_str_cat(s, s1);
840 } 840 }
841 841
842 if (show_more) {
843 xs *s1 = xs_fmt(
844 "<p>"
845 "<a href=\"%s%s?skip=%d&show=%d\" name=\"snac-more\">%s</a>"
846 "</p>\n", local ? "" : "/admin", snac->actor, skip + show, show, L("More..."));
847
848 s = xs_str_cat(s, s1);
849 }
850
842 s = xs_str_cat(s, "</body>\n</html>\n"); 851 s = xs_str_cat(s, "</body>\n</html>\n");
843 852
844 return s; 853 return s;
@@ -1006,7 +1015,7 @@ int html_get_handler(d_char *req, char *q_path, char **body, int *b_size, char *
1006 cache = 0; 1015 cache = 0;
1007 1016
1008 int skip = 0; 1017 int skip = 0;
1009 int show = 50; 1018 int show = xs_number_get(xs_dict_get(srv_config, "max_timeline_entries"));
1010 char *q_vars = xs_dict_get(req, "q_vars"); 1019 char *q_vars = xs_dict_get(req, "q_vars");
1011 if ((v = xs_dict_get(q_vars, "skip")) != NULL) 1020 if ((v = xs_dict_get(q_vars, "skip")) != NULL)
1012 skip = atoi(v), cache = 0, save = 0; 1021 skip = atoi(v), cache = 0, save = 0;
@@ -1026,14 +1035,10 @@ int html_get_handler(d_char *req, char *q_path, char **body, int *b_size, char *
1026 } 1035 }
1027 else { 1036 else {
1028 xs *list = timeline_list(&snac, "public", skip, show); 1037 xs *list = timeline_list(&snac, "public", skip, show);
1038 xs *next = timeline_list(&snac, "public", skip + show, show);
1039
1040 *body = html_timeline(&snac, list, 1, skip, show, xs_list_len(next));
1029 1041
1030 *body = html_timeline(&snac, list, 1);
1031 if (xs_list_len(list) == show)
1032 *body = xs_str_cat(
1033 *body, xs_fmt(
1034 "<p>"
1035 "<a href=\"%s?skip=%d&show=%d\" name=\"snac-more\">More…</a>"
1036 "</p>\n", snac.actor, skip + show, show));
1037 *b_size = strlen(*body); 1042 *b_size = strlen(*body);
1038 status = 200; 1043 status = 200;
1039 1044
@@ -1059,14 +1064,10 @@ int html_get_handler(d_char *req, char *q_path, char **body, int *b_size, char *
1059 snac_debug(&snac, 1, xs_fmt("building timeline")); 1064 snac_debug(&snac, 1, xs_fmt("building timeline"));
1060 1065
1061 xs *list = timeline_list(&snac, "private", skip, show); 1066 xs *list = timeline_list(&snac, "private", skip, show);
1067 xs *next = timeline_list(&snac, "private", skip + show, show);
1068
1069 *body = html_timeline(&snac, list, 0, skip, show, xs_list_len(next));
1062 1070
1063 *body = html_timeline(&snac, list, 0);
1064 if (xs_list_len(list) == show)
1065 *body = xs_str_cat(
1066 *body, xs_fmt(
1067 "<p>"
1068 "<a href=\"%s/admin?skip=%d&show=%d\" name=\"snac-more\">More…</a>"
1069 "</p>\n", snac.actor, skip + show, show));
1070 *b_size = strlen(*body); 1071 *b_size = strlen(*body);
1071 status = 200; 1072 status = 200;
1072 1073
@@ -1099,7 +1100,7 @@ int html_get_handler(d_char *req, char *q_path, char **body, int *b_size, char *
1099 1100
1100 list = xs_list_append(list, md5); 1101 list = xs_list_append(list, md5);
1101 1102
1102 *body = html_timeline(&snac, list, 1); 1103 *body = html_timeline(&snac, list, 1, 0, 0, 0);
1103 *b_size = strlen(*body); 1104 *b_size = strlen(*body);
1104 status = 200; 1105 status = 200;
1105 } 1106 }