room = (folder*) vFolder;
FreeStrBuf(&room->name);
- FreeStrBuf(&room->ACL);
+ ////FreeStrBuf(&room->ACL);
//// FreeStrBuf(&room->room);
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 */
folder *r1 = (folder*) GetSearchPayload(room1);
folder *r2 = (folder*) GetSearchPayload(room2);
+ if ((r1->Floor == NULL) ||
+ (r2->Floor == NULL))
+ return 0;
+
/**
* are we on the same floor? else sort by floor.
*/
folder *r1 = (folder*) GetSearchPayload(room1);
folder *r2 = (folder*) GetSearchPayload(room2);
+ if ((r1->Floor == NULL) ||
+ (r2->Floor == NULL))
+ return 0;
+
/**
* are we on the same floor? else sort by floor.
*/
folder *r2 = (folder*) room2;
+ if ((r1->Floor == NULL) ||
+ (r2->Floor == NULL))
+ return 0;
+
if (r1->Floor == r2->Floor)
return 0;
else
{
folder *Folder = (folder *)(TP->Context);
- StrBufAppendTemplate(Target, TP, Folder->ACL, 0);
+ StrBufAppendPrintf(Target, "%ld", Folder->RAFlags, 0);
}
+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)
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,