From: Wilfried Goesgens Date: Sun, 24 Jul 2011 21:08:26 +0000 (+0000) Subject: narrow old and new sieve rules editor X-Git-Tag: v8.11~547 X-Git-Url: https://code.citadel.org/?p=citadel.git;a=commitdiff_plain;h=da2cd1fd185b6ffa8ac657763c79144b07ea43c8 narrow old and new sieve rules editor - add some \n's to the old editor for easier diff - pad our list of sieve rules with empty ones, so we work like the old one. --- diff --git a/webcit/sieve.c b/webcit/sieve.c index 2eab1c098..0517045e7 100644 --- a/webcit/sieve.c +++ b/webcit/sieve.c @@ -541,33 +541,33 @@ void display_sieve(void) output_headers(1, 1, 2, 0, 0, 0); - wc_printf(" \n" - ); + wc_printf("\n" +); wc_printf("
\n"); wc_printf(""); @@ -578,8 +578,8 @@ void display_sieve(void) wc_printf("
\n"); - wc_printf("" - "
\n"); + wc_printf("\n" + "\n", + wc_printf("", i, - ((i%2) ? "DDDDDD" : "FFFFFF") + ((i%2) ? "odd" : "even") ); - wc_printf(""); + wc_printf("\n\n\n"); - wc_printf(""); + wc_printf("\n"); wc_printf(""); wc_printf(""); + wc_printf("\n"); char *final_values[2][2] = { { "continue", _("continue processing") }, { "stop", _("stop") } }; - wc_printf("", _("and then") ); + wc_printf("\n", _("and then") ); - wc_printf(""); + wc_printf("\n\n"); + wc_printf("\n"); wc_printf("\n"); } - wc_printf("
\n"); wc_printf("
\n"); @@ -601,7 +601,7 @@ void display_sieve(void) wc_printf(_("Filter it through a manually edited script (advanced users only)")); wc_printf("\n"); - wc_printf(""); + wc_printf("\n\n"); @@ -635,7 +635,7 @@ void display_sieve(void) ); } } - wc_printf("\n"); + wc_printf("\n\n"); } wc_printf("   "); @@ -765,7 +765,7 @@ void display_add_remove_scripts(char *message) } } } - wc_printf("
\n"); + wc_printf("\n\n
\n"); wc_printf("", _("Delete script"), _("Delete this script?")); @@ -837,118 +837,118 @@ void display_rules_editor_inner_div(void) { * This script should get called by every onChange event... * */ - wc_printf(" \n" - ); + "function DeleteRule(rd) {\n" + " for (j=rd; j<=highest_active_rule; ++j) {\n" + " SwapRules(j, (j+1));\n" + " }\n" + " $('active'+highest_active_rule).checked = false;\n" + "}\n" + "\n" + ); wc_printf("
"); @@ -972,40 +972,40 @@ void display_rules_editor_inner_div(void) { /* now generate the table row */ - wc_printf("
"); + wc_printf("\n"); - wc_printf("
"); - wc_printf("", + wc_printf("
\n"); + wc_printf("\n", i, i, (active ? "checked" : "") ); - wc_printf("
"); + wc_printf("
\n"); if (i>0) wc_printf("" "", + "title=\"%s\"/>\n", i-1, i, _("Move rule up") ); wc_printf("" "", + "title=\"%s\"/>\n", i, i+1, i, _("Move rule down") ); wc_printf("" "", + "title=\"%s\"/>\n", i, i, _("Delete rule") ); - wc_printf("
"); - wc_printf("%d", i+1); - wc_printf("\n"); + wc_printf("%d\n", i+1); + wc_printf("%s ", _("If") ); @@ -1030,14 +1030,14 @@ void display_rules_editor_inner_div(void) { wc_printf(""); + wc_printf("\n\n"); wc_printf(""); @@ -1051,42 +1051,42 @@ void display_rules_editor_inner_div(void) { { "notmatches", _("does not match") } }; - wc_printf("
", i); - wc_printf("\n", i, i); for (j=0; j<6; ++j) { - wc_printf("", + wc_printf("\n", ( (!strcasecmp(compare, compare_values[j][0])) ? "selected" : ""), compare_values[j][0], compare_values[j][1] ); } - wc_printf(""); + wc_printf("\n\n"); wc_printf("
"); + wc_printf("\">\n\n"); wc_printf("
", i); wc_printf("%s", _("(All messages)")); - wc_printf("
"); + wc_printf("\n"); char *sizecomp_values[2][2] = { { "larger", _("is larger than") }, { "smaller", _("is smaller than") } }; - wc_printf("
", i); - wc_printf("\n", i, i); for (j=0; j<2; ++j) { - wc_printf("", + wc_printf("\n", ( (!strcasecmp(sizecomp, sizecomp_values[j][0])) ? "selected" : ""), sizecomp_values[j][0], sizecomp_values[j][1] ); } - wc_printf(""); + wc_printf("\n\n"); wc_printf("", i, i, sizeval); @@ -1104,20 +1104,20 @@ void display_rules_editor_inner_div(void) { { "vacation", _("Vacation") } }; - wc_printf("
"); - wc_printf("\n"); + wc_printf(""); + wc_printf("\n\n"); - wc_printf("
", i); - wc_printf("\n", i, i); for (j=0; j\n"); } - wc_printf("\n"); + wc_printf("\n\n"); wc_printf("
"); - wc_printf("
", i); + wc_printf("
\n", i); wc_printf("
"); + wc_printf("\">\n
\n"); - wc_printf("
", i); + wc_printf("
\n", i); wc_printf(_("Message:")); - wc_printf("
"); + wc_printf("
\n"); wc_printf(""); - wc_printf("
"); + wc_printf("
\n"); - wc_printf("
%s%s"); - wc_printf("\n"); + wc_printf(""); - wc_printf("
"); + wc_printf("
\n"); wc_printf("\n", _("Add rule") ); - wc_printf(" \n"); + wc_printf("\n"); free(rooms); } @@ -1256,6 +1256,7 @@ HashList *GetSieveScriptListing(StrBuf *Target, WCTemplputParams *TP) Ruleset->Name = NewStrBufPlain(NULL, StrLength(Line)); StrBufExtract_NextToken(Ruleset->Name, Line, &pch, '|'); Ruleset->IsActive = StrBufExtractNext_int(Line, &pch, '|'); + Ruleset->Content = NULL; if (!strcasecmp(ChrPtr(Ruleset->Name), RULES_SCRIPT)) { @@ -1512,7 +1513,7 @@ void tmplput_SieveRule_final(StrBuf *Target, WCTemplputParams *TP) void tmplput_SieveRule_sizeval(StrBuf *Target, WCTemplputParams *TP) { SieveRule *Rule = (SieveRule *)CTX; - wc_printf("%d", Rule->sizeval); + StrBufAppendPrintf(Target, "%d", Rule->sizeval); } void tmplput_SieveRule_lookup_FileIntoRoom(StrBuf *Target, WCTemplputParams *TP) @@ -1603,10 +1604,20 @@ HashList *GetSieveRules(StrBuf *Target, WCTemplputParams *TP) StrBufExtract_NextToken(Line, EncodedRule, &pch, '|'); Rule->final = (eSieveFinal) GetTokenDefine(SKEY(Line), econtinue); Put(SieveRules, IKEY(n), Rule, FreeSieveRule); + n++; } } } + while (n < MAX_RULES) { + Rule = (SieveRule*) malloc(sizeof(SieveRule)); + memset(Rule, 0, sizeof(SieveRule)); + Put(SieveRules, IKEY(n), Rule, FreeSieveRule); + + n++; + } + + FreeStrBuf(&EncodedRule); FreeStrBuf(&Line); return SieveRules; @@ -1687,6 +1698,10 @@ 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);