5 * \defgroup DispAdvancedMenu Displays the "advanced" (main) menu.
12 * \brief The Main Menu
14 void display_main_menu(void)
16 output_headers(1, 1, 1, 0, 0, 0);
18 wprintf("<div class=\"fix_scrollbar_bug\">"
20 "<TR><TD COLSPAN=2>\n");
22 svprintf("BOXTITLE", WCS_STRING, _("Basic commands"));
23 do_template("beginbox");
26 "<TABLE border=0 cellspacing=1 cellpadding=1 width=100%%>"
28 "<TD>"); /**< start of first column */
30 wprintf("<a href=\"knrooms\"><span class=\"mainmenu\">");
31 wprintf(_("List known rooms"));
32 wprintf("</span></A><br /><span class=\"menudesc\">");
33 wprintf(_("Where can I go from here?"));
34 wprintf("</span><br />\n");
36 wprintf("<a href=\"gotonext\">"
37 "<span class=\"mainmenu\">");
38 wprintf(_("Goto next room"));
39 wprintf("</span></A><br />"
40 "<span class=\"menudesc\">");
41 wprintf(_("...with <EM>unread</EM> messages"));
42 wprintf("</span><br />\n");
44 wprintf("<a href=\"skip\">"
45 "<span class=\"mainmenu\">");
46 wprintf(_("Skip to next room"));
47 wprintf("</span></a><br />"
48 "<span class=\"menudesc\">");
49 wprintf(_("(come back here later)"));
52 if ((strlen(WC->ugname) > 0) && (strcasecmp(WC->ugname, WC->wc_roomname))) {
55 "<span class=\"mainmenu\">");
57 wprintf("</span></A><br />"
58 "<span class=\"menudesc\">");
59 wprintf(_("(oops! Back to %s)"), WC->ugname);
63 wprintf("</TD><TD>\n"); /* start of second column */
65 wprintf("<a href=\"readnew\">"
66 "<span class=\"mainmenu\">");
67 wprintf(_("Read new messages"));
68 wprintf("</span></A><br />"
69 "<span class=\"menudesc\">");
70 wprintf(_("...in this room"));
71 wprintf("</span><br />\n");
73 wprintf("<a href=\"readfwd\">"
74 "<span class=\"mainmenu\">");
75 wprintf(_("Read all messages"));
76 wprintf("</span></A><br />"
77 "<span class=\"menudesc\">");
78 wprintf(_("...old <EM>and</EM> new"));
79 wprintf("</span><br />\n");
81 wprintf("<a href=\"display_enter\">"
82 "<span class=\"mainmenu\">");
83 wprintf(_("Enter a message"));
84 wprintf("</span></A><br />"
85 "<span class=\"menudesc\">");
86 wprintf(_("(post in this room)"));
89 wprintf("</TD><TD>"); /* start of third column */
91 wprintf("<a href=\"summary\">"
92 "<span class=\"mainmenu\">");
93 wprintf(_("Summary page"));
94 wprintf("</span></A><br />"
95 "<span class=\"menudesc\">");
96 wprintf(_("Summary of my account"));
97 wprintf("</span><br />\n");
99 wprintf("<a href=\"userlist\">\n"
100 "<span class=\"mainmenu\">");
101 wprintf(_("User list"));
102 wprintf("</span></A><br />"
103 "<span class=\"menudesc\">");
104 wprintf(_("(all registered users)"));
105 wprintf("</span><br />\n");
107 wprintf("<a href=\"termquit\" TARGET=\"_top\">"
108 "<span class=\"mainmenu\">");
109 wprintf(_("Log off"));
110 wprintf("</span></A><br />"
111 "<span class=\"menudesc\">");
113 wprintf("</span>\n");
115 wprintf("</TD></TR></TABLE>\n");
116 do_template("endbox");
119 "<TR VALIGN=TOP><TD>");
121 svprintf("BOXTITLE", WCS_STRING, _("Your info"));
122 do_template("beginbox");
124 wprintf("<a href=\"display_preferences\">"
125 "<span class=\"mainmenu\">");
126 wprintf(_("Change your preferences and settings"));
127 wprintf("</span><br />\n");
129 wprintf("<a href=\"display_reg\">"
130 "<span class=\"mainmenu\">");
131 wprintf(_("Update your contact information"));
132 wprintf("</span><br />\n");
134 wprintf("<a href=\"display_changepw\">"
135 "<span class=\"mainmenu\">");
136 wprintf(_("Change your password"));
137 wprintf("</span></A><br />\n");
139 wprintf("<a href=\"display_editbio\">"
140 "<span class=\"mainmenu\">");
141 wprintf(_("Enter your 'bio'"));
142 wprintf("</span></a><br />\n");
144 wprintf("<a href=\"display_editpic\">"
145 "<span class=\"mainmenu\">");
146 wprintf(_("Edit your online photo"));
147 wprintf("</span></a>\n");
149 do_template("endbox");
151 wprintf("</TD><TD>");
153 svprintf("BOXTITLE", WCS_STRING, _("Advanced room commands"));
154 do_template("beginbox");
156 if ((WC->axlevel >= 6) || (WC->is_room_aide)) {
157 wprintf("<a href=\"display_editroom\">"
158 "<span class=\"mainmenu\">");
159 wprintf(_("Edit or delete this room"));
160 wprintf("</span></A><br />\n");
163 wprintf("<a href=\"display_private\">"
164 "<span class=\"mainmenu\">");
165 wprintf(_("Go to a 'hidden' room"));
166 wprintf("</span></A><br />\n");
168 wprintf("<a href=\"display_entroom\">"
169 "<span class=\"mainmenu\">");
170 wprintf(_("Create a new room"));
171 wprintf("</span></A><br />\n");
173 wprintf("<a href=\"display_zap\">"
174 "<span class=\"mainmenu\">");
175 wprintf(_("Zap (forget) this room (%s)"), WC->wc_roomname);
176 wprintf("</span></A><br />\n");
178 wprintf("<a href=\"zapped_list\">"
179 "<span class=\"mainmenu\">");
180 wprintf(_("List all forgotten rooms"));
181 wprintf("</span></A>\n");
183 do_template("endbox");
185 wprintf("</td></tr></table></div>");
191 * \brief System administration menu
193 void display_aide_menu(void)
195 output_headers(1, 1, 2, 0, 0, 0);
196 wprintf("<div id=\"banner\">\n"
197 "<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>"
198 "<SPAN CLASS=\"titlebar\">");
199 wprintf(_("System Administration Menu"));
201 "</TD></TR></TABLE>\n"
202 "</div>\n<div id=\"content\">\n"
205 wprintf("<div class=\"fix_scrollbar_bug\">"
206 "<table border=0 width=100%%><tr valign=top><td>");
208 svprintf("BOXTITLE", WCS_STRING, _("Global Configuration"));
209 do_template("beginbox");
211 wprintf("<a href=\"display_siteconfig\">"
212 "<span class=\"mainmenu\">");
213 wprintf(_("Edit site-wide configuration"));
214 wprintf("</span></A><br />\n");
216 wprintf("<a href=\"display_inetconf\">"
217 "<span class=\"mainmenu\">");
218 wprintf(_("Domain names and Internet mail configuration"));
219 wprintf("</span></a><br />\n");
221 wprintf("<a href=\"display_netconf\">"
222 "<span class=\"mainmenu\">");
223 wprintf(_("Configure replication with other Citadel servers"));
224 wprintf("</span></A>\n");
226 do_template("endbox");
228 wprintf("</td><td>");
230 svprintf("BOXTITLE", WCS_STRING, _("User account management"));
231 do_template("beginbox");
233 wprintf("<a href=\"select_user_to_edit\">"
234 "<span class=\"mainmenu\">");
235 wprintf(_("Add, change, delete user accounts"));
236 wprintf("</span></A><br />\n");
238 wprintf("<a href=\"validate\">"
239 "<span class=\"mainmenu\">");
240 wprintf(_("Validate new users"));
241 wprintf("</span></A><br />\n");
243 do_template("endbox");
245 svprintf("BOXTITLE", WCS_STRING, _("Rooms and Floors"));
246 do_template("beginbox");
248 wprintf("<a href=\"display_floorconfig\">"
249 "<span class=\"mainmenu\">");
250 wprintf(_("Add, change, or delete floors"));
251 wprintf("</span></A>\n");
253 do_template("endbox");
255 wprintf("</td></tr></table></div>");
264 * \brief Display the screen to enter a generic server command
266 void display_generic(void)
268 output_headers(1, 1, 2, 0, 0, 0);
269 wprintf("<div id=\"banner\">\n"
270 "<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>"
271 "<SPAN CLASS=\"titlebar\">");
272 wprintf(_("Enter a server command"));
273 wprintf("</SPAN></TD></TR></TABLE>\n"
274 "</div>\n<div id=\"content\">\n"
277 wprintf("<div class=\"fix_scrollbar_bug\">"
278 "<table border=0 width=100%% bgcolor=\"#ffffff\"><tr><td>\n");
281 wprintf(_("This screen allows you to enter Citadel server commands which are "
282 "not supported by WebCit. If you do not know what that means, "
283 "then this screen will not be of much use to you."));
286 wprintf("<FORM METHOD=\"POST\" action=\"do_generic\">\n");
288 wprintf(_("Enter command:"));
289 wprintf("<br /><INPUT TYPE=\"text\" NAME=\"g_cmd\" SIZE=80 MAXLENGTH=\"250\"><br />\n");
291 wprintf(_("Command input (if requesting SEND_LISTING transfer mode):"));
292 wprintf("<br /><TEXTAREA NAME=\"g_input\" ROWS=10 COLS=80 WIDTH=80></TEXTAREA><br />\n");
294 wprintf("<FONT SIZE=-2>");
295 wprintf(_("Detected host header is %s://%s"), (is_https ? "https" : "http"), WC->http_host);
296 wprintf("</FONT>\n");
297 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc_button\" VALUE=\"%s\">", _("Send command"));
299 wprintf("<INPUT TYPE=\"submit\" NAME=\"cancel_button\" VALUE=\"%s\"><br />\n", _("Cancel"));
301 wprintf("</FORM></CENTER>\n");
302 wprintf("</td></tr></table></div>\n");
307 * \brief Interactive window to perform generic Citadel server commands.
309 void do_generic(void)
316 if (strlen(bstr("sc_button")) == 0) {
321 output_headers(1, 1, 0, 0, 0, 0);
323 serv_printf("%s", bstr("g_cmd"));
324 serv_getln(buf, sizeof buf);
326 svprintf("BOXTITLE", WCS_STRING, _("Server command results"));
327 do_template("beginbox");
329 wprintf("<TABLE border=0><TR><TD>Command:</TD><TD><TT>");
330 escputs(bstr("g_cmd"));
331 wprintf("</TT></TD></TR><TR><TD>Result:</TD><TD><TT>");
333 wprintf("</TT></TD></TR></TABLE><br />\n");
336 serv_printf("\n\n000");
338 if ((buf[0] == '1') || (buf[0] == '8')) {
339 while (serv_getln(gcontent, sizeof gcontent), strcmp(gcontent, "000")) {
346 text_to_server(bstr("g_input"), 0);
352 serv_read(junk, len);
358 memset(junk, 0, len);
359 serv_write(junk, len);
363 wprintf("<a href=\"display_generic\">Enter another command</A><br />\n");
364 wprintf("<a href=\"display_advanced\">Return to menu</A>\n");
365 do_template("endbox");
371 * \brief Display the menubar.
372 * \param as_single_page Set to display HTML headers and footers -- otherwise it's assumed
373 * that the menubar is being embedded in another page.
375 void display_menubar(int as_single_page) {
377 if (as_single_page) {
378 output_headers(0, 0, 0, 0, 0, 0);
381 "<TITLE>MenuBar</TITLE>\n"
382 "<STYLE TYPE=\"text/css\">\n"
383 "BODY { text-decoration: none; }\n"
386 do_template("background");
389 do_template("menubar");
391 if (as_single_page) {