wDumpContent(1);
}
-/*
- * Display the current view and offer an option to change it
- */
-void embed_view_o_matic(StrBuf *Target, WCTemplputParams *TP)
-{
- int i;
-
- wc_printf("<form name=\"viewomatic\" action=\"changeview\">\n");
- wc_printf("\t<div style=\"display: inline;\">\n\t<input type=\"hidden\" name=\"nonce\" value=\"%d\">\n", WC->nonce);
- wc_printf("<label for=\"view_name\">");
- wc_printf(_("View as:"));
- wc_printf("</label> "
- "<select name=\"newview\" size=\"1\" "
- "id=\"view_name\" class=\"selectbox\" "
- "OnChange=\"location.href=viewomatic.newview.options"
- "[selectedIndex].value\">\n");
-
- for (i=0; i<(sizeof viewdefs / sizeof (char *)); ++i) {
- /*
- * Only offer the views that make sense, given the default
- * view for the room. For example, don't offer a Calendar
- * view in a non-Calendar room.
- */
- if (
- (i == WC->CurRoom.view)
- || (i == WC->CurRoom.defview) /* default */
- || ( (i == 0) && (WC->CurRoom.defview == 1) ) /* mail or bulletin */
- || ( (i == 1) && (WC->CurRoom.defview == 0) ) /* mail or bulletin */
- /* || ( (i == 7) && (WC->CurRoom.defview == 3) ) (calendar list temporarily disabled) */
- ) {
-
- wc_printf("<option %s value=\"changeview?view=%d\">",
- ((i == WC->CurRoom.view) ? "selected" : ""),
- i );
- escputs(viewdefs[i]);
- wc_printf("</option>\n");
- }
- }
- wc_printf("</select></div></form>\n");
-}
WC->new_mail = extract_int(&got[4], 9);
WC->CurRoom.view = extract_int(&got[4], 11);
- /* Is this a directory room and does it contain files and how many? */
- if ((WC->CurRoom.QRFlags & QR_DIRECTORY) && (WC->CurRoom.QRFlags & QR_VISDIR))
- {
- serv_puts("RDIR");
- serv_getln(buf2, sizeof buf2);
- if (buf2[0] == '1') while (serv_getln(buf2, sizeof buf2), strcmp(buf2, "000"))
- file_count++;
- snprintf (with_files, sizeof with_files,
- "; <a href=\"do_template?template=files\"> %d %s </a>",
- file_count,
- ((file_count>1) || (file_count == 0) ? _("files") : _("file")));
- }
- else
- strcpy (with_files, "");
-
- svprintf(HKEY("NUMMSGS"), WCS_STRING,
- _("%d new of %d messages%s"),
- extract_int(&got[4], 1),
- extract_int(&got[4], 2),
- with_files
- );
- svcallback("VIEWOMATIC", embed_view_o_matic);
-
do_template("roombanner", NULL);
/* roombanner contains this for mobile */
if (navbar_style != navbar_none && (WC->is_mobile < 1)) {
FreeStrBuf(&Buf);
}
+void tmplput_RoomViewString(StrBuf *Target, WCTemplputParams *TP)
+{
+ long CheckThis;
+ StrBuf *Buf;
+
+ CheckThis = GetTemplateTokenNumber(Target, TP, 0, 0);
+ if ((CheckThis >= VIEW_MAX) || (CheckThis < VIEW_BBS))
+ {
+ LogTemplateError(Target, "Token", ERR_PARM2, TP,
+ "Roomview [%ld] not valid\n",
+ CheckThis);
+ return;
+ }
+
+ Buf = NewStrBufPlain(_(viewdefs[CheckThis]), -1);
+ StrBufAppendTemplate(Target, TP, Buf, 0);
+ FreeStrBuf(&Buf);
+}
+
/*
* goto next room
RegisterNamespace("THISROOM:ORDER", 0, 0, tmplput_CurrentRoomOrder, NULL, CTX_NONE);
RegisterNamespace("THISROOM:DEFAULT_VIEW", 0, 0, tmplput_CurrentRoomDefView, NULL, CTX_NONE);
RegisterConditional(HKEY("COND:THISROOM:HAVE_VIEW"), 0, ConditionalThisRoomHaveView, CTX_NONE);
- RegisterNamespace("THISROOM:VIEW_STRING", 0, 0, tmplput_CurrentRoomViewString, NULL, CTX_NONE);
+ RegisterNamespace("THISROOM:VIEW_STRING", 0, 1, tmplput_CurrentRoomViewString, NULL, CTX_NONE);
+ RegisterNamespace("ROOM:VIEW_STRING", 1, 2, tmplput_RoomViewString, NULL, CTX_NONE);
RegisterNamespace("THISROOM:INFOTEXT", 1, 2, tmplput_CurrentRoomInfoText, NULL, CTX_NONE);
RegisterConditional(HKEY("COND:THISROOM:ORDER"), 0, ConditionalThisRoomOrder, CTX_NONE);