X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=webcit%2Fmainmenu.c;h=f93b90b0ac789c55c62a15343913f17865e69f3e;hb=8fa15271b5cdc6722aad2d0b4c9fe12e48472878;hp=e612d42e6ea78b5151e3c31dbf859964743298d2;hpb=d36ea92f8c171eed138d449f8ac3684f5a4c215f;p=citadel.git diff --git a/webcit/mainmenu.c b/webcit/mainmenu.c index e612d42e6..f93b90b0a 100644 --- a/webcit/mainmenu.c +++ b/webcit/mainmenu.c @@ -1,214 +1,395 @@ /* $Id$ */ + + + +#include #include -#ifdef HAVE_UNISTD_H #include -#endif #include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include +#include #include +#include +#include +#include #include "webcit.h" -#include "child.h" -/* - * menu of commands (just the menu html itself) - */ - -void embed_main_menu(void) { - wprintf("
"); - - wprintf("
"); /* start of first column */ - - wprintf("\n"); - - wprintf("\n"); /* start of second column */ - - wprintf("\n"); - - wprintf(""); /* start of third column */ - - wprintf("\n"); - - wprintf("
\n"); - - wprintf("
\n"); - } /* - * advanced options + * The Main Menu */ -void embed_advanced_menu(void) { - -wprintf("
"); - - -wprintf("
"); -wprintf("Interaction\n"); -wprintf("
\n"); - -wprintf("\n"); - -wprintf("
"); - -wprintf("
"); -wprintf("Your info\n"); -wprintf("
\n"); - -wprintf("\n"); - - -wprintf("
"); - -wprintf("
"); -wprintf("Advanced room commands\n"); -wprintf("
\n"); +void display_main_menu(void) +{ + output_headers(1); + + wprintf("" + "" + "
\n"); + + svprintf("BOXTITLE", WCS_STRING, "Basic commands"); + do_template("beginbox"); + + wprintf("\n" + "" + "" + "
"); /* start of first column */ + + wprintf("" + "" + "List known rooms
" + "" + "Where can I go from here?
\n" + ); + + wprintf("" + "" + "Goto next room
" + "" + "...with unread messages" + "
\n" + ); + + wprintf("" + "" + "Skip to next room
" + "" + "(come back here later)" + "\n" + ); + + if ((strlen(WC->ugname) > 0) && (strcasecmp(WC->ugname, WC->wc_roomname))) { + wprintf("
" + "" + "" + "Ungoto
" + "" + "(oops! Back to %s)" + "\n", WC->ugname + ); + } -wprintf("
\n"); /* start of second column */ + + wprintf("" + "" + "Read new messages
" + "" + "...in this room
\n" + ); + + wprintf("" + "" + "Read all messages
" + "" + "...old and new
\n" + ); + + wprintf("" + "" + "Enter a message
" + "" + "(post in this room)\n" + ); + + wprintf("
"); /* start of third column */ + + wprintf("" + "" + "Summary page
" + "" + "Summary of my account
\n" + ); + + wprintf("\n" + "" + "User list
" + "" + "(all registered users)
\n" + ); + + wprintf("" + "" + "Log off
" + "" + "Bye!\n" + ); + + wprintf("
\n"); + do_template("endbox"); + + wprintf("
"); + + svprintf("BOXTITLE", WCS_STRING, "Interaction"); + do_template("beginbox"); + + wprintf("" + "" + "Who is online?" + "" + " (users currently logged on)" + "
\n" + ); + + wprintf("" + "" + "Chat with other users in " + ); + escputs(WC->wc_roomname); + wprintf("
\n"); + + wprintf("\n"); + wprintf("" + "Generic server command\n"); + + do_template("endbox"); + + wprintf("
"); + + svprintf("BOXTITLE", WCS_STRING, "Your info"); + do_template("beginbox"); + + wprintf("" + "" + "Update your contact information " + "" + "(name, address, etc.)
\n"); + + wprintf("" + "" + "Change your password
\n"); + + wprintf("" + "" + "Enter your 'bio' " + "" + "(a few words about yourself)" + "
\n"); + + wprintf("" + "" + "Edit your online photo\n"); + + do_template("endbox"); + + wprintf("
"); + + svprintf("BOXTITLE", WCS_STRING, "Advanced room commands"); + do_template("beginbox"); + + if ((WC->axlevel >= 6) || (WC->is_room_aide)) { + wprintf("" + "" + "Edit or delete this room
\n"); + } -wprintf("
  • "); -wprintf("Create a new room\n"); + wprintf("" + "" + "Go to a "hidden" room
    \n"); + + wprintf("" + "" + "Create a new room
    \n"); + + wprintf("" + "" + "Zap (forget) this room (%s)
    \n", + WC->wc_roomname); + + wprintf("\n" + "" + "Access controls for this room
    \n"); + + wprintf("" + "" + "List all forgotten rooms\n"); + + do_template("endbox"); + + wprintf("
  • "); + + if ((WC->axlevel >= 6) || (WC->is_room_aide)) { + svprintf("BOXTITLE", WCS_STRING, "Administrative functions"); + do_template("beginbox"); + + wprintf("" + "" + "Edit site-wide configuration\n"); + + if (WC->axlevel >= 6) { + wprintf("
    " + "" + "" + "Add, change, delete user accounts" + "
    \n"); + + wprintf("" + "" + "Validate new users
    \n"); + + wprintf("" + "" + "Add, change, or delete floors" + "
    \n"); + + wprintf("" + "" + "Configure networking with other systems" + "
    \n"); + + wprintf("" + "" + "Internet configuration " + "" + "(domain names, etc.)
    \n"); + } + do_template("endbox"); + } + wprintf("
    "); + wDumpContent(2); +} -wprintf("
  • "); -wprintf("Zap (forget) this room (%s)\n", wc_roomname); -wprintf("
  • "); -wprintf("List all forgotten rooms\n"); -wprintf("\n"); -wprintf("
  • "); -if ((axlevel>=6) || (is_room_aide)) { - wprintf("
    "); - wprintf("Administrative functions\n"); - wprintf("
    \n"); +/* + * Display the screen to enter a generic server command + */ +void display_generic(void) +{ + output_headers(3); + + svprintf("BOXTITLE", WCS_STRING, "Enter a server command"); + do_template("beginbox"); + + wprintf("
    "); + wprintf("This screen allows you to enter Citadel server commands which are\n"); + wprintf("not supported by WebCit. If you do not know what that means,\n"); + wprintf("then this screen will not be of much use to you.
    \n"); + + wprintf("
    \n"); + + wprintf("Enter command:
    \n"); + wprintf("
    \n"); + + wprintf("Command input (if requesting SEND_LISTING transfer mode):
    \n"); + wprintf("
    \n"); + + wprintf("Detected host header is http://%s\n", + WC->http_host); + wprintf(""); + wprintf(" "); + wprintf("
    \n"); + + wprintf("
    \n"); + do_template("endbox"); + wDumpContent(1); +} + +void do_generic(void) +{ + char buf[SIZ]; + char gcontent[SIZ]; + char *junk; + size_t len; + + if (strcasecmp(bstr("sc"), "Send command")) { + display_main_menu(); + return; + } - wprintf("\n"); + wprintf("000"); } - -wprintf("
    "); - -wprintf("
    "); -wprintf("Basic commands\n"); -wprintf("
    \n"); - + if (buf[0] == '4') { + text_to_server(bstr("g_input"), 0); + serv_puts("000"); + } + if (buf[0] == '6') { + len = atol(&buf[4]); + junk = malloc(len); + serv_read(junk, len); + free(junk); } + if (buf[0] == '7') { + len = atol(&buf[4]); + junk = malloc(len); + memset(junk, 0, len); + serv_write(junk, len); + free(junk); + } + wprintf("
    "); + wprintf("Enter another command
    \n"); + wprintf("Return to menu\n"); + do_template("endbox"); + wDumpContent(1); +} /* - * menu of commands (as a page) + * Display the menubar. Set as_single_page to + * display HTML headers and footers -- otherwise it's assumed + * that the menubar is being embedded in another page. */ -void display_main_menu(void) { - printf("HTTP/1.0 200 OK\n"); - output_headers(); - wprintf("WebCit main menu\n"); - embed_main_menu(); - wprintf("\n"); - wDumpContent(); +void display_menubar(int as_single_page) { + + if (as_single_page) { + output_headers(0); + wprintf("\n" + "\n" + "MenuBar\n" + "\n" + "\n"); + do_template("background"); } + do_template("menubar"); -void display_advanced_menu(void) { - printf("HTTP/1.0 200 OK\n"); - output_headers(); - wprintf("WebCit main menu\n"); - embed_advanced_menu(); - embed_main_menu(); - wprintf("\n"); - wDumpContent(); + if (as_single_page) { + wDumpContent(2); } + + +} + +