* When editing another user's vCard, do a "transient goto" to their config
authorArt Cancro <ajc@citadel.org>
Wed, 19 Jun 2002 22:01:31 +0000 (22:01 +0000)
committerArt Cancro <ajc@citadel.org>
Wed, 19 Jun 2002 22:01:31 +0000 (22:01 +0000)
  room so you don't automatically gain access to their config room.
* When creating a user, go back to the "select user to edit" screen with the
  new user's account name pre-selected.

webcit/ChangeLog
webcit/preferences.c
webcit/useredit.c
webcit/vcard_edit.c
webcit/webcit.c
webcit/webcit.h

index 47bb566f458d5133a44c9d81b4f29b8989673d01..3cccdd1f37220341c7384f731319e323acc8db35 100644 (file)
@@ -1,4 +1,10 @@
 $Log$
+Revision 323.42  2002/06/19 22:01:31  ajc
+* When editing another user's vCard, do a "transient goto" to their config
+  room so you don't automatically gain access to their config room.
+* When creating a user, go back to the "select user to edit" screen with the
+  new user's account name pre-selected.
+
 Revision 323.41  2002/06/17 03:48:44  ajc
 * Finished the thing to edit other users' vCards.
 
@@ -842,3 +848,4 @@ 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 c3f23f1c182e9231463ea7692f856be2bf31559e..916f55824c1686855618d93309cf75407576a5f1 100644 (file)
@@ -36,7 +36,7 @@ void load_preferences(void) {
 
        lprintf(9, "entering load_preferences()\n");
 
-       serv_printf("GOTO My Citadel Config");
+       serv_printf("GOTO %s", USERCONFIGROOM);
        serv_gets(buf);
        if (buf[0] != '2') return;
        
@@ -88,12 +88,12 @@ void save_preferences(void) {
        long msgnum = 0L;
 
        lprintf(9, "entering save_preferences()\n");
-       serv_printf("GOTO My Citadel Config");
+       serv_printf("GOTO %s", USERCONFIGROOM);
        serv_gets(buf);
        if (buf[0] != '2') { /* try to create the config room if not there */
-               serv_printf("CRE8 1|My Citadel Config|4|0");
+               serv_printf("CRE8 1|%s|4|0", USERCONFIGROOM);
                serv_gets(buf);
-               serv_printf("GOTO My Citadel Config");
+               serv_printf("GOTO %s", USERCONFIGROOM);
                serv_gets(buf);
                if (buf[0] != '2') return;      /* oh well. */
        }
index 540999254e5f75ed6a9259abceb2b8843b57f557..0460848b6a5ef97abbdcea4d8e30b2bee3fcb822 100644 (file)
@@ -30,7 +30,7 @@
 
 
 
-void select_user_to_edit(char *message)
+void select_user_to_edit(char *message, char *preselect)
 {
        char buf[SIZ];
        char username[SIZ];
@@ -55,7 +55,11 @@ void select_user_to_edit(char *message)
         if (buf[0] == '1') {
                 while (serv_gets(buf), strcmp(buf, "000")) {
                         extract(username, buf, 0);
-                        wprintf("<OPTION>");
+                        wprintf("<OPTION");
+                       if (preselect != NULL)
+                          if (!strcasecmp(username, preselect))
+                             wprintf(" SELECTED");
+                       wprintf(">");
                         escputs(username);
                         wprintf("\n");
                 }
@@ -105,19 +109,19 @@ void display_edit_address_book_entry(char *username, long usernum) {
 
 
        /* Locate the user's config room, creating it if necessary */
-       sprintf(roomname, "%010ld.My Citadel Config", usernum);
-       serv_printf("GOTO %s", roomname);
+       sprintf(roomname, "%010ld.%s", usernum, USERCONFIGROOM);
+       serv_printf("GOTO %s||1", roomname);
        serv_gets(buf);
        if (buf[0] != '2') {
-               serv_printf("CRE8 1|%s|5|", roomname);
+               serv_printf("CRE8 1|%s|5|||1|", roomname);
                serv_gets(buf);
-               serv_printf("GOTO %s", roomname);
+               serv_printf("GOTO %s||1", roomname);
                serv_gets(buf);
                if (buf[0] != '2') {
                        sprintf(error_message,
                                "<IMG SRC=\"static/error.gif\" VALIGN=CENTER>"
                                "%s<BR><BR>\n", &buf[4]);
-                       select_user_to_edit(error_message);
+                       select_user_to_edit(error_message, username);
                        return;
                }
        }
@@ -176,7 +180,7 @@ TRYAGAIN:
                sprintf(error_message,
                        "<IMG SRC=\"static/error.gif\" VALIGN=CENTER>"
                        "Could not create/edit vCard<BR><BR>\n");
-               select_user_to_edit(error_message);
+               select_user_to_edit(error_message, username);
                return;
        }
 
@@ -219,7 +223,7 @@ void display_edituser(char *supplied_username) {
                sprintf(error_message,
                        "<IMG SRC=\"static/error.gif\" VALIGN=CENTER>"
                        "%s<BR><BR>\n", &buf[4]);
-               select_user_to_edit(error_message);
+               select_user_to_edit(error_message, username);
                return;
        }
 
@@ -311,13 +315,7 @@ void display_edituser(char *supplied_username) {
                "<INPUT type=\"submit\" NAME=\"action\" VALUE=\"Cancel\">\n"
                "<BR><BR></FORM>\n");
 
-       wprintf("<A HREF=\"/dotgoto&room=%010ld.My%%20Citadel%%20Config\">",
-               usernum);
-       wprintf("Click here to access the configuration room for ");
-       escputs(username);
-       wprintf("</A><BR>\n"
-               "(Contact information, Internet e-mail addresses, etc.)<BR>"
-               "</CENTER>\n");
+       wprintf("</CENTER>\n");
 
        wDumpContent(1);
 
@@ -357,7 +355,7 @@ void edituser(void) {
                }
        }
 
-       select_user_to_edit(message);
+       select_user_to_edit(message, bstr("username"));
 }
 
 
@@ -374,13 +372,14 @@ void create_user(void) {
        serv_gets(buf);
 
        if (buf[0] == '2') {
-               display_edituser(username);
+               sprintf(error_message, "<b>User has been created.</b>");
+               select_user_to_edit(error_message, username);
        }
        else {
                sprintf(error_message,
                        "<IMG SRC=\"static/error.gif\" VALIGN=CENTER>"
                        "%s<BR><BR>\n", &buf[4]);
-               select_user_to_edit(error_message);
+               select_user_to_edit(error_message, NULL);
        }
 
 }
index 1c156cce461e5ac82f252508ab51ebb81479db6f..f1b6b201da5e8e8dfe8c75a07c10767f9fe4f90c 100644 (file)
@@ -335,7 +335,7 @@ void submit_vcard(void) {
        serv_puts("000");
 
        if (!strcmp(bstr("return_to"), "/select_user_to_edit")) {
-               select_user_to_edit(NULL);
+               select_user_to_edit(NULL, NULL);
        }
        else {
                readloop("readnew");
index fb222755cbb6b33d30d705b101c124a3486e421e..c20a98b07aa9f0fe85ccab26b13bb9a14f247eb1 100644 (file)
@@ -1053,7 +1053,7 @@ void session_loop(struct httprequest *req)
        } else if (!strcasecmp(action, "submit_vcard")) {
                submit_vcard();
        } else if (!strcasecmp(action, "select_user_to_edit")) {
-               select_user_to_edit(NULL);
+               select_user_to_edit(NULL, NULL);
        } else if (!strcasecmp(action, "display_edituser")) {
                display_edituser(NULL);
        } else if (!strcasecmp(action, "edituser")) {
index b462c3c86ea3850f8cb4d7e3fbac8088b5b905ff..0fcbdee32ee1d41a58b38873d6cad0d8c7f95a1f 100644 (file)
@@ -296,7 +296,7 @@ void do_edit_vcard(long, char *, char *);
 void edit_vcard(void);
 void submit_vcard(void);
 void striplt(char *);
-void select_user_to_edit(char *message);
+void select_user_to_edit(char *message, char *preselect);
 void display_edituser(char *who);
 void create_user(void);
 void edituser(void);