mirror of
https://codeberg.org/grunfink/snac2.git
synced 2024-11-25 14:35:04 +00:00
New function html_note() (still unused).
This commit is contained in:
parent
1466331abe
commit
741302cc3b
2 changed files with 167 additions and 0 deletions
144
html.c
144
html.c
|
@ -232,6 +232,150 @@ xs_str *html_msg_icon(xs_str *os, const xs_dict *msg)
|
|||
}
|
||||
|
||||
|
||||
xs_html *html_note(snac *user, char *summary,
|
||||
char *div_id, char *form_id,
|
||||
char *ta_plh, char *ta_content,
|
||||
char *edit_id, char *actor_id,
|
||||
xs_val *cw_yn, char *cw_text,
|
||||
xs_val *mnt_only, char *redir,
|
||||
char *in_reply_to, int poll)
|
||||
{
|
||||
xs *action = xs_fmt("%s/admin/note", user->actor);
|
||||
|
||||
xs_html *form;
|
||||
|
||||
xs_html *note = xs_html_tag("div",
|
||||
xs_html_tag("details",
|
||||
xs_html_tag("summary",
|
||||
xs_html_text(summary)),
|
||||
xs_html_tag("p", NULL),
|
||||
xs_html_tag("div",
|
||||
xs_html_attr("class", "snac-note"),
|
||||
xs_html_attr("id", div_id),
|
||||
form = xs_html_tag("form",
|
||||
xs_html_attr("autocomplete", "off"),
|
||||
xs_html_attr("method", "post"),
|
||||
xs_html_attr("action", action),
|
||||
xs_html_attr("enctype", "multipart/form-data"),
|
||||
xs_html_attr("id", form_id),
|
||||
xs_html_tag("textarea",
|
||||
xs_html_attr("class", "snac-textarea"),
|
||||
xs_html_attr("name", "content"),
|
||||
xs_html_attr("rows", "4"),
|
||||
xs_html_attr("wrap", "virtual"),
|
||||
xs_html_attr("required", "required"),
|
||||
xs_html_attr("placeholder", ta_plh),
|
||||
xs_html_text(ta_content)),
|
||||
xs_html_tag("p", NULL),
|
||||
xs_html_text(L("Sensitive content: ")),
|
||||
xs_html_sctag("input",
|
||||
xs_html_attr("type", "checkbox"),
|
||||
xs_html_attr("name", "sensitive"),
|
||||
xs_html_attr(xs_type(cw_yn) == XSTYPE_TRUE ? "checked" : "", NULL)),
|
||||
xs_html_sctag("input",
|
||||
xs_html_attr("type", "text"),
|
||||
xs_html_attr("name", "summary"),
|
||||
xs_html_attr("placeholder", L("Sensitive content description")),
|
||||
xs_html_attr("value", cw_text))))));
|
||||
|
||||
if (actor_id)
|
||||
xs_html_add(form,
|
||||
xs_html_sctag("input",
|
||||
xs_html_attr("type", "hidden"),
|
||||
xs_html_attr("name", "to"),
|
||||
xs_html_attr("value", actor_id)));
|
||||
else {
|
||||
/* no actor_id; ask for mentioned_only */
|
||||
xs_html_add(form,
|
||||
xs_html_tag("p", NULL),
|
||||
xs_html_text(L("Only for mentioned people")),
|
||||
xs_html_sctag("input",
|
||||
xs_html_attr("type", "checkbox"),
|
||||
xs_html_attr("name", "mentioned_only"),
|
||||
xs_html_attr(xs_type(mnt_only) == XSTYPE_TRUE ? "checked" : "", NULL)));
|
||||
}
|
||||
|
||||
if (redir)
|
||||
xs_html_add(form,
|
||||
xs_html_sctag("input",
|
||||
xs_html_attr("type", "hidden"),
|
||||
xs_html_attr("name", "redir"),
|
||||
xs_html_attr("value", redir)));
|
||||
|
||||
if (in_reply_to)
|
||||
xs_html_add(form,
|
||||
xs_html_sctag("input",
|
||||
xs_html_attr("type", "hidden"),
|
||||
xs_html_attr("name", "in_reply_to"),
|
||||
xs_html_attr("value", in_reply_to)));
|
||||
|
||||
if (edit_id)
|
||||
xs_html_add(form,
|
||||
xs_html_sctag("input",
|
||||
xs_html_attr("type", "hidden"),
|
||||
xs_html_attr("name", "edit_id"),
|
||||
xs_html_attr("value", edit_id)));
|
||||
|
||||
xs_html_add(form,
|
||||
xs_html_tag("details",
|
||||
xs_html_tag("summary",
|
||||
xs_html_text(L("Attachment..."))),
|
||||
xs_html_tag("p", NULL),
|
||||
xs_html_sctag("input",
|
||||
xs_html_attr("type", "file"),
|
||||
xs_html_attr("name", "attach")),
|
||||
xs_html_sctag("input",
|
||||
xs_html_attr("type", "text"),
|
||||
xs_html_attr("name", "alt_text"),
|
||||
xs_html_attr("placeholder", L("Attachment description")))));
|
||||
|
||||
/* add poll controls */
|
||||
if (poll) {
|
||||
xs_html_add(form,
|
||||
xs_html_tag("details",
|
||||
xs_html_tag("summary",
|
||||
xs_html_text(L("Poll..."))),
|
||||
xs_html_tag("p", NULL),
|
||||
xs_html_tag("textarea",
|
||||
xs_html_attr("class", "snac-textarea"),
|
||||
xs_html_attr("name", "poll_options"),
|
||||
xs_html_attr("rows", "4"),
|
||||
xs_html_attr("wrap", "virtual"),
|
||||
xs_html_attr("placeholder", "Option 1...\nOption 2...\nOption 3...\n...")),
|
||||
xs_html_tag("p", NULL),
|
||||
xs_html_tag("select",
|
||||
xs_html_attr("name", "poll_multiple"),
|
||||
xs_html_tag("option",
|
||||
xs_html_attr("value", "off"),
|
||||
xs_html_text(L("One choice"))),
|
||||
xs_html_tag("option",
|
||||
xs_html_attr("value", "on"),
|
||||
xs_html_text(L("Multiple choices")))),
|
||||
xs_html_tag("select",
|
||||
xs_html_attr("name", "poll_end_secs"),
|
||||
xs_html_tag("option",
|
||||
xs_html_attr("value", "300"),
|
||||
xs_html_text(L("End in 5 minutes"))),
|
||||
xs_html_tag("option",
|
||||
xs_html_attr("value", "3600"),
|
||||
xs_html_attr("selected", NULL),
|
||||
xs_html_text(L("End in 1 hour"))),
|
||||
xs_html_tag("option",
|
||||
xs_html_attr("value", "86400"),
|
||||
xs_html_text(L("End in 1 day"))))));
|
||||
}
|
||||
|
||||
xs_html_add(form,
|
||||
xs_html_tag("p", NULL),
|
||||
xs_html_sctag("input",
|
||||
xs_html_attr("type", "submit"),
|
||||
xs_html_attr("class", "button"),
|
||||
xs_html_attr("value", L("Post"))));
|
||||
|
||||
return note;
|
||||
}
|
||||
|
||||
|
||||
xs_str *html_base_header(xs_str *s)
|
||||
{
|
||||
xs_list *p;
|
||||
|
|
23
main.c
23
main.c
|
@ -56,6 +56,16 @@ char *get_argv(int *argi, int argc, char *argv[])
|
|||
|
||||
#define GET_ARGV() get_argv(&argi, argc, argv)
|
||||
|
||||
#include "xs_html.h"
|
||||
|
||||
xs_html *html_note(snac *user, char *summary,
|
||||
char *div_id, char *form_id,
|
||||
char *ta_plh, char *ta_content,
|
||||
char *edit_id, char *actor_id,
|
||||
xs_val *cw_yn, char *cw_text,
|
||||
xs_val *mnt_only, char *redir,
|
||||
char *in_reply_to, int poll);
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
char *cmd;
|
||||
|
@ -199,6 +209,19 @@ int main(int argc, char *argv[])
|
|||
srv_free();
|
||||
#endif
|
||||
|
||||
{
|
||||
xs_html *note = html_note(&snac, "Note...",
|
||||
"DIV_ID", "FORM_ID",
|
||||
"TEXTAREA_PLACEHOLDER", "TEXTAREA_CONTENT",
|
||||
"EDIT_ID", "ACTOR_ID",
|
||||
xs_stock_false, "CW_TEXT",
|
||||
xs_stock_false, "REDIR",
|
||||
"IN_REPLY_TO", 1);
|
||||
|
||||
xs *s1 = xs_html_render(note);
|
||||
printf("\n%s\n", s1);
|
||||
}
|
||||
|
||||
xs *idx = xs_fmt("%s/private.idx", snac.basedir);
|
||||
xs *list = index_list_desc(idx, 0, 256);
|
||||
xs *tl = timeline_top_level(&snac, list);
|
||||
|
|
Loading…
Reference in a new issue