]> code.citadel.org Git - citadel.git/blobdiff - webcit/roomops.c
* initialize_viewdefs (): call me via the init hook
[citadel.git] / webcit / roomops.c
index 9fca120945fb3b6c4e0cd1586c932b88fd072d2b..6226ada8a914428047315dedc34991a4748285f7 100644 (file)
@@ -894,6 +894,9 @@ void ParseGoto(folder *room, StrBuf *Line)
                
        }
        /* get a pointer to the floor we're on: */
+       if (WCC->Floors == NULL)
+               GetFloorListHash(NULL, NULL);
+
        GetHash(WCC->Floors, IKEY(room->floorid), &vFloor);
        room->Floor = (const Floor*) vFloor;
 }
@@ -926,6 +929,17 @@ void LoadRoomAide(void)
        }
        FreeStrBuf (&Buf);
 }
+void tmplput_CurrentRoomFloorName(StrBuf *Target, WCTemplputParams *TP) 
+{
+       wcsession *WCC = WC;
+       folder *Folder = &WCC->CurRoom;
+       const Floor *pFloor = Folder->Floor;
+
+       if (pFloor == NULL)
+               return;
+
+       StrBufAppendTemplate(Target, TP, pFloor->Name, 0);
+}
 
 void tmplput_CurrentRoomAide(StrBuf *Target, WCTemplputParams *TP) 
 {
@@ -3428,6 +3442,7 @@ void
 InitModule_ROOMOPS
 (void)
 {
+       initialize_viewdefs();
        RegisterPreference("roomlistview",
                            _("Room list view"),
                            PRF_STRING,
@@ -3466,7 +3481,8 @@ InitModule_ROOMOPS
        RegisterConditional(HKEY("COND:ROOM:FLAG:QR2"), 0, ConditionalRoomHas_QRFlag2, CTX_ROOMS);
        RegisterConditional(HKEY("COND:ROOM:FLAG:UA"), 0, ConditionalRoomHas_UAFlag, CTX_ROOMS);
 
-       RegisterIterator("THISROOM:WHO_KNOWS", 0, NULL, GetWhoKnowsHash, NULL, DeleteHash, CTX_STRBUF, CTX_NONE, IT_NOFLAG);
+       RegisterIterator("ITERATE:THISROOM:WHO_KNOWS", 0, NULL, GetWhoKnowsHash, NULL, DeleteHash, CTX_STRBUF, CTX_NONE, IT_NOFLAG);
+       RegisterNamespace("THISROOM:FLOOR:NAME", 0, 1, tmplput_CurrentRoomFloorName, NULL, CTX_NONE);
        RegisterNamespace("THISROOM:AIDE", 0, 1, tmplput_CurrentRoomAide, NULL, CTX_NONE);
        RegisterNamespace("THISROOM:PASS", 0, 1, tmplput_CurrentRoomPass, NULL, CTX_NONE);
        RegisterNamespace("THISROOM:DIRECTORY", 0, 1, tmplput_CurrentRoomDirectory, NULL, CTX_NONE);
@@ -3533,11 +3549,21 @@ InitModule_ROOMOPS
        REGISTERTokenParamDefine(VIEW_JOURNAL);
        REGISTERTokenParamDefine(VIEW_BLOG);
 
-
+       /* GNET types: */
        REGISTERTokenParamDefine(ignet_push_share);
+       { /* these are the parts of an IGNET push config */
+               REGISTERTokenParamDefine(GNET_IGNET_NODE);
+               REGISTERTokenParamDefine(GNET_IGNET_ROOM);
+       }
        REGISTERTokenParamDefine(listrecp);
        REGISTERTokenParamDefine(digestrecp);
        REGISTERTokenParamDefine(pop3client);
+       { /* These are the parts of a pop3 client line... */
+               REGISTERTokenParamDefine(GNET_POP3_HOST);
+               REGISTERTokenParamDefine(GNET_POP3_USER);
+               REGISTERTokenParamDefine(GNET_POP3_DONT_DELETE_REMOTE);
+               REGISTERTokenParamDefine(GNET_POP3_INTERVAL);
+       }
        REGISTERTokenParamDefine(rssclient);
        REGISTERTokenParamDefine(participate);
 
@@ -3566,5 +3592,9 @@ SessionDestroyModule_ROOMOPS
        
        free_march_list(sess);
        DeleteHash(&sess->Floors);
+       DeleteHash(&sess->Rooms);
+       DeleteHash(&sess->FloorsByName);
 }
+
+
 /*@}*/