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 id=\"fix_scrollbar_bug\">"
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_preferences\">"
140 "<span class=\"mainmenu\">"
141 "Change your preferences and settings"
144 wprintf("<A HREF=\"/display_reg\">"
145 "<span class=\"mainmenu\">"
146 "Update your contact information"
149 wprintf("<A HREF=\"/display_changepw\">"
150 "<span class=\"mainmenu\">"
151 "Change your password</span></A><br />\n");
153 wprintf("<A HREF=\"/display_editbio\">"
154 "<span class=\"mainmenu\">"
155 "Enter your 'bio'</span></a><br />\n");
157 wprintf("<A HREF=\"/display_editpic\">"
158 "<span class=\"mainmenu\">"
159 "Edit your online photo</span></a>\n");
161 do_template("endbox");
163 wprintf("</TD><TD>");
165 svprintf("BOXTITLE", WCS_STRING, "Advanced room commands");
166 do_template("beginbox");
168 if ((WC->axlevel >= 6) || (WC->is_room_aide)) {
169 wprintf("<A HREF=\"/display_editroom\">"
170 "<span class=\"mainmenu\">"
171 "Edit or delete this room</span></A><br />\n");
174 wprintf("<A HREF=\"/display_private\">"
175 "<span class=\"mainmenu\">"
176 "Go to a "hidden" room</span></A><br />\n");
178 wprintf("<A HREF=\"/display_entroom\">"
179 "<span class=\"mainmenu\">"
180 "Create a new room</span></A><br />\n");
182 wprintf("<A HREF=\"/display_zap\">"
183 "<span class=\"mainmenu\">"
184 "Zap (forget) this room (%s)</span></A><br />\n",
187 wprintf("<A HREF=\"/zapped_list\">"
188 "<span class=\"mainmenu\">"
189 "List all forgotten rooms</span></A>\n");
191 do_template("endbox");
193 wprintf("</td></tr></table></div>");
199 * System administration menu
201 void display_aide_menu(void)
203 output_headers(1, 1, 2, 0, 0, 0, 0);
204 wprintf("<div id=\"banner\">\n"
205 "<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>"
206 "<SPAN CLASS=\"titlebar\">System Administration Menu</SPAN>"
207 "</TD></TR></TABLE>\n"
208 "</div>\n<div id=\"content\">\n"
211 wprintf("<div id=\"fix_scrollbar_bug\">"
212 "<table border=0 width=100%%><tr valign=top><td>");
214 svprintf("BOXTITLE", WCS_STRING, "Global Configuration");
215 do_template("beginbox");
217 wprintf("<A HREF=\"/display_siteconfig\">"
218 "<span class=\"mainmenu\">"
219 "Edit site-wide configuration</span></A><br />\n");
221 wprintf("<A HREF=\"/display_inetconf\">"
222 "<span class=\"mainmenu\">"
223 "Domain names and Internet mail configuration</span></a><br />\n");
225 wprintf("<A HREF=\"/display_netconf\">"
226 "<span class=\"mainmenu\">"
227 "Configure replication with other Citadel servers"
230 do_template("endbox");
232 wprintf("</td><td>");
234 svprintf("BOXTITLE", WCS_STRING, "User account management");
235 do_template("beginbox");
237 wprintf("<A HREF=\"/select_user_to_edit\">"
238 "<span class=\"mainmenu\">"
239 "Add, change, delete user accounts"
240 "</span></A><br />\n");
242 wprintf("<A HREF=\"/validate\">"
243 "<span class=\"mainmenu\">"
244 "Validate new users</span></A><br />\n");
246 do_template("endbox");
248 svprintf("BOXTITLE", WCS_STRING, "Rooms and Floors");
249 do_template("beginbox");
251 wprintf("<A HREF=\"/display_floorconfig\">"
252 "<span class=\"mainmenu\">"
253 "Add, change, or delete floors"
256 do_template("endbox");
258 wprintf("</td></tr></table></div>");
267 * Display the screen to enter a generic server command
269 void display_generic(void)
271 output_headers(1, 1, 2, 0, 0, 0, 0);
272 wprintf("<div id=\"banner\">\n"
273 "<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>"
274 "<SPAN CLASS=\"titlebar\">Enter a server command</SPAN>"
275 "</TD></TR></TABLE>\n"
276 "</div>\n<div id=\"content\">\n"
279 wprintf("<div id=\"fix_scrollbar_bug\">"
280 "<table border=0 width=100%% bgcolor=\"#ffffff\"><tr><td>\n");
283 wprintf("This screen allows you to enter Citadel server commands which are\n");
284 wprintf("not supported by WebCit. If you do not know what that means,\n");
285 wprintf("then this screen will not be of much use to you.<br />\n");
287 wprintf("<FORM METHOD=\"POST\" ACTION=\"/do_generic\">\n");
289 wprintf("Enter command:<br />\n");
290 wprintf("<INPUT TYPE=\"text\" NAME=\"g_cmd\" SIZE=80 MAXLENGTH=\"250\"><br />\n");
292 wprintf("Command input (if requesting SEND_LISTING transfer mode):<br />\n");
293 wprintf("<TEXTAREA NAME=\"g_input\" ROWS=10 COLS=80 WIDTH=80></TEXTAREA><br />\n");
295 wprintf("<FONT SIZE=-2>Detected host header is http://%s</FONT>\n",
297 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Send command\">");
299 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\"><br />\n");
301 wprintf("</FORM></CENTER>\n");
302 wprintf("</td></tr></table></div>\n");
306 void do_generic(void)
313 if (strcasecmp(bstr("sc"), "Send command")) {
318 output_headers(1, 1, 0, 0, 0, 0, 0);
320 serv_printf("%s", bstr("g_cmd"));
321 serv_getln(buf, sizeof buf);
323 svprintf("BOXTITLE", WCS_STRING, "Server command results");
324 do_template("beginbox");
326 wprintf("<TABLE border=0><TR><TD>Command:</TD><TD><TT>");
327 escputs(bstr("g_cmd"));
328 wprintf("</TT></TD></TR><TR><TD>Result:</TD><TD><TT>");
330 wprintf("</TT></TD></TR></TABLE><br />\n");
333 serv_printf("\n\n000");
335 if ((buf[0] == '1') || (buf[0] == '8')) {
336 while (serv_getln(gcontent, sizeof gcontent), strcmp(gcontent, "000")) {
343 text_to_server(bstr("g_input"), 0);
349 serv_read(junk, len);
355 memset(junk, 0, len);
356 serv_write(junk, len);
360 wprintf("<A HREF=\"/display_generic\">Enter another command</A><br />\n");
361 wprintf("<A HREF=\"/display_advanced\">Return to menu</A>\n");
362 do_template("endbox");
370 * Display the menubar. Set as_single_page to
371 * display HTML headers and footers -- otherwise it's assumed
372 * that the menubar is being embedded in another page.
374 void display_menubar(int as_single_page) {
376 if (as_single_page) {
377 output_headers(0, 0, 0, 0, 0, 0, 0);
380 "<TITLE>MenuBar</TITLE>\n"
381 "<STYLE TYPE=\"text/css\">\n"
382 "BODY { text-decoration: none; }\n"
385 do_template("background");
388 do_template("menubar");
390 if (as_single_page) {