char *viewdefs[9]; /**< the different kinds of available views */
+void display_whok(void);
+
/*
* Initialize the viewdefs with localized strings
*/
output_headers(1, 1, 1, 0, 0, 0);
svput("BOXTITLE", WCS_STRING, _("Zapped (forgotten) rooms"));
- do_template("beginbox");
+ do_template("beginbox", NULL);
listrms("LZRM -1");
wprintf("<br /><br />\n");
wprintf(_("Click on any room to un-zap it and goto that room.\n"));
- do_template("endbox");
+ do_template("endbox", NULL);
wDumpContent(1);
}
void embed_room_banner(char *got, int navbar_style) {
char buf[256];
char buf2[1024];
- char sanitized_roomname[256];
char with_files[256];
int file_count=0;
}
else
strcpy (with_files, "");
-
- stresc(sanitized_roomname, 256, WC->wc_roomname, 1, 1);
- svprintf(HKEY("ROOMNAME"), WCS_STRING, "%s", sanitized_roomname);
+
svprintf(HKEY("NUMMSGS"), WCS_STRING,
_("%d new of %d messages%s"),
extract_int(&got[4], 1),
);
svcallback("ROOMPIC", embed_room_graphic);
svcallback("ROOMINFO", readinfo);
- svcallback("VIEWOMATIC", embed_view_o_matic);
+ svcallback("VIEWOMATIC", embed_view_o_matic);
svcallback("SEARCHOMATIC", embed_search_o_matic);
- svcallback("START", offer_start_page);
-
- do_template("roombanner");
- if (navbar_style != navbar_none) {
+ svcallback("START", offer_start_page);
+
+ do_template("roombanner", NULL);
+ // roombanner contains this for mobile
+ if (navbar_style != navbar_none && !WC->is_mobile) {
wprintf("<div id=\"navbar\"><ul>");
output_headers(1, 1, 1, 0, 0, 0);
svprintf(HKEY("BOXTITLE"), WCS_STRING, _("Create a new room"));
- do_template("beginbox");
+ do_template("beginbox", NULL);
wprintf("<form name=\"create_room_form\" method=\"POST\" action=\"entroom\">\n");
wprintf("<input type=\"hidden\" name=\"nonce\" value=\"%d\">\n", WC->nonce);
fmout("LEFT");
}
- do_template("endbox");
+ do_template("endbox", NULL);
wDumpContent(1);
}
output_headers(1, 1, 1, 0, 0, 0);
svprintf(HKEY("BOXTITLE"), WCS_STRING, _("Go to a hidden room"));
- do_template("beginbox");
+ do_template("beginbox", NULL);
wprintf("<p>");
wprintf(_("If you know the name of a hidden (guess-name) or "
);
wprintf("</div></form>\n");
- do_template("endbox");
+ do_template("endbox", NULL);
wDumpContent(1);
}
if ( (strcasecmp(floor_name, old_floor_name))
&& (!IsEmptyStr(old_floor_name)) ) {
/* End inner box */
- do_template("endbox");
+ do_template("endbox", NULL);
wprintf("<br>");
++num_boxes;
/** Begin inner box */
stresc(boxtitle, 256, floor_name, 1, 0);
svprintf(HKEY("BOXTITLE"), WCS_STRING, boxtitle);
- do_template("beginbox");
+ do_template("beginbox", NULL);
}
oldlevels = levels;
}
}
/** End the final inner box */
- do_template("endbox");
+ do_template("endbox", NULL);
wprintf("</td></tr></table>\n");
}
* \brief print a floor div???
* \param which_floordiv name of the floordiv???
*/
-void set_floordiv_expanded(char *which_floordiv) {
- begin_ajax_response();
- StrBufPrintf(WC->floordiv_expanded, "%s", which_floordiv);
- end_ajax_response();
+void set_floordiv_expanded(void) {
+ struct wcsession *WCC = WC;
+
+ if (WCC->floordiv_expanded == NULL)
+ WCC->floordiv_expanded = NewStrBuf();
+ else
+ FlushStrBuf(WC->floordiv_expanded);
+ StrBufAppendBuf(WC->floordiv_expanded, WC->UrlFragment1, 0);
}
/**
*/
void knrooms(void)
{
- StrBuf *ListView;
+ StrBuf *ListView = NULL;
output_headers(1, 1, 2, 0, 0, 0);
/** Determine whether the user is trying to change views */
- if (bstr("view") != NULL) {
- if (havebstr("view")) {
- set_preference("roomlistview", NewStrBufPlain(bstr("view"), -1), 1);
- }
+ if (havebstr("view")) {
+ ListView = NewStrBufPlain(bstr("view"), -1);
+ set_preference("roomlistview", ListView, 1);
}
-
+ /** Sanitize the input so its safe */
if(!get_preference("roomlistview", &ListView) ||
- ((strcasecmp(ChrPtr(ListView), "folders"))
- && (strcasecmp(ChrPtr(ListView), "table")))) {
- if (ListView == NULL)
- ListView = NewStrBuf();
- StrBufPrintf(ListView, "%s", "rooms");
- set_preference("roomlistview", ListView, 0);
+ ((strcasecmp(ChrPtr(ListView), "folders") != 0) &&
+ (strcasecmp(ChrPtr(ListView), "table") != 0)))
+ {
+ if (ListView == NULL) {
+ ListView = NewStrBufPlain("rooms", sizeof("rooms") - 1);
+ set_preference("roomlistview", ListView, 0);
+ }
+ else {
+ StrBufPrintf(ListView, "rooms");
+ save_preferences();
+ }
}
/** title bar */
if (WC->axlevel >= 6) {
strcat(WC->ImportantMessage, "<br />\n");
- serv_printf("SPEX floor|%d|%d", ibstr("floorpolicy"), bstr("floorvalue"));
+ serv_printf("SPEX floor|%d|%d", ibstr("floorpolicy"), ibstr("floorvalue"));
serv_getln(buf, sizeof buf);
strcat(WC->ImportantMessage, &buf[4]);
}
display_editroom();
}
+
+void tmplput_RoomName(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *Context)
+{
+ StrEscAppend(Target, NULL, WC->wc_roomname, 1, 1);
+}
+
+void _gotonext(void) { slrp_highest(); gotonext(); }
+void dotskip(void) {smart_goto(bstr("room"));}
+void _display_private(void) { display_private("", 0); }
+void dotgoto(void) {
+ if (WC->wc_view != VIEW_MAILBOX) { /* dotgoto acts like dotskip when we're in a mailbox view */
+ slrp_highest();
+ }
+ smart_goto(bstr("room"));
+}
+
+
+void
+InitModule_ROOMOPS
+(void)
+{
+ RegisterNamespace("ROOMNAME", 0, 0, tmplput_RoomName);
+
+ WebcitAddUrlHandler(HKEY("knrooms"), knrooms, 0);
+ WebcitAddUrlHandler(HKEY("gotonext"), _gotonext, 0);
+ WebcitAddUrlHandler(HKEY("skip"), gotonext, 0);
+ WebcitAddUrlHandler(HKEY("ungoto"), ungoto, 0);
+ WebcitAddUrlHandler(HKEY("dotgoto"), dotgoto, 0);
+ WebcitAddUrlHandler(HKEY("dotskip"), dotskip, 0);
+ WebcitAddUrlHandler(HKEY("display_private"), _display_private, 0);
+ WebcitAddUrlHandler(HKEY("goto_private"), goto_private, 0);
+ WebcitAddUrlHandler(HKEY("zapped_list"), zapped_list, 0);
+ WebcitAddUrlHandler(HKEY("display_zap"), display_zap, 0);
+ WebcitAddUrlHandler(HKEY("zap"), zap, 0);
+ WebcitAddUrlHandler(HKEY("display_entroom"), display_entroom, 0);
+ WebcitAddUrlHandler(HKEY("entroom"), entroom, 0);
+ WebcitAddUrlHandler(HKEY("display_whok"), display_whok, 0);
+ WebcitAddUrlHandler(HKEY("do_invt_kick"), do_invt_kick, 0);
+ WebcitAddUrlHandler(HKEY("display_editroom"), display_editroom, 0);
+ WebcitAddUrlHandler(HKEY("netedit"), netedit, 0);
+ WebcitAddUrlHandler(HKEY("editroom"), editroom, 0);
+ WebcitAddUrlHandler(HKEY("delete_room"), delete_room, 0);
+ WebcitAddUrlHandler(HKEY("set_room_policy"), set_room_policy, 0);
+ WebcitAddUrlHandler(HKEY("set_floordiv_expanded"), set_floordiv_expanded, NEED_URL|AJAX);
+ WebcitAddUrlHandler(HKEY("changeview"), change_view, 0);
+}
+
/*@}*/