* add THISROOM:FLOOR:NAME so tab_expire can show the current floor
authorWilfried Göesgens <willi@citadel.org>
Mon, 2 Aug 2010 20:40:53 +0000 (20:40 +0000)
committerWilfried Göesgens <willi@citadel.org>
Mon, 2 Aug 2010 20:40:53 +0000 (20:40 +0000)
* fix some more problems in tab_expire

webcit/roomops.c
webcit/static/t/room/edit/tab_expire.html

index 6305ea00df5dfca05b428694510fea0de14af4d3..15bed118ab7b366ecaccc3eedcdc66ce37d72868 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) 
 {
@@ -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);
 }
+
+
 /*@}*/
index b90362a3add8ea45198f2bf7d920e200d2c978de..09f5e311d1917d88caffe0381174b50e8e1a08c9 100644 (file)
                                <td>
                                        <?_("Message expire policy for this floor")>
                                        <br />
-                                       <?ROOM:INFO:FLOOR:NAME("X")>
+                                       <?THISROOM:FLOOR:NAME("X")>
                                </td>
                                <td>
-                                       <input type="radio" name="floorpolicy" value="0" <?%("COND:EXPIRE:MODE", 1, #"floorpolicy", #"EXPIRE_NEXTLEVEL" , 'checked="checked"',"")>>nbsp;
+                                       <input type="radio" name="floorpolicy" value="0" <?%("COND:EXPIRE:MODE", 1, #"floorpolicy", #"EXPIRE_NEXTLEVEL" , 'checked="checked"',"")>>&nbsp;
                                        <?_("Use the system default")>
                                        <br />
                                        <input type="radio" name="floorpolicy" value="1" <?%("COND:EXPIRE:MODE", 1, #"floorpolicy", #"EXPIRE_MANUAL", 'checked="checked"',"")> />&nbsp;