* Completed web screens for THE DREADED AUTO-PURGER by adding room and
authorArt Cancro <ajc@citadel.org>
Sat, 10 Jul 2004 03:10:20 +0000 (03:10 +0000)
committerArt Cancro <ajc@citadel.org>
Sat, 10 Jul 2004 03:10:20 +0000 (03:10 +0000)
  floor level configurations.
* Put a space between OK and CANCEL buttons anywhere in the system where
  there wasn't one.
* Some more of the room config/admin screens now return to themselves
  with a "ok, you did that" message when OK is pressed, instead of dropping
  out to the main menu.

webcit/ChangeLog
webcit/graphics.c
webcit/mainmenu.c
webcit/messages.c
webcit/netconf.c
webcit/roomops.c
webcit/siteconfig.c
webcit/sysmsgs.c
webcit/useredit.c
webcit/webcit.c
webcit/webcit.h

index 24f2b0035b62e2e62d927da865a4319d00666d34..7dda9619a66af18a2dbd9a13a6daebdcfae87f47 100644 (file)
@@ -1,4 +1,13 @@
 $Log$
+Revision 522.12  2004/07/10 03:10:19  ajc
+* Completed web screens for THE DREADED AUTO-PURGER by adding room and
+  floor level configurations.
+* Put a space between OK and CANCEL buttons anywhere in the system where
+  there wasn't one.
+* Some more of the room config/admin screens now return to themselves
+  with a "ok, you did that" message when OK is pressed, instead of dropping
+  out to the main menu.
+
 Revision 522.11  2004/07/08 03:03:01  ajc
 * Added global settings for THE DREADED AUTO-PURGER to the site-wide
   configuration (public rooms default and mailboxes default).  Still need
@@ -1959,4 +1968,3 @@ Sun Dec  6 19:50:55 EST 1998 Art Cancro <ajc@uncnsrd.mt-kisco.ny.us>
 
 1998-12-03 Nathan Bryant <bryant@cs.usm.maine.edu>
        * webserver.c: warning fix
-
index 3cfb9533cb630d6250eca351524001886b5248cb..e6897f1b938745d65b99ddf0b758d48859269846 100644 (file)
@@ -53,7 +53,9 @@ void display_graphics_upload(char *description, char *check_cmd, char *uplurl)
        wprintf("<INPUT TYPE=\"FILE\" NAME=\"filename\" SIZE=\"35\">\n");
        wprintf("<BR><BR>");
        wprintf("<INPUT TYPE=\"SUBMIT\" NAME=\"sc\" VALUE=\"Upload\">\n");
+       wprintf("&nbsp;");
        wprintf("<INPUT TYPE=\"RESET\" VALUE=\"Reset Form\">\n");
+       wprintf("&nbsp;");
        wprintf("<INPUT TYPE=\"SUBMIT\" NAME=\"sc\" VALUE=\"Cancel\">\n");
        wprintf("</FORM>\n");
        wprintf("</CENTER>\n");
index 18eca1afb38df1347bb651951ed9d1fa4d93926f..077d608d1dd049378eb54ac5150757736451940b 100644 (file)
@@ -287,6 +287,7 @@ void display_generic(void)
        wprintf("<FONT SIZE=-2>Detected host header is http://%s</FONT>\n",
                WC->http_host);
        wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Send command\">");
+       wprintf("&nbsp;");
        wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\"><BR>\n");
 
        wprintf("</FORM></CENTER>\n");
index 5fdec2ed28acc9f363c441533778f48ef3bd8062..c9e0c5588aa1d0ec15c83ca6fb58a97f06bbcaea 100644 (file)
@@ -1599,6 +1599,7 @@ void display_enter(void)
        );
 
        wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Save message\">"
+               "&nbsp;"
                "<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\"><BR>\n");
 
        wprintf("<SCRIPT language=\"JavaScript\" type=\"text/javascript\" "
@@ -1716,6 +1717,7 @@ void confirm_move_msg(void)
        wprintf("<BR>\n");
 
        wprintf("<INPUT TYPE=\"submit\" NAME=\"yesno\" VALUE=\"Move\">");
+       wprintf("&nbsp;");
        wprintf("<INPUT TYPE=\"submit\" NAME=\"yesno\" VALUE=\"Cancel\">");
        wprintf("</FORM></CENTER>\n");
 
index 1ee398d00818c7a66d8aeca2cb44178fcd3052bc..0f5e017e1cdb783d9334f8f2323704620b732c8a 100644 (file)
@@ -93,6 +93,7 @@ void display_add_node(void)
        wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\"></TD></TR>\n");
        wprintf("</TABLE><BR>");
                wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
