* fix_scrollbar_bug is now a class instead of an id. Fixes validator warnings.
[citadel.git] / webcit / iconbar.c
index cf14021835adebe2205a8a07f3f821ee1e21f89e..dc18455d6da28f65605a0ce1fc1000822b9c3de0 100644 (file)
 #define IB_PICONLY     1
 #define IB_TEXTONLY    2
 
+
+void do_selected_iconbar(void) {
+       if (WC->current_iconbar == current_iconbar_roomlist) {
+               do_iconbar_roomlist();
+       }
+       else {
+               do_iconbar();
+       }
+}
+
+
 void do_iconbar(void) {
        char iconbar[SIZ];
        char buf[SIZ];
        char key[SIZ], value[SIZ];
        int i;
 
+       WC->current_iconbar = current_iconbar_menu;
+
        /* The initialized values of these variables also happen to
         * specify the default values for users who haven't customized
         * their iconbars.  These should probably be set in a master
@@ -68,7 +81,7 @@ void do_iconbar(void) {
                wprintf("<li>");
                if (ib_displayas != IB_TEXTONLY) {
                        wprintf("<IMG BORDER=\"0\" WIDTH=\"32\" "
-                               "HEIGHT=\"32\" SRC=\"/image&name=hello\" ALT=\"&nbsp;\">\n"
+                               "HEIGHT=\"32\" src=\"image&name=hello\" ALT=\"&nbsp;\">\n"
                        );
                }
                wprintf("</li>\n");
@@ -76,24 +89,27 @@ void do_iconbar(void) {
 
        if (ib_citadel) if (ib_displayas != IB_TEXTONLY) wprintf(
                "<li><div align=\"center\">"
-               "<A HREF=\"http://www.citadel.org\" "
+               "<a href=\"http://www.citadel.org\" "
                "title=\"%s\" target=\"aboutcit\">"
                "<img border=\"0\" "
-               "SRC=\"/static/citadel-logo.gif\" ALT=\"%s\"></a>"
+               "src=\"static/citadel-logo.gif\" ALT=\"%s\"></a>"
                "</div></li>\n",
                _("Find out more about Citadel"),
                _("CITADEL")
        );
 
+       wprintf("<li><div align=\"center\"><a href=\"javascript:switch_to_room_list()\">");
+       wprintf(_("switch to room list"));
+       wprintf("</a></div>");
 
        if (ib_summary) {
-               wprintf("<li><A HREF=\"/summary\" "
+               wprintf("<li><a href=\"summary\" "
                        "TITLE=\"%s\" "
                        ">", _("Your summary page")
                );
                if (ib_displayas != IB_TEXTONLY) {
                        wprintf("<IMG BORDER=\"0\" WIDTH=\"32\" HEIGHT=\"32\" "
-                               "SRC=\"/static/summscreen_32x.gif\">");
+                               "src=\"static/summscreen_32x.gif\">");
                }
                if (ib_displayas != IB_PICONLY) {
                        wprintf(_("Summary"));
@@ -103,19 +119,23 @@ void do_iconbar(void) {
 
        if (ib_inbox) {
                wprintf("<li>"
-                       "<A HREF=\"/dotgoto?room=_MAIL_\" "
+                       "<a href=\"dotgoto?room=_MAIL_\" "
                        "TITLE=\"%s\" "
                        ">",
                        _("Go to your email inbox")
                );
                if (ib_displayas != IB_TEXTONLY) {
                        wprintf("<IMG BORDER=\"0\" WIDTH=\"32\" HEIGHT=\"32\" "
-                               "SRC=\"/static/privatemess_32x.gif\">");
+                               "src=\"static/privatemess_32x.gif\">");
                }
                if (ib_displayas != IB_PICONLY) {
                        wprintf(_("Mail"));
                        if (WC->new_mail != WC->remember_new_mail) {
-                               wprintf(" <b>(%d)</b>", WC->new_mail);
+/*
+                               if (WC->new_mail > 0) {
+                                       wprintf(" <b>(%d)</b>", WC->new_mail);
+                               }
+*/
                                WC->remember_new_mail = WC->new_mail;
                        }
                }
@@ -124,14 +144,14 @@ void do_iconbar(void) {
 
        if (ib_calendar) {
                wprintf("<li>"
-                       "<A HREF=\"/dotgoto?room=_CALENDAR_\" "
+                       "<a href=\"dotgoto?room=_CALENDAR_\" "
                        "TITLE=\"%s\" "
                        ">",
                        _("Go to your personal calendar")
                );
                if (ib_displayas != IB_TEXTONLY) {
                        wprintf("<IMG BORDER=\"0\" WIDTH=\"32\" HEIGHT=\"32\" "
-                       "SRC=\"/static/calarea_32x.gif\">");
+                       "src=\"static/calarea_32x.gif\">");
                }
                if (ib_displayas != IB_PICONLY) {
                        wprintf(_("Calendar"));
@@ -141,14 +161,14 @@ void do_iconbar(void) {
 
        if (ib_contacts) {
                wprintf("<li>"
-                       "<A HREF=\"/dotgoto?room=_CONTACTS_\" "
+                       "<a href=\"dotgoto?room=_CONTACTS_\" "
                        "TITLE=\"%s\" "
                        ">",
                        _("Go to your personal address book")
                );
                if (ib_displayas != IB_TEXTONLY) {
                        wprintf("<IMG BORDER=\"0\" WIDTH=\"32\" HEIGHT=\"32\" "
-                       "SRC=\"/static/viewcontacts_32x.gif\">");
+                       "src=\"static/viewcontacts_32x.gif\">");
                }
                if (ib_displayas != IB_PICONLY) {
                        wprintf(_("Contacts"));
@@ -158,14 +178,14 @@ void do_iconbar(void) {
 
        if (ib_notes) {
                wprintf("<li>"
-                       "<A HREF=\"/dotgoto?room=_NOTES_\" "
+                       "<a href=\"dotgoto?room=_NOTES_\" "
                        "TITLE=\"%s\" "
                        ">",
                        _("Go to your personal notes")
                );
                if (ib_displayas != IB_TEXTONLY) {
                        wprintf("<IMG BORDER=\"0\" WIDTH=\"32\" HEIGHT=\"32\" "
-                       "SRC=\"/static/storenotes_32x.gif\">");
+                       "src=\"static/storenotes_32x.gif\">");
                }
                if (ib_displayas != IB_PICONLY) {
                        wprintf(_("Notes"));
@@ -175,14 +195,14 @@ void do_iconbar(void) {
 
        if (ib_tasks)  {
                wprintf("<li>"
-                       "<A HREF=\"/dotgoto?room=_TASKS_\" "
+                       "<a href=\"dotgoto?room=_TASKS_\" "
                        "TITLE=\"%s\" "
                        ">",
                        _("Go to your personal task list")
                );
                if (ib_displayas != IB_TEXTONLY) {
                        wprintf("<IMG BORDER=\"0\" WIDTH=\"32\" HEIGHT=\"32\" "
-                       "SRC=\"/static/taskmanag_32x.gif\">");
+                       "src=\"static/taskmanag_32x.gif\">");
                }
                if (ib_displayas != IB_PICONLY) {
                        wprintf(_("Tasks"));
@@ -192,12 +212,12 @@ void do_iconbar(void) {
 
        if (ib_rooms) {
                wprintf("<li>"
-                       "<A HREF=\"/knrooms\" TITLE=\"%s\" >",
+                       "<a href=\"knrooms\" TITLE=\"%s\" >",
                        _("List all of your accessible rooms")
                );
                if (ib_displayas != IB_TEXTONLY) {
                        wprintf("<IMG BORDER=\"0\" WIDTH=\"32\" HEIGHT=\"32\" "
-                       "SRC=\"/static/chatrooms_32x.gif\">");
+                       "src=\"static/chatrooms_32x.gif\">");
                }
                if (ib_displayas != IB_PICONLY) {
                        wprintf(_("Rooms"));
@@ -207,13 +227,13 @@ void do_iconbar(void) {
 
        if (ib_users) {
                wprintf("<li>"
-                       "<A HREF=\"/who\" TITLE=\"%s\" "
+                       "<a href=\"who\" TITLE=\"%s\" "
                        ">",
                        _("See who is online right now")
                );
                if (ib_displayas != IB_TEXTONLY) {
                        wprintf("<IMG BORDER=\"0\" WIDTH=\"32\" HEIGHT=\"32\" "
-                       "SRC=\"/static/usermanag_32x.gif\">");
+                       "src=\"static/usermanag_32x.gif\">");
                }
                if (ib_displayas != IB_PICONLY) {
                        wprintf(_("Who is online?"));
@@ -223,7 +243,7 @@ void do_iconbar(void) {
 
        if (ib_chat) {
                wprintf("<li>"
-                       "<A HREF=\"#\" onClick=\"window.open('/chat', "
+                       "<a href=\"#\" onClick=\"window.open('chat', "
                        "'ctdl_chat_window', "
                        "'toolbar=no,location=no,directories=no,copyhistory=no,"
                        "status=no,scrollbars=yes,resizable=yes');\""
@@ -231,7 +251,7 @@ void do_iconbar(void) {
                );
                if (ib_displayas != IB_TEXTONLY) {
                        wprintf("<IMG BORDER=\"0\" WIDTH=\"32\" HEIGHT=\"32\" "
-                       "SRC=\"/static/citadelchat_32x.gif\">");
+                       "src=\"static/citadelchat_32x.gif\">");
                }
                if (ib_displayas != IB_PICONLY) {
                        wprintf(_("Chat"));
@@ -241,14 +261,14 @@ void do_iconbar(void) {
 
        if (ib_advanced) {
                wprintf("<li>"
-                       "<A HREF=\"/display_main_menu\" "
+                       "<a href=\"display_main_menu\" "
                        "TITLE=\"%s\" "
                        ">",
                        _("Advanced Options Menu: Advanced Room commands, Account Info, and Chat")
                );
                if (ib_displayas != IB_TEXTONLY) {
                        wprintf("<IMG BORDER=\"0\" WIDTH=\"32\" HEIGHT=\"32\" "
-                       "SRC=\"/static/advanpage2_32x.gif\">");
+                       "src=\"static/advanpage2_32x.gif\">");
                }
                if (ib_displayas != IB_PICONLY) {
                        wprintf(_("Advanced"));
@@ -258,14 +278,14 @@ void do_iconbar(void) {
 
        if ((WC->axlevel >= 6) || (WC->is_room_aide)) {
                wprintf("<li>"
-                       "<A HREF=\"/display_aide_menu\" "
+                       "<a href=\"display_aide_menu\" "
                        "TITLE=\"%s\" "
                        ">",
                        _("Room and system administration functions")
                );
                if (ib_displayas != IB_TEXTONLY) {
                        wprintf("<IMG BORDER=\"0\" WIDTH=\"32\" HEIGHT=\"32\" "
-                       "SRC=\"/static/advanpage2_32x.gif\">");
+                       "src=\"static/advanpage2_32x.gif\">");
                }
                if (ib_displayas != IB_PICONLY) {
                        wprintf(_("Administration"));
@@ -273,27 +293,25 @@ void do_iconbar(void) {
                wprintf("</A></li>\n");
        }
 
-       if (1) {
-               wprintf("<li>"
-                       "<A HREF=\"/termquit\" TITLE=\"%s\" "
-                       "onClick=\"return confirm('%s');\">",
-                       _("Log off"),
-                       _("Log off now?")
-                       
-               );
-               if (ib_displayas != IB_TEXTONLY) {
-               wprintf("<IMG BORDER=\"0\" WIDTH=\"32\" HEIGHT=\"32\" "
-                       "SRC=\"/static/logoff_32x.gif\">");
-               }
-               if (ib_displayas != IB_PICONLY) {
-                       wprintf(_("Log off"));
-               }
-               wprintf("</A></li>\n");
+       wprintf("<li>"
+               "<a href=\"termquit\" TITLE=\"%s\" "
+               "onClick=\"return confirm('%s');\">",
+               _("Log off"),
+               _("Log off now?")
+               
+       );
+       if (ib_displayas != IB_TEXTONLY) {
+       wprintf("<IMG BORDER=\"0\" WIDTH=\"32\" HEIGHT=\"32\" "
+               "src=\"static/logoff_32x.gif\">");
+       }
+       if (ib_displayas != IB_PICONLY) {
+               wprintf(_("Log off"));
        }
+       wprintf("</A></li>\n");
 
        wprintf(
                "<li><div align=\"center\">"
-               "<A HREF=\"/display_customize_iconbar\" "
+               "<a href=\"display_customize_iconbar\" "
                "TITLE=\"%s\" "
                ">%s"
                "</A></div></li>\n",
@@ -301,8 +319,95 @@ void do_iconbar(void) {
                _("customize this menu")
        );
 
-       wprintf("</ul>\n"
-               "</div>\n");
+       wprintf("</ul></div>\n");
+}
+
+
+/*
+ * If the user has toggled the icon bar over to a room list, here's where
+ * we generate its innerHTML...
+ */
+void do_iconbar_roomlist(void) {
+       char iconbar[SIZ];
+       char buf[SIZ];
+       char key[SIZ], value[SIZ];
+       int i;
+
+       WC->current_iconbar = current_iconbar_roomlist;
+
+       /* The initialized values of these variables also happen to
+        * specify the default values for users who haven't customized
+        * their iconbars.  These should probably be set in a master
+        * configuration somewhere.
+        */
+       int ib_displayas = 0;   /* pictures and text, pictures, text */
+       int ib_logo = 0;        /* Site logo */
+       int ib_citadel = 1;     /* 'Powered by Citadel' logo */
+       /*
+        */
+
+       get_preference("iconbar", iconbar, sizeof iconbar);
+       for (i=0; i<num_tokens(iconbar, ','); ++i) {
+               extract_token(buf, iconbar, i, ',', sizeof buf);
+               extract_token(key, buf, 0, '=', sizeof key);
+               extract_token(value, buf, 1, '=', sizeof value);
+
+               if (!strcasecmp(key, "ib_displayas")) ib_displayas = atoi(value);
+               if (!strcasecmp(key, "ib_logo")) ib_logo = atoi(value);
+               if (!strcasecmp(key, "ib_citadel")) ib_citadel = atoi(value);
+       }
+
+       wprintf("<div id=\"button\">\n"
+               "<ul>\n"
+       );
+
+       if (ib_logo) {
+               wprintf("<li>");
+               if (ib_displayas != IB_TEXTONLY) {
+                       wprintf("<IMG BORDER=\"0\" WIDTH=\"32\" "
+                               "HEIGHT=\"32\" src=\"image&name=hello\" ALT=\"&nbsp;\">\n"
+                       );
+               }
+               wprintf("</li>\n");
+       }
+
+       if (ib_citadel) if (ib_displayas != IB_TEXTONLY) wprintf(
+               "<li><div align=\"center\">"
+               "<a href=\"http://www.citadel.org\" "
+               "title=\"%s\" target=\"aboutcit\">"
+               "<img border=\"0\" "
+               "src=\"static/citadel-logo.gif\" ALT=\"%s\"></a>"
+               "</div></li>\n",
+               _("Find out more about Citadel"),
+               _("CITADEL")
+       );
+
+       wprintf("<li><div align=\"center\"><a href=\"javascript:switch_to_menu_buttons()\">");
+       wprintf(_("switch to menu"));
+       wprintf("</a></div>");
+
+       wprintf("<li>"
+               "<a href=\"termquit\" TITLE=\"%s\" "
+               "onClick=\"return confirm('%s');\">",
+               _("Log off"),
+               _("Log off now?")
+               
+       );
+       if (ib_displayas != IB_TEXTONLY) {
+       wprintf("<IMG BORDER=\"0\" WIDTH=\"32\" HEIGHT=\"32\" "
+               "src=\"static/logoff_32x.gif\">");
+       }
+       if (ib_displayas != IB_PICONLY) {
+               wprintf(_("Log off"));
+       }
+       wprintf("</A></li>\n");
+
+       wprintf("</ul></div>\n");
+
+       /* embed the room list */
+       list_all_rooms_by_floor("iconbar");
+
+       wprintf("</div>\n");
 }
 
 
@@ -366,10 +471,10 @@ void display_customize_iconbar(void) {
                "</div>\n<div id=\"content\">\n"
        );
 
-       wprintf("<div id=\"fix_scrollbar_bug\">"
+       wprintf("<div class=\"fix_scrollbar_bug\">"
                "<table border=0 width=100%% bgcolor=\"#ffffff\"><tr><td>");
 
-       wprintf("<FORM METHOD=\"POST\" ACTION=\"/commit_iconbar\">\n");
+       wprintf("<FORM METHOD=\"POST\" action=\"commit_iconbar\">\n");
 
        wprintf("<CENTER>");
        wprintf(_("Display icons as:"));
@@ -396,7 +501,7 @@ void display_customize_iconbar(void) {
                "<INPUT TYPE=\"checkbox\" NAME=\"ib_logo\" VALUE=\"yes\" %s>"
                "</TD><TD>"
                "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
-               "SRC=\"/image&name=hello\" ALT=\"&nbsp;\">"
+               "src=\"image&name=hello\" ALT=\"&nbsp;\">"
                "</TD><TD>"
                "<B>%s</B><br />"
                "%s"
@@ -411,7 +516,7 @@ void display_customize_iconbar(void) {
                "<INPUT TYPE=\"checkbox\" NAME=\"ib_summary\" VALUE=\"yes\" %s>"
                "</TD><TD>"
                "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
-               "SRC=\"/static/summscreen_48x.gif\" ALT=\"&nbsp;\">"
+               "src=\"static/summscreen_48x.gif\" ALT=\"&nbsp;\">"
                "</TD><TD>"
                "<B>%s</B><br />"
                "%s"
@@ -426,7 +531,7 @@ void display_customize_iconbar(void) {
                "<INPUT TYPE=\"checkbox\" NAME=\"ib_inbox\" VALUE=\"yes\" %s>"
                "</TD><TD>"
                "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
-               "SRC=\"/static/privatemess_48x.gif\" ALT=\"&nbsp;\">"
+               "src=\"static/privatemess_48x.gif\" ALT=\"&nbsp;\">"
                "</TD><TD>"
                "<B>%s</B><br />"
                "%s"
@@ -442,7 +547,7 @@ void display_customize_iconbar(void) {
                "VALUE=\"yes\" %s>"
                "</TD><TD>"
                "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
-               "SRC=\"/static/viewcontacts_48x.gif\" ALT=\"&nbsp;\">"
+               "src=\"static/viewcontacts_48x.gif\" ALT=\"&nbsp;\">"
                "</TD><TD>"
                "<B>%s</B><br />"
                "%s"
@@ -458,7 +563,7 @@ void display_customize_iconbar(void) {
                "VALUE=\"yes\" %s>"
                "</TD><TD>"
                "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
-               "SRC=\"/static/storenotes_48x.gif\" ALT=\"&nbsp;\">"
+               "src=\"static/storenotes_48x.gif\" ALT=\"&nbsp;\">"
                "</TD><TD>"
                "<B>%s</B><br />"
                "%s"
@@ -475,7 +580,7 @@ void display_customize_iconbar(void) {
                "VALUE=\"yes\" %s>"
                "</TD><TD>"
                "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
-               "SRC=\"/static/calarea_48x.gif\" ALT=\"&nbsp;\">"
+               "src=\"static/calarea_48x.gif\" ALT=\"&nbsp;\">"
                "</TD><TD>"
                "<B>%s</B><br />"
                "%s"
@@ -490,7 +595,7 @@ void display_customize_iconbar(void) {
                "<INPUT TYPE=\"checkbox\" NAME=\"ib_tasks\" VALUE=\"yes\" %s>"
                "</TD><TD>"
                "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
-               "SRC=\"/static/taskmanag_48x.gif\" ALT=\"&nbsp;\">"
+               "src=\"static/taskmanag_48x.gif\" ALT=\"&nbsp;\">"
                "</TD><TD>"
                "<B>%s</B><br />"
                "%s"
@@ -506,7 +611,7 @@ void display_customize_iconbar(void) {
                "<INPUT TYPE=\"checkbox\" NAME=\"ib_rooms\" VALUE=\"yes\" %s>"
                "</TD><TD>"
                "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
-               "SRC=\"/static/chatrooms_48x.gif\" ALT=\"&nbsp;\">"
+               "src=\"static/chatrooms_48x.gif\" ALT=\"&nbsp;\">"
                "</TD><TD>"
                "<B>%s</B><br />"
                "%s"
@@ -522,7 +627,7 @@ void display_customize_iconbar(void) {
                "<INPUT TYPE=\"checkbox\" NAME=\"ib_users\" VALUE=\"yes\" %s>"
                "</TD><TD>"
                "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
-               "SRC=\"/static/usermanag_48x.gif\" ALT=\"&nbsp;\">"
+               "src=\"static/usermanag_48x.gif\" ALT=\"&nbsp;\">"
                "</TD><TD>"
                "<B>%s</B><br />"
                "%s"
@@ -538,7 +643,7 @@ void display_customize_iconbar(void) {
                "<INPUT TYPE=\"checkbox\" NAME=\"ib_chat\" VALUE=\"yes\" %s>"
                "</TD><TD>"
                "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
-               "SRC=\"/static/citadelchat_48x.gif\" ALT=\"&nbsp;\">"
+               "src=\"static/citadelchat_48x.gif\" ALT=\"&nbsp;\">"
                "</TD><TD>"
                "<B>%s</B><br />"
                "%s"
@@ -556,7 +661,7 @@ void display_customize_iconbar(void) {
                "VALUE=\"yes\" %s>"
                "</TD><TD>"
                "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
-               "SRC=\"/static/advanpage2_48x.gif\" ALT=\"&nbsp;\">"
+               "src=\"static/advanpage2_48x.gif\" ALT=\"&nbsp;\">"
                "</TD><TD>"
                "<B>%s</B><br />"
                "%s"
@@ -573,7 +678,7 @@ void display_customize_iconbar(void) {
                "VALUE=\"yes\" %s>"
                "</TD><TD>"
                "<IMG BORDER=\"0\" WIDTH=\"48\" HEIGHT=\"48\" "
-               "SRC=\"/static/citadel-logo.gif\" ALT=\"&nbsp;\">"
+               "src=\"static/citadel-logo.gif\" ALT=\"&nbsp;\">"
                "</TD><TD>"
                "<B>%s</B><br />"
                "%s"
@@ -641,10 +746,11 @@ void commit_iconbar(void) {
        output_headers(1, 1, 0, 0, 0, 0);
        wprintf(
                "<center><table border=1 bgcolor=\"#ffffff\"><tr><td>"
-               "<IMG SRC=\"/static/advanpage2_48x.gif\">"
+               "<img src=\"static/advanpage2_48x.gif\">"
                "&nbsp;");
        wprintf(_("Your icon bar has been updated.  Please select any of its "
                "choices to continue."));
        wprintf("</td></tr></table>\n");
        wDumpContent(2);
 }
+