int a;
char buf[SIZ];
+ do_template("beginbox_nt");
wprintf("<TABLE width=100%% border><TR><TH>Floor</TH>");
wprintf("<TH>Rooms with new messages</TH>");
wprintf("<TH>Rooms with no new messages</TH></TR>\n");
wprintf("</TD></TR>\n");
}
wprintf("</TABLE>\n");
+ do_template("endbox");
wDumpContent(1);
}
*/
void zapped_list(void)
{
- output_headers(1);
- wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#770000\"><TR><TD>");
- wprintf("<SPAN CLASS=\"titlebar\">Zapped (forgotten) rooms</SPAN>\n");
- wprintf("</TD></TR></TABLE><BR>\n");
+ output_headers(3);
+
+ svprintf("BOXTITLE", WCS_STRING, "Zapped (forgotten) rooms");
+ do_template("beginbox");
+
listrms("LZRM -1");
+
wprintf("<BR><BR>\n");
wprintf("Click on any room to un-zap it and goto that room.\n");
+ do_template("endbox");
wDumpContent(1);
}
serv_puts("RINF");
serv_gets(buf);
if (buf[0] == '1') {
- fmout(NULL);
+ fmout(NULL, "CENTER");
}
}
serv_gets(buf);
if (buf[0] == '2') {
wprintf("<TD BGCOLOR=\"#444455\">");
- wprintf("<IMG SRC=\"/image&name=_roompic_&room=");
+ wprintf("<IMG HEIGHT=64 SRC=\"/image&name=_roompic_&room=");
urlescputs(WC->wc_roomname);
wprintf("\"></TD>");
serv_puts("CLOS");
serv_gets(buf);
if (buf[0] != '2') {
- display_error(&buf[4]);
+ strcpy(WC->ImportantMessage, &buf[4]);
+ display_main_menu();
return;
}
extract(er_name, &buf[4], 0);
/* print the tabbed dialog */
wprintf("<TABLE border=0 cellspacing=0 cellpadding=0 width=100%%>"
- "<TR ALIGN=CENTER BGCOLOR=\"#FFFFFF\">"
+ "<TR ALIGN=CENTER>"
"<TD> </TD>\n");
if (!strcmp(tab, "admin")) {
- wprintf("<TD BGCOLOR=\"#000077\"><SPAN CLASS=\"tablabel\">");
+ wprintf("<TD BGCOLOR=\"#FFFFFF\"><SPAN CLASS=\"tablabel\">");
}
else {
wprintf("<TD BGCOLOR=\"#AAAAAA\"><A HREF=\"/display_editroom&tab=admin\">");
wprintf("<TD> </TD>\n");
if (!strcmp(tab, "config")) {
- wprintf("<TD BGCOLOR=\"#000077\"><SPAN CLASS=\"tablabel\">");
+ wprintf("<TD BGCOLOR=\"#FFFFFF\"><SPAN CLASS=\"tablabel\">");
}
else {
wprintf("<TD BGCOLOR=\"#AAAAAA\"><A HREF=\"/display_editroom&tab=config\">");
wprintf("<TD> </TD>\n");
if (!strcmp(tab, "sharing")) {
- wprintf("<TD BGCOLOR=\"#000077\"><SPAN CLASS=\"tablabel\">");
+ wprintf("<TD BGCOLOR=\"#FFFFFF\"><SPAN CLASS=\"tablabel\">");
}
else {
wprintf("<TD BGCOLOR=\"#AAAAAA\"><A HREF=\"/display_editroom&tab=sharing\">");
wprintf("<TD> </TD>\n");
if (!strcmp(tab, "listserv")) {
- wprintf("<TD BGCOLOR=\"#000077\"><SPAN CLASS=\"tablabel\">");
+ wprintf("<TD BGCOLOR=\"#FFFFFF\"><SPAN CLASS=\"tablabel\">");
}
else {
wprintf("<TD BGCOLOR=\"#AAAAAA\"><A HREF=\"/display_editroom&tab=listserv\">");
wprintf("</A></TD>\n");
}
- wprintf("<TD> </TD></TR>"
- "<TR><TD BGCOLOR=\"#000077\" COLSPAN=9 HEIGHT=5> </TD></TR>"
- "</TABLE>\n");
-
+ wprintf("</TR></TABLE>\n");
/* end tabbed dialog */
+ /* begin content of whatever tab is open now */
+ wprintf("<TABLE border=0 width=100%% bgcolor=\"#FFFFFF\">\n"
+ "<TR><TD>\n");
if (!strcmp(tab, "admin")) {
wprintf("<UL>"
wprintf("</CENTER>\n");
}
+ /* end content of whatever tab is open now */
+ wprintf("</TD></TR></TABLE>\n");
+
wDumpContent(1);
}
if (strcmp(bstr("sc"), "OK")) {
- display_error("Cancelled. Changes were not saved.");
+ strcpy(WC->ImportantMessage,
+ "Cancelled. Changes were not saved.");
+ display_main_menu();
return;
}
serv_puts("GETR");
serv_gets(buf);
if (buf[0] != '2') {
- display_error(&buf[4]);
+ strcpy(WC->ImportantMessage, &buf[4]);
+ display_main_menu();
return;
}
extract(er_name, &buf[4], 0);
serv_puts(buf);
serv_gets(buf);
if (buf[0] != '2') {
- display_error(&buf[4]);
+ strcpy(WC->ImportantMessage, &buf[4]);
+ display_main_menu();
return;
}
gotoroom(er_name, 0);
serv_puts(buf);
serv_gets(buf);
if (buf[0] != '2') {
- display_error(&buf[4]);
+ strcpy(WC->ImportantMessage, &buf[4]);
+ display_main_menu();
return;
}
}
serv_gets(buf);
if (buf[0] != '2') {
- display_error(&buf[4]);
- return;
+ strcpy(WC->ImportantMessage, &buf[4]);
+ display_main_menu();
+ return;
}
extract(room, &buf[4], 0);
strcpy(username, bstr("username"));
- output_headers(1);
-
- wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#007700\"><TR><TD>");
- wprintf("<SPAN CLASS=\"titlebar\">Access control list for ");
- escputs(WC->wc_roomname);
- wprintf("</SPAN></TD></TR></TABLE>\n");
-
if(!strcmp(bstr("sc"), "Kick")) {
sprintf(buf, "KICK %s", username);
serv_puts(buf);
serv_gets(buf);
if (buf[0] != '2') {
- display_error(&buf[4]);
- return;
+ strcpy(WC->ImportantMessage, &buf[4]);
} else {
- wprintf("<B><I>User %s kicked out of room %s.</I></B>\n",
+ sprintf(WC->ImportantMessage,
+ "<B><I>User %s kicked out of room %s.</I></B>\n",
username, room);
}
} else if(!strcmp(bstr("sc"), "Invite")) {
serv_gets(buf);
if (buf[0] != '2') {
- display_error(&buf[4]);
- return;
+ strcpy(WC->ImportantMessage, &buf[4]);
} else {
- wprintf("<B><I>User %s invited to room %s.</I></B>\n",
+ sprintf(WC->ImportantMessage,
+ "<B><I>User %s invited to room %s.</I></B>\n",
username, room);
}
}
-
+ output_headers(1);
+ stresc(buf, WC->wc_roomname, 1);
+ svprintf("BOXTITLE", WCS_STRING, "Access control list for %s", buf);
+ do_template("beginbox");
wprintf("<TABLE border=0 CELLSPACING=10><TR VALIGN=TOP>"
"<TD>The users listed below have access to this room. "
"</FORM></CENTER>\n");
wprintf("</TD></TR></TABLE>\n");
+ do_template("endbox");
wDumpContent(1);
}
serv_gets(buf);
if (buf[0] != '2') {
- display_error(&buf[4]);
+ strcpy(WC->ImportantMessage, &buf[4]);
+ display_main_menu();
return;
}
- output_headers(1);
-
- wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#000077\"><TR><TD>");
- wprintf("<SPAN CLASS=\"titlebar\">Enter (create) a new room</SPAN>\n");
- wprintf("</TD></TR></TABLE>\n");
+ output_headers(3);
+ svprintf("BOXTITLE", WCS_STRING, "Create a new room");
+ do_template("beginbox");
wprintf("<FORM METHOD=\"POST\" ACTION=\"/entroom\">\n");
wprintf("<LI><INPUT TYPE=\"radio\" NAME=\"type\" VALUE=\"invonly\" ");
wprintf("> Private - invitation only\n");
+
+ wprintf("<LI><INPUT TYPE=\"radio\" NAME=\"type\" VALUE=\"personal\" ");
+ wprintf("> Personal (mailbox for you only)\n");
wprintf("</UL>\n");
wprintf("<LI>Resides on floor: ");
serv_printf("MESG roomaccess");
serv_gets(buf);
if (buf[0] == '1') {
- fmout(NULL);
+ fmout(NULL, "CENTER");
}
+ do_template("endbox");
wDumpContent(1);
}
int er_num_type;
if (strcmp(bstr("sc"), "OK")) {
- display_error("Cancelled. No new room was created.");
+ strcpy(WC->ImportantMessage,
+ "Cancelled. No new room was created.");
+ display_main_menu();
return;
}
strcpy(er_name, bstr("er_name"));
er_num_type = 2;
if (!strcmp(er_type, "invonly"))
er_num_type = 3;
+ if (!strcmp(er_type, "personal"))
+ er_num_type = 4;
sprintf(buf, "CRE8 1|%s|%d|%s|%d",
er_name, er_num_type, er_password, er_floor);
serv_puts(buf);
serv_gets(buf);
if (buf[0] != '2') {
- display_error(&buf[4]);
+ strcpy(WC->ImportantMessage, &buf[4]);
+ display_main_menu();
return;
}
smart_goto(er_name);
void display_private(char *rname, int req_pass)
{
- output_headers(1);
+ output_headers(3);
- wprintf("<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#770000\"><TR><TD>");
- wprintf("<SPAN CLASS=\"titlebar\">Goto a private room</SPAN>\n");
- wprintf("</TD></TR></TABLE>\n");
+ svprintf("BOXTITLE", WCS_STRING, "Go to a hidden room");
+ do_template("beginbox");
wprintf("<CENTER>\n");
- wprintf("If you know the name of a hidden (guess-name) or\n");
+ wprintf("<BR>If you know the name of a hidden (guess-name) or\n");
wprintf("passworded room, you can enter that room by typing\n");
wprintf("its name below. Once you gain access to a private\n");
wprintf("room, it will appear in your regular room listings\n");
wprintf("<FORM METHOD=\"GET\" ACTION=\"/goto_private\">\n");
- wprintf("<TABLE border><TR><TD>");
- wprintf("Enter room name:</TD><TD>");
- wprintf("<INPUT TYPE=\"text\" NAME=\"gr_name\" VALUE=\"%s\" MAXLENGTH=\"19\">\n", rname);
+ wprintf("<table border=\"0\" cellspacing=\"5\" "
+ "cellpadding=\"5\" BGCOLOR=\"#EEEEEE\">\n"
+ "<TR><TD>"
+ "Enter room name:</TD><TD>"
+ "<INPUT TYPE=\"text\" NAME=\"gr_name\" "
+ "VALUE=\"%s\" MAXLENGTH=\"19\">\n", rname);
if (req_pass) {
wprintf("</TD></TR><TR><TD>");
wprintf("Enter room password:</TD><TD>");
wprintf("<INPUT TYPE=\"password\" NAME=\"gr_pass\" MAXLENGTH=\"9\">\n");
}
- wprintf("</TD></TR></TABLE>\n");
+ wprintf("</TD></TR></TABLE><BR>\n");
- wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
- wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
+ wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">"
+ " "
+ "<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
wprintf("</FORM>\n");
+ do_template("endbox");
wDumpContent(1);
}
serv_puts("KILL 0");
serv_gets(buf);
if (buf[0] != '2') {
- display_error(&buf[4]);
+ strcpy(WC->ImportantMessage, &buf[4]);
+ display_main_menu();
return;
}
output_headers(1);
strcpy(sc, bstr("sc"));
if (strcasecmp(sc, "Delete")) {
- display_error("Cancelled. This room was not deleted.");
+ strcpy(WC->ImportantMessage,
+ "Cancelled. This room was not deleted.");
+ display_main_menu();
return;
}
serv_puts("KILL 1");
serv_gets(buf);
if (buf[0] != '2') {
- display_error(&buf[4]);
+ strcpy(WC->ImportantMessage, &buf[4]);
+ display_main_menu();
+ return;
} else {
smart_goto("_BASEROOM_");
}
void do_folder_view(struct folder *fold, int max_folders, int num_floors) {
char buf[SIZ];
int levels, oldlevels;
- int nests = 0;
- int i, k, t;
+ int i, t;
- /* Output */
- nests = 0;
+ do_template("beginbox_nt");
levels = 0;
oldlevels = 0;
for (i=0; i<max_folders; ++i) {
levels = num_tokens(fold[i].name, '|');
- if (levels > oldlevels) {
- for (k=0; k<(levels-oldlevels); ++k) {
- ++nests;
- }
- }
- if (levels < oldlevels) {
- for (k=0; k<(oldlevels-levels); ++k) {
- --nests;
- }
- }
oldlevels = levels;
- for (t=0; t<nests; ++t) wprintf(" ");
+ for (t=0; t<levels; ++t) wprintf(" ");
if (fold[i].selectable) {
wprintf("<A HREF=\"/dotgoto?room=");
urlescputs(fold[i].room);
else {
wprintf("<i>");
}
- if (fold[i].hasnewmsgs) wprintf("<B>");
+ if (fold[i].hasnewmsgs) {
+ wprintf("<SPAN CLASS=\"roomlist_new\">");
+ }
+ else {
+ wprintf("<SPAN CLASS=\"roomlist_old\">");
+ }
extract(buf, fold[i].name, levels-1);
escputs(buf);
- if (fold[i].hasnewmsgs) wprintf("</B>");
+ wprintf("</SPAN>");
if (fold[i].selectable) {
wprintf("</A>");
}
}
wprintf("<BR>\n");
}
- while (nests-- > 0) ;;
+ do_template("endbox");
}
/*
*/
void do_rooms_view(struct folder *fold, int max_folders, int num_floors) {
char buf[SIZ];
+ char boxtitle[SIZ];
int levels, oldlevels;
- int nests = 0;
- int i, k, t;
+ int i, t;
int num_boxes = 0;
static int columns = 3;
int boxes_per_column = 0;
int current_column = 0;
+ int nf;
- boxes_per_column = (num_floors / columns);
+ nf = num_floors;
+ while (nf % columns != 0) ++nf;
+ boxes_per_column = (nf / columns);
if (boxes_per_column < 1) boxes_per_column = 1;
/* Outer table (for columnization) */
wprintf("<TABLE BORDER=0 WIDTH=100%% CELLPADDING=5>"
"<TR><TD VALIGN=TOP>");
- nests = 0;
levels = 0;
oldlevels = 0;
for (i=0; i<max_folders; ++i) {
levels = num_tokens(fold[i].name, '|');
- if (levels > oldlevels) {
- for (k=0; k<(levels-oldlevels); ++k) {
- ++nests;
- }
- }
- if (levels < oldlevels) {
- for (k=0; k<(oldlevels-levels); ++k) {
- --nests;
- }
- }
if ((levels == 1) && (oldlevels == 2)) {
/* End inner box */
- wprintf("</TD></TR></TABLE><BR>\n");
+ do_template("endbox");
++num_boxes;
if ((num_boxes % boxes_per_column) == 0) {
}
if (levels == 1) {
+
/* Begin inner box */
- wprintf("<TABLE border=1 WIDTH=100%%><TR><TD>");
- }
+ extract(buf, fold[i].name, levels-1);
+ stresc(boxtitle, buf, 1);
+ svprintf("BOXTITLE", WCS_STRING, boxtitle);
+ do_template("beginbox");
+ }
oldlevels = levels;
- for (t=0; t<nests; ++t) wprintf(" ");
- if (fold[i].selectable) {
- wprintf("<A HREF=\"/dotgoto?room=");
- urlescputs(fold[i].room);
- wprintf("\">");
- }
- else {
- wprintf("<i>");
- }
- if (fold[i].hasnewmsgs) wprintf("<B>");
- extract(buf, fold[i].name, levels-1);
- escputs(buf);
- if (fold[i].hasnewmsgs) wprintf("</B>");
- if (fold[i].selectable) {
- wprintf("</A>");
- }
- else {
- wprintf("</i>");
- }
- if (!strcasecmp(fold[i].name, "My Folders|Mail")) {
- wprintf(" (INBOX)");
+ if (levels > 1) {
+ wprintf(" ");
+ if (levels>2) for (t=0; t<(levels-2); ++t) wprintf(" ");
+ if (fold[i].selectable) {
+ wprintf("<A HREF=\"/dotgoto?room=");
+ urlescputs(fold[i].room);
+ wprintf("\">");
+ }
+ else {
+ wprintf("<i>");
+ }
+ if (fold[i].hasnewmsgs) {
+ wprintf("<SPAN CLASS=\"roomlist_new\">");
+ }
+ else {
+ wprintf("<SPAN CLASS=\"roomlist_old\">");
+ }
+ extract(buf, fold[i].name, levels-1);
+ escputs(buf);
+ wprintf("</SPAN>");
+ if (fold[i].selectable) {
+ wprintf("</A>");
+ }
+ else {
+ wprintf("</i>");
+ }
+ if (!strcasecmp(fold[i].name, "My Folders|Mail")) {
+ wprintf(" (INBOX)");
+ }
+ wprintf("<BR>\n");
}
- wprintf("<BR>\n");
}
- while (nests-- > 0) ;;
+ /* End the final inner box */
+ do_template("endbox");
wprintf("</TD></TR></TABLE>\n");
}
get_preference("roomlistview", listviewpref);
if ( (strcasecmp(listviewpref, "folders"))
- && (strcasecmp(listviewpref, "boxes")) ) {
+ && (strcasecmp(listviewpref, "table")) ) {
strcpy(listviewpref, "rooms");
}
if (!strcasecmp(listviewpref, "rooms")) {
wprintf("Room list");
}
- if (!strcasecmp(listviewpref, "boxes")) {
- wprintf("Room list");
- }
if (!strcasecmp(listviewpref, "folders")) {
wprintf("Folder list");
}
+ if (!strcasecmp(listviewpref, "table")) {
+ wprintf("Room list");
+ }
wprintf("</SPAN></TD>\n");
( !strcasecmp(listviewpref, "folders") ? "SELECTED" : "" )
);
- wprintf("<OPTION %s VALUE=\"/knrooms&view=boxes\">"
- "View as portal"
+ wprintf("<OPTION %s VALUE=\"/knrooms&view=table\">"
+ "Classic table view"
"</OPTION>\n",
- ( !strcasecmp(listviewpref, "boxes") ? "SELECTED" : "" )
+ ( !strcasecmp(listviewpref, "table") ? "SELECTED" : "" )
);
wprintf("</SELECT></FORM></TD><TD>\n");
offer_start_page();
- wprintf("</TD></TR></TABLE><BR>\n");
+ wprintf("</TD></TR></TABLE>\n");
/* Display the room list in the user's preferred format */
- if (!strcasecmp(listviewpref, "rooms")) {
+ if (!strcasecmp(listviewpref, "table")) {
tabular_room_list();
}
else {