+       wprintf("&nbsp;");
                wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
        wprintf("</CENTER></FORM>\n");
 
@@ -139,6 +140,7 @@ void display_edit_node(void)
                                wprintf("<TD><INPUT TYPE=\"text\" NAME=\"port\" MAXLENGTH=\"8\" VALUE=\"%s\"></TD></TR>\n", cport);
                                wprintf("</TABLE><BR>");
                                wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
+                               wprintf("&nbsp;");
                                wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
                                wprintf("</CENTER></FORM>\n");
                        }
index ca54c049282cda1bfebc603c1afef1d0fae05f3f..695fa48c982f03298f84d2dd071acc7081166dca 100644 (file)
@@ -416,6 +416,9 @@ void gotoroom(char *gname, int display_name)
           maxmsgnum = extract_int(&buf[4],5);
           is_mail = (char) extract_int(&buf[4],7); */
        ls = extract_long(&buf[4], 6);
+       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);
 
        if (WC->is_aide)
                WC->is_room_aide = WC->is_aide;
@@ -431,9 +434,6 @@ void gotoroom(char *gname, int display_name)
                embed_room_banner(buf);
                wDumpContent(1);
        }
-       strcpy(WC->wc_roomname, WC->wc_roomname);
-       WC->wc_view = extract_int(&buf[4], 11);
-       WC->wc_default_view = extract_int(&buf[4], 12);
 }
 
 
@@ -678,10 +678,15 @@ void display_editroom(void)
        char *tab;
        char *shared_with;
        char *not_shared_with;
+       int roompolicy = 0;
+       int roomvalue = 0;
+       int floorpolicy = 0;
+       int floorvalue = 0;
 
        tab = bstr("tab");
        if (strlen(tab) == 0) tab = "admin";
 
+       load_floorlist();
        serv_puts("GETR");
        serv_gets(buf);
 
@@ -735,6 +740,22 @@ void display_editroom(void)
 
        wprintf("<TD>&nbsp;</TD>\n");
 
+       if (!strcmp(tab, "expire")) {
+               wprintf("<TD BGCOLOR=\"#FFFFFF\"><SPAN CLASS=\"tablabel\">");
+       }
+       else {
+               wprintf("<TD BGCOLOR=\"#CCCCCC\"><A HREF=\"/display_editroom&tab=expire\">");
+       }
+       wprintf("Message expire policy");
+       if (!strcmp(tab, "expire")) {
+               wprintf("</SPAN></TD>\n");
+       }
+       else {
+               wprintf("</A></TD>\n");
+       }
+
+       wprintf("<TD>&nbsp;</TD>\n");
+
        if (!strcmp(tab, "sharing")) {
                wprintf("<TD BGCOLOR=\"#FFFFFF\"><SPAN CLASS=\"tablabel\">");
        }
@@ -792,7 +813,6 @@ void display_editroom(void)
                wprintf("<INPUT TYPE=\"text\" NAME=\"er_name\" VALUE=\"%s\" MAXLENGTH=\"19\">\n", er_name);
        
                wprintf("<LI>Resides on floor: ");
-               load_floorlist();
                wprintf("<SELECT NAME=\"er_floor\" SIZE=\"1\">\n");
                for (i = 0; i < 128; ++i)
                        if (strlen(floorlist[i]) > 0) {
@@ -916,9 +936,12 @@ void display_editroom(void)
                }
        
                wprintf("</UL><CENTER>\n");
-               wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
-               wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
-               wprintf("</CENTER>\n");
+               wprintf("<INPUT TYPE=\"hidden\" NAME=\"tab\" VALUE=\"config\">\n"
+                       "<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">"
+                       "&nbsp;"
+                       "<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">"
+                       "</CENTER>\n"
+               );
        }
 
 
@@ -1093,6 +1116,82 @@ void display_editroom(void)
                wprintf("</CENTER>\n");
        }
 
