X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fsieve.c;h=8cf76e459a2b6fc85f7f2cd5a080aa9214e31c2e;hb=68d6ac2aeb2c46dfca9ce85351780c6136e0cc84;hp=4aa53e20bf8a8146e2d175c30d139f085c4c766d;hpb=0108602afaf6ddede92851e3cf3bd6335e5fd8e2;p=citadel.git diff --git a/webcit/sieve.c b/webcit/sieve.c index 4aa53e20b..8cf76e459 100644 --- a/webcit/sieve.c +++ b/webcit/sieve.c @@ -21,7 +21,7 @@ #define MAX_SCRIPTS 100 #define MAX_RULES 50 #define RULES_SCRIPT "__WebCit_Generated_Script__" -#define FOO 1 +/*#define FOO 1*/ /* * Helper function for output_sieve_rule() to output strings with quotes escaped */ @@ -378,8 +378,7 @@ void save_sieve(void) { char buf[256]; if (!havebstr("save_button")) { - strcpy(WC->ImportantMessage, - _("Cancelled. Changes were not saved.")); + AppendImportantMessage(_("Cancelled. Changes were not saved."), -1); display_main_menu(); return; } @@ -435,7 +434,7 @@ void save_sieve(void) { } } - strcpy(WC->ImportantMessage, _("Your changes have been saved.")); + AppendImportantMessage(_("Your changes have been saved."), -1); display_main_menu(); return; } @@ -466,12 +465,20 @@ void create_script(void) { serv_puts("000"); #if FOO display_add_remove_scripts(_("A new script has been created. Return to the script editing screen to edit and activate it.")); +#else + output_headers(1, 1, 2, 0, 0, 0); + do_template("sieve_add"); + wDumpContent(1); #endif return; } #if FOO display_add_remove_scripts(&buf[4]); +#else + output_headers(1, 1, 2, 0, 0, 0); + do_template("sieve_add"); + wDumpContent(1); #endif } @@ -488,6 +495,10 @@ void delete_script(void) { serv_getln(buf, sizeof buf); #if FOO display_add_remove_scripts(&buf[4]); +#else + output_headers(1, 1, 2, 0, 0, 0); + do_template("sieve_add"); + wDumpContent(1); #endif } @@ -1457,36 +1468,11 @@ int ConditionalSieveRule_Active(StrBuf *Target, WCTemplputParams *TP) SieveRule *Rule = (SieveRule *)CTX; return Rule->active; } - - -/* -void tmplput_SieveRule_hfield(StrBuf *Target, WCTemplputParams *TP) -{ - SieveRule *Rule = (SieveRule *)CTX; - StrBufAppendTemplate(Target, TP, Rule->hfield, 0); -} -void tmplput_SieveRule_compare(StrBuf *Target, WCTemplputParams *TP) -{ - SieveRule *Rule = (SieveRule *)CTX; - StrBufAppendTemplate(Target, TP, Rule->compare, 0); -} -*/ void tmplput_SieveRule_htext(StrBuf *Target, WCTemplputParams *TP) { SieveRule *Rule = (SieveRule *)CTX; StrBufAppendTemplate(Target, TP, Rule->htext, 0); } -/* -void tmplput_SieveRule_sizecomp(StrBuf *Target, WCTemplputParams *TP) -{ - SieveRule *Rule = (SieveRule *)CTX; - StrBufAppendTemplate(Target, TP, Rule->sizecomp, 0); -} -void tmplput_SieveRule_action(StrBuf *Target, WCTemplputParams *TP) -{ - SieveRule *Rule = (SieveRule *)CTX; - StrBufAppendTemplate(Target, TP, Rule->action, 0); - }*/ void tmplput_SieveRule_fileinto(StrBuf *Target, WCTemplputParams *TP) { SieveRule *Rule = (SieveRule *)CTX; @@ -1502,13 +1488,6 @@ void tmplput_SieveRule_automsg(StrBuf *Target, WCTemplputParams *TP) SieveRule *Rule = (SieveRule *)CTX; StrBufAppendTemplate(Target, TP, Rule->automsg, 0); } -/* -void tmplput_SieveRule_final(StrBuf *Target, WCTemplputParams *TP) -{ - SieveRule *Rule = (SieveRule *)CTX; - StrBufAppendTemplate(Target, TP, Rule->final, 0); -} -*/ void tmplput_SieveRule_sizeval(StrBuf *Target, WCTemplputParams *TP) { SieveRule *Rule = (SieveRule *)CTX; @@ -1549,14 +1528,13 @@ HashList *GetSieveRules(StrBuf *Target, WCTemplputParams *TP) int Done = 0; SieveRule *Rule; + SieveRules = NewHash(1, Flathash); serv_printf("MSIV getscript|"RULES_SCRIPT); Line = NewStrBuf(); EncodedRule = NewStrBuf(); StrBuf_ServGetln(Line); if (GetServerStatus(Line, NULL) == 1) { - SieveRules = NewHash(1, Flathash); - while(!Done && (StrBuf_ServGetln(Line) >= 0) ) if ( (StrLength(Line)==3) && !strcmp(ChrPtr(Line), "000")) @@ -1622,23 +1600,6 @@ HashList *GetSieveRules(StrBuf *Target, WCTemplputParams *TP) return SieveRules; } - -HashList *GetEmptySieveRule(StrBuf *Target, WCTemplputParams *TP) -{ - int n = 0; - HashList *OneSieveRule; - SieveRule *Rule; - - OneSieveRule = NewHash(1, Flathash); - - /* We just care for our encoded header and skip everything else */ - Rule = (SieveRule*) malloc(sizeof(SieveRule)); - memset(Rule, 0, sizeof(SieveRule)); - Put(OneSieveRule, IKEY(n), Rule, FreeSieveRule); - - return OneSieveRule; -} - void SessionDetachModule_SIEVE (wcsession *sess) @@ -1696,11 +1657,6 @@ InitModule_SIEVE RegisterIterator("SIEVE:RULES", 0, NULL, GetSieveRules, NULL, DeleteHash, CTX_SIEVESCRIPT, CTX_NONE, IT_NOFLAG); - RegisterIterator("SIEVE:RULE:EMPTY", 0, NULL, GetEmptySieveRule, NULL, DeleteHash, CTX_SIEVESCRIPT, CTX_NONE, IT_NOFLAG); -/* - -*/ - RegisterConditional(HKEY("COND:SIEVE:ACTIVE"), 1, ConditionalSieveRule_Active, CTX_SIEVESCRIPT); RegisterConditional(HKEY("COND:SIEVE:HFIELD"), 1, ConditionalSieveRule_hfield, CTX_SIEVESCRIPT); @@ -1710,15 +1666,12 @@ InitModule_SIEVE RegisterConditional(HKEY("COND:SIEVE:FINAL"), 1, ConditionalSieveRule_final, CTX_SIEVESCRIPT); RegisterConditional(HKEY("COND:SIEVE:THISROOM"), 1, ConditionalSieveRule_ThisRoom, CTX_SIEVESCRIPT); - //RegisterNamespace("SIEVE:SCRIPT:HFIELD", 0, 1, tmplput_SieveRule_hfield, NULL, CTX_SIEVESCRIPT); - //RegisterNamespace("SIEVE:SCRIPT:COMPARE", 0, 1, tmplput_SieveRule_compare, NULL, CTX_SIEVESCRIPT); RegisterNamespace("SIEVE:SCRIPT:HTEXT", 0, 1, tmplput_SieveRule_htext, NULL, CTX_SIEVESCRIPT); RegisterNamespace("SIEVE:SCRIPT:SIZE", 0, 1, tmplput_SieveRule_sizeval, NULL, CTX_SIEVESCRIPT); - ///RegisterNamespace("SIEVE:SCRIPT:ACTION", 0, 1, tmplput_SieveRule_action, NULL, CTX_SIEVESCRIPT); RegisterNamespace("SIEVE:SCRIPT:FILEINTO", 0, 1, tmplput_SieveRule_fileinto, NULL, CTX_SIEVESCRIPT); RegisterNamespace("SIEVE:SCRIPT:REDIRECT", 0, 1, tmplput_SieveRule_redirect, NULL, CTX_SIEVESCRIPT); RegisterNamespace("SIEVE:SCRIPT:AUTOMSG", 0, 1, tmplput_SieveRule_automsg, NULL, CTX_SIEVESCRIPT); - ///RegisterNamespace("SIEVE:SCRIPT:FINAL", 0, 1, tmplput_SieveRule_final, NULL, CTX_SIEVESCRIPT); + /* fetch our room into WCC->ThisRoom, to evaluate while iterating over rooms with COND:THIS:THAT:ROOM */ RegisterNamespace("SIEVE:SCRIPT:LOOKUP_FILEINTO", 0, 1, tmplput_SieveRule_lookup_FileIntoRoom, NULL, CTX_SIEVESCRIPT);