]> code.citadel.org Git - citadel.git/blobdiff - webcit/userlist.c
* Header file adjustments to make it work on FreeBSD
[citadel.git] / webcit / userlist.c
index 217c58bb744dd97bc58dc19e372ef75bfc5ff095..176a175ebf5175d86f5aa4c540cd0277d0a8c7c6 100644 (file)
@@ -38,42 +38,46 @@ void userlist(void)
 {
        char buf[SIZ];
        char fl[SIZ];
-       struct tm *tmbuf;
-       long lc;
+       struct tm tmbuf;
+       time_t lc;
        struct namelist *bio = NULL;
        struct namelist *bptr;
        int has_bio;
        int bg = 0;
 
        serv_puts("LBIO");
-       serv_gets(buf);
+       serv_getln(buf, sizeof buf);
        if (buf[0] == '1')
-               while (serv_gets(buf), strcmp(buf, "000")) {
+               while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
                        bptr = (struct namelist *) malloc(sizeof(struct namelist));
                        bptr->next = bio;
                        strcpy(bptr->name, buf);
                        bio = bptr;
                }
-       output_headers(1, 1, 0, 0, 0, 0, 0);
+       output_headers(1, 1, 2, 0, 0, 0, 0);
+       wprintf("<div id=\"banner\">\n"
+               "<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>"
+               "<SPAN CLASS=\"titlebar\">User list for ");
+       escputs(serv_info.serv_humannode);
+       wprintf("</SPAN>"
+               "</TD></TR></TABLE>\n"
+               "</div>\n<div id=\"content\">\n"
+       );
 
        serv_puts("LIST");
-       serv_gets(buf);
+       serv_getln(buf, sizeof buf);
        if (buf[0] != '1') {
                wprintf("<EM>%s</EM><br />\n", &buf[4]);
                goto DONE;
        }
 
-       svprintf("BOXTITLE", WCS_STRING, "User list for %s",
-                       serv_info.serv_humannode);
-
-       do_template("beginbox");
-       wprintf("<CENTER>");
-       wprintf("<TABLE border=0 width=100%%>");
+       wprintf("<div id=\"fix_scrollbar_bug\">"
+               "<table border=0 width=100%% bgcolor=\"#ffffff\"><tr><td>\n");
        wprintf("<TR><TH>User Name</TH><TH>Number</TH><TH>Access Level</TH>");
        wprintf("<TH>Last Login</TH><TH>Total Logins</TH><TH>Total Posts</TH></TR>\n");
 
-       while (serv_gets(buf), strcmp(buf, "000")) {
-               extract(fl, buf, 0);
+       while (serv_getln(buf, sizeof buf), strcmp(buf, "000")) {
+               extract_token(fl, buf, 0, '|', sizeof fl);
                has_bio = 0;
                for (bptr = bio; bptr != NULL; bptr = bptr->next) {
                        if (!strcasecmp(fl, bptr->name))
@@ -96,20 +100,18 @@ void userlist(void)
                        extract_long(buf, 2),
                        extract_int(buf, 1));
                lc = extract_long(buf, 3);
-               tmbuf = (struct tm *) localtime(&lc);
+               localtime_r(&lc, &tmbuf);
                wprintf("%02d/%02d/%04d ",
-                       (tmbuf->tm_mon + 1),
-                       tmbuf->tm_mday,
-                       (tmbuf->tm_year + 1900));
+                       (tmbuf.tm_mon + 1),
+                       tmbuf.tm_mday,
+                       (tmbuf.tm_year + 1900));
 
 
                wprintf("</TD><TD>%ld</TD><TD>%5ld</TD></TR>\n",
                        extract_long(buf, 4), extract_long(buf, 5));
 
        }
-       wprintf("</TABLE>");
-       wprintf("</CENTER>\n");
-       do_template("endbox");
+       wprintf("</table></div>\n");
 DONE:  wDumpContent(1);
 }
 
@@ -123,18 +125,25 @@ void showuser(void)
        char buf[SIZ];
        int have_pic;
 
-       output_headers(1, 1, 0, 0, 0, 0, 0);
+       strcpy(who, bstr("who"));
+
+       output_headers(1, 1, 2, 0, 0, 0, 0);
+       wprintf("<div id=\"banner\">\n"
+               "<TABLE WIDTH=100%% BORDER=0 BGCOLOR=\"#444455\"><TR><TD>"
+               "<SPAN CLASS=\"titlebar\">User profile</SPAN>"
+               "</TD></TR></TABLE>\n"
+               "</div>\n<div id=\"content\">\n"
+       );
 
-       svprintf("BOXTITLE", WCS_STRING, "User profile");
-       do_template("beginbox");
+       wprintf("<div id=\"fix_scrollbar_bug\">"
+               "<table border=0 width=100%% bgcolor=\"#ffffff\"><tr><td>\n");
 
-       strcpy(who, bstr("who"));
        serv_printf("OIMG _userpic_|%s", who);
-       serv_gets(buf);
+       serv_getln(buf, sizeof buf);
        if (buf[0] == '2') {
                have_pic = 1;
                serv_puts("CLOS");
-               serv_gets(buf);
+               serv_getln(buf, sizeof buf);
        } else {
                have_pic = 0;
        }
@@ -147,18 +156,19 @@ void showuser(void)
        }
        wprintf("</TD><TD><H1>%s</H1></TD></TR></TABLE></CENTER>\n", who);
        serv_printf("RBIO %s", who);
-       serv_gets(buf);
+       serv_getln(buf, sizeof buf);
        if (buf[0] == '1') {
                fmout(NULL, "JUSTIFY");
        }
-       wprintf("<br /><A HREF=\"/display_page&recp=");
+       wprintf("<br /><A HREF=\"/display_page?recp=");
        urlescputs(who);
        wprintf("\">"
                "<IMG SRC=\"/static/page.gif\" ALIGN=MIDDLE BORDER=0>"
                "&nbsp;&nbsp;"
-               "Click here to page this user (send an instant message)"
-               "</A>\n");
+               "Click here to send an instant message to ");
+       escputs(who);
+       wprintf("</A>\n");
 
-       do_template("endbox");
+       wprintf("</td></tr></table></div>\n");
        wDumpContent(1);
 }