5 * \defgroup DispAdvancedMenu Displays the "advanced" (main) menu.
6 * \ingroup MenuInfrastructure
13 * \brief The Main Menu
15 void display_main_menu(void)
17 output_headers(1, 1, 1, 0, 0, 0);
19 wprintf("<div class=\"fix_scrollbar_bug\">"
21 "<TR><TD COLSPAN=2>\n");
23 svprintf("BOXTITLE", WCS_STRING, _("Basic commands"));
24 do_template("beginbox");
27 "<TABLE border=0 cellspacing=1 cellpadding=1 width=100%%>"
29 "<TD>"); /**< start of first column */
31 wprintf("<a href=\"knrooms\"><span class=\"mainmenu\">");
32 wprintf(_("List known rooms"));
33 wprintf("</span></A><br /><span class=\"menudesc\">");
34 wprintf(_("Where can I go from here?"));
35 wprintf("</span><br />\n");
37 wprintf("<a href=\"gotonext\">"
38 "<span class=\"mainmenu\">");
39 wprintf(_("Goto next room"));
40 wprintf("</span></A><br />"
41 "<span class=\"menudesc\">");
42 wprintf(_("...with <EM>unread</EM> messages"));
43 wprintf("</span><br />\n");
45 wprintf("<a href=\"skip\">"
46 "<span class=\"mainmenu\">");
47 wprintf(_("Skip to next room"));
48 wprintf("</span></a><br />"
49 "<span class=\"menudesc\">");
50 wprintf(_("(come back here later)"));
53 if ((strlen(WC->ugname) > 0) && (strcasecmp(WC->ugname, WC->wc_roomname))) {
56 "<span class=\"mainmenu\">");
58 wprintf("</span></A><br />"
59 "<span class=\"menudesc\">");
60 wprintf(_("(oops! Back to %s)"), WC->ugname);
64 wprintf("</TD><TD>\n"); /* start of second column */
66 wprintf("<a href=\"readnew\">"
67 "<span class=\"mainmenu\">");
68 wprintf(_("Read new messages"));
69 wprintf("</span></A><br />"
70 "<span class=\"menudesc\">");
71 wprintf(_("...in this room"));
72 wprintf("</span><br />\n");
74 wprintf("<a href=\"readfwd\">"
75 "<span class=\"mainmenu\">");
76 wprintf(_("Read all messages"));
77 wprintf("</span></A><br />"
78 "<span class=\"menudesc\">");
79 wprintf(_("...old <EM>and</EM> new"));
80 wprintf("</span><br />\n");
82 wprintf("<a href=\"display_enter\">"
83 "<span class=\"mainmenu\">");
84 wprintf(_("Enter a message"));
85 wprintf("</span></A><br />"
86 "<span class=\"menudesc\">");
87 wprintf(_("(post in this room)"));
90 if (WC->room_flags & QR_VISDIR) {
91 wprintf("<br /><a href=\"display_room_directory\">"
92 "<span class=\"mainmenu\">");
93 wprintf(_("File library"));
94 wprintf("</span></A><br />"
95 "<span class=\"menudesc\">");
96 wprintf(_("(List files available for download)"));
100 wprintf("</TD><TD>"); /* start of third column */
102 wprintf("<a href=\"summary\">"
103 "<span class=\"mainmenu\">");
104 wprintf(_("Summary page"));
105 wprintf("</span></A><br />"
106 "<span class=\"menudesc\">");
107 wprintf(_("Summary of my account"));
108 wprintf("</span><br />\n");
110 wprintf("<a href=\"userlist\">\n"
111 "<span class=\"mainmenu\">");
112 wprintf(_("User list"));
113 wprintf("</span></A><br />"
114 "<span class=\"menudesc\">");
115 wprintf(_("(all registered users)"));
116 wprintf("</span><br />\n");
118 wprintf("<a href=\"termquit\" TARGET=\"_top\">"
119 "<span class=\"mainmenu\">");
120 wprintf(_("Log off"));
121 wprintf("</span></A><br />"
122 "<span class=\"menudesc\">");
124 wprintf("</span>\n");
126 wprintf("</TD></TR></TABLE>\n");
127 do_template("endbox");
130 "<TR VALIGN=TOP><TD>");
132 svprintf("BOXTITLE", WCS_STRING, _("Your info"));
133 do_template("beginbox");
135 wprintf("<a href=\"display_preferences\">"
136 "<span class=\"mainmenu\">");
137 wprintf(_("Change your preferences and settings"));
138 wprintf("</span><br />\n");
140 wprintf("<a href=\"display_reg\">"
141 "<span class=\"mainmenu\">");
142 wprintf(_("Update your contact information"));
143 wprintf("</span><br />\n");
145 wprintf("<a href=\"display_changepw\">"
146 "<span class=\"mainmenu\">");
147 wprintf(_("Change your password"));
148 wprintf("</span></A><br />\n");
150 wprintf("<a href=\"display_editbio\">"
151 "<span class=\"mainmenu\">");
152 wprintf(_("Enter your 'bio'"));
153 wprintf("</span></a><br />\n");
155 wprintf("<a href=\"display_editpic\">"
156 "<span class=\"mainmenu\">");
157 wprintf(_("Edit your online photo"));
158 wprintf("</span></a><br />\n");
160 wprintf("<a href=\"display_sieve\">"
161 "<span class=\"mainmenu\">");
162 wprintf(_("View/edit server-side mail filters"));
163 wprintf("</span></a>\n");
165 do_template("endbox");
167 wprintf("</TD><TD>");
169 svprintf("BOXTITLE", WCS_STRING, _("Advanced room commands"));
170 do_template("beginbox");
172 if ((WC->axlevel >= 6) || (WC->is_room_aide)) {
173 wprintf("<a href=\"display_editroom\">"
174 "<span class=\"mainmenu\">");
175 wprintf(_("Edit or delete this room"));
176 wprintf("</span></A><br />\n");
179 wprintf("<a href=\"display_private\">"
180 "<span class=\"mainmenu\">");
181 wprintf(_("Go to a 'hidden' room"));
182 wprintf("</span></A><br />\n");
184 wprintf("<a href=\"display_entroom\">"
185 "<span class=\"mainmenu\">");
186 wprintf(_("Create a new room"));
187 wprintf("</span></A><br />\n");
189 wprintf("<a href=\"display_zap\">"
190 "<span class=\"mainmenu\">");
191 wprintf(_("Zap (forget) this room (%s)"), WC->wc_roomname);
192 wprintf("</span></A><br />\n");
194 wprintf("<a href=\"zapped_list\">"
195 "<span class=\"mainmenu\">");
196 wprintf(_("List all forgotten rooms"));
197 wprintf("</span></A>\n");
199 do_template("endbox");
201 wprintf("</td></tr></table></div>");
207 * \brief System administration menu
209 void display_aide_menu(void)
211 output_headers(1, 1, 2, 0, 0, 0);
212 wprintf("<div id=\"banner\">\n"
213 "<TABLE class=\"mainmenu_banner\"><TR><TD>"
214 "<SPAN CLASS=\"titlebar\">");
215 wprintf(_("System Administration Menu"));
217 "</TD></TR></TABLE>\n"
218 "</div>\n<div id=\"content\">\n"
221 wprintf("<div class=\"fix_scrollbar_bug\">"
222 "<table border=0 width=100%%><tr valign=top><td>");
224 svprintf("BOXTITLE", WCS_STRING, _("Global Configuration"));
225 do_template("beginbox");
227 wprintf("<a href=\"display_siteconfig\">"
228 "<span class=\"mainmenu\">");
229 wprintf(_("Edit site-wide configuration"));
230 wprintf("</span></A><br />\n");
232 wprintf("<a href=\"display_inetconf\">"
233 "<span class=\"mainmenu\">");
234 wprintf(_("Domain names and Internet mail configuration"));
235 wprintf("</span></a><br />\n");
237 wprintf("<a href=\"display_netconf\">"
238 "<span class=\"mainmenu\">");
239 wprintf(_("Configure replication with other Citadel servers"));
240 wprintf("</span></A><br />\n");
242 wprintf("<a href=\"display_smtpqueue\">"
243 "<span class=\"mainmenu\">");
244 wprintf(_("View the outbound SMTP queue"));
245 wprintf("</span></A>\n");
247 do_template("endbox");
249 wprintf("</td><td>");
251 svprintf("BOXTITLE", WCS_STRING, _("User account management"));
252 do_template("beginbox");
254 wprintf("<a href=\"select_user_to_edit\">"
255 "<span class=\"mainmenu\">");
256 wprintf(_("Add, change, delete user accounts"));
257 wprintf("</span></A><br />\n");
259 wprintf("<a href=\"validate\">"
260 "<span class=\"mainmenu\">");
261 wprintf(_("Validate new users"));
262 wprintf("</span></A><br />\n");
264 do_template("endbox");
266 svprintf("BOXTITLE", WCS_STRING, _("Rooms and Floors"));
267 do_template("beginbox");
269 wprintf("<a href=\"display_floorconfig\">"
270 "<span class=\"mainmenu\">");
271 wprintf(_("Add, change, or delete floors"));
272 wprintf("</span></A>\n");
274 do_template("endbox");
276 wprintf("</td></tr></table></div>");
285 * \brief Display the screen to enter a generic server command
287 void display_generic(void)
289 output_headers(1, 1, 2, 0, 0, 0);
290 wprintf("<div id=\"banner\">\n"
291 "<TABLE class=\"mainmenu_banner\"><TR><TD>"
292 "<SPAN CLASS=\"titlebar\">");
293 wprintf(_("Enter a server command"));
294 wprintf("</SPAN></TD></TR></TABLE>\n"
295 "</div>\n<div id=\"content\">\n"
298 wprintf("<div class=\"fix_scrollbar_bug\">"
299 "<table class=\"mainmenu_background\"><tr><td>\n");
302 wprintf(_("This screen allows you to enter Citadel server commands which are "
303 "not supported by WebCit. If you do not know what that means, "
304 "then this screen will not be of much use to you."));
307 wprintf("<FORM METHOD=\"POST\" action=\"do_generic\">\n");
309 wprintf(_("Enter command:"));
310 wprintf("<br /><INPUT TYPE=\"text\" NAME=\"g_cmd\" SIZE=80 MAXLENGTH=\"250\"><br />\n");
312 wprintf(_("Command input (if requesting SEND_LISTING transfer mode):"));
313 wprintf("<br /><TEXTAREA NAME=\"g_input\" ROWS=10 COLS=80 WIDTH=80></TEXTAREA><br />\n");
315 wprintf("<FONT SIZE=-2>");
316 wprintf(_("Detected host header is %s://%s"), (is_https ? "https" : "http"), WC->http_host);
317 wprintf("</FONT>\n");
318 wprintf("<INPUT TYPE=\"submit\" NAME=\"sc_button\" VALUE=\"%s\">", _("Send command"));
320 wprintf("<INPUT TYPE=\"submit\" NAME=\"cancel_button\" VALUE=\"%s\"><br />\n", _("Cancel"));
322 wprintf("</FORM></CENTER>\n");
323 wprintf("</td></tr></table></div>\n");
328 * \brief Interactive window to perform generic Citadel server commands.
330 void do_generic(void)
337 if (strlen(bstr("sc_button")) == 0) {
342 output_headers(1, 1, 0, 0, 0, 0);
344 serv_printf("%s", bstr("g_cmd"));
345 serv_getln(buf, sizeof buf);
347 svprintf("BOXTITLE", WCS_STRING, _("Server command results"));
348 do_template("beginbox");
350 wprintf("<TABLE border=0><TR><TD>Command:</TD><TD><TT>");
351 escputs(bstr("g_cmd"));
352 wprintf("</TT></TD></TR><TR><TD>Result:</TD><TD><TT>");
354 wprintf("</TT></TD></TR></TABLE><br />\n");
357 serv_printf("\n\n000");
359 if ((buf[0] == '1') || (buf[0] == '8')) {
360 while (serv_getln(gcontent, sizeof gcontent), strcmp(gcontent, "000")) {
367 text_to_server(bstr("g_input"));
373 serv_read(junk, len);
379 memset(junk, 0, len);
380 serv_write(junk, len);
384 wprintf("<a href=\"display_generic\">Enter another command</A><br />\n");
385 wprintf("<a href=\"display_advanced\">Return to menu</A>\n");
386 do_template("endbox");
392 * \brief Display the menubar.
393 * \param as_single_page Set to display HTML headers and footers -- otherwise it's assumed
394 * that the menubar is being embedded in another page.
396 void display_menubar(int as_single_page) {
398 if (as_single_page) {
399 output_headers(0, 0, 0, 0, 0, 0);
402 "<TITLE>MenuBar</TITLE>\n"
403 "<STYLE TYPE=\"text/css\">\n"
404 "BODY { text-decoration: none; }\n"
407 do_template("background");
410 do_template("menubar");
412 if (as_single_page) {