4 * Displays the "advanced" (main) menu.
14 #include <sys/types.h>
16 #include <sys/socket.h>
19 #include <netinet/in.h>
34 void display_main_menu(void)
36 output_headers(1, 1, 1, 0, 0, 0, 0);
38 wprintf("<div style=\"margin-right:1px\">"
40 "<TR><TD COLSPAN=2>\n");
42 svprintf("BOXTITLE", WCS_STRING, "Basic commands");
43 do_template("beginbox");
46 "<TABLE border=0 cellspacing=1 cellpadding=1 width=100%%>"
48 "<TD>"); /* start of first column */
50 wprintf("<A HREF=\"/knrooms\">"
51 "<span class=\"mainmenu\">"
52 "List known rooms</span></A><br />"
53 "<span class=\"menudesc\">"
54 "Where can I go from here?</span><br />\n"
57 wprintf("<A HREF=\"/gotonext\">"
58 "<span class=\"mainmenu\">"
59 "Goto next room</span></A><br />"
60 "<span class=\"menudesc\">"
61 "...with <EM>unread</EM> messages"
65 wprintf("<A HREF=\"/skip\">"
66 "<span class=\"mainmenu\">"
67 "Skip to next room</span></a><br />"
68 "<span class=\"menudesc\">"
69 "(come back here later)"
73 if ((strlen(WC->ugname) > 0) && (strcasecmp(WC->ugname, WC->wc_roomname))) {
75 "<A HREF=\"/ungoto\">"
76 "<span class=\"mainmenu\">"
77 "Ungoto</span></A><br />"
78 "<span class=\"menudesc\">"
80 "</span>\n", WC->ugname
84 wprintf("</TD><TD>\n"); /* start of second column */
86 wprintf("<A HREF=\"/readnew\">"
87 "<span class=\"mainmenu\">"
88 "Read new messages</span></A><br />"
89 "<span class=\"menudesc\">"
90 "...in this room</span><br />\n"
93 wprintf("<A HREF=\"/readfwd\">"
94 "<span class=\"mainmenu\">"
95 "Read all messages</span></A><br />"
96 "<span class=\"menudesc\">"
97 "...old <EM>and</EM> new</span><br />\n"
100 wprintf("<A HREF=\"/display_enter\">"
101 "<span class=\"mainmenu\">"
102 "Enter a message</span></A><br />"
103 "<span class=\"menudesc\">"
104 "(post in this room)</span>\n"
107 wprintf("</TD><TD>"); /* start of third column */
109 wprintf("<A HREF=\"/summary\">"
110 "<span class=\"mainmenu\">"
111 "Summary page</span></A><br />"
112 "<span class=\"menudesc\">"
113 "Summary of my account</span><br />\n"
116 wprintf("<A HREF=\"/userlist\">\n"
117 "<span class=\"mainmenu\">"
118 "User list</span></A><br />"
119 "<span class=\"menudesc\">"
120 "(all registered users)</span><br />\n"
123 wprintf("<A HREF=\"/termquit\" TARGET=\"_top\">"
124 "<span class=\"mainmenu\">"
125 "Log off</span></A><br />"
126 "<span class=\"menudesc\">"
130 wprintf("</TD></TR></TABLE>\n");
131 do_template("endbox");
134 "<TR VALIGN=TOP><TD>");
136 svprintf("BOXTITLE", WCS_STRING, "Your info");
137 do_template("beginbox");
139 wprintf("<A HREF=\"/display_reg\">"
140 "<span class=\"mainmenu\">"
141 "Update your contact information "
144 wprintf("<A HREF=\"/display_changepw\">"
145 "<span class=\"mainmenu\">"
146 "Change your password</span></A><br />\n");
148 wprintf("<A HREF=\"/display_editbio\">"
149 "<span class=\"mainmenu\">"
150 "Enter your 'bio'</span></a><br />\n");
152 wprintf("<A HREF=\"/display_editpic\">"
153 "<span class=\"mainmenu\">"
154 "Edit your online photo</span></a>\n");
156 do_template("endbox");
158 wprintf("</TD><TD>");
160 svprintf("BOXTITLE", WCS_STRING, "Advanced room commands");
161 do_template("beginbox");
163 if ((WC->axlevel >= 6) || (WC->is_room_aide)) {
164 wprintf("<A HREF=\"/display_editroom\">"
165 "<span class=\"mainmenu\">"
166 "Edit or delete this room</span></A><br />\n");
169 wprintf("<A HREF=\"/display_private\">"
170 "<span class=\"mainmenu\">"
171 "Go to a "hidden" room</span></A><br />\n");
173 wprintf("<A HREF=\"/display_entroom\">"
174 "<span class=\"mainmenu\">"
175 "Create a new room</span></A><br />\n");
177 wprintf("<A HREF=\"/display_zap\">"
178 "<span class=\"mainmenu\">"
179 "Zap (forget) this room (%s)</span></A><br />\n",
182 wprintf("<A HREF=\"/zapped_list\">"
183 "<span class=\"mainmenu\">"
184 "List all forgotten rooms</span></A>\n");
186 do_template("endbox");
188 wprintf("</td></tr></table></div>");
194 * System administration menu
196 void display_aide_menu(void)
198 output_headers(1, 1, 2, 0, 0, 0, 0);
199 wprintf("<div id=\"banner\">\n"
200 "<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>"
201 "<SPAN CLASS=\"titlebar\">System Administration Menu</SPAN>"
202 "</TD></TR></TABLE>\n"
203 "</div>\n<div id=\"content\">\n"
206 wprintf("<div style=\"margin-right:1px\">"
207 "<table border=0 width=100%%><tr valign=top><td>");
209 svprintf("BOXTITLE", WCS_STRING, "Global Configuration");
210 do_template("beginbox");
212 wprintf("<A HREF=\"/display_siteconfig\">"
213 "<span class=\"mainmenu\">"
214 "Edit site-wide configuration</span></A><br />\n");
216 wprintf("<A HREF=\"/display_inetconf\">"
217 "<span class=\"mainmenu\">"
218 "Domain names and Internet mail configuration</span></a><br />\n");
220 wprintf("<A HREF=\"/display_netconf\">"
221 "<span class=\"mainmenu\">"
222 "Configure replication with other Citadel servers"
225 do_template("endbox");
227 wprintf("</td><td>");
229 svprintf("BOXTITLE", WCS_STRING, "User account management");
230 do_template("beginbox");
232 wprintf("<A HREF=\"/select_user_to_edit\">"
233 "<span class=\"mainmenu\">"
234 "Add, change, delete user accounts"
235 "</span></A><br />\n");
237 wprintf("<A HREF=\"/validate\">"
238 "<span class=\"mainmenu\">"
239 "Validate new users</span></A><br />\n");
241 do_template("endbox");
243 svprintf("BOXTITLE", WCS_STRING, "Rooms and Floors");
244 do_template("beginbox");
246 wprintf("<A HREF=\"/display_floorconfig\">"
247 "<span class=\"mainmenu\">"
248 "Add, change, or delete floors"
251 do_template("endbox");
253 wprintf("</td></tr></table></div>");
262 * Display the screen to enter a generic server command
264 void display_generic(void)
266 output_headers(1, 1, 2, 0, 0, 0, 0);
267 wprintf("<div id=\"banner\">\n"
268 "<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>"
269 "<SPAN CLASS=\"titlebar\">Enter a server command</SPAN>"
270 "</TD></TR></TABLE>\n"
271 "</div>\n<div id=\"content\">\n"
274 wprintf("<div style=\"margin-right:1px\">"
275 "<table border=0 width=100%% bgcolor=\"#ffffff\"><tr><td>\n");
278 wprintf("This screen allows you to enter Citadel server commands which are\n");
279 wprintf("not supported by WebCit. If you do not know what that means,\n");
280 wprintf("then this screen will not be of much use to you.<br />\n");
282 wprintf("<FORM METHOD=\"POST\" ACTION=\"/do_generic\">\n");
284 wprintf("Enter command:<br />\n");
285 wprintf("<INPUT TYPE=\"text\" NAME=\"g_cmd\" SIZE=80 MAXLENGTH=\"250\"><br />\n");
287 wprintf("Command input (if requesting SEND_LISTING transfer mode):<br />\n");
288 wprintf("<TEXTAREA NAME=\"g_input\" ROWS=10 COLS=80 WIDTH=80></TEXTAREA><br />\n");
290 wprintf("<FONT SIZE=-2>Detected host header is http://%s</FONT>\n",
292 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Send command\">");
294 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\"><br />\n");
296 wprintf("</FORM></CENTER>\n");
297 wprintf("</td></tr></table></div>\n");
301 void do_generic(void)
308 if (strcasecmp(bstr("sc"), "Send command")) {
313 output_headers(1, 1, 0, 0, 0, 0, 0);
315 serv_printf("%s", bstr("g_cmd"));
318 svprintf("BOXTITLE", WCS_STRING, "Server command results");
319 do_template("beginbox");
321 wprintf("<TABLE border=0><TR><TD>Command:</TD><TD><TT>");
322 escputs(bstr("g_cmd"));
323 wprintf("</TT></TD></TR><TR><TD>Result:</TD><TD><TT>");
325 wprintf("</TT></TD></TR></TABLE><br />\n");
328 serv_printf("\n\n000");
330 if ((buf[0] == '1') || (buf[0] == '8')) {
331 while (serv_gets(gcontent), strcmp(gcontent, "000")) {
338 text_to_server(bstr("g_input"), 0);
344 serv_read(junk, len);
350 memset(junk, 0, len);
351 serv_write(junk, len);
355 wprintf("<A HREF=\"/display_generic\">Enter another command</A><br />\n");
356 wprintf("<A HREF=\"/display_advanced\">Return to menu</A>\n");
357 do_template("endbox");
365 * Display the menubar. Set as_single_page to
366 * display HTML headers and footers -- otherwise it's assumed
367 * that the menubar is being embedded in another page.
369 void display_menubar(int as_single_page) {
371 if (as_single_page) {
372 output_headers(0, 0, 0, 0, 0, 0, 0);
375 "<TITLE>MenuBar</TITLE>\n"
376 "<STYLE TYPE=\"text/css\">\n"
377 "BODY { text-decoration: none; }\n"
380 do_template("background");
383 do_template("menubar");
385 if (as_single_page) {