* More background cleanup
[citadel.git] / webcit / sysmsgs.c
1
2
3 #include <ctype.h>
4 #include <stdlib.h>
5 #include <unistd.h>
6 #include <stdio.h>
7 #include <fcntl.h>
8 #include <signal.h>
9 #include <sys/types.h>
10 #include <sys/wait.h>
11 #include <sys/socket.h>
12 #include <sys/time.h>
13 #include <limits.h>
14 #include <netinet/in.h>
15 #include <netdb.h>
16 #include <string.h>
17 #include <pwd.h>
18 #include <errno.h>
19 #include <stdarg.h>
20 #include <pthread.h>
21 #include <signal.h>
22 #include "webcit.h"
23
24
25
26
27
28
29
30
31 /*
32  * display the form for editing something (room info, bio, etc)
33  */
34 void display_edit(char *description, char *check_cmd,
35                   char *read_cmd, char *save_cmd, int headers_type)
36 {
37         char buf[SIZ];
38
39         serv_puts(check_cmd);
40         serv_gets(buf);
41
42         if (buf[0] != '2') {
43                 display_error(&buf[4]);
44                 return;
45         }
46         output_headers(headers_type);
47
48         svprintf("BOXTITLE", WCS_STRING, "Edit %s", description);
49         do_template("beginbox");
50
51         wprintf("<CENTER>Enter %s below.  Text is formatted to\n", description);
52         wprintf("the <EM>reader's</EM> screen width.  To defeat the\n");
53         wprintf("formatting, indent a line at least one space.  \n");
54         wprintf("<BR>");
55
56         wprintf("<FORM METHOD=\"POST\" ACTION=\"%s\">\n", save_cmd);
57         wprintf("<TEXTAREA NAME=\"msgtext\" wrap=soft "
58                 "ROWS=10 COLS=80 WIDTH=80>\n");
59         serv_puts(read_cmd);
60         serv_gets(buf);
61         if (buf[0] == '1')
62                 server_to_text();
63         wprintf("</TEXTAREA><BR><BR>\n");
64         wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Save\">");
65         wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\"><BR>\n");
66
67         wprintf("</FORM></CENTER>\n");
68         do_template("endbox");
69         wDumpContent(1);
70 }
71
72
73 /*
74  * save a screen which was displayed with display_edit()
75  */
76 void save_edit(char *description, char *enter_cmd, int regoto)
77 {
78         char buf[SIZ];
79
80         if (strcmp(bstr("sc"), "Save")) {
81                 output_headers(1);
82                 wprintf("Cancelled.  %s was not saved.<BR>\n", description);
83                 wDumpContent(1);
84                 return;
85         }
86         serv_puts(enter_cmd);
87         serv_gets(buf);
88         if (buf[0] != '4') {
89                 display_error(&buf[4]);
90                 return;
91         }
92         text_to_server(bstr("msgtext"), 0);
93         serv_puts("000");
94
95         if (regoto) {
96                 smart_goto(WC->wc_roomname);
97         } else {
98                 output_headers(1);
99                 wprintf("%s has been saved.\n", description);
100                 wDumpContent(1);
101         }
102 }