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("<center><TABLE WIDTH=99%%>"
39 "<TR><TD COLSPAN=2>\n");
41 svprintf("BOXTITLE", WCS_STRING, "Basic commands");
42 do_template("beginbox");
45 "<TABLE border=0 cellspacing=1 cellpadding=1 width=100%%>"
47 "<TD>"); /* start of first column */
49 wprintf("<A HREF=\"/knrooms\">"
50 "<span class=\"mainmenu\">"
51 "List known rooms</span></A><br />"
52 "<span class=\"menudesc\">"
53 "Where can I go from here?</span><br />\n"
56 wprintf("<A HREF=\"/gotonext\">"
57 "<span class=\"mainmenu\">"
58 "Goto next room</span></A><br />"
59 "<span class=\"menudesc\">"
60 "...with <EM>unread</EM> messages"
64 wprintf("<A HREF=\"/skip\">"
65 "<span class=\"mainmenu\">"
66 "Skip to next room</span></a><br />"
67 "<span class=\"menudesc\">"
68 "(come back here later)"
72 if ((strlen(WC->ugname) > 0) && (strcasecmp(WC->ugname, WC->wc_roomname))) {
74 "<A HREF=\"/ungoto\">"
75 "<span class=\"mainmenu\">"
76 "Ungoto</span></A><br />"
77 "<span class=\"menudesc\">"
79 "</span>\n", WC->ugname
83 wprintf("</TD><TD>\n"); /* start of second column */
85 wprintf("<A HREF=\"/readnew\">"
86 "<span class=\"mainmenu\">"
87 "Read new messages</span></A><br />"
88 "<span class=\"menudesc\">"
89 "...in this room</span><br />\n"
92 wprintf("<A HREF=\"/readfwd\">"
93 "<span class=\"mainmenu\">"
94 "Read all messages</span></A><br />"
95 "<span class=\"menudesc\">"
96 "...old <EM>and</EM> new</span><br />\n"
99 wprintf("<A HREF=\"/display_enter\">"
100 "<span class=\"mainmenu\">"
101 "Enter a message</span></A><br />"
102 "<span class=\"menudesc\">"
103 "(post in this room)</span>\n"
106 wprintf("</TD><TD>"); /* start of third column */
108 wprintf("<A HREF=\"/summary\">"
109 "<span class=\"mainmenu\">"
110 "Summary page</span></A><br />"
111 "<span class=\"menudesc\">"
112 "Summary of my account</span><br />\n"
115 wprintf("<A HREF=\"/userlist\">\n"
116 "<span class=\"mainmenu\">"
117 "User list</span></A><br />"
118 "<span class=\"menudesc\">"
119 "(all registered users)</span><br />\n"
122 wprintf("<A HREF=\"/termquit\" TARGET=\"_top\">"
123 "<span class=\"mainmenu\">"
124 "Log off</span></A><br />"
125 "<span class=\"menudesc\">"
129 wprintf("</TD></TR></TABLE>\n");
130 do_template("endbox");
133 "<TR VALIGN=TOP><TD>");
135 svprintf("BOXTITLE", WCS_STRING, "Your info");
136 do_template("beginbox");
138 wprintf("<A HREF=\"/display_reg\">"
139 "<span class=\"mainmenu\">"
140 "Update your contact information "
143 wprintf("<A HREF=\"/display_changepw\">"
144 "<span class=\"mainmenu\">"
145 "Change your password</span></A><br />\n");
147 wprintf("<A HREF=\"/display_editbio\">"
148 "<span class=\"mainmenu\">"
149 "Enter your 'bio'</span></a><br />\n");
151 wprintf("<A HREF=\"/display_editpic\">"
152 "<span class=\"mainmenu\">"
153 "Edit your online photo</span></a>\n");
155 do_template("endbox");
157 wprintf("</TD><TD>");
159 svprintf("BOXTITLE", WCS_STRING, "Advanced room commands");
160 do_template("beginbox");
162 if ((WC->axlevel >= 6) || (WC->is_room_aide)) {
163 wprintf("<A HREF=\"/display_editroom\">"
164 "<span class=\"mainmenu\">"
165 "Edit or delete this room</span></A><br />\n");
168 wprintf("<A HREF=\"/display_private\">"
169 "<span class=\"mainmenu\">"
170 "Go to a "hidden" room</span></A><br />\n");
172 wprintf("<A HREF=\"/display_entroom\">"
173 "<span class=\"mainmenu\">"
174 "Create a new room</span></A><br />\n");
176 wprintf("<A HREF=\"/display_zap\">"
177 "<span class=\"mainmenu\">"
178 "Zap (forget) this room (%s)</span></A><br />\n",
181 wprintf("<A HREF=\"/zapped_list\">"
182 "<span class=\"mainmenu\">"
183 "List all forgotten rooms</span></A>\n");
185 do_template("endbox");
187 wprintf("</td></tr></table></center>");
193 * System administration menu
195 void display_aide_menu(void)
197 output_headers(1, 1, 2, 0, 0, 0, 0);
198 wprintf("<div id=\"banner\">\n"
199 "<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>"
200 "<SPAN CLASS=\"titlebar\">System Administration Menu</SPAN>"
201 "</TD></TR></TABLE>\n"
202 "</div>\n<div id=\"content\">\n"
205 wprintf("<center><table border=0 width=99%%><tr valign=top><td>");
207 svprintf("BOXTITLE", WCS_STRING, "Global Configuration");
208 do_template("beginbox");
210 wprintf("<A HREF=\"/display_siteconfig\">"
211 "<span class=\"mainmenu\">"
212 "Edit site-wide configuration</span></A><br />\n");
214 wprintf("<A HREF=\"/display_inetconf\">"
215 "<span class=\"mainmenu\">"
216 "Domain names and Internet mail configuration</span></a><br />\n");
218 wprintf("<A HREF=\"/display_netconf\">"
219 "<span class=\"mainmenu\">"
220 "Configure replication with other Citadel servers"
223 do_template("endbox");
225 wprintf("</td><td>");
227 svprintf("BOXTITLE", WCS_STRING, "User account management");
228 do_template("beginbox");
230 wprintf("<A HREF=\"/select_user_to_edit\">"
231 "<span class=\"mainmenu\">"
232 "Add, change, delete user accounts"
233 "</span></A><br />\n");
235 wprintf("<A HREF=\"/validate\">"
236 "<span class=\"mainmenu\">"
237 "Validate new users</span></A><br />\n");
239 do_template("endbox");
241 svprintf("BOXTITLE", WCS_STRING, "Rooms and Floors");
242 do_template("beginbox");
244 wprintf("<A HREF=\"/display_floorconfig\">"
245 "<span class=\"mainmenu\">"
246 "Add, change, or delete floors"
249 do_template("endbox");
251 wprintf("</td></tr></table></center>");
260 * Display the screen to enter a generic server command
262 void display_generic(void)
264 output_headers(1, 1, 2, 0, 0, 0, 0);
265 wprintf("<div id=\"banner\">\n"
266 "<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>"
267 "<SPAN CLASS=\"titlebar\">Enter a server command</SPAN>"
268 "</TD></TR></TABLE>\n"
269 "</div>\n<div id=\"content\">\n"
272 wprintf("<center><table border=0 width=99%% bgcolor=\"#ffffff\"><tr><td>\n");
275 wprintf("This screen allows you to enter Citadel server commands which are\n");
276 wprintf("not supported by WebCit. If you do not know what that means,\n");
277 wprintf("then this screen will not be of much use to you.<br />\n");
279 wprintf("<FORM METHOD=\"POST\" ACTION=\"/do_generic\">\n");
281 wprintf("Enter command:<br />\n");
282 wprintf("<INPUT TYPE=\"text\" NAME=\"g_cmd\" SIZE=80 MAXLENGTH=\"250\"><br />\n");
284 wprintf("Command input (if requesting SEND_LISTING transfer mode):<br />\n");
285 wprintf("<TEXTAREA NAME=\"g_input\" ROWS=10 COLS=80 WIDTH=80></TEXTAREA><br />\n");
287 wprintf("<FONT SIZE=-2>Detected host header is http://%s</FONT>\n",
289 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Send command\">");
291 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\"><br />\n");
293 wprintf("</FORM></CENTER>\n");
294 wprintf("</td></tr></table></center>\n");
298 void do_generic(void)
305 if (strcasecmp(bstr("sc"), "Send command")) {
310 output_headers(1, 1, 0, 0, 0, 0, 0);
312 serv_printf("%s", bstr("g_cmd"));
315 svprintf("BOXTITLE", WCS_STRING, "Server command results");
316 do_template("beginbox");
318 wprintf("<TABLE border=0><TR><TD>Command:</TD><TD><TT>");
319 escputs(bstr("g_cmd"));
320 wprintf("</TT></TD></TR><TR><TD>Result:</TD><TD><TT>");
322 wprintf("</TT></TD></TR></TABLE><br />\n");
325 serv_printf("\n\n000");
327 if ((buf[0] == '1') || (buf[0] == '8')) {
328 while (serv_gets(gcontent), strcmp(gcontent, "000")) {
335 text_to_server(bstr("g_input"), 0);
341 serv_read(junk, len);
347 memset(junk, 0, len);
348 serv_write(junk, len);
352 wprintf("<A HREF=\"/display_generic\">Enter another command</A><br />\n");
353 wprintf("<A HREF=\"/display_advanced\">Return to menu</A>\n");
354 do_template("endbox");
362 * Display the menubar. Set as_single_page to
363 * display HTML headers and footers -- otherwise it's assumed
364 * that the menubar is being embedded in another page.
366 void display_menubar(int as_single_page) {
368 if (as_single_page) {
369 output_headers(0, 0, 0, 0, 0, 0, 0);
372 "<TITLE>MenuBar</TITLE>\n"
373 "<STYLE TYPE=\"text/css\">\n"
374 "BODY { text-decoration: none; }\n"
377 do_template("background");
380 do_template("menubar");
382 if (as_single_page) {