snac2

Fork of https://codeberg.org/grunfink/snac2
git clone https://git.inz.fi/snac2
Log | Files | Refs | README | LICENSE

commit 685b25af14b6500634f178af7e8698568ff65cc5
parent d7106a1917820d05a4a8b6978f765e565b682773
Author: default <nobody@localhost>
Date:   Mon, 31 Oct 2022 15:54:07 +0100

After reacting to a post, redirection is done to the next entry instead of top.

This work more or less ok for level 0 entries, but it's very
confusing for the others.

Diffstat:
Mhtml.c | 21+++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)

diff --git a/html.c b/html.c @@ -346,7 +346,7 @@ d_char *build_mentions(snac *snac, char *msg) } -d_char *html_entry_controls(snac *snac, d_char *os, char *msg) +d_char *html_entry_controls(snac *snac, d_char *os, char *msg, int num) { char *id = xs_dict_get(msg, "id"); char *actor = xs_dict_get(msg, "attributedTo"); @@ -362,6 +362,7 @@ d_char *html_entry_controls(snac *snac, d_char *os, char *msg) "<form method=\"post\" action=\"%s/admin/action\">\n" "<input type=\"hidden\" name=\"id\" value=\"%s\">\n" "<input type=\"hidden\" name=\"actor\" value=\"%s\">\n" + "<input type=\"hidden\" name=\"redir\" value=\"%d_entry\">\n" "<input type=\"button\" name=\"action\" " "value=\"%s\" onclick=\"" "x = document.getElementById('%s_reply'); " @@ -370,7 +371,7 @@ d_char *html_entry_controls(snac *snac, d_char *os, char *msg) " x.style.display = 'block';" "\">\n", - snac->actor, id, actor, + snac->actor, id, actor, num, L("Reply"), md5 ); @@ -447,6 +448,7 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, xs_set *seen, int local, i char *actor; int sensitive = 0; char *v; + int num = xs_list_len(seen->list); /* do not show non-public messages in the public timeline */ if (local && !is_msg_public(snac, msg)) @@ -458,6 +460,12 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, xs_set *seen, int local, i xs *s = xs_str_new(NULL); + { + xs *s1 = xs_fmt("<a name=\"%d_entry\"></a>\n", num); + + s = xs_str_cat(s, s1); + } + if (strcmp(type, "Follow") == 0) { s = xs_str_cat(s, "<div class=\"snac-post\">\n"); @@ -664,7 +672,7 @@ d_char *html_entry(snac *snac, d_char *os, char *msg, xs_set *seen, int local, i /** controls **/ if (!local) - s = html_entry_controls(snac, s, msg); + s = html_entry_controls(snac, s, msg, num + 1); /** children **/ @@ -1112,7 +1120,12 @@ int html_post_handler(d_char *req, char *q_path, d_char *payload, int p_size, } if (status == 303) { - *body = xs_fmt("%s/admin#snac-posts", snac.actor); + char *redir = xs_dict_get(p_vars, "redir"); + + if (xs_is_null(redir)) + redir = "snac-posts"; + + *body = xs_fmt("%s/admin#%s", snac.actor, redir); *b_size = strlen(*body); }