From 9d33dacbe0c9a9bc6473798eceb993aa056a1f36 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Wilfried=20G=C3=B6esgens?= Date: Mon, 7 Sep 2009 23:06:43 +0000 Subject: [PATCH] * implement read state for room templates --- webcit/roomlist.c | 46 +++++++++++++++++++++++------- webcit/roomops.c | 3 ++ webcit/roomops.h | 5 ++-- webcit/static/t/knrooms_rooms.html | 2 +- 4 files changed, 43 insertions(+), 13 deletions(-) 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, diff --git a/webcit/roomops.c b/webcit/roomops.c index f6347c660..4fc79011e 100644 --- a/webcit/roomops.c +++ b/webcit/roomops.c @@ -3707,6 +3707,9 @@ int ConditionalRoomHas_QR_MAILBOX(StrBuf *Target, WCTemplputParams *TP) } + + + int ConditionalHaveRoomeditRights(StrBuf *Target, WCTemplputParams *TP) { wcsession *WCC = WC; diff --git a/webcit/roomops.h b/webcit/roomops.h index 50edc6ccf..ac2f607b7 100644 --- a/webcit/roomops.h +++ b/webcit/roomops.h @@ -60,10 +60,11 @@ typedef struct _folder { int QRFlags; /* roomflags */ int floorid; /* which floor is it on */ - int listorder; /* todo */ + int QRFlags2; /* Bitbucket NO2 */ - StrBuf *ACL; /* access Control list... */ + long RAFlags; +/// StrBuf *ACL; /* access Control list... */ int view; /* whats its default view? inbox/calendar.... */ int defview; diff --git a/webcit/static/t/knrooms_rooms.html b/webcit/static/t/knrooms_rooms.html index 910ce0276..e69d40939 100644 --- a/webcit/static/t/knrooms_rooms.html +++ b/webcit/static/t/knrooms_rooms.html @@ -7,5 +7,5 @@ ">
">">
-- 2.30.2