X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fsieve.c;h=735cffc0c7729b59df9618a338dbb6ee73e56abf;hb=HEAD;hp=0db8f5ae0bca9b1cdc1ec4e0c26bb51ab867d5a5;hpb=fd034bea666febed8eff22cf10f2b72b8b009665;p=citadel.git
diff --git a/webcit/sieve.c b/webcit/sieve.c
index 0db8f5ae0..2e3d61585 100644
--- a/webcit/sieve.c
+++ b/webcit/sieve.c
@@ -1,458 +1,31 @@
/*
- * Copyright (c) 1996-2011 by the citadel.org team
+ * Copyright (c) 1996-2020 by the citadel.org team
*
* This program is open source software. You can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 3 of the
- * License, or (at your option) any later version.
+ * modify it under the terms of the GNU General Public License version 3.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * Implementation note: this was kind of hacked up when we switched from Sieve to custom rules.
+ * As a result there's probably some cruft in here...
+ * ajc 2020jul12
+ *
*/
#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__"
-/*
- * dummy panel indicating to the user that the server doesn't support Sieve
- */
-void display_no_sieve(void) {
-
- output_headers(1, 1, 2, 0, 0, 0);
-
- wc_printf("
\n");
- wc_printf("");
- wc_printf("
");
- wc_printf(_("View/edit server-side mail filters"));
- wc_printf("
\n");
- wc_printf("
\n");
-
- wc_printf("
\n");
-
- wc_printf("
"
- "
\n");
-
- wc_printf(_("This installation of Citadel was built without support for server-side mail filtering."
- " Please contact your system administrator if you require this feature. "));
-
- wc_printf("
\n");
- wDumpContent(1);
-}
-
-
-/*
- * view/edit sieve config
- */
-void display_sieve(void)
-{
- char script_names[MAX_SCRIPTS][64];
- int num_scripts = 0;
- int active_script = (-1);
- char buf[SIZ]; /* Don't make this buffer smaller or it will restrict line length */
- int i;
- int rules_script_is_active = 0;
-
- if (!WC->serv_info->serv_supports_sieve) {
- display_no_sieve();
- return;
- }
-
- memset(script_names, 0, sizeof script_names);
-
- serv_puts("MSIV listscripts");
- serv_getln(buf, sizeof(buf));
- if (buf[0] == '1') while (serv_getln(buf, sizeof(buf)), strcmp(buf, "000")) {
- if (num_scripts < MAX_SCRIPTS) {
- extract_token(script_names[num_scripts], buf, 0, '|', 64);
- if (extract_int(buf, 1) > 0) {
- active_script = num_scripts;
- if (!strcasecmp(script_names[num_scripts], RULES_SCRIPT)) {
- rules_script_is_active = 1;
- }
- }
- ++num_scripts;
- }
- }
-
- output_headers(1, 1, 2, 0, 0, 0);
-
- wc_printf(" \n"
- );
-
- wc_printf("
\n");
- wc_printf("");
- wc_printf("
");
- wc_printf(_("View/edit server-side mail filters"));
- wc_printf("
\n");
- wc_printf("
\n");
-
- wc_printf("
\n");
-
- wc_printf("
"
- "
\n");
-
-
- wc_printf("\n");
-
- wc_printf("
\n");
-
- wc_printf(" \n"
- );
-
- wDumpContent(1);
-
-}
-
-
-
-/*
- * Helper function for output_sieve_rule() to output strings with quotes escaped
- */
-void osr_sanitize(char *str) {
- int i, len;
-
- if (str == NULL) return;
- len = strlen(str);
- for (i=0; iImportantMessage,
- _("Cancelled. Changes were not saved."));
+ AppendImportantMessage(_("Cancelled. Changes were not saved."), -1);
display_main_menu();
return;
}
parse_fields_from_rule_editor();
- serv_puts("MSIV listscripts");
- serv_getln(buf, sizeof(buf));
- if (buf[0] == '1') while (serv_getln(buf, sizeof(buf)), strcmp(buf, "000")) {
- if (num_scripts < MAX_SCRIPTS) {
- extract_token(script_names[num_scripts], buf, 0, '|', 64);
- if (extract_int(buf, 1) > 0) {
- active_script = num_scripts;
- }
- ++num_scripts;
- }
- }
-
- bigaction = ibstr("bigaction");
-
- if (bigaction == 0) {
- serv_puts("MSIV setactive||");
- serv_getln(buf, sizeof buf);
- }
-
- else if (bigaction == 1) {
- serv_printf("MSIV setactive|%s|", RULES_SCRIPT);
- serv_getln(buf, sizeof buf);
- }
-
- else if (bigaction == 2) {
- serv_printf("MSIV setactive|%s|", bstr("active_script"));
- serv_getln(buf, sizeof buf);
- }
-
- if (num_scripts > 0) {
- for (i=0; iImportantMessage, _("Your changes have been saved."));
+ AppendImportantMessage(_("Your changes have been saved."), -1);
display_main_menu();
return;
}
-/*
- * show a list of available scripts to add/remove them
- */
-void display_add_remove_scripts(char *message)
-{
- char buf[256];
- char script_name[256];
-
+void display_sieve_add_or_delete(void) {
output_headers(1, 1, 2, 0, 0, 0);
- wc_printf("
\n");
-
- do_template("beginbox_1");
- StrBufAppendBufPlain(WC->WBuf, _("Add a new script"), -1, 0);
- do_template("beginbox_2");
-
- wc_printf(_("To create a new script, enter the desired "
- "script name in the box below and click 'Create'."));
- wc_printf("