* oops, didn't see that case. corrected.
[citadel.git] / webcit / roomops.c
index d54e00ebace6ece4c7f02f3f928c49332f45fd71..63480ca2314076c99a882e054ae972d84b12297f 100644 (file)
@@ -167,6 +167,15 @@ void embed_room_banner(void)
                        "%s"
                        "</span></a></li>\n", _("View contacts")
                        );
+               wc_printf(
+                       "<li class=\"addnewcontact\">"
+                       "<a href=\"display_enter\">"
+                       "<img src=\"static/addnewcontact_24x.gif\" "
+                       "alt=\"\" width=\"24\" height=\"24\">"
+                       "<span class=\"navbar_link\">"
+                       "%s"
+                       "</span></a></li>\n", _("Add new contact")
+                       );
                break;
        case VIEW_CALENDAR:
                wc_printf(
@@ -187,6 +196,17 @@ void embed_room_banner(void)
                        "%s"
                        "</span></a></li>\n", _("Month view")
                        );
+               wc_printf("<li class=\"addevent\"><a href=\"display_enter");
+               if (havebstr("year" )) wc_printf("?year=%s", bstr("year"));
+               if (havebstr("month")) wc_printf("?month=%s", bstr("month"));
+               if (havebstr("day"  )) wc_printf("?day=%s", bstr("day"));
+               wc_printf("\">"
+                         "<img  src=\"static/addevent_24x.gif\" "
+                         "alt=\"\" width=\"24\" height=\"24\">"
+                         "<span class=\"navbar_link\">"
+                         "%s"
+                         "</span></a></li>\n", _("Add new event")
+                       );
                break;
        case VIEW_CALBRIEF:
                wc_printf(
@@ -209,6 +229,15 @@ void embed_room_banner(void)
                        "%s"
                        "</span></a></li>\n", _("View tasks")
                        );
+               wc_printf(
+                       "<li class=\"newmess\">"
+                       "<a href=\"display_enter\">"
+                       "<img  src=\"static/newmess3_24x.gif\" "
+                       "alt=\"\" width=\"24\" height=\"24\">"
+                       "<span class=\"navbar_link\">"
+                       "%s"
+                       "</span></a></li>\n", _("Add new task")
+                       );
                break;
        case VIEW_NOTES:
                wc_printf(
@@ -220,30 +249,26 @@ void embed_room_banner(void)
                        "%s"
                        "</span></a></li>\n", _("View notes")
                        );
-               break;
-       case VIEW_MAILBOX:
                wc_printf(
-                       "<li class=\"readallmess\">"
-                       "<a id=\"m_refresh\" href=\"readfwd\">"
-                       "<img src=\"static/readallmess3_24x.gif\" "
+                       "<li class=\"enternewnote\">"
+                       "<a href=\"add_new_note\">"
+                       "<img  src=\"static/enternewnote_24x.gif\" "
                        "alt=\"\" width=\"24\" height=\"24\">"
                        "<span class=\"navbar_link\">"
                        "%s"
-                       "</span></a></li>\n", _("Refresh message list")
+                       "</span></a></li>\n", _("Add new note")
                        );
                break;
-       case VIEW_WIKI:
+       case VIEW_MAILBOX:
                wc_printf(
                        "<li class=\"readallmess\">"
-                       "<a href=\"wiki?page=home\">"
+                       "<a id=\"m_refresh\" href=\"readfwd\">"
                        "<img src=\"static/readallmess3_24x.gif\" "
                        "alt=\"\" width=\"24\" height=\"24\">"
                        "<span class=\"navbar_link\">"
                        "%s"
-                       "</span></a></li>\n", _("Wiki home")
+                       "</span></a></li>\n", _("Refresh message list")
                        );
-               break;
-       default:
                wc_printf(
                        "<li class=\"readallmess\">"
                        "<a href=\"readfwd\">"
@@ -253,36 +278,6 @@ void embed_room_banner(void)
                        "%s"
                        "</span></a></li>\n", _("Read all messages")
                        );
