From 87f73ddbc05b38113cb501aad4480490f6604704 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Thu, 9 Jul 2020 19:21:28 -0400 Subject: Add search forms --- html.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) (limited to 'html.c') diff --git a/html.c b/html.c index ad80b6f..59ecc30 100644 --- a/html.c +++ b/html.c @@ -89,3 +89,57 @@ htmlNav(struct khtmlreq *html, const char *network, const char *context) { return khtml_closeelem(html, 2); } + +enum kcgi_err +htmlSearch(struct khtmlreq *html, const char *network, const char *context) { + char label[256]; + snprintf( + label, sizeof(label), "Search%s%s", + (network ? " " : ""), (context ? context : network ? network : "") + ); + + enum kcgi_err error = 0 + || khtml_attr( + html, KELEM_FORM, + KATTR_METHOD, "get", + KATTR_ACTION, Pages[Search], + KATTR__MAX + ) + || khtml_attr( + html, KELEM_INPUT, + KATTR_TYPE, "search", + KATTR_NAME, Keys[Query].name, + KATTR__MAX + ) + || khtml_attr( + html, KELEM_INPUT, + KATTR_TYPE, "submit", + KATTR_VALUE, label, + KATTR__MAX + ); + if (error) return error; + + if (network) { + error = khtml_attr( + html, KELEM_INPUT, + KATTR_TYPE, "hidden", + KATTR_NAME, Keys[Network].name, + KATTR_VALUE, network, + KATTR__MAX + ); + if (error) return error; + } + + if (context) { + error = khtml_attr( + html, KELEM_INPUT, + KATTR_TYPE, "hidden", + KATTR_NAME, Keys[Context].name, + KATTR_VALUE, context, + KATTR__MAX + ); + if (error) return error; + } + + return khtml_closeelem(html, 1); +} -- cgit 1.4.1