+
+       /* Mailing list management */
+       if (!strcmp(tab, "expire")) {
+
+               serv_puts("GPEX room");
+               serv_gets(buf);
+               if (buf[0] == '2') {
+                       roompolicy = extract_int(&buf[4], 0);
+                       roomvalue = extract_int(&buf[4], 1);
+               }
+               
+               serv_puts("GPEX floor");
+               serv_gets(buf);
+               if (buf[0] == '2') {
+                       floorpolicy = extract_int(&buf[4], 0);
+                       floorvalue = extract_int(&buf[4], 1);
+               }
+               
+               wprintf("<BR><FORM METHOD=\"POST\" ACTION=\"/set_room_policy\">\n");
+               wprintf("<TABLE border=0 cellspacing=5>\n");
+               wprintf("<TR><TD>Message expire policy for this room<BR>(");
+               escputs(WC->wc_roomname);
+               wprintf(")</TD><TD>");
+               wprintf("<INPUT TYPE=\"radio\" NAME=\"roompolicy\" VALUE=\"0\" %s>",
+                       ((roompolicy == 0) ? "CHECKED" : "") );
+               wprintf("Use the default policy for this floor<BR>\n");
+               wprintf("<INPUT TYPE=\"radio\" NAME=\"roompolicy\" VALUE=\"1\" %s>",
+                       ((roompolicy == 1) ? "CHECKED" : "") );
+               wprintf("Never automatically expire messages<BR>\n");
+               wprintf("<INPUT TYPE=\"radio\" NAME=\"roompolicy\" VALUE=\"2\" %s>",
+                       ((roompolicy == 2) ? "CHECKED" : "") );
+               wprintf("Expire by message count<BR>\n");
+               wprintf("<INPUT TYPE=\"radio\" NAME=\"roompolicy\" VALUE=\"3\" %s>",
+                       ((roompolicy == 3) ? "CHECKED" : "") );
+               wprintf("Expire by message age<BR>");
+               wprintf("Number of messages or days: ");
+               wprintf("<INPUT TYPE=\"text\" NAME=\"roomvalue\" MAXLENGTH=\"5\" VALUE=\"%d\">", roomvalue);
+               wprintf("</TD></TR>\n");
+
+               if (WC->axlevel >= 6) {
+                       wprintf("<TR><TD COLSPAN=2><HR></TD></TR>\n");
+                       wprintf("<TR><TD>Message expire policy for this floor<BR>(");
+                       escputs(floorlist[WC->wc_floor]);
+                       wprintf(")</TD><TD>");
+                       wprintf("<INPUT TYPE=\"radio\" NAME=\"floorpolicy\" VALUE=\"0\" %s>",
+                               ((floorpolicy == 0) ? "CHECKED" : "") );
+                       wprintf("Use the system default<BR>\n");
+                       wprintf("<INPUT TYPE=\"radio\" NAME=\"floorpolicy\" VALUE=\"1\" %s>",
+                               ((floorpolicy == 1) ? "CHECKED" : "") );
+                       wprintf("Never automatically expire messages<BR>\n");
+                       wprintf("<INPUT TYPE=\"radio\" NAME=\"floorpolicy\" VALUE=\"2\" %s>",
+                               ((floorpolicy == 2) ? "CHECKED" : "") );
+                       wprintf("Expire by message count<BR>\n");
+                       wprintf("<INPUT TYPE=\"radio\" NAME=\"floorpolicy\" VALUE=\"3\" %s>",
+                               ((floorpolicy == 3) ? "CHECKED" : "") );
+                       wprintf("Expire by message age<BR>");
+                       wprintf("Number of messages or days: ");
+                       wprintf("<INPUT TYPE=\"text\" NAME=\"floorvalue\" MAXLENGTH=\"5\" VALUE=\"%d\">",
+                               floorvalue);
+               }
+
+               wprintf("<CENTER>\n");
+               wprintf("<TR><TD COLSPAN=2><HR><CENTER>\n");
+               wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
+               wprintf("&nbsp;");
+               wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
+               wprintf("</CENTER></TD><TR>\n");
+
+               wprintf("</TABLE>\n"
+                       "<INPUT TYPE=\"hidden\" NAME=\"tab\" VALUE=\"expire\">\n"
+                       "</FORM>\n"
+               );
+
+       }
+
+
        /* end content of whatever tab is open now */
        wprintf("</TD></TR></TABLE>\n");
 
@@ -1131,7 +1230,7 @@ void editroom(void)
        if (strcmp(bstr("sc"), "OK")) {
                strcpy(WC->ImportantMessage,
                        "Cancelled.  Changes were not saved.");
-               display_main_menu();
+               display_editroom();
                return;
        }
        serv_puts("GETR");
@@ -1139,7 +1238,7 @@ void editroom(void)
 
        if (buf[0] != '2') {
                strcpy(WC->ImportantMessage, &buf[4]);
-               display_main_menu();
+               display_editroom();
                return;
        }
        extract(er_name, &buf[4], 0);
@@ -1252,7 +1351,7 @@ void editroom(void)
        serv_gets(buf);
        if (buf[0] != '2') {
                strcpy(WC->ImportantMessage, &buf[4]);
-               display_main_menu();
+               display_editroom();
                return;
        }
        gotoroom(er_name, 0);
@@ -1268,7 +1367,8 @@ void editroom(void)
                }
        }
        gotoroom(er_name, 0);
-       display_main_menu();
+       strcpy(WC->ImportantMessage, "Your changes have been saved.");
+       display_editroom();
        return;
 }
 
