/* Private mailboxes on the main floor get remapped to the personal folder */
if ((room->QRFlags & QR_MAILBOX) &&
(room->floorid == 0))
+ {
room->floorid = VIRTUAL_MY_FLOOR;
+ if ((room->nRoomNameParts == 1) &&
+ (StrLength(room->name) == 4) &&
+ (strcmp(ChrPtr(room->name), "Mail") == 0))
+ {
+ room->is_inbox = 1;
+ }
+
+ }
/* get a pointer to the floor we're on: */
GetHash(WCC->Floors, IKEY(room->floorid), &vFloor);
room->Floor = (const floor*) vFloor;
}
+int ConditionalRoomIsInbox(StrBuf *Target, WCTemplputParams *TP)
+{
+ folder *Folder = (folder *)(TP->Context);
+ return Folder->is_inbox;
+}
RegisterNamespace("ROOM:INFO:FLOOR:NROOMS", 0, 0, tmplput_ROOM_FLOOR_NROOMS, CTX_ROOMS);
+ RegisterConditional(HKEY("COND:ROOM:INFO:IS_INBOX"), 0, ConditionalRoomIsInbox, 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);
int hasnewmsgs; /* are there unread messages inside */
- int is_mailbox; /* is it a mailbox? */
+ int is_inbox; /* is it a mailbox? */
int selectable; /* can we select it ??? */
int num_rooms; /* If this is a floor, how many rooms does it have */
<?!("COND:ITERATE:ISGROUPCHANGE", 3, 2)></td><td valign=top> <?!("X", 3)>
<?=("beginbox_1")><?ROOM:INFO:FLOOR:NAME><?=("beginbox_2")>
<?!("X", 2)>
- <a href="dotgoto?room=<?ROOM:INFO:NAME("X")>"><span class="<?%("COND:ROOM:FLAGS:UA_HASNEWMSGS", 1, 0, 0, "roomlist_new", "roomlist_old")>"><?ROOM:INFO:LEVELNTIMES(" ")><?ROOM:INFO:BASENAME></span></a><br />
+ <a href="dotgoto?room=<?ROOM:INFO:NAME("X")>"><span class="<?%("COND:ROOM:FLAGS:UA_HASNEWMSGS", 1, 0, 0, "roomlist_new", "roomlist_old")>"><?ROOM:INFO:LEVELNTIMES(" ")><?ROOM:INFO:BASENAME></span></a><?%("COND:ROOM:INFO:IS_INBOX", 1, 1, 1, _("(INBOX)"), "")><br />
<?!("COND:ITERATE:LASTN", 2)><?=("endbox")></td></tr><??("X", 3)>