};
/* the brief calendar view is disabled: VIEW_CALBRIEF */
-allowed_default_views[VIEW_MAX] = {
+ROOM_VIEWS allowed_default_views[VIEW_MAX] = {
1, /* VIEW_BBS Bulletin board view */
1, /* VIEW_MAILBOX Mailbox summary */
1, /* VIEW_ADDRESSBOOK Address book view */
"%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(
"%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(
"%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(
"%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\">"
"%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\">"
"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);
);
}
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\">"
return err;
}
}
+ FlushFolder(&WCC->CurRoom);
ParseGoto(&WCC->CurRoom, Buf);
if (StrLength(gname) > 0)
return err;
}
+void DBG_QR(long QR)
+{
+ const char *QRFlagList[15] = {
+ strof(QR_PERMANENT),
+ strof(QR_INUSE),
+ strof(QR_PRIVATE),
+ strof(QR_PASSWORDED),
+ strof(QR_GUESSNAME),
+ strof(QR_DIRECTORY),
+ strof(QR_UPLOAD),
+ strof(QR_DOWNLOAD),
+ strof(QR_VISDIR),
+ strof(QR_ANONONLY),
+ strof(QR_ANONOPT),
+ strof(QR_NETWORK),
+ strof(QR_PREFONLY),
+ strof(QR_READONLY),
+ strof(QR_MAILBOX)
+ };
+ int i = 1;
+ int j=0;
+ StrBuf *QRVec;
+
+ QRVec = NewStrBufPlain(NULL, 256);
+ while (i != 0)
+ {
+ if ((QR & i) != 0) {
+ if (StrLength(QRVec) > 0)
+ StrBufAppendBufPlain(QRVec, HKEY(" | "), 0);
+ StrBufAppendBufPlain(QRVec, QRFlagList[j], -1, 0);
+ }
+ i = i << 1;
+ j++;
+ }
+ lprintf(9, "DBG: QR-Vec [%ld] [%s]\n", QR, ChrPtr(QRVec));
+ FreeStrBuf(&QRVec);
+}
+
+
+
+void DBG_QR2(long QR2)
+{
+ const char *QR2FlagList[15] = {
+ strof(QR2_SYSTEM),
+ strof(QR2_SELFLIST),
+ strof(QR2_COLLABDEL),
+ strof(QR2_SUBJECTREQ),
+ strof(QR2_SMTP_PUBLIC),
+ strof(QR2_MODERATED),
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ };
+ int i = 1;
+ int j=0;
+ StrBuf *QR2Vec;
+
+ QR2Vec = NewStrBufPlain(NULL, 256);
+ while (i != 0)
+ {
+ if ((QR2 & i) != 0) {
+ if (StrLength(QR2Vec) > 0)
+ StrBufAppendBufPlain(QR2Vec, HKEY(" | "), 0);
+ StrBufAppendBufPlain(QR2Vec, QR2FlagList[j], -1, 0);
+ }
+ i = i << 1;
+ j++;
+ }
+ lprintf(9, "DBG: QR2-Vec [%ld] [%s]\n", QR2, ChrPtr(QR2Vec));
+ FreeStrBuf(&QR2Vec);
+}
+
+
void ParseGoto(folder *room, StrBuf *Line)
{
room->QRFlags = StrBufExtractNext_long(Line, &Pos, '|'); //CurRoom->QRFlags
+ DBG_QR(room->QRFlags);
+
room->HighestRead = StrBufExtractNext_long(Line, &Pos, '|');
room->LastMessageRead = StrBufExtractNext_long(Line, &Pos, '|');
room->RAFlags |= UA_ISTRASH; // wc_is_trash
room->QRFlags2 = StrBufExtractNext_long(Line, &Pos, '|'); // CurRoom->QRFlags2
+ DBG_QR2(room->QRFlags2);
/* find out, whether we are in a sub-room */
room->nRoomNameParts = StrBufNum_tokens(room->name, '\\');
WCC->CurRoom.XALoaded = 1;
Buf = NewStrBuf();
- serv_puts("GETA");
+ serv_puts("GETR");
StrBuf_ServGetln(Buf);
if (GetServerStatus(Buf, NULL) != 2) {
FlushStrBuf(WCC->CurRoom.XAPass);
serv_getln(buf, sizeof buf);
}
+ FlushRoomlist ();
return(newval);
}
RoomOps->view,
RoomOps->flags2);
serv_getln(buf, sizeof buf);
+ FlushRoomlist ();
+
return (1);
}
set_roomflags (&RoomFlags);
- do_template("room_edit", NULL);
+ http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
}
if (!havebstr("ok_button")) {
strcpy(WC->ImportantMessage,
_("Cancelled. Changes were not saved."));
- do_template("room_edit", NULL);
+ http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
return;
}
serv_puts("GETR");
if (GetServerStatus(Buf, NULL) != 2) {
StrBufCutLeft(Buf, 4);
strcpy(WC->ImportantMessage, ChrPtr(Buf));
- do_template("room_edit", NULL);
+ http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
FreeStrBuf(&Buf);
return;
}
+ FlushRoomlist ();
+
er_name = NewStrBuf();
er_password = NewStrBuf();
er_dirname = NewStrBuf();
StrBuf_ServGetln(Buf);
if (GetServerStatus(Buf, NULL) != 2) {
strcpy(WC->ImportantMessage, &ChrPtr(Buf)[4]);
- do_template("room_edit", NULL);
+ http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
FreeStrBuf(&Buf);
FreeStrBuf(&er_name);
FreeStrBuf(&er_password);
}
gotoroom(er_name);
strcpy(WC->ImportantMessage, _("Your changes have been saved."));
- do_template("room_edit", NULL);
+ http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
FreeStrBuf(&Buf);
FreeStrBuf(&er_name);
FreeStrBuf(&er_password);
}
}
- do_template("room_edit", NULL);
+ http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
}
}
/** TODO: Room created, now update the left hand icon bar for this user */
burn_folder_cache(0); /* burn the old folder cache */
- FlushRoomlist ();
+
gotoroom(er_name);
serv_printf("VIEW %d", er_view);
WCC->CurRoom.view = er_view;
if ( (WCC != NULL) && ( (WCC->CurRoom.RAFlags & UA_ADMINALLOWED) != 0) ) {
- do_template("room_edit", NULL);
+ http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
} else {
do_change_view(er_view); /* Now go there */
}
strcat(line, bstr("suffix"));
}
else {
- do_template("room_edit", NULL);
+ http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
return;
}
fp = tmpfile();
if (fp == NULL) {
- do_template("room_edit", NULL);
+ http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
return;
}
serv_getln(buf, sizeof buf);
if (buf[0] != '1') {
fclose(fp);
- do_template("room_edit", NULL);
+ http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
return;
}
serv_getln(buf, sizeof buf);
if (buf[0] != '4') {
fclose(fp);
- do_template("room_edit", NULL);
+ http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
return;
}
serv_puts("000");
fclose(fp);
- do_template("room_edit", NULL);
+ http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
}
if (!havebstr("ok_button")) {
strcpy(WC->ImportantMessage,
_("Cancelled. Changes were not saved."));
- do_template("room_edit", NULL);
+ http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
return;
}
- serv_printf("SPEX room|%d|%d", ibstr("roompolicy"), ibstr("roomvalue"));
+ serv_printf("SPEX roompolicy|%d|%d", ibstr("roompolicy"), ibstr("roomvalue"));
serv_getln(buf, sizeof buf);
strcpy(WC->ImportantMessage, &buf[4]);
if (WC->axlevel >= 6) {
strcat(WC->ImportantMessage, "<br />\n");
- serv_printf("SPEX floor|%d|%d", ibstr("floorpolicy"), ibstr("floorvalue"));
+ serv_printf("SPEX floorpolicy|%d|%d", ibstr("floorpolicy"), ibstr("floorvalue"));
serv_getln(buf, sizeof buf);
strcat(WC->ImportantMessage, &buf[4]);
}
-
- do_template("room_edit", NULL);
+ FlushRoomlist();
+ http_transmit_thing(ChrPtr(do_template("room_edit", NULL)), 0);
}
void tmplput_RoomName(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)
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;
}
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)