Added missing files to webcit build
[citadel.git] / webcit / pushemail.c
1 /*
2  * Edits a users push email settings 
3  * Author: Mathew McBride <matt@mcbridematt.dhs.org>
4  */
5 #include "webcit.h"
6
7 void display_pushemail(void) {
8         char buf[SIZ];
9         int is_none = 0;
10         int is_pager = 0;
11         int is_funambol = 0;
12         char mobnum[20];
13         svprintf("BOXTITLE", WCS_STRING, _("Push email and SMS settings"));
14         
15         /* Find any existing settings*/
16         if (goto_config_room() == 0) {
17                 int msgnum = 0;
18                 serv_puts("MSGS ALL|0|1");
19                 serv_getln(buf, sizeof(buf));
20                 if (buf[0] == '8') {
21                         serv_puts("subj|__ Push email settings __");
22                         serv_puts("000");
23                         while(serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
24                                 msgnum = atol(buf);
25                         }
26                         
27                 }
28                 if (msgnum > 0L) {
29                 serv_printf("MSG0 %ld", msgnum);
30                 serv_getln(buf, sizeof buf);
31                 if (buf[0] == '1') {
32                         while (serv_getln(buf, sizeof buf),
33                                 (strcmp(buf, "text") && strcmp(buf, "000"))) {
34                         }
35                         int i =0;
36                         if (!strcmp(buf, "text")) {
37                                 while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) { 
38                                         if (strncasecmp(buf, "none", 4) == 0) {
39                                                 is_none = 1;
40                                         } else if (strncasecmp(buf, "textmessage", 11) == 0) {
41                                                 is_pager = 1;
42                                                 i++;
43                                         } else if (strncasecmp(buf, "funambol", 8) == 0) {
44                                                 is_funambol = 1;
45                                         } else if (i == 1) {
46                                                 strncpy(mobnum, buf, 20);
47                                                 i++;
48                                         }
49                                 }       
50                         }
51                 }
52                 }
53         if (is_none) {
54                 svprintf("PUSH_NONE", WCS_STRING, "checked=\"checked\"");
55         } else if (is_pager) {
56                 svprintf("PUSH_TEXT", WCS_STRING, "checked=\"checked\"");
57                 svprintf("SMSNUM", WCS_STRING, "value=\"%s\"", mobnum);
58         } else if (is_funambol) {
59                 svprintf("PUSH_FNBL", WCS_STRING, "checked=\"checked\"");
60         }
61         serv_printf("GOTO %s", WC->wc_roomname);
62         serv_getln(buf, sizeof  buf);
63         }
64 output_headers(1, 1, 2, 0, 0, 0);
65 do_template("pushemail");
66 //do_template("endbox");
67 wDumpContent(1);
68 }
69
70 void save_pushemail(void) {
71         char buf[SIZ];
72         int msgnum = 0;
73         char *pushsetting = bstr("pushsetting");
74         char *sms = NULL;
75         if (strncasecmp(pushsetting, "textmessage", 11) == 0) {
76                 sms = bstr("user_sms_number");
77         }
78         if (goto_config_room() != 0) return;    /* oh well. */
79         serv_puts("MSGS ALL|0|1");
80         serv_getln(buf, sizeof buf);
81         if (buf[0] == '8') {
82                 serv_puts("subj|__ Push email settings __");
83                 serv_puts("000");
84         } else {
85                 printf("Junk in save_pushemail buffer!: %s\n", buf);
86                 return;
87         }
88         while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
89                 msgnum = atol(buf);
90         }
91
92         if (msgnum > 0L) {
93                 serv_printf("DELE %ld", msgnum);
94                 serv_getln(buf, sizeof buf);
95         }
96
97         serv_printf("ENT0 1||0|1|__ Push email settings __|");
98         serv_getln(buf, sizeof buf);
99         if (buf[0] == '4') {
100                 serv_puts(pushsetting);
101                 if (sms != NULL) {
102                 serv_puts(sms);
103                 } 
104                 serv_puts("");
105                 serv_puts("000");
106         }
107
108         /** Go back to the room we're supposed to be in */
109         serv_printf("GOTO %s", WC->wc_roomname);
110         serv_getln(buf, sizeof buf);
111         http_redirect("display_pushemail");
112 }