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, "Interaction");
136 do_template("beginbox");
138 wprintf("<A HREF=\"/whobbs\">"
139 "<span class=\"mainmenu\">"
140 "Who is online now?</span></A><br />\n"
143 wprintf("<A HREF=\"#\" onClick=\"window.open('/chat', "
144 "'ctdl_chat_window', "
145 "'toolbar=no,location=no,directories=no,copyhistory=no,"
146 "status=no,scrollbars=yes,resizable=yes');\""
148 "<span class=\"mainmenu\">"
149 "Chat with other users in <i>"
151 escputs(WC->wc_roomname);
152 wprintf("</i></span></A><br />\n");
154 wprintf("<A HREF=\"/display_generic\">\n");
155 wprintf("<span class=\"mainmenu\">"
156 "Generic server command</span></A>\n");
158 do_template("endbox");
160 wprintf("</TD><TD>");
162 svprintf("BOXTITLE", WCS_STRING, "Your info");
163 do_template("beginbox");
165 wprintf("<A HREF=\"/display_reg\">"
166 "<span class=\"mainmenu\">"
167 "Update your contact information "
170 wprintf("<A HREF=\"/display_changepw\">"
171 "<span class=\"mainmenu\">"
172 "Change your password</span></A><br />\n");
174 wprintf("<A HREF=\"/display_editbio\">"
175 "<span class=\"mainmenu\">"
176 "Enter your 'bio'</span></a><br />\n");
178 wprintf("<A HREF=\"/display_editpic\">"
179 "<span class=\"mainmenu\">"
180 "Edit your online photo</span></a>\n");
182 do_template("endbox");
184 wprintf("</TD></TR><TR VALIGN=TOP><TD>");
186 svprintf("BOXTITLE", WCS_STRING, "Advanced room commands");
187 do_template("beginbox");
189 if ((WC->axlevel >= 6) || (WC->is_room_aide)) {
190 wprintf("<A HREF=\"/display_editroom\">"
191 "<span class=\"mainmenu\">"
192 "Edit or delete this room</span></A><br />\n");
195 wprintf("<A HREF=\"/display_private\">"
196 "<span class=\"mainmenu\">"
197 "Go to a "hidden" room</span></A><br />\n");
199 wprintf("<A HREF=\"/display_entroom\">"
200 "<span class=\"mainmenu\">"
201 "Create a new room</span></A><br />\n");
203 wprintf("<A HREF=\"/display_zap\">"
204 "<span class=\"mainmenu\">"
205 "Zap (forget) this room (%s)</span></A><br />\n",
208 wprintf("<A HREF=\"/display_whok\">\n"
209 "<span class=\"mainmenu\">"
210 "Access controls for this room</span></A><br />\n");
212 wprintf("<A HREF=\"/zapped_list\">"
213 "<span class=\"mainmenu\">"
214 "List all forgotten rooms</span></A>\n");
216 do_template("endbox");
218 wprintf("</TD><TD>");
220 if ((WC->axlevel >= 6) || (WC->is_room_aide)) {
221 svprintf("BOXTITLE", WCS_STRING, "Administrative functions");
222 do_template("beginbox");
224 wprintf("<A HREF=\"/display_siteconfig\">"
225 "<span class=\"mainmenu\">"
226 "Edit site-wide configuration</span></A>\n");
228 if (WC->axlevel >= 6) {
230 "<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 wprintf("<A HREF=\"/display_floorconfig\">"
240 "<span class=\"mainmenu\">"
241 "Add, change, or delete floors"
242 "</span></A><br />\n");
244 wprintf("<A HREF=\"/display_netconf\">"
245 "<span class=\"mainmenu\">"
246 "Configure networking with other systems"
247 "</span></A><br />\n");
249 wprintf("<A HREF=\"/display_inetconf\">"
250 "<span class=\"mainmenu\">"
251 "Internet and domain configuration</span></a><br />\n");
253 do_template("endbox");
255 wprintf("</td></tr></table></center>");
264 * Display the screen to enter a generic server command
266 void display_generic(void)
268 output_headers(1, 1, 0, 0, 0, 0, 0);
270 svprintf("BOXTITLE", WCS_STRING, "Enter a server command");
271 do_template("beginbox");
274 wprintf("This screen allows you to enter Citadel server commands which are\n");
275 wprintf("not supported by WebCit. If you do not know what that means,\n");
276 wprintf("then this screen will not be of much use to you.<br />\n");
278 wprintf("<FORM METHOD=\"POST\" ACTION=\"/do_generic\">\n");
280 wprintf("Enter command:<br />\n");
281 wprintf("<INPUT TYPE=\"text\" NAME=\"g_cmd\" SIZE=80 MAXLENGTH=\"250\"><br />\n");
283 wprintf("Command input (if requesting SEND_LISTING transfer mode):<br />\n");
284 wprintf("<TEXTAREA NAME=\"g_input\" ROWS=10 COLS=80 WIDTH=80></TEXTAREA><br />\n");
286 wprintf("<FONT SIZE=-2>Detected host header is http://%s</FONT>\n",
288 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Send command\">");
290 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\"><br />\n");
292 wprintf("</FORM></CENTER>\n");
293 do_template("endbox");
297 void do_generic(void)
304 if (strcasecmp(bstr("sc"), "Send command")) {
309 output_headers(1, 1, 0, 0, 0, 0, 0);
311 serv_printf("%s", bstr("g_cmd"));
314 svprintf("BOXTITLE", WCS_STRING, "Server command results");
315 do_template("beginbox");
317 wprintf("<TABLE border=0><TR><TD>Command:</TD><TD><TT>");
318 escputs(bstr("g_cmd"));
319 wprintf("</TT></TD></TR><TR><TD>Result:</TD><TD><TT>");
321 wprintf("</TT></TD></TR></TABLE><br />\n");
324 serv_printf("\n\n000");
326 if ((buf[0] == '1') || (buf[0] == '8')) {
327 while (serv_gets(gcontent), strcmp(gcontent, "000")) {
334 text_to_server(bstr("g_input"), 0);
340 serv_read(junk, len);
346 memset(junk, 0, len);
347 serv_write(junk, len);
351 wprintf("<A HREF=\"/display_generic\">Enter another command</A><br />\n");
352 wprintf("<A HREF=\"/display_advanced\">Return to menu</A>\n");
353 do_template("endbox");
361 * Display the menubar. Set as_single_page to
362 * display HTML headers and footers -- otherwise it's assumed
363 * that the menubar is being embedded in another page.
365 void display_menubar(int as_single_page) {
367 if (as_single_page) {
368 output_headers(0, 0, 0, 0, 0, 0, 0);
371 "<TITLE>MenuBar</TITLE>\n"
372 "<STYLE TYPE=\"text/css\">\n"
373 "BODY { text-decoration: none; }\n"
376 do_template("background");
379 do_template("menubar");
381 if (as_single_page) {