X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Froomlist.c;h=e95e8f9228a4968cae5db46b162f9adc14b30f7f;hb=9d33dacbe0c9a9bc6473798eceb993aa056a1f36;hp=c58e43c41ca9a77b84259bfdce62de990f3f9326;hpb=95a0eeac3837826192949ff1da08ea9c010ce6d4;p=citadel.git diff --git a/webcit/roomlist.c b/webcit/roomlist.c index c58e43c41..e95e8f922 100644 --- a/webcit/roomlist.c +++ b/webcit/roomlist.c @@ -124,7 +124,7 @@ void DeleteFolder(void *vFolder) room = (folder*) vFolder; FreeStrBuf(&room->name); - FreeStrBuf(&room->ACL); + ////FreeStrBuf(&room->ACL); //// FreeStrBuf(&room->room); @@ -169,16 +169,20 @@ HashList *GetRoomListHash(StrBuf *Target, WCTemplputParams *TP) room->QRFlags = StrBufExtractNext_long(Buf, &Pos, '|'); room->floorid = StrBufExtractNext_long(Buf, &Pos, '|'); - room->listorder = StrBufExtractNext_long(Buf, &Pos, '|'); + room->QRFlags2 = StrBufExtractNext_long(Buf, &Pos, '|'); + + room->RAFlags = StrBufExtractNext_long(Buf, &Pos, '|'); +/* + ACWHUT? room->ACL = NewStrBufPlain(NULL, StrLength(Buf)); StrBufExtract_NextToken(room->ACL, Buf, &Pos, '|'); +*/ room->view = StrBufExtractNext_long(Buf, &Pos, '|'); room->defview = StrBufExtractNext_long(Buf, &Pos, '|'); room->lastchange = StrBufExtractNext_long(Buf, &Pos, '|'); -/* /* Evaluate the Server sent data for later use */ /* find out, whether we are in a sub-room */ @@ -451,7 +455,7 @@ void tmplput_ROOM_ACL(StrBuf *Target, WCTemplputParams *TP) { folder *Folder = (folder *)(TP->Context); - StrBufAppendTemplate(Target, TP, Folder->ACL, 0); + StrBufAppendPrintf(Target, "%ld", Folder->RAFlags, 0); } @@ -523,15 +527,29 @@ void tmplput_ROOM_FLOOR_NROOMS(StrBuf *Target, WCTemplputParams *TP) +int ConditionalRoomHas_UA_KNOWN(StrBuf *Target, WCTemplputParams *TP) +{ + folder *Folder = (folder *)(TP->Context); + return (Folder->RAFlags & UA_KNOWN) != 0; +} +int ConditionalRoomHas_UA_GOTOALLOWED(StrBuf *Target, WCTemplputParams *TP) +{ + folder *Folder = (folder *)(TP->Context); + return (Folder->RAFlags & UA_GOTOALLOWED) != 0; +} +int ConditionalRoomHas_UA_HASNEWMSGS(StrBuf *Target, WCTemplputParams *TP) +{ + folder *Folder = (folder *)(TP->Context); + return (Folder->RAFlags & UA_HASNEWMSGS) != 0; +} - - - - - - +int ConditionalRoomHas_UA_ZAPPED(StrBuf *Target, WCTemplputParams *TP) +{ + folder *Folder = (folder *)(TP->Context); + return (Folder->RAFlags & UA_ZAPPED) != 0; +} void jsonRoomFlr(void) @@ -579,6 +597,14 @@ InitModule_ROOMLIST RegisterNamespace("ROOM:INFO:FLOOR:NAME", 0, 1, tmplput_ROOM_FLOOR_NAME, CTX_ROOMS); RegisterNamespace("ROOM:INFO:FLOOR:NROOMS", 0, 0, tmplput_ROOM_FLOOR_NROOMS, CTX_ROOMS); + + RegisterConditional(HKEY("COND:ROOM:FLAGS:UA_KNOWN"), 0, ConditionalRoomHas_UA_KNOWN, CTX_ROOMS); + RegisterConditional(HKEY("COND:ROOM:FLAGS:UA_GOTOALLOWED"), 0, ConditionalRoomHas_UA_GOTOALLOWED, CTX_ROOMS); + RegisterConditional(HKEY("COND:ROOM:FLAGS:UA_HASNEWMSGS"), 0, ConditionalRoomHas_UA_HASNEWMSGS, CTX_ROOMS); + RegisterConditional(HKEY("COND:ROOM:FLAGS:UA_ZAPPED"), 0, ConditionalRoomHas_UA_ZAPPED, CTX_ROOMS); + + + RegisterSortFunc(HKEY("byfloorroom"), NULL, 0, CompareRoomListByFloorRoomPrivFirst,