@@ -1430,6 +1530,7 @@ void display_entroom(void)
 
        wprintf("<CENTER>\n");
        wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
+       wprintf("&nbsp;");
        wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
        wprintf("</CENTER>\n");
        wprintf("</FORM>\n<HR>");
@@ -1624,6 +1725,7 @@ void display_zap(void)
 
        wprintf("<FORM METHOD=\"GET\" ACTION=\"/zap\">\n");
        wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
+       wprintf("&nbsp;");
        wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">");
        wprintf("</FORM>\n");
        wDumpContent(1);
@@ -2159,3 +2261,32 @@ void knrooms() {
        /* Display the room list in the user's preferred format */
        list_all_rooms_by_floor(listviewpref);
 }
+
+
+
+/* 
+ * Set the message expire policy for this room and/or floor
+ */
+void set_room_policy(void) {
+       char buf[SIZ];
+
+       if (strcmp(bstr("sc"), "OK")) {
+               strcpy(WC->ImportantMessage,
+                       "Cancelled.  Changes were not saved.");
+               display_editroom();
+               return;
+       }
+
+       serv_printf("SPEX room|%d|%d", atoi(bstr("roompolicy")), atoi(bstr("roomvalue")));
+       serv_gets(buf);
+       strcpy(WC->ImportantMessage, &buf[4]);
+
+       if (WC->axlevel >= 6) {
+               strcat(WC->ImportantMessage, "<BR>\n");
+               serv_printf("SPEX floor|%d|%d", atoi(bstr("floorpolicy")), atoi(bstr("floorvalue")));
+               serv_gets(buf);
+               strcat(WC->ImportantMessage, &buf[4]);
+       }
+
+       display_editroom();
+}
index a2ac49c1a01964f7106de2c2c2ba2bf4a5aa6b9b..ca7def936e85d79a603ed0d41b9a052a7c4c41b9 100644 (file)
@@ -614,6 +614,7 @@ void display_siteconfig(void)
 
        wprintf("</TABLE><CENTER>");
        wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"OK\">");
+       wprintf("&nbsp;");
        wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\">\n");
        wprintf("</CENTER></FORM>\n");
        do_template("endbox");
index d4b6545d444a8300aea2d52f37acf6623cc338f3..0aa9e75f9d3d4901a07bb2aa948a03a8fb7235d8 100644 (file)
@@ -63,6 +63,7 @@ void display_edit(char *description, char *check_cmd,
                server_to_text();
        wprintf("</TEXTAREA><BR><BR>\n");
        wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Save\">");
+       wprintf("&nbsp;");
        wprintf("<INPUT TYPE=\"submit\" NAME=\"sc\" VALUE=\"Cancel\"><BR>\n");
 
        wprintf("</FORM></CENTER>\n");
index fd1a14a443dc7bad5195ef22e92958aa285d0c34..5b9fa9c7c8a71add75bcb45ca3c0d570ba438ea0 100644 (file)
@@ -336,6 +336,7 @@ void display_edituser(char *supplied_username, int is_new) {
        wprintf("</TABLE>\n");
 
        wprintf("<INPUT type=\"submit\" NAME=\"action\" VALUE=\"OK\">\n"
+               "&nbsp;"
                "<INPUT type=\"submit\" NAME=\"action\" VALUE=\"Cancel\">\n"
                "<BR><BR></FORM>\n");
 
index 6eb0b2914908aa350e6cf911aee2160fd29f847e..8ef2603537565cc4b77334cc44dfcace75636ca5 100644 (file)
@@ -1266,6 +1266,8 @@ void session_loop(struct httprequest *req)
                display_customize_iconbar();
        } else if (!strcasecmp(action, "commit_iconbar")) {
                commit_iconbar();
+       } else if (!strcasecmp(action, "set_room_policy")) {
+               set_room_policy();
        } else if (!strcasecmp(action, "diagnostics")) {
                output_headers(1);
 
index 24c32081125825daea1b8dc8067e8bb620efc607..1a14a12ef842e88a595edb485e53f94f9e7228cd 100644 (file)
@@ -193,6 +193,7 @@ struct wcsession {
        unsigned room_flags;
        int wc_view;
        int wc_default_view;
+       int wc_floor;
        char ugname[128];
        long uglsn;
        int upload_length;
@@ -420,6 +421,7 @@ int load_msg_ptrs(char *servcmd);
 void CtdlEncodeBase64(char *dest, const char *source, size_t sourcelen);
 int CtdlDecodeBase64(char *dest, const char *source, size_t length);
 void free_attachments(struct wcsession *sess);
+void set_room_policy(void);
 
 
 #ifdef WEBCIT_WITH_CALENDAR_SERVICE