* fix_scrollbar_bug is now a class instead of an id. Fixes validator warnings.
[citadel.git] / webcit / roomops.c
index 9492ece75a1ac371a2101dec9b8df72d4650a360..5ed5c5a3e67709ff7441413bef49a45f02d26e8a 100644 (file)
@@ -225,6 +225,9 @@ void readinfo(void)
        if (buf[0] == '1') {
                fmout("CENTER");
        }
+       else {
+               wprintf(" ");
+       }
 }
 
 
@@ -295,7 +298,9 @@ void embed_view_o_matic(void) {
        int i;
 
        wprintf("<form name=\"viewomatic\" action=\"changeview\">\n"
-               "<span class=\"room_banner_new_messages\">View as: "
+               "<span class=\"room_banner_new_messages\">");
+       wprintf(_("View as:"));
+       wprintf(" "
                "<SELECT NAME=\"newview\" SIZE=\"1\" "
                "STYLE=\"font-family: Bitstream Vera Sans,Arial,Helvetica,sans-serif;"
                " font-size: 7pt; background: #444455; color: #ddddcc;\" "
@@ -339,6 +344,13 @@ void embed_room_banner(char *got, int navbar_style) {
                got = fakegot;
        }
 
+       /* The browser needs some information for its own use */
+       wprintf("<script type=\"text/javascript\">      \n"
+               "       room_is_trash = %d;             \n"
+               "</script>\n",
+               WC->wc_is_trash
+       );
+
        /* If the user happens to select the "make this my start page" link,
         * we want it to remember the URL as a "/dotskip" one instead of
         * a "skip" or "gotonext" or something like that.
@@ -351,8 +363,11 @@ void embed_room_banner(char *got, int navbar_style) {
        WC->wc_view = extract_int(&got[4], 11);
 
        svprintf("ROOMNAME", WCS_STRING, "%s", WC->wc_roomname);
-       svprintf("NEWMSGS", WCS_STRING, "%d", extract_int(&got[4], 1));
-       svprintf("TOTALMSGS", WCS_STRING, "%d", extract_int(&got[4], 2));
+       svprintf("NUMMSGS", WCS_STRING,
+               _("%d new of %d messages"),
+               extract_int(&got[4], 1),
+               extract_int(&got[4], 2)
+       );
        svcallback("ROOMPIC", embed_room_graphic);
        svcallback("ROOMINFO", readinfo);
        svcallback("VIEWOMATIC", embed_view_o_matic);
@@ -582,6 +597,7 @@ int gotoroom(char *gname)
        WC->wc_floor = extract_int(&buf[4], 10);
        WC->wc_view = extract_int(&buf[4], 11);
        WC->wc_default_view = extract_int(&buf[4], 12);
+       WC->wc_is_trash = extract_int(&buf[4], 13);
 
        if (WC->is_aide)
                WC->is_room_aide = WC->is_aide;
@@ -865,7 +881,7 @@ void display_editroom(void)
 
        /* print the tabbed dialog */
        wprintf("<br />"
-               "<div id=\"fix_scrollbar_bug\">"
+               "<div class=\"fix_scrollbar_bug\">"
                "<TABLE border=0 cellspacing=0 cellpadding=0 width=100%%>"
                "<TR ALIGN=CENTER>"
                "<TD>&nbsp;</TD>\n");
@@ -970,7 +986,7 @@ void display_editroom(void)
        /* end tabbed dialog */ 
 
        /* begin content of whatever tab is open now */
-       wprintf("<div id=\"fix_scrollbar_bug\">"
+       wprintf("<div class=\"fix_scrollbar_bug\">"
                "<TABLE border=0 width=100%% bgcolor=\"#FFFFFF\">\n"
                "<TR><TD>\n");
 
@@ -1445,7 +1461,8 @@ void display_editroom(void)
                wprintf("<br />\n");
                wprintf("<INPUT TYPE=\"radio\" NAME=\"roompolicy\" VALUE=\"2\" %s>",
                        ((roompolicy == 2) ? "CHECKED" : "") );
-               wprintf("Expire by message count<br />\n");
+               wprintf(_("Expire by message count"));
+               wprintf("<br />\n");
                wprintf("<INPUT TYPE=\"radio\" NAME=\"roompolicy\" VALUE=\"3\" %s>",
                        ((roompolicy == 3) ? "CHECKED" : "") );
                wprintf(_("Expire by message age"));
@@ -1781,7 +1798,8 @@ void display_whok(void)
 
         wprintf("<CENTER><FORM METHOD=\"POST\" action=\"do_invt_kick\">\n");
        wprintf("<INPUT TYPE=\"hidden\" NAME=\"tab\" VALUE=\"access\">\n");
-        wprintf("Invite: ");
+        wprintf(_("Invite:"));
+       wprintf(" ");
         wprintf("<input type=\"text\" name=\"username\" style=\"width:100%%\"><br />\n"
                "<input type=\"hidden\" name=\"invite_button\" value=\"Invite\">"
                "<input type=\"submit\" value=\"%s\">"
@@ -1820,7 +1838,7 @@ void display_entroom(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>\n");
 
        wprintf("<form name=\"create_room_form\" method=\"POST\" action=\"entroom\">\n");
@@ -2029,7 +2047,7 @@ void display_private(char *rname, int req_pass)
                "</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>\n");
 
        wprintf("<CENTER>\n");
@@ -2521,6 +2539,12 @@ void do_rooms_view(struct folder *fold, int max_folders, int num_floors) {
 }
 
 
+void set_floordiv_expanded(char *which_floordiv) {
+       begin_ajax_response();
+       safestrncpy(WC->floordiv_expanded, which_floordiv, sizeof WC->floordiv_expanded);
+       end_ajax_response();
+}
+
 /*
  *
  */
@@ -2529,6 +2553,7 @@ void do_iconbar_view(struct folder *fold, int max_folders, int num_floors) {
        char floor_name[256];
        char old_floor_name[256];
        char floordivtitle[256];
+       char floordiv_id[32];
        int levels, oldlevels;
        int i, t;
        int num_drop_targets = 0;
@@ -2555,11 +2580,15 @@ void do_iconbar_view(struct folder *fold, int max_folders, int num_floors) {
 
                if (levels == 1) {
                        /* Begin floor */
-                       stresc(floordivtitle, floor_name, 1, 0);
+                       stresc(floordivtitle, floor_name, 0, 0);
+                       sprintf(floordiv_id, "floordiv%d", i);
                        wprintf("<span class=\"ib_roomlist_floor\" "
-                               "onClick=\"expand_floor('floordiv%d')\">"
-                               "%s</span><br>\n", i, floordivtitle);
-                       wprintf("<div id=\"floordiv%d\" style=\"display:none\">", i);
+                               "onClick=\"expand_floor('%s')\">"
+                               "%s</span><br>\n", floordiv_id, floordivtitle);
+                       wprintf("<div id=\"%s\" style=\"display:%s\">",
+                               floordiv_id,
+                               (!strcasecmp(floordiv_id, WC->floordiv_expanded) ? "block" : "none")
+                       );
                }
 
                oldlevels = levels;
@@ -2606,6 +2635,9 @@ void do_iconbar_view(struct folder *fold, int max_folders, int num_floors) {
                        }
                        extract_token(buf, fold[i].name, levels-1, '|', sizeof buf);
                        escputs(buf);
+                       if (!strcasecmp(fold[i].name, "My Folders|Mail")) {
+                               wprintf(" (INBOX)");
+                       }
                        wprintf("</SPAN>");
                        if (fold[i].selectable) {
                                wprintf("</A>");
@@ -2613,9 +2645,6 @@ void do_iconbar_view(struct folder *fold, int max_folders, int num_floors) {
                        else {
                                wprintf("</i>");
                        }
-                       if (!strcasecmp(fold[i].name, "My Folders|Mail")) {
-                               wprintf(" (INBOX)");
-                       }
                        wprintf("<br />");
                        wprintf("</div>\n");    /* roomdiv */
                }
@@ -2640,6 +2669,9 @@ void do_iconbar_view(struct folder *fold, int max_folders, int num_floors) {
        }
 
        wprintf("num_drop_targets = %d;\n", num_drop_targets);
+       if (strlen(WC->floordiv_expanded) > 1) {
+               wprintf("which_div_expanded = '%s';\n", WC->floordiv_expanded);
+       }
 
        wprintf("\">\n");
        /* END: The old invisible pixel trick, to get our JavaScript to initialize */
@@ -2813,13 +2845,13 @@ void knrooms() {
                "<SPAN CLASS=\"titlebar\">"
        );
        if (!strcasecmp(listviewpref, "rooms")) {
-               wprintf("Room list");
+               wprintf(_("Room list"));
        }
        if (!strcasecmp(listviewpref, "folders")) {
-               wprintf("Folder list");
+               wprintf(_("Folder list"));
        }
        if (!strcasecmp(listviewpref, "table")) {
-               wprintf("Room list");
+               wprintf(_("Room list"));
        }
        wprintf("</SPAN></TD>\n");