wprintf("<label for=\"srchquery\">");
wprintf(_("Search: "));
wprintf("</label><input ");
- wprintf("%s", serv_info.serv_fulltext_enabled ? "" : "disabled ");
+ wprintf("%s", WC->serv_info->serv_fulltext_enabled ? "" : "disabled ");
wprintf("type=\"text\" name=\"query\" id=\"srchquery\" size=\"15\" maxlength=\"128\" class=\"inputbox\">\n"
);
wprintf("</div></form>\n");
* we want it to remember the URL as a "/dotskip" one instead of
* a "skip" or "gotonext" or something like that.
*/
- snprintf(WC->this_page, sizeof(WC->this_page), "dotskip&room=%s",
- ChrPtr(WC->wc_roomname));
+ if (WC->this_page == NULL)
+ WC->this_page = NewStrBuf();
+ StrBufPrintf(WC->this_page,
+ "dotskip&room=%s",
+ ChrPtr(WC->wc_roomname));
/** Check for new mail. */
WC->new_mail = extract_int(&got[4], 9);
"%s"
"</span></a></li>\n", _("Write mail")
);
+ wprintf(
+ "<li class=\"newmess\">"
+ "<a href=\"javascript:deleteAllSelectedMessages();\">"
+ "<img src=\"static/delete.gif\" "
+ "alt=\"\"><span class=\"navbar_link\">"
+ "%s"
+ "</span></a></li>\n", _("Delete")
+ );
break;
default:
wprintf(
wprintf(_("The URL for subscribe/unsubscribe is: "));
wprintf("<TT>%s://%s/listsub</TT></td></tr>\n",
(is_https ? "https" : "http"),
- WC->http_host);
+ ChrPtr(WC->http_host));
/* Public posting? */
wprintf("<tr><td>");
wprintf(_("Allow non-subscribers to mail to this room."));
FreeStrBuf(&Buf);
return;
}
+
+ er_name = NewStrBuf();
+ er_password = NewStrBuf();
+ er_dirname = NewStrBuf();
+ er_roomaide = NewStrBuf();
+
StrBufCutLeft(Buf, 4);
StrBufExtract_token(er_name, Buf, 0, '|');
StrBufExtract_token(er_password, Buf, 1, '|');
/** title bar */
wprintf("<div id=\"banner\">\n");
- wprintf("<div class=\"room_banner\">");
+ wprintf("<div class=\"room_banner\" id=\"room_banner\">");
wprintf("<h1>");
if (!strcasecmp(ChrPtr(ListView), "rooms")) {
wprintf(_("Room list"));
wprintf(_("Room list"));
}
wprintf("</h1></div>\n");
-
+
/** offer the ability to switch views */
+ wprintf("<div id=\"actiondiv\">");
wprintf("<ul class=\"room_actions\">\n");
wprintf("<li class=\"start_page\">");
offer_start_page(NULL, &NoCtx);
wprintf("</select>");
wprintf("</form></li>");
- wprintf("</ul></div>\n");
+ wprintf("</ul></div></div>\n");
wprintf("<div id=\"content\" class=\"service\">\n");
StrBufTCP_read_line(Buf, &WC->serv_sock, 0, &Err); /* '100', we hope */
if (ChrPtr(Buf)[0] == '1') while(StrBufTCP_read_line(Buf, &WC->serv_sock, 0, &Err), strcmp(ChrPtr(Buf), "000")) {
int a;
- const char *floorNum;
+ const char *floorNum = NULL;
floor = NewHash(1, NULL);
for(a=0; a<FLOOR_PARAM_LEN; a++) {
Buf2 = NewStrBuf();
StrBufTCP_read_line(buf, &WC->serv_sock, 0, &Err);
if (ChrPtr(buf)[0] == '1') while(StrBufTCP_read_line(buf, &WC->serv_sock, 0, &Err), strcmp(ChrPtr(buf), "000")) {
int i;
- const char *rmName;
+ const char *rmName = NULL;
room = NewHash(1, NULL);
for(i=0; i<ROOM_PARAM_LEN; i++) {
buf2 = NewStrBuf();
/* Send as our own (application/json) content type */
hprintf("HTTP/1.1 200 OK\r\n");
hprintf("Content-type: application/json; charset=utf-8\r\n");
- hprintf("Server: %s / %s\r\n", PACKAGE_STRING, ChrPtr(serv_info.serv_software));
+ hprintf("Server: %s / %s\r\n", PACKAGE_STRING, ChrPtr(WC->serv_info->serv_software));
hprintf("Connection: close\r\n");
hprintf("Pragma: no-cache\r\nCache-Control: no-store\r\nExpires:-1\r\n");
begin_burst();
(WCC->is_mailbox) ));
}
+int ConditionalIsRoomtype(StrBuf *Target, WCTemplputParams *TP)
+{
+ wcsession *WCC = WC;
+
+ if ((WCC == NULL) ||
+ (TP->Tokens->nParameters < 3) ||
+ (TP->Tokens->Params[2]->Type != TYPE_STR)||
+ (TP->Tokens->Params[2]->len < 7))
+ return 0;
+
+ switch(WCC->wc_view) {
+ case VIEW_BBS:
+ return TP->Tokens->Params[2]->Start[7]=='B';
+ case VIEW_MAILBOX:
+ return TP->Tokens->Params[2]->Start[7]=='M';
+ case VIEW_ADDRESSBOOK:
+ return TP->Tokens->Params[2]->Start[7]=='A';
+ case VIEW_TASKS:
+ return TP->Tokens->Params[2]->Start[7]=='T';
+ case VIEW_NOTES:
+ return TP->Tokens->Params[2]->Start[7]=='N';
+ case VIEW_WIKI:
+ return TP->Tokens->Params[2]->Start[7]=='W';
+ case VIEW_JOURNAL:
+ return TP->Tokens->Params[2]->Start[7]=='J';
+
+ case VIEW_CALENDAR:
+ if (TP->Tokens->Params[2]->len < 13)
+ return 0;
+ return TP->Tokens->Params[2]->Start[10]=='E';
+
+ case VIEW_CALBRIEF:
+ if (TP->Tokens->Params[3]->len < 13)
+ return 0;
+ return TP->Tokens->Params[2]->Start[10]=='B';
+
+ default:
+ return 0;
+ }
+}
+
void
InitModule_ROOMOPS
(void)
{
- RegisterPreference(HKEY("roomlistview"),
+ RegisterPreference("roomlistview",
_("Room list view"),
PRF_STRING,
NULL);
- RegisterPreference(HKEY("emptyfloors"), _("Show empty floors"), PRF_YESNO, NULL);
+ RegisterPreference("emptyfloors", _("Show empty floors"), PRF_YESNO, NULL);
RegisterNamespace("ROOMNAME", 0, 1, tmplput_RoomName, 0);
WebcitAddUrlHandler(HKEY("json_roomflr"), jsonRoomFlr, 0);
RegisterNamespace("ROOMBANNER", 0, 1, tmplput_roombanner, 0);
+ RegisterConditional(HKEY("COND:ROOM:TYPE_IS"), 0, ConditionalIsRoomtype, CTX_NONE);
RegisterConditional(HKEY("COND:ROOM:FLAGS:QR_PERMANENT"), 0, ConditionalRoomHas_QR_PERMANENT, CTX_NONE);
RegisterConditional(HKEY("COND:ROOM:FLAGS:QR_INUSE"), 0, ConditionalRoomHas_QR_INUSE, CTX_NONE);
RegisterConditional(HKEY("COND:ROOM:FLAGS:QR_PRIVATE"), 0, ConditionalRoomHas_QR_PRIVATE, CTX_NONE);