X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Froomops.c;h=15bed118ab7b366ecaccc3eedcdc66ce37d72868;hb=cb51d773d6ea8d34dc7683f967bf0dd1bc1ecf99;hp=6305ea00df5dfca05b428694510fea0de14af4d3;hpb=3362df2463a12d4f4fb61820c55c1197b3cc0eea;p=citadel.git diff --git a/webcit/roomops.c b/webcit/roomops.c index 6305ea00d..15bed118a 100644 --- a/webcit/roomops.c +++ b/webcit/roomops.c @@ -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) { @@ -3467,6 +3481,7 @@ InitModule_ROOMOPS RegisterConditional(HKEY("COND:ROOM:FLAG:UA"), 0, ConditionalRoomHas_UAFlag, CTX_ROOMS); 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); @@ -3576,5 +3591,9 @@ SessionDestroyModule_ROOMOPS free_march_list(sess); DeleteHash(&sess->Floors); + DeleteHash(&sess->Rooms); + DeleteHash(&sess->FloorsByName); } + + /*@}*/