]> code.citadel.org Git - citadel.git/blobdiff - webcit/roomlist.c
* create function to parse the output of goto into our folder structure
[citadel.git] / webcit / roomlist.c
index 0c2211fc456db177e09d478c49b966efc48557f2..c440085f09caf9a4f5d69f770de4a50558a0ae30 100644 (file)
@@ -125,20 +125,26 @@ HashList *GetRoomListHashLKRA(StrBuf *Target, WCTemplputParams *TP)
        return GetRoomListHash(Target, TP);
 }
 
-void DeleteFolder(void *vFolder)
+void FlushFolder(folder *room)
 {
        int i;
-       folder *room;
-       room = (folder*) vFolder;
 
        FreeStrBuf(&room->name);
-
        if (room->RoomNameParts != NULL)
        {
                for (i=0; i < room->nRoomNameParts; i++)
                        FreeStrBuf(&room->RoomNameParts[i]);
                free(room->RoomNameParts);
        }
+}
+
+void vDeleteFolder(void *vFolder)
+{
+       folder *room;
+
+       room = (folder*) vFolder;
+       FlushFolder(room);
+
        free(room);
 }
 
@@ -232,7 +238,7 @@ HashList *GetRoomListHash(StrBuf *Target, WCTemplputParams *TP)
 
 
                                /* now we know everything, remember it... */
-                               Put(rooms, SKEY(room->name), room, DeleteFolder);
+                               Put(rooms, SKEY(room->name), room, vDeleteFolder);
                        }
        }
 
@@ -482,6 +488,11 @@ void tmplput_ROOM_QRFLAGS(StrBuf *Target, WCTemplputParams *TP)
        StrBufAppendPrintf(Target, "%d", Folder->QRFlags);
 }
 
+void tmplput_ROOM_RAFLAGS(StrBuf *Target, WCTemplputParams *TP) 
+{
+       folder *Folder = (folder *)(TP->Context);
+       StrBufAppendPrintf(Target, "%d", Folder->RAFlags);
+}
 
 
 void tmplput_ROOM_FLOORID(StrBuf *Target, WCTemplputParams *TP) 
@@ -736,6 +747,7 @@ InitModule_ROOMLIST
 
        RegisterNamespace("ROOM:INFO:ACL", 0, 1, tmplput_ROOM_ACL, NULL, CTX_ROOMS);
        RegisterNamespace("ROOM:INFO:QRFLAGS", 0, 1, tmplput_ROOM_QRFLAGS, NULL, CTX_ROOMS);
+       RegisterNamespace("ROOM:INFO:RAFLAGS", 0, 1, tmplput_ROOM_RAFLAGS, NULL, CTX_ROOMS);
        RegisterNamespace("ROOM:INFO:LISTORDER", 0, 1, tmplput_ROOM_LISTORDER, NULL, CTX_ROOMS);
        RegisterNamespace("ROOM:INFO:VIEW", 0, 1, tmplput_ROOM_VIEW, NULL, CTX_ROOMS);
        RegisterNamespace("ROOM:INFO:DEFVIEW", 0, 1, tmplput_ROOM_DEFVIEW, NULL, CTX_ROOMS);