From: Art Cancro Date: Wed, 22 May 2002 02:34:57 +0000 (+0000) Subject: * Finished room/folder view selector. Pretty cool. X-Git-Tag: v7.86~6393 X-Git-Url: https://code.citadel.org/?a=commitdiff_plain;h=f7c533d6e308f0f66688244d417286ee10644c31;p=citadel.git * Finished room/folder view selector. Pretty cool. --- diff --git a/webcit/ChangeLog b/webcit/ChangeLog index 081e22902..0a2eb9c71 100644 --- a/webcit/ChangeLog +++ b/webcit/ChangeLog @@ -1,4 +1,7 @@ $Log$ +Revision 323.37 2002/05/22 02:34:56 ajc +* Finished room/folder view selector. Pretty cool. + Revision 323.36 2002/05/22 01:53:23 ajc * Room list or folder list? Give the user a choice. (Has bugs.) @@ -825,4 +828,3 @@ Sun Dec 6 19:50:55 EST 1998 Art Cancro 1998-12-03 Nathan Bryant * webserver.c: warning fix - diff --git a/webcit/preferences.c b/webcit/preferences.c index 71d61cc77..c3f23f1c1 100644 --- a/webcit/preferences.c +++ b/webcit/preferences.c @@ -26,6 +26,7 @@ #include #include #include "webcit.h" +#include "webserver.h" @@ -33,6 +34,8 @@ void load_preferences(void) { char buf[SIZ]; long msgnum = 0L; + lprintf(9, "entering load_preferences()\n"); + serv_printf("GOTO My Citadel Config"); serv_gets(buf); if (buf[0] != '2') return; @@ -77,12 +80,14 @@ void load_preferences(void) { /* Go back to the room we're supposed to be in */ serv_printf("GOTO %s", WC->wc_roomname); serv_gets(buf); + lprintf(9, "exiting load_preferences()\n"); } void save_preferences(void) { char buf[SIZ]; long msgnum = 0L; + lprintf(9, "entering save_preferences()\n"); serv_printf("GOTO My Citadel Config"); serv_gets(buf); if (buf[0] != '2') { /* try to create the config room if not there */ @@ -119,6 +124,7 @@ void save_preferences(void) { /* Go back to the room we're supposed to be in */ serv_printf("GOTO %s", WC->wc_roomname); serv_gets(buf); + lprintf(9, "exiting save_preferences()\n"); } void get_preference(char *key, char *value) { @@ -127,6 +133,7 @@ void get_preference(char *key, char *value) { char buf[SIZ]; char thiskey[SIZ]; + lprintf(9, "entering get_preference(%s)\n", key); strcpy(value, ""); num_prefs = num_tokens(WC->preferences, '\n'); @@ -137,6 +144,7 @@ void get_preference(char *key, char *value) { extract_token(value, buf, 1, '|'); } } + lprintf(9, "exiting get_preference() = %s\n", value); } void set_preference(char *key, char *value) { @@ -146,28 +154,30 @@ void set_preference(char *key, char *value) { char thiskey[SIZ]; char *newprefs = NULL; + lprintf(9, "entering set_preference(%s, %s)\n", key, value); num_prefs = num_tokens(WC->preferences, '\n'); for (i=0; ipreferences, i, '\n'); - extract_token(thiskey, buf, 0, '|'); - if (strcasecmp(thiskey, key)) { - if (newprefs == NULL) newprefs = strdup(""); - else { + if (num_tokens(buf, '|') == 2) { + extract_token(thiskey, buf, 0, '|'); + if (strcasecmp(thiskey, key)) { + if (newprefs == NULL) newprefs = strdup(""); newprefs = realloc(newprefs, - strlen(newprefs) + SIZ ); + strlen(newprefs) + SIZ ); + strcat(newprefs, buf); + strcat(newprefs, "\n"); } - strcat(newprefs, buf); - strcat(newprefs, "\n"); } } if (newprefs == NULL) newprefs = strdup(""); - else { - newprefs = realloc(newprefs, - strlen(newprefs) + SIZ ); - } + newprefs = realloc(newprefs, strlen(newprefs) + SIZ); sprintf(&newprefs[strlen(newprefs)], "%s|%s\n", key, value); + free(WC->preferences); + WC->preferences = newprefs; + save_preferences(); + lprintf(9, "exiting set_preference()\n"); } diff --git a/webcit/roomops.c b/webcit/roomops.c index 65dc7d2aa..8896b9499 100644 --- a/webcit/roomops.c +++ b/webcit/roomops.c @@ -1665,12 +1665,6 @@ void folders(void) { int floor; int nests = 0; - wprintf("
" - "Folder list\n" - "

\n" - ); - /* Start with the mailboxes */ max_folders = 1; alloc_folders = 1; @@ -1779,23 +1773,37 @@ void folders(void) { void knrooms() { char listviewpref[SIZ]; + output_headers(3); load_floorlist(); - output_headers(1); /* Determine whether the user is trying to change views */ - strcpy(listviewpref, "rooms"); if (bstr("view") != NULL) { - set_preference("roomlistview", bstr("view")); + if (strlen(bstr("view")) > 0) { + set_preference("roomlistview", bstr("view")); + } } get_preference("roomlistview", listviewpref); - if (!strcasecmp(listviewpref, "folders")) { + if (strcasecmp(listviewpref, "folders")) { strcpy(listviewpref, "rooms"); } + /* title bar */ + wprintf("\n"); + + /* offer the ability to switch views */ - wprintf("\n" + wprintf("\n" + "
" + "" + ); + if (!strcasecmp(listviewpref, "rooms")) { + wprintf("Room list"); + } + if (!strcasecmp(listviewpref, "folders")) { + wprintf("Folder list"); + } + wprintf("
\n" "\n"); + wprintf("

\n"); /* Display the room list in the user's preferred format */ if (!strcasecmp(listviewpref, "folders")) {