* *** HUGE CHANGES *** *** WARNING: NOT FULLY FUNCTIONAL ***
[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 with_room_banner)
36 {
37         char buf[SIZ];
38
39         serv_puts(check_cmd);
40         serv_gets(buf);
41
42         if (buf[0] != '2') {
43                 strcpy(WC->ImportantMessage, &buf[4]);
44                 display_main_menu();
45                 return;
46         }
47         if (with_room_banner) {
48                 output_headers(1, 1, 1, 0, 0, 0, 0);
49         }
50         else {
51                 output_headers(1, 1, 0, 0, 0, 0, 0);
52         }
53
54         svprintf("BOXTITLE", WCS_STRING, "Edit %s", description);
55         do_template("beginbox");
56
57         wprintf("<CENTER>Enter %s below.  Text is formatted to\n", description);
58         wprintf("the <EM>reader's</EM> screen width.  To defeat the\n");
59         wprintf("formatting, indent a line at least one space.  \n");
60         wprintf("<br />");
61
62         wprintf("<FORM METHOD=\"POST\" ACTION=\"%s\">\n", save_cmd);
63         wprintf("<TEXTAREA NAME=\"msgtext\" wrap=soft "
64                 "ROWS=10 COLS=80 WIDTH=80>\n");
65         serv_puts(read_cmd);
66         serv_gets(buf);
67         if (buf[0] == '1')
68                 server_to_text();
69         wprintf("</TEXTAREA><br /><br />\n");
70         wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Save\">");
71         wprintf("&nbsp;");
72         wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\"><br />\n");
73
74         wprintf("</FORM></CENTER>\n");
75         do_template("endbox");
76         wDumpContent(1);
77 }
78
79
80 /*
81  * save a screen which was displayed with display_edit()
82  */
83 void save_edit(char *description, char *enter_cmd, int regoto)
84 {
85         char buf[SIZ];
86
87         if (strcmp(bstr("sc"), "Save")) {
88                 sprintf(WC->ImportantMessage,
89                         "Cancelled.  %s was not saved.\n", description);
90                 display_main_menu();
91                 return;
92         }
93         serv_puts(enter_cmd);
94         serv_gets(buf);
95         if (buf[0] != '4') {
96                 strcpy(WC->ImportantMessage, &buf[4]);
97                 display_main_menu();
98                 return;
99         }
100         text_to_server(bstr("msgtext"), 0);
101         serv_puts("000");
102
103         if (regoto) {
104                 smart_goto(WC->wc_roomname);
105         } else {
106                 sprintf(WC->ImportantMessage,
107                         "%s has been saved.\n", description);
108                 display_main_menu();
109                 return;
110         }
111 }