X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=webcit%2Ficonbar.c;h=7a6e39d1ac477d9da041872a5892a931e79d52a6;hp=3b4b17554782199881e2a44d43c8d127a81f0036;hb=fc08ae6465b6da1d9008ce4b20b3cc2c2a5781af;hpb=3e037b7e34b506b15a89d2e748de6fbf058b7765 diff --git a/webcit/iconbar.c b/webcit/iconbar.c index 3b4b17554..7a6e39d1a 100644 --- a/webcit/iconbar.c +++ b/webcit/iconbar.c @@ -133,7 +133,7 @@ void LoadIconSettings(StrBuf *iconbar, long lvalue) { WCC->IBSettingsVec = (long*) malloc (nIBV * sizeof(long)); } - /** + /* * The initialized values of these variables also happen to * specify the default values for users who haven't customized * their iconbars. These should probably be set in a master @@ -261,8 +261,10 @@ ServerStartModule_ICONBAR int ConditionalWholistExpanded(StrBuf *Target, WCTemplputParams *TP) { - if (WC) return(WC->ib_wholist_expanded); - return(0); + int r = 0; + if (WC) r = WC->ib_wholist_expanded; + syslog(LOG_DEBUG, "ConditionalWholistExpanded() returns %d", r); + return(r); } @@ -273,6 +275,41 @@ int ConditionalRoomlistExpanded(StrBuf *Target, WCTemplputParams *TP) } + +/* + * Toggle the roomlist expanded state in session memory + */ +void toggle_roomlist_expanded_state(void) { + wcsession *WCC = WC; + + if (!WCC) { + wc_printf("no session"); + return; + } + + WCC->ib_roomlist_expanded = IBSTR("wstate"); + wc_printf("%d", WCC->ib_roomlist_expanded); + syslog(LOG_DEBUG, "ib_roomlist_expanded set to %d", WCC->ib_roomlist_expanded); +} + + +/* + * Toggle the wholist expanded state in session memory + */ +void toggle_wholist_expanded_state(void) { + wcsession *WCC = WC; + + if (!WCC) { + wc_printf("no session"); + return; + } + + WCC->ib_wholist_expanded = IBSTR("wstate"); + wc_printf("%d", WCC->ib_wholist_expanded); + syslog(LOG_DEBUG, "ib_wholist_expanded set to %d", WCC->ib_wholist_expanded); +} + + void InitModule_ICONBAR (void) @@ -281,6 +318,8 @@ InitModule_ICONBAR /*WebcitAddUrlHandler(HKEY("user_iconbar"), "", 0, doUserIconStylesheet, 0); */ WebcitAddUrlHandler(HKEY("commit_iconbar"), "", 0, commit_iconbar, 0); + WebcitAddUrlHandler(HKEY("toggle_wholist_expanded_state"), "", 0, toggle_wholist_expanded_state, AJAX); + WebcitAddUrlHandler(HKEY("toggle_roomlist_expanded_state"), "", 0, toggle_roomlist_expanded_state, AJAX); RegisterConditional(HKEY("COND:ICONBAR:ACTIVE"), 3, ConditionalIsActiveStylesheet, CTX_NONE); RegisterNamespace("ICONBAR", 0, 0, tmplput_iconbar, NULL, CTX_NONE); RegisterConditional(HKEY("COND:ICONBAR:WHOLISTEXPANDED"), 0, ConditionalWholistExpanded, CTX_NONE); @@ -306,3 +345,4 @@ SessionDestroyModule_ICONBAR if (sess->IBSettingsVec != NULL) free(sess->IBSettingsVec); } +