int hasnewmsgs;
int is_mailbox;
int selectable;
+ int view;
};
char *viewdefs[] = {
-/* Display room graphic. The server doesn't actually
+/* Display room banner icon. The server doesn't actually
* need the room name, but we supply it in order to
- * keep the browser from using a cached graphic from
+ * keep the browser from using a cached icon from
* another room.
*/
void embed_room_graphic(void) {
serv_puts("OIMG _roompic_");
serv_getln(buf, sizeof buf);
if (buf[0] == '2') {
- wprintf("<TD BGCOLOR=\"#444455\">");
wprintf("<IMG HEIGHT=64 SRC=\"/image&name=_roompic_&room=");
urlescputs(WC->wc_roomname);
- wprintf("\"></TD>");
+ wprintf("\">");
serv_puts("CLOS");
serv_getln(buf, sizeof buf);
}
+ else if (WC->wc_view == VIEW_ADDRESSBOOK) {
+ wprintf("<img height=48 width=48 src=\""
+ "static/viewcontacts_48x.gif"
+ "\">"
+ );
+ }
+ else if (WC->wc_view == VIEW_CALENDAR) {
+ wprintf("<img height=48 width=48 src=\""
+ "static/calarea_48x.gif"
+ "\">"
+ );
+ }
+ else if (WC->wc_view == VIEW_TASKS) {
+ wprintf("<img height=48 width=48 src=\""
+ "static/taskmanag_48x.gif"
+ "\">"
+ );
+ }
+ else if (WC->wc_view == VIEW_NOTES) {
+ wprintf("<img height=48 width=48 src=\""
+ "static/storenotes_48x.gif"
+ "\">"
+ );
+ }
+ else if (WC->wc_view == VIEW_MAILBOX) {
+ wprintf("<img height=48 width=48 src=\""
+ "static/privatemess_48x.gif"
+ "\">"
+ );
+ }
+ else {
+ wprintf("<img height=48 width=48 src=\""
+ "static/chatrooms_48x.gif"
+ "\">"
+ );
+ }
}
if ( (WC->new_mail > WC->remember_new_mail) && (WC->new_mail>0) ) {
wprintf(
"<A HREF=\"/dotgoto?room=_MAIL_\">"
- "<IMG SRC=\"/static/mail.gif\" border=0 "
+ "<IMG SRC=\"/static/privatemess_32x.gif\" border=0 "
"ALT=\"You have new mail\">"
"<br /><SPAN CLASS=\"youhavemail\">"
"%d new mail</SPAN></A>", WC->new_mail);
if (navbar_style != navbar_none) {
wprintf("<div style=\"position:absolute; bottom:0px; left:0px\">\n"
- "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%%\"><tr>\n");
+ "<table width=\"100%%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"><tr>\n");
if (navbar_style == navbar_default) wprintf(
"<td>"
"<a href=\"/ungoto\">"
- "<img align=\"middle\" src=\"/static/back.gif\" border=\"0\">"
+ "<img align=\"middle\" src=\"/static/ungoto2_24x.gif\" border=\"0\">"
"<span class=\"navbar_link\">Ungoto</span></A>"
"</td>\n"
);
wprintf(
"<td>"
"<A HREF=\"/readnew\">"
- "<img align=\"middle\" src=\"/static/readmsgs.gif\" border=\"0\">"
+ "<img align=\"middle\" src=\"/static/newmess2_24x.gif\" border=\"0\">"
"<span class=\"navbar_link\">Read new messages</span></A>"
"</td>\n"
);
wprintf(
"<td>"
"<A HREF=\"/readfwd\">"
- "<img align=\"middle\" src=\"/static/readmsgs.gif\" "
+ "<img align=\"middle\" src=\"/static/viewcontacts_24x.gif\" "
"border=\"0\">"
"<span class=\"navbar_link\">"
"View contacts"
wprintf(
"<td>"
"<A HREF=\"/readfwd?calview=day\">"
- "<img align=\"middle\" src=\"/static/day_view.gif\" "
+ "<img align=\"middle\" src=\"/static/taskday2_24x.gif\" "
"border=\"0\">"
"<span class=\"navbar_link\">"
"Day view"
wprintf(
"<td>"
"<A HREF=\"/readfwd?calview=month\">"
- "<img align=\"middle\" src=\"/static/month_view.gif\" "
+ "<img align=\"middle\" src=\"/static/monthview2_24x.gif\" "
"border=\"0\">"
"<span class=\"navbar_link\">"
"Month view"
wprintf(
"<td>"
"<A HREF=\"/readfwd\">"
- "<img align=\"middle\" src=\"/static/readmsgs.gif\" "
+ "<img align=\"middle\" src=\"/static/taskmanag_24x.gif\" "
"border=\"0\">"
"<span class=\"navbar_link\">"
"View tasks"
wprintf(
"<td>"
"<A HREF=\"/readfwd\">"
- "<img align=\"middle\" src=\"/static/readmsgs.gif\" "
+ "<img align=\"middle\" src=\"/static/viewnotes_24x.gif\" "
"border=\"0\">"
"<span class=\"navbar_link\">"
"View notes"
wprintf(
"<td>"
"<A HREF=\"/readfwd\">"
- "<img align=\"middle\" src=\"/static/readmsgs.gif\" "
+ "<img align=\"middle\" src=\"/static/readallmess3_24x.gif\" "
"border=\"0\">"
"<span class=\"navbar_link\">"
"View message list"
wprintf(
"<td>"
"<A HREF=\"/readfwd\">"
- "<img align=\"middle\" src=\"/static/readmsgs.gif\" "
+ "<img align=\"middle\" src=\"/static/readallmess3_24x.gif\" "
"border=\"0\">"
"<span class=\"navbar_link\">"
"Read all messages"
}
if (navbar_style == navbar_default) {
- wprintf(
- "<td>"
- "<A HREF=\"/display_enter\">"
- "<img align=\"middle\" src=\"/static/enter.gif\" border=\"0\">"
- "<span class=\"navbar_link\">"
- );
switch(WC->wc_view) {
case VIEW_ADDRESSBOOK:
- wprintf("Add new contact");
+ wprintf(
+ "<td><A HREF=\"/display_enter\">"
+ "<img align=\"middle\" src=\"/static/addnewcontact_24x.gif\" "
+ "border=\"0\"><span class=\"navbar_link\">"
+ "Add new contact"
+ "</span></a></td>\n"
+ );
break;
case VIEW_CALENDAR:
- wprintf("Add new event");
+ wprintf(
+ "<td><A HREF=\"/display_enter\">"
+ "<img align=\"middle\" src=\"/static/addevent_24x.gif\" "
+ "border=\"0\"><span class=\"navbar_link\">"
+ "Add new event"
+ "</span></a></td>\n"
+ );
break;
case VIEW_TASKS:
- wprintf("Add new task");
+ wprintf(
+ "<td><A HREF=\"/display_enter\">"
+ "<img align=\"middle\" src=\"/static/newmess3_24x.gif\" "
+ "border=\"0\"><span class=\"navbar_link\">"
+ "Add new task"
+ "</span></a></td>\n"
+ );
break;
case VIEW_NOTES:
- wprintf("Add new note");
+ wprintf(
+ "<td><A HREF=\"/display_enter\">"
+ "<img align=\"middle\" src=\"/static/enternewnote_24x.gif\" "
+ "border=\"0\"><span class=\"navbar_link\">"
+ "Add new note"
+ "</span></a></td>\n"
+ );
break;
default:
- wprintf("Enter a message");
+ wprintf(
+ "<td><A HREF=\"/display_enter\">"
+ "<img align=\"middle\" src=\"/static/newmess3_24x.gif\" "
+ "border=\"0\"><span class=\"navbar_link\">"
+ "Enter a message"
+ "</span></a></td>\n"
+ );
break;
}
wprintf("</span></a></td>\n");
"<td>"
"<A HREF=\"/skip\" "
"TITLE=\"Leave all messages marked as unread, go to next room with unread messages\">"
- "<span class=\"navbar_link\">Skip this room</span>"
- "<img align=\"middle\" src=\"/static/forward.gif\" border=\"0\"></A>"
+ "<img align=\"middle\" src=\"/static/skipthisroom_24x.gif\" border=\"0\">"
+ "<span class=\"navbar_link\">Skip this room</span></a>"
"</td>\n"
);
"<td>"
"<A HREF=\"/gotonext\" "
"TITLE=\"Mark all messages as read, go to next room with unread messages\">"
- "<span class=\"navbar_link\">Goto next room</span>"
- "<img align=\"middle\" src=\"/static/forward.gif\" border=\"0\"></A>"
+ "<img align=\"middle\" src=\"/static/markngo_24x.gif\" border=\"0\">"
+ "<span class=\"navbar_link\">Goto next room</span></a>"
"</td>\n"
);
"onClick=\"return confirm('Are you sure you want to delete this room?');\">\n"
"Delete this room</A>\n"
"<LI><A HREF=\"/display_editroompic\">\n"
- "Set or change the graphic for this room's banner</A>\n"
+ "Set or change the icon for this room's banner</A>\n"
"<LI><A HREF=\"/display_editinfo\">\n"
"Edit this room's Info file</A>\n"
"</UL>");
*/
void do_folder_view(struct folder *fold, int max_folders, int num_floors) {
char buf[SIZ];
- int levels, oldlevels;
- int i, t;
- int actnum = 0;
+ int levels;
+ int i;
int has_subfolders = 0;
+ int *parents;
- /* Include the menu expanding/collapsing code */
- wprintf("<script type=\"text/javascript\" src=\"/static/menuExpandable3.js\"></script>\n");
+ parents = malloc(max_folders * sizeof(int));
/* BEGIN TREE MENU */
- wprintf("<div style=\"background: white\">\n");
- wprintf("<div id=\"mainMenu\">\n");
- wprintf("<UL id=\"menuList\">\n");
- levels = 0;
- oldlevels = 0;
+ wprintf("<div id=\"roomlist_div\">Loading folder list...</div>\n");
+
+ /* include NanoTree */
+ wprintf("<script type=\"text/javascript\" src=\"static/nanotree.js\"></script>\n");
+
+ /* initialize NanoTree */
+ wprintf("<script type=\"text/javascript\"> \n"
+ " showRootNode = false; \n"
+ " sortNodes = false; \n"
+ " dragable = false; \n"
+ " \n"
+ " function standardClick(treeNode) { \n"
+ " } \n"
+ " \n"
+ " var closedGif = 'static/folder_closed.gif'; \n"
+ " var openGif = 'static/folder_open.gif'; \n"
+ " \n"
+ " rootNode = new TreeNode(1, 'root node - hide'); \n"
+ );
+ levels = 0;
for (i=0; i<max_folders; ++i) {
has_subfolders = 0;
}
levels = num_tokens(fold[i].name, '|');
+ parents[levels] = i;
- if ( (levels < oldlevels) || ((levels==1)&&(i!=0)) ) {
- for (t=0; t<(oldlevels-levels); ++t) {
- wprintf("</UL>\n");
- }
- }
-
- if (has_subfolders) {
- wprintf("<LI");
- if (levels == 1) wprintf(" class=\"menubar\"");
- wprintf(">");
- wprintf("<A href=\"#\" id=\"actuator%d\" class=\"actuator\"></a>\n", actnum);
- }
- else {
- wprintf("<LI>");
- }
+ wprintf("var node%d = new TreeNode(%d, '", i, i);
if (fold[i].selectable) {
wprintf("<A HREF=\"/dotgoto?room=");
escputs(buf);
wprintf("</SPAN>");
- if (!strcasecmp(fold[i].name, "My Folders|Mail")) {
- wprintf(" (INBOX)");
+ wprintf("</a>', ");
+ if (has_subfolders) {
+ wprintf("new Array(closedGif, openGif)");
}
-
- if (fold[i].selectable) {
- wprintf("</A>");
+ else if (fold[i].view == VIEW_ADDRESSBOOK) {
+ wprintf("'static/viewcontacts_16x.gif'");
}
- wprintf("\n");
-
- if (has_subfolders) {
- wprintf("<UL id=\"menu%d\" class=\"%s\">\n",
- actnum++,
- ( (levels == 1) ? "menu" : "submenu")
- );
+ else if (fold[i].view == VIEW_CALENDAR) {
+ wprintf("'static/calarea_16x.gif'");
+ }
+ else if (fold[i].view == VIEW_TASKS) {
+ wprintf("'static/taskmanag_16x.gif'");
+ }
+ else if (fold[i].view == VIEW_NOTES) {
+ wprintf("'static/storenotes_16x.gif'");
+ }
+ else if (fold[i].view == VIEW_MAILBOX) {
+ wprintf("'static/privatemess_16x.gif'");
+ }
+ else {
+ wprintf("'static/chatrooms_16x.gif'");
}
+ wprintf(", '");
+ urlescputs(fold[i].name);
+ wprintf("');\n");
- oldlevels = levels;
- }
- wprintf("</UL></UL>\n");
- wprintf("<img src=\"/static/blank.gif\" onLoad = ' \n");
- for (i=0; i<actnum; ++i) {
- wprintf(" initializeMenu(\"menu%d\", \"actuator%d\");\n", i, i);
+ if (levels < 2) {
+ wprintf("rootNode.addChild(node%d);\n", i);
+ }
+ else {
+ wprintf("node%d.addChild(node%d);\n", parents[levels-1], i);
+ }
}
- wprintf(" ' > \n");
- wprintf("</DIV>\n");
+
+ wprintf("container = document.getElementById('roomlist_div'); \n"
+ "showTree(''); \n"
+ "</script>\n"
+ );
+
+ free(parents);
/* END TREE MENU */
}
if (flags & QR_MAILBOX) {
fold[max_folders].is_mailbox = 1;
}
+ fold[max_folders].view = extract_int(buf, 6);
room_to_folder(fold[max_folders].name,
fold[max_folders].room,
fold[max_folders].floor,
/* Determine whether the user is trying to change views */
if (bstr("view") != NULL) {
if (strlen(bstr("view")) > 0) {
- set_preference("roomlistview", bstr("view"));
+ set_preference("roomlistview", bstr("view"), 1);
}
}