X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fsieve.c;h=214e7b4460759f252f02ed8be8e32fcfefd36ae7;hb=5d38a76f8f06640e3a3f097d584ac52336110f7c;hp=52d68f7574612c1340a8a47c6cb9b98fb979923c;hpb=4e02b911738fd309c3472ac90e702c1b27fd39b0;p=citadel.git diff --git a/webcit/sieve.c b/webcit/sieve.c index 52d68f757..214e7b446 100644 --- a/webcit/sieve.c +++ b/webcit/sieve.c @@ -14,6 +14,9 @@ #include "webcit.h" +CtxType CTX_SIEVELIST = CTX_NONE; +CtxType CTX_SIEVESCRIPT = CTX_NONE; + #define MAX_SCRIPTS 100 #define MAX_RULES 50 #define RULES_SCRIPT "__WebCit_Generated_Script__" @@ -420,6 +423,14 @@ void save_sieve(void) { } +void display_sieve_add_or_delete(void) { + output_headers(1, 1, 2, 0, 0, 0); + do_template("sieve_add"); + wDumpContent(1); +} + + + /* * create a new script * take the web environment script name and create it on the citadel server @@ -444,9 +455,7 @@ void create_script(void) { } } - output_headers(1, 1, 1, 0, 0, 0); - do_template("sieve_add"); - wDumpContent(1); + display_sieve_add_or_delete(); } @@ -458,9 +467,7 @@ void delete_script(void) { serv_printf("MSIV deletescript|%s", bstr("script_name")); serv_getln(buf, sizeof buf); - output_headers(1, 1, 1, 0, 0, 0); - do_template("sieve_add"); - wDumpContent(1); + display_sieve_add_or_delete(); } @@ -484,22 +491,22 @@ typedef struct __SieveListing { int ConditionalSieveScriptIsActive(StrBuf *Target, WCTemplputParams *TP) { - SieveListing *SieveList = (SieveListing *)CTX; + SieveListing *SieveList = (SieveListing *)CTX(CTX_SIEVELIST); return SieveList->IsActive; } int ConditionalSieveScriptIsRulesScript(StrBuf *Target, WCTemplputParams *TP) { - SieveListing *SieveList = (SieveListing *)CTX; + SieveListing *SieveList = (SieveListing *)CTX(CTX_SIEVELIST); return SieveList->IsActive; } void tmplput_SieveScriptName(StrBuf *Target, WCTemplputParams *TP) { - SieveListing *SieveList = (SieveListing *)CTX; + SieveListing *SieveList = (SieveListing *)CTX(CTX_SIEVELIST); StrBufAppendTemplate(Target, TP, SieveList->Name, 0); } void tmplput_SieveScriptContent(StrBuf *Target, WCTemplputParams *TP) { - SieveListing *SieveList = (SieveListing *)CTX; + SieveListing *SieveList = (SieveListing *)CTX(CTX_SIEVELIST); StrBufAppendTemplate(Target, TP, SieveList->Content, 0); } void FreeSieveListing(void *vSieveListing) @@ -679,7 +686,7 @@ typedef struct __SieveRule { int ConditionalSieveRule_hfield(StrBuf *Target, WCTemplputParams *TP) { - SieveRule *Rule = (SieveRule *)CTX; + SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); return GetTemplateTokenNumber(Target, TP, @@ -690,7 +697,7 @@ int ConditionalSieveRule_hfield(StrBuf *Target, WCTemplputParams *TP) } int ConditionalSieveRule_compare(StrBuf *Target, WCTemplputParams *TP) { - SieveRule *Rule = (SieveRule *)CTX; + SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); return GetTemplateTokenNumber(Target, TP, 3, @@ -700,7 +707,7 @@ int ConditionalSieveRule_compare(StrBuf *Target, WCTemplputParams *TP) } int ConditionalSieveRule_action(StrBuf *Target, WCTemplputParams *TP) { - SieveRule *Rule = (SieveRule *)CTX; + SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); return GetTemplateTokenNumber(Target, TP, 3, @@ -710,7 +717,7 @@ int ConditionalSieveRule_action(StrBuf *Target, WCTemplputParams *TP) } int ConditionalSieveRule_sizecomp(StrBuf *Target, WCTemplputParams *TP) { - SieveRule *Rule = (SieveRule *)CTX; + SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); return GetTemplateTokenNumber(Target, TP, 3, @@ -720,7 +727,7 @@ int ConditionalSieveRule_sizecomp(StrBuf *Target, WCTemplputParams *TP) } int ConditionalSieveRule_final(StrBuf *Target, WCTemplputParams *TP) { - SieveRule *Rule = (SieveRule *)CTX; + SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); return GetTemplateTokenNumber(Target, TP, 3, @@ -730,7 +737,7 @@ int ConditionalSieveRule_final(StrBuf *Target, WCTemplputParams *TP) } int ConditionalSieveRule_ThisRoom(StrBuf *Target, WCTemplputParams *TP) { - SieveRule *Rule = (SieveRule *)CTX; + SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); return GetTemplateTokenNumber(Target, TP, 3, @@ -740,39 +747,39 @@ int ConditionalSieveRule_ThisRoom(StrBuf *Target, WCTemplputParams *TP) } int ConditionalSieveRule_Active(StrBuf *Target, WCTemplputParams *TP) { - SieveRule *Rule = (SieveRule *)CTX; + SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); return Rule->active; } void tmplput_SieveRule_htext(StrBuf *Target, WCTemplputParams *TP) { - SieveRule *Rule = (SieveRule *)CTX; + SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); StrBufAppendTemplate(Target, TP, Rule->htext, 0); } void tmplput_SieveRule_fileinto(StrBuf *Target, WCTemplputParams *TP) { - SieveRule *Rule = (SieveRule *)CTX; + SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); StrBufAppendTemplate(Target, TP, Rule->fileinto, 0); } void tmplput_SieveRule_redirect(StrBuf *Target, WCTemplputParams *TP) { - SieveRule *Rule = (SieveRule *)CTX; + SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); StrBufAppendTemplate(Target, TP, Rule->redirect, 0); } void tmplput_SieveRule_automsg(StrBuf *Target, WCTemplputParams *TP) { - SieveRule *Rule = (SieveRule *)CTX; + SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); StrBufAppendTemplate(Target, TP, Rule->automsg, 0); } void tmplput_SieveRule_sizeval(StrBuf *Target, WCTemplputParams *TP) { - SieveRule *Rule = (SieveRule *)CTX; + SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); StrBufAppendPrintf(Target, "%d", Rule->sizeval); } void tmplput_SieveRule_lookup_FileIntoRoom(StrBuf *Target, WCTemplputParams *TP) { void *vRoom; - SieveRule *Rule = (SieveRule *)CTX; + SieveRule *Rule = (SieveRule *)CTX(CTX_SIEVESCRIPT); wcsession *WCC = WC; HashList *Rooms = GetRoomListHashLKRA(Target, TP); @@ -886,6 +893,8 @@ void InitModule_SIEVE (void) { + RegisterCTX(CTX_SIEVELIST); + RegisterCTX(CTX_SIEVESCRIPT); REGISTERTokenParamDefine(from); REGISTERTokenParamDefine(tocc); REGISTERTokenParamDefine(subject); @@ -952,4 +961,5 @@ InitModule_SIEVE WebcitAddUrlHandler(HKEY("save_sieve"), "", 0, save_sieve, 0); WebcitAddUrlHandler(HKEY("create_script"), "", 0, create_script, 0); WebcitAddUrlHandler(HKEY("delete_script"), "", 0, delete_script, 0); + WebcitAddUrlHandler(HKEY("display_sieve_add_or_delete"), "", 0, display_sieve_add_or_delete, 0); }