* add conditionals for the QR2 flagset
authorWilfried Göesgens <willi@citadel.org>
Thu, 25 Feb 2010 23:27:38 +0000 (23:27 +0000)
committerWilfried Göesgens <willi@citadel.org>
Thu, 25 Feb 2010 23:27:38 +0000 (23:27 +0000)
webcit/roomops.c

index 06a758d47769146d90ea1a886f8cdddf6c8a49d1..5d1aa8eccef8139f87b8e6ebf81b7fb69c1a4ac7 100644 (file)
@@ -3155,6 +3155,33 @@ int ConditionalRoomHas_QRFlag(StrBuf *Target, WCTemplputParams *TP)
 }
 
 
+int ConditionalCurrentRoomHas_QRFlag2(StrBuf *Target, WCTemplputParams *TP)
+{
+       long QR2_CheckFlag;
+       wcsession *WCC = WC;
+       
+       QR2_CheckFlag = GetTemplateTokenNumber(Target, TP, 2, 0);
+       if (QR2_CheckFlag == 0)
+               LogTemplateError(Target, "Conditional", ERR_PARM1, TP,
+                                "requires one of the #\"QR2*\"- defines or an integer flag 0 is invalid!");
+
+       return ((WCC!=NULL) &&
+               ((WCC->CurRoom.QRFlags2 & QR2_CheckFlag) != 0));
+}
+
+int ConditionalRoomHas_QRFlag2(StrBuf *Target, WCTemplputParams *TP)
+{
+       long QR2_CheckFlag;
+       folder *Folder = (folder *)(TP->Context);
+
+       QR2_CheckFlag = GetTemplateTokenNumber(Target, TP, 2, 0);
+       if (QR2_CheckFlag == 0)
+               LogTemplateError(Target, "Conditional", ERR_PARM1, TP,
+                                "requires one of the #\"QR2*\"- defines or an integer flag 0 is invalid!");
+       return ((Folder->QRFlags2 & QR2_CheckFlag) != 0);
+}
+
+
 int ConditionalHaveRoomeditRights(StrBuf *Target, WCTemplputParams *TP)
 {
        wcsession *WCC = WC;
@@ -3236,6 +3263,9 @@ InitModule_ROOMOPS
        RegisterConditional(HKEY("COND:THISROOM:FLAG:QR"), 0, ConditionalCurrentRoomHas_QRFlag, CTX_NONE);
        RegisterConditional(HKEY("COND:ROOM:FLAG:QR"), 0, ConditionalRoomHas_QRFlag, CTX_ROOMS);
 
+       RegisterConditional(HKEY("COND:THISROOM:FLAG:QR2"), 0, ConditionalCurrentRoomHas_QRFlag2, CTX_NONE);
+       RegisterConditional(HKEY("COND:ROOM:FLAG:QR2"), 0, ConditionalRoomHas_QRFlag2, CTX_ROOMS);
+
        REGISTERTokenParamDefine(QR_PERMANENT);
        REGISTERTokenParamDefine(QR_INUSE);
        REGISTERTokenParamDefine(QR_PRIVATE);