From: Wilfried Goesgens Date: Sun, 28 Aug 2011 07:48:34 +0000 (+0000) Subject: Add templatization for the Listsubscriber Interface; the old interface remains intact. X-Git-Tag: v8.11~499 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=2650415654694173b08c08d73fcd6a095a00a8bf Add templatization for the Listsubscriber Interface; the old interface remains intact. --- diff --git a/webcit/listsub.c b/webcit/listsub.c index 2bb9cbb3a..d4de61bb2 100644 --- a/webcit/listsub.c +++ b/webcit/listsub.c @@ -23,6 +23,7 @@ /* * List subscription handling */ +#ifndef EXPERIMENTAL_LISTSUB void do_listsub(void) { char cmd[256]; @@ -237,13 +238,138 @@ FORM: wc_printf("
\n"); wDumpContent(0); end_webcit_session(); } +#endif +int Conditional_LISTSUB_EXECUTE_SUBSCRIBE(StrBuf *Target, WCTemplputParams *TP) +{ + int rc; + StrBuf *Line; + const char *ImpMsg; + const StrBuf *Room, *Email, *SubType; + + Room = sbstr("room"); + if (Room == NULL) + { + ImpMsg = _("You need to specify the mailinglist to subscribe to."); + AppendImportantMessage(ImpMsg, -1); + return 0; + } + Email = sbstr("email"); + if (Email == NULL) + { + ImpMsg = _("You need to specify the email address you'd like to subscribe with."); + AppendImportantMessage(ImpMsg, -1); + return 0; + } + SubType = sbstr("subtype"); + Line = NewStrBuf(); + serv_printf("SUBS subscribe|%s|%s|%s|%s/listsub", + ChrPtr(Room), + ChrPtr(Email), + ChrPtr(SubType), + ChrPtr(site_prefix) + ); + StrBuf_ServGetln(Line); + rc = GetServerStatusMsg(Line, NULL, 1, 2); + FreeStrBuf(&Line); + if (rc == 2) + putbstr("__FAIL", NewStrBufPlain(HKEY("1"))); + return rc == 2; +} + +int Conditional_LISTSUB_EXECUTE_UNSUBSCRIBE(StrBuf *Target, WCTemplputParams *TP) +{ + int rc; + StrBuf *Line; + const char *ImpMsg; + const StrBuf *Room, *Email; + + Room = sbstr("room"); + if (Room == NULL) + { + ImpMsg = _("You need to specify the mailinglist to subscribe to."); + AppendImportantMessage(ImpMsg, -1); + return 0; + } + Email = sbstr("email"); + if (Email == NULL) + { + ImpMsg = _("You need to specify the email address you'd like to subscribe with."); + AppendImportantMessage(ImpMsg, -1); + return 0; + } + + serv_printf("SUBS unsubscribe|%s|%s|%s/listsub", + ChrPtr(Room), + ChrPtr(Email), + ChrPtr(site_prefix) + ); + Line = NewStrBuf(); + StrBuf_ServGetln(Line); + rc = GetServerStatusMsg(Line, NULL, 1, 2); + FreeStrBuf(&Line); + if (rc == 2) + putbstr("__FAIL", NewStrBufPlain(HKEY("1"))); + return rc == 2; +} + +int Conditional_LISTSUB_EXECUTE_CONFIRM_SUBSCRIBE(StrBuf *Target, WCTemplputParams *TP) +{ + int rc; + StrBuf *Line; + const char *ImpMsg; + const StrBuf *Room, *Token; + + Room = sbstr("room"); + if (Room == NULL) + { + ImpMsg = _("You need to specify the mailinglist to subscribe to."); + AppendImportantMessage(ImpMsg, -1); + return 0; + } + Token = sbstr("token"); + if (Room == NULL) + { + ImpMsg = _("You need to specify the mailinglist to subscribe to."); + AppendImportantMessage(ImpMsg, -1); + return 0; + } + + Line = NewStrBuf(); + serv_printf("SUBS confirm|%s|%s", + ChrPtr(Room), + ChrPtr(Token) + ); + StrBuf_ServGetln(Line); + rc = GetServerStatusMsg(Line, NULL, 1, 2); + FreeStrBuf(&Line); + if (rc == 2) + putbstr("__FAIL", NewStrBufPlain(HKEY("1"))); + return rc == 2; +} + +#ifdef EXPERIMENTAL_LISTSUB +void do_listsub(void) +{ + if (!havebstr("cmd")) + { + putbstr("cmd", NewStrBufPlain(HKEY(""))); + } + output_headers(1, 0, 0, 0, 1, 0); + do_template("listsub_display"); + end_burst(); +} +#endif void InitModule_LISTSUB (void) { + RegisterConditional(HKEY("COND:LISTSUB:EXECUTE:SUBSCRIBE"), 0, Conditional_LISTSUB_EXECUTE_SUBSCRIBE, CTX_NONE); + RegisterConditional(HKEY("COND:LISTSUB:EXECUTE:UNSUBSCRIBE"), 0, Conditional_LISTSUB_EXECUTE_UNSUBSCRIBE, CTX_NONE); + RegisterConditional(HKEY("COND:LISTSUB:EXECUTE:CONFIRM:SUBSCRIBE"), 0, Conditional_LISTSUB_EXECUTE_CONFIRM_SUBSCRIBE, CTX_NONE); + WebcitAddUrlHandler(HKEY("listsub"), "", 0, do_listsub, ANONYMOUS|COOKIEUNNEEDED|FORCE_SESSIONCLOSE); diff --git a/webcit/static/t/listsub/display.html b/webcit/static/t/listsub/display.html new file mode 100644 index 000000000..5473bc82f --- /dev/null +++ b/webcit/static/t/listsub/display.html @@ -0,0 +1,97 @@ + + + + +<?_("List subscription")> + +
+
+ +

+ + + +
+

+ + + + + +

+ +
+ +
+ +:

+ + + + + +
+

+ + + +"" + + + +

+
+ +
+ +: +

+ + + + + +

+ +

+ +
    +
  • +
  • already successfully confirmed your subscribe/unsubscribe request and are attempting to do it again.")>
  • +
+ + + + + + + + + +

+ + + +

+ + +  +  +

+ + +

+ + +
+ + +
+ +
+ +
+ + diff --git a/webcit/static/t/listsub/subscribeable_rooms.html b/webcit/static/t/listsub/subscribeable_rooms.html new file mode 100644 index 000000000..3a757e31f --- /dev/null +++ b/webcit/static/t/listsub/subscribeable_rooms.html @@ -0,0 +1 @@ +