X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fpreferences.c;h=1c51b9844c164f55d8641496777be39cf7f621ef;hb=fc6832083dc3c224c955853a827a9151b19c2d12;hp=eab5f8cdd639bdec7c54370263e7139301807841;hpb=0da9ad1ea67516356d0fdc1f5ae3e06cee96f373;p=citadel.git diff --git a/webcit/preferences.c b/webcit/preferences.c index eab5f8cdd..1c51b9844 100644 --- a/webcit/preferences.c +++ b/webcit/preferences.c @@ -150,7 +150,7 @@ void get_preference(char *key, char *value, size_t value_len) { } } -void set_preference(char *key, char *value) { +void set_preference(char *key, char *value, int save_to_server) { int num_prefs; int i; char buf[SIZ]; @@ -180,5 +180,100 @@ void set_preference(char *key, char *value) { free(WC->preferences); WC->preferences = newprefs; - save_preferences(); + if (save_to_server) save_preferences(); +} + + + + +/* + * display form for changing your preferences and settings + */ +void display_preferences(void) +{ + output_headers(1, 1, 2, 0, 0, 0, 0); + char buf[256]; + + wprintf("
\n"); + wprintf("
"); + wprintf("\""); + wprintf(" Preferences and settings"); + wprintf(""); + offer_start_page(); + wprintf("
\n"); + wprintf("
\n" + "
\n"); + + wprintf("
" + "
\n"); + + /* begin form */ + wprintf("
\n" + "
\n" + "\n"); + + + get_preference("roomlistview", buf, sizeof buf); + wprintf("\n"); + + + get_preference("calhourformat", buf, sizeof buf); + if (buf[0] == 0) strcpy(buf, "12"); + wprintf("\n"); + + wprintf("
Room list view"); + + wprintf("Tree (folders) view
\n"); + + wprintf("Table (rooms) view
\n"); + + wprintf("
Calendar hour format"); + + wprintf("12 hour (am/pm)
\n"); + + wprintf("24 hour
\n"); + + wprintf("
\n" + "" + " " + "\n"); + + wprintf("
\n"); + + /* end form */ + + + wprintf("
\n"); + wDumpContent(1); +} + +/* + * Commit new preferences and settings + */ +void set_preferences(void) +{ + if (strcmp(bstr("action"), "Change")) { + safestrncpy(WC->ImportantMessage, + "Cancelled. No settings were changed.", + sizeof WC->ImportantMessage); + display_main_menu(); + return; + } + + /* Set the last argument to 1 only for the final setting, so + * we don't send the prefs file to the server repeatedly + */ + set_preference("roomlistview", bstr("roomlistview"), 0); + set_preference("calhourformat", bstr("calhourformat"), 1); + + display_main_menu(); }