long len;
char *Name;
void *Namee;
+ StrBuf *DefAddrBook;
HashList *List;
HashPos *it;
begin_ajax_response();
+ DefAddrBook = get_room_pref("defaddrbook");
+
wprintf("<table border=0 width=100%%><tr valign=middle>");
wprintf("<td align=left><img src=\"static/viewcontacts_32x.gif\"></td>");
wprintf("<td align=center>");
bstr("target_input")
);
- wprintf("<option value=\"__LOCAL_USERS__\">");
+ wprintf("<option value=\"__LOCAL_USERS__\" %s>",
+ (strcmp(ChrPtr(DefAddrBook), "__LOCAL_USERS__") == 0)?
+ "active=\"yes\" ":"");
escputs(serv_info.serv_humannode);
wprintf("</option>\n");
while (GetNextHashPos(List, it, &len, &Name, &Namee)) {
wprintf("<option value=\"");
urlescputs((char*)Namee);
- wprintf("\">");
+ if (strcmp(ChrPtr(DefAddrBook), Namee) == 0)
+ wprintf("\" active=\"yes\" >");
+ else
+ wprintf("\">");
escputs((char*)Namee);
wprintf("</option>\n");
}
}
else {
+ set_room_pref("defaddrbook",NewStrBufDup(sbstr("which_addr_book")), 0);
safestrncpy(saved_roomname, WC->wc_roomname, sizeof saved_roomname);
gotoroom(bstr("which_addr_book"));
serv_puts("DVCA");
* \return the enum matching the string; defaults to RDate
*/
//SortByEnum
-int StrToESort (StrBuf *sortby)
+int StrToESort (const StrBuf *sortby)
{
int result = eDate;
int highest_displayed = 0;
struct addrbookent *addrbook = NULL;
int num_ab = 0;
- StrBuf *sortby = NULL;
+ const StrBuf *sortby = NULL;
//SortByEnum
int SortBy = eRDate;
- StrBuf *sortpref_name;
- StrBuf *sortpref_value;
+ const StrBuf *sortpref_value;
int bbs_reverse = 0;
struct wcsession *WCC = WC; /* This is done to make it run faster; WC is a function */
is_summary = (ibstr("is_summary") && !WCC->is_mobile);
if (maxmsgs == 0) maxmsgs = DEFAULT_MAXMSGS;
- sortpref_name = NewStrBuf ();
- StrBufPrintf(sortpref_name, "sort %s", WCC->wc_roomname);
- get_pref(sortpref_name, &sortpref_value);
+ sortpref_value = get_room_pref("sort");
- sortby = NewStrBufPlain(bstr("sortby"), -1);
+ sortby = sbstr("sortby");
if ( (!IsEmptyStr(ChrPtr(sortby))) &&
(strcasecmp(ChrPtr(sortby), ChrPtr(sortpref_value)) != 0)) {
- set_pref(sortpref_name, sortby, 1);
+ set_room_pref("sort", NewStrBufDup(sortby), 1);
sortpref_value = NULL;
sortpref_value = sortby;
}
- FreeStrBuf(&sortby);
- FreeStrBuf(&sortpref_name);
SortBy = StrToESort(sortpref_value);
/** message board sort */
if (SortBy == eReverse) {
}
}
+StrBuf *get_ROOM_PREFS(const char *key, size_t keylen)
+{
+ StrBuf *pref_name, *pref_value;
+
+ pref_name = NewStrBuf ();
+ StrBufPrintf(pref_name, "%s %s", key, WC->wc_roomname);
+ get_pref(pref_name, &pref_value);
+ FreeStrBuf(&pref_name);
+ return pref_value;
+}
+
+void set_ROOM_PREFS(const char *key, size_t keylen, StrBuf *value, int save_to_server)
+{
+ StrBuf *pref_name;
+
+ pref_name = NewStrBuf ();
+ StrBufPrintf(pref_name, "%s %s", key, WC->wc_roomname);
+ set_PREFERENCE(ChrPtr(pref_name), StrLength(pref_name), value, save_to_server);
+ FreeStrBuf(&pref_name);
+}
+
/**
* \brief display form for changing your preferences and settings
*/
#define set_pref_yesno(a, b, c) set_PREF_YESNO(a, sizeof(a) - 1, b, c)
void set_PREF_YESNO(const char *key, size_t keylen, int value, int save_to_server);
+#define get_room_pref(a) get_ROOM_PREFS(a, sizeof(a) - 1)
+StrBuf *get_ROOM_PREFS(const char *key, size_t keylen);
+#define set_room_pref(a, b, c) set_ROOM_PREFS(a, sizeof(a) - 1, b, c)
+void set_ROOM_PREFS(const char *key, size_t keylen, StrBuf *value, int save_to_server);
int is_msg_in_mset(char *mset, long msgnum);
void display_addressbook(long msgnum, char alpha);