X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fgraphics.c;h=ba879dc35aac4bd09d9e47da2acff8444d594160;hb=808f3be91dd6b6677e380695e2f16e6473141a7e;hp=00f256b98e3ccec7a51ada71444b584fb2cdb770;hpb=26a4a07bdacdaa7013bf45cc235df207708acfde;p=citadel.git diff --git a/webcit/graphics.c b/webcit/graphics.c index 00f256b98..ba879dc35 100644 --- a/webcit/graphics.c +++ b/webcit/graphics.c @@ -7,11 +7,15 @@ #include "webcit.h" -void display_graphics_upload(char *description, char *check_cmd, char *uplurl) +void display_graphics_upload(char *description, char *filename, char *uplurl) { + WCTemplputParams SubTP; + StrBuf *Buf; char buf[SIZ]; - serv_puts(check_cmd); + + snprintf(buf, SIZ, "UIMG 0||%s", filename); + serv_puts(buf); serv_getln(buf, sizeof buf); if (buf[0] != '2') { strcpy(WC->ImportantMessage, &buf[4]); @@ -20,56 +24,56 @@ void display_graphics_upload(char *description, char *check_cmd, char *uplurl) } output_headers(1, 1, 0, 0, 0, 0); - output_headers(1, 1, 2, 0, 0, 0); - wprintf("
\n" - "
" - ""); - wprintf(_("Image upload")); - wprintf("" - "
\n" - "
\n
\n" - ); + output_headers(1, 1, 1, 0, 0, 0); - wprintf("
" - "
\n"); + Buf = NewStrBufPlain(_("Image upload"), -1); + memset(&SubTP, 0, sizeof(WCTemplputParams)); + SubTP.ContextType = CTX_STRBUF; + SubTP.Context = Buf; + DoTemplate(HKEY("beginbox"), NULL, &SubTP); - wprintf("
\n"); + FreeStrBuf(&Buf); - wprintf("
\n", uplurl); + wprintf("\n", uplurl); - wprintf("\n", WC->nonce); + wprintf("\n"); - wprintf(_("You can upload any image directly from your computer, " - "as long as it is in GIF format (JPEG, PNG, etc. won't " - "work).")); + wprintf(_("You can upload an image directly from your computer")); wprintf("

\n"); wprintf(_("Please select a file to upload:")); - wprintf("

\n"); - wprintf("\n"); - wprintf("

"); - wprintf("\n", _("Upload")); + wprintf("\n"); + + wprintf("
\n", filename); + + wprintf("
"); + wprintf("\n", _("Upload")); wprintf(" "); - wprintf("\n", _("Reset form")); + wprintf("\n", _("Reset form")); wprintf(" "); - wprintf("\n", _("Cancel")); - wprintf("\n"); - wprintf("
\n"); - wprintf("
\n"); + wprintf("\n", _("Cancel")); + wprintf("
\n"); + wprintf("\n"); + + do_template("endbox", NULL); + wDumpContent(1); } -void do_graphics_upload(char *upl_cmd) +void do_graphics_upload(char *filename) { + const char *MimeType; char buf[SIZ]; int bytes_remaining; int pos = 0; int thisblock; + bytes_remaining = WC->upload_length; - if (strlen(bstr("cancel_button")) > 0) { + if (havebstr("cancel_button")) { strcpy(WC->ImportantMessage, _("Graphics upload has been cancelled.")); display_main_menu(); @@ -82,14 +86,17 @@ void do_graphics_upload(char *upl_cmd) display_main_menu(); return; } - serv_puts(upl_cmd); + + MimeType = GuessMimeType(&WC->upload[0], bytes_remaining); + snprintf(buf, SIZ, "UIMG 1|%s|%s", MimeType, filename); + serv_puts(buf); + serv_getln(buf, sizeof buf); if (buf[0] != '2') { strcpy(WC->ImportantMessage, &buf[4]); display_main_menu(); return; } - bytes_remaining = WC->upload_length; while (bytes_remaining) { thisblock = ((bytes_remaining > 4096) ? 4096 : bytes_remaining); serv_printf("WRIT %d", thisblock); @@ -114,3 +121,66 @@ void do_graphics_upload(char *upl_cmd) return; } } + + +void edithellopic(void) { do_graphics_upload("hello"); } +void editpic(void) { do_graphics_upload("_userpic_"); } +void editgoodbuyepic(void) { do_graphics_upload("UIMG 1|%s|goodbuye"); } + +/* The users photo display / upload facility */ +void display_editpic(void) { + display_graphics_upload(_("your photo"), + "_userpic_", + "editpic"); +} +/* room picture dispay / upload facility */ +void display_editroompic(void) { + display_graphics_upload(_("the icon for this room"), + "_roompic_", + "editroompic"); +} + +/* the greetingpage hello pic */ +void display_edithello(void) { + display_graphics_upload(_("the Greetingpicture for the login prompt"), + "hello", + "edithellopic"); +} + +/* the logoff banner */ +void display_editgoodbyepic(void) { + display_graphics_upload(_("the Logoff banner picture"), + "UIMG 0|%s|goodbuye", + "editgoodbuyepic"); +} + +void display_editfloorpic(void) { + char buf[SIZ]; + snprintf(buf, SIZ, "UIMG 0|_floorpic_|%s", + bstr("which_floor")); + display_graphics_upload(_("the icon for this floor"), + buf, + "editfloorpic"); +} + +void editfloorpic(void){ + char buf[SIZ]; + snprintf(buf, SIZ, "UIMG 1|_floorpic_|%s", + bstr("which_floor")); + do_graphics_upload(buf); +} + +void +InitModule_GRAPHICS +(void) +{ + WebcitAddUrlHandler(HKEY("display_editpic"), display_editpic, 0); + WebcitAddUrlHandler(HKEY("editpic"), editpic, 0); + WebcitAddUrlHandler(HKEY("display_editroompic"), display_editroompic, 0); + WebcitAddUrlHandler(HKEY("display_edithello"), display_edithello, 0); + WebcitAddUrlHandler(HKEY("edithellopic"), edithellopic, 0); + WebcitAddUrlHandler(HKEY("display_editgoodbyepic"), display_editgoodbyepic, 0); + WebcitAddUrlHandler(HKEY("editgoodbuyepic"), editgoodbuyepic, 0); + WebcitAddUrlHandler(HKEY("display_editfloorpic"), display_editfloorpic, 0); + WebcitAddUrlHandler(HKEY("editfloorpic"), editfloorpic, 0); +}