-               break;
-       }
-       
-       switch(WC->CurRoom.view) {
-       case VIEW_ADDRESSBOOK:
-               wc_printf(
-                       "<li class=\"addnewcontact\">"
-                       "<a href=\"display_enter\">"
-                       "<img src=\"static/addnewcontact_24x.gif\" "
-                       "alt=\"\" width=\"24\" height=\"24\">"
-                       "<span class=\"navbar_link\">"
-                       "%s"
-                       "</span></a></li>\n", _("Add new contact")
-                       );
-               break;
-       case VIEW_CALENDAR:
-       case VIEW_CALBRIEF:
-               wc_printf("<li class=\"addevent\"><a href=\"display_enter");
-               if (havebstr("year" )) wc_printf("?year=%s", bstr("year"));
-               if (havebstr("month")) wc_printf("?month=%s", bstr("month"));
-               if (havebstr("day"  )) wc_printf("?day=%s", bstr("day"));
-               wc_printf("\">"
-                         "<img  src=\"static/addevent_24x.gif\" "
-                         "alt=\"\" width=\"24\" height=\"24\">"
-                         "<span class=\"navbar_link\">"
-                         "%s"
-                         "</span></a></li>\n", _("Add new event")
-                       );
-               break;
-       case VIEW_TASKS:
                wc_printf(
                        "<li class=\"newmess\">"
                        "<a href=\"display_enter\">"
@@ -290,21 +285,19 @@ void embed_room_banner(void)
                        "alt=\"\" width=\"24\" height=\"24\">"
                        "<span class=\"navbar_link\">"
                        "%s"
-                       "</span></a></li>\n", _("Add new task")
+                       "</span></a></li>\n", _("Write mail")
                        );
                break;
-       case VIEW_NOTES:
+       case VIEW_WIKI:
                wc_printf(
-                       "<li class=\"enternewnote\">"
-                       "<a href=\"add_new_note\">"
-                       "<img  src=\"static/enternewnote_24x.gif\" "
+                       "<li class=\"readallmess\">"
+                       "<a href=\"wiki?page=home\">"
+                       "<img src=\"static/readallmess3_24x.gif\" "
                        "alt=\"\" width=\"24\" height=\"24\">"
                        "<span class=\"navbar_link\">"
                        "%s"
-                       "</span></a></li>\n", _("Add new note")
+                       "</span></a></li>\n", _("Wiki home")
                        );
-               break;
-       case VIEW_WIKI:
                safestrncpy(buf, bstr("page"), sizeof buf);
                if (IsEmptyStr(buf)) {
                        safestrncpy(buf, "home", sizeof buf);
@@ -345,26 +338,17 @@ void embed_room_banner(void)
                                );
                }
                break;
-       case VIEW_MAILBOX:
+               break;
+       default:
                wc_printf(
-                       "<li class=\"newmess\">"
-                       "<a href=\"display_enter\">"
-                       "<img  src=\"static/newmess3_24x.gif\" "
+                       "<li class=\"readallmess\">"
+                       "<a href=\"readfwd\">"
+                       "<img src=\"static/readallmess3_24x.gif\" "
                        "alt=\"\" width=\"24\" height=\"24\">"
                        "<span class=\"navbar_link\">"
                        "%s"
-                       "</span></a></li>\n", _("Write mail")
-                       );
-               wc_printf(
-                       "<li class=\"newmess\">"
-                       "<a href=\"javascript:deleteAllSelectedMessages();\">"
-                       "<img  src=\"static/delete.gif\" "
-                       "alt=\"\" width=\"24\" height=\"24\"><span class=\"navbar_link\">"
-                       "%s"
-                       "</span></a></li>\n", _("Delete")
+                       "</span></a></li>\n", _("Read all messages")
                        );
-               break;
-       default:
                wc_printf(
                        "<li class=\"newmess\">"
                        "<a href=\"display_enter\">"
@@ -2085,7 +2069,7 @@ void toggle_self_service(void) {
 
        set_roomflags (&RoomFlags);
        
-       display_editroom();
+       http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
 }
 
 
@@ -2112,7 +2096,7 @@ void editroom(void)
        if (!havebstr("ok_button")) {
                strcpy(WC->ImportantMessage,
                       _("Cancelled.  Changes were not saved."));
-               display_editroom();
+               http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
                return;
        }
        serv_puts("GETR");
@@ -2121,7 +2105,7 @@ void editroom(void)
        if (GetServerStatus(Buf, NULL) != 2) {
                StrBufCutLeft(Buf, 4);
                strcpy(WC->ImportantMessage, ChrPtr(Buf));
-               display_editroom();
+               http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
                FreeStrBuf(&Buf);
                return;
        }
@@ -2276,7 +2260,7 @@ void editroom(void)
        StrBuf_ServGetln(Buf);
        if (GetServerStatus(Buf, NULL) != 2) {
                strcpy(WC->ImportantMessage, &ChrPtr(Buf)[4]);
-               display_editroom();
+               http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
                FreeStrBuf(&Buf);
                FreeStrBuf(&er_name);
                FreeStrBuf(&er_password);
@@ -2302,7 +2286,7 @@ void editroom(void)
        }
        gotoroom(er_name);
        strcpy(WC->ImportantMessage, _("Your changes have been saved."));
-       display_editroom();
+       http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
        FreeStrBuf(&Buf);
        FreeStrBuf(&er_name);
        FreeStrBuf(&er_password);
@@ -2357,7 +2341,7 @@ void do_invt_kick(void) {
                 }
         }
 
-       display_editroom();
+       http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
 }
 
 
@@ -2530,7 +2514,7 @@ void entroom(void)
        WCC->CurRoom.view = er_view;
 
        if ( (WCC != NULL) && ( (WCC->CurRoom.RAFlags & UA_ADMINALLOWED) != 0) )  {
-               display_editroom ();
+               http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
        } else {
                do_change_view(er_view);                /* Now go there */
        }
@@ -2665,14 +2649,14 @@ void netedit(void) {
                strcat(line, bstr("suffix"));
        }
        else {
-               display_editroom();
+               http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
                return;
        }
 
 
        fp = tmpfile();
        if (fp == NULL) {
-               display_editroom();
+               http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
                return;
        }
 
@@ -2680,7 +2664,7 @@ void netedit(void) {
        serv_getln(buf, sizeof buf);
        if (buf[0] != '1') {
                fclose(fp);
-               display_editroom();
+               http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
                return;
        }
 
@@ -2701,7 +2685,7 @@ void netedit(void) {
        serv_getln(buf, sizeof buf);
        if (buf[0] != '4') {
                fclose(fp);
-               display_editroom();
+               http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
                return;
        }
 
@@ -2731,7 +2715,7 @@ void netedit(void) {
 
        serv_puts("000");
        fclose(fp);
-       display_editroom();
+       http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
 }
 
 
@@ -2866,7 +2850,7 @@ void set_room_policy(void) {
        if (!havebstr("ok_button")) {
                strcpy(WC->ImportantMessage,
                       _("Cancelled.  Changes were not saved."));
-               display_editroom();
+               http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
                return;
        }
 
@@ -2881,7 +2865,7 @@ void set_room_policy(void) {
                strcat(WC->ImportantMessage, &buf[4]);
        }
 
-       display_editroom();
+       http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
 }
 
 void tmplput_RoomName(StrBuf *Target, WCTemplputParams *TP)
@@ -2979,9 +2963,15 @@ int ConditionalCurrentRoomHas_QRFlag(StrBuf *Target, WCTemplputParams *TP)
        if (QR_CheckFlag == 0)
                LogTemplateError(Target, "Conditional", ERR_PARM1, TP,
                                 "requires one of the #\"QR*\"- defines or an integer flag 0 is invalid!");
+       
+       if (WCC == NULL)
+               return 0;
 
-       return ((WCC!=NULL) &&
-               ((WCC->CurRoom.QRFlags & QR_CheckFlag) != 0));
+       if ((TP->Tokens->Params[2]->MaskBy == eOR) ||
+           (TP->Tokens->Params[2]->MaskBy == eNO))
+               return (WCC->CurRoom.QRFlags & QR_CheckFlag) != 0;
+       else
+               return (WCC->CurRoom.QRFlags & QR_CheckFlag) == QR_CheckFlag;
 }
 
 int ConditionalRoomHas_QRFlag(StrBuf *Target, WCTemplputParams *TP)
@@ -2993,7 +2983,12 @@ int ConditionalRoomHas_QRFlag(StrBuf *Target, WCTemplputParams *TP)
        if (QR_CheckFlag == 0)
                LogTemplateError(Target, "Conditional", ERR_PARM1, TP,
                                 "requires one of the #\"QR*\"- defines or an integer flag 0 is invalid!");
-       return ((Folder->QRFlags & QR_CheckFlag) != 0);
+
+       if ((TP->Tokens->Params[2]->MaskBy == eOR) ||
+           (TP->Tokens->Params[2]->MaskBy == eNO))
+               return (Folder->QRFlags & QR_CheckFlag) != 0;
+       else
+               return (Folder->QRFlags & QR_CheckFlag) == QR_CheckFlag;
 }
 
 
@@ -3007,8 +3002,15 @@ int ConditionalCurrentRoomHas_QRFlag2(StrBuf *Target, WCTemplputParams *TP)
                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));
+       
+       if (WCC == NULL)
+               return 0;
+
+       if ((TP->Tokens->Params[2]->MaskBy == eOR) ||
+           (TP->Tokens->Params[2]->MaskBy == eNO))
+               return (WCC->CurRoom.QRFlags2 & QR2_CheckFlag) != 0;
+       else
+               return (WCC->CurRoom.QRFlags2 & QR2_CheckFlag) == QR2_CheckFlag;
 }
 
 int ConditionalRoomHas_QRFlag2(StrBuf *Target, WCTemplputParams *TP)
@@ -3129,7 +3131,6 @@ InitModule_ROOMOPS
        WebcitAddUrlHandler(HKEY("goto_private"), "", 0, goto_private, NEED_URL);
        WebcitAddUrlHandler(HKEY("zap"), "", 0, zap, 0);
        WebcitAddUrlHandler(HKEY("entroom"), "", 0, entroom, 0);
-       WebcitAddUrlHandler(HKEY("display_whok"), "", 0, display_whok, 0);
        WebcitAddUrlHandler(HKEY("do_invt_kick"), "", 0, do_invt_kick, 0);
        WebcitAddUrlHandler(HKEY("display_editroom"), "", 0, display_editroom, 0);
        WebcitAddUrlHandler(HKEY("netedit"), "", 0, netedit, 0);