From b3ca5b5b2ee3b554151da3a3ace7945ccfec3a82 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Sun, 22 Jan 2006 22:50:06 +0000 Subject: [PATCH] More work on the wiki view. Don't try to use it yet. --- webcit/ChangeLog | 3 +++ webcit/roomops.c | 8 +------- webcit/webcit.h | 2 +- webcit/wiki.c | 51 ++++++++++++++++++++++++++++++++++++++++++------ 4 files changed, 50 insertions(+), 14 deletions(-) diff --git a/webcit/ChangeLog b/webcit/ChangeLog index e21c168c6..b8d51be61 100644 --- a/webcit/ChangeLog +++ b/webcit/ChangeLog @@ -1,5 +1,8 @@ $Id$ +Sun Jan 22 17:49:29 EST 2006 ajc +* More work on the wiki view. Don't try to use it yet. + Fri Jan 20 16:39:04 EST 2006 ajc * Started writing wiki code. It completely does not work. :) diff --git a/webcit/roomops.c b/webcit/roomops.c index e640d512a..9573fc9b3 100644 --- a/webcit/roomops.c +++ b/webcit/roomops.c @@ -518,13 +518,7 @@ void embed_room_banner(char *got, int navbar_style) { ); break; case VIEW_WIKI: - wprintf( - "" - "" - "%s" - "\n", _("Add new page") - ); + /* Don't let users create unlinked pages. */ break; default: wprintf( diff --git a/webcit/webcit.h b/webcit/webcit.h index 296cef730..dba840073 100644 --- a/webcit/webcit.h +++ b/webcit/webcit.h @@ -123,7 +123,7 @@ #define DEVELOPER_ID 0 #define CLIENT_ID 4 #define CLIENT_VERSION 671 /* This version of WebCit */ -#define MINIMUM_CIT_VERSION 670 /* min required Citadel ver. */ +#define MINIMUM_CIT_VERSION 671 /* min required Citadel ver. */ #define DEFAULT_HOST "localhost" /* Default Citadel server */ #define DEFAULT_PORT "504" #define LB (1) /* Internal escape chars */ diff --git a/webcit/wiki.c b/webcit/wiki.c index dd5f2138d..9d6a6b59b 100644 --- a/webcit/wiki.c +++ b/webcit/wiki.c @@ -43,23 +43,62 @@ void display_wiki_page(void) { char roomname[128]; char pagename[128]; + char errmsg[256]; + long msgnum = (-1L); safestrncpy(roomname, bstr("room"), sizeof roomname); safestrncpy(pagename, bstr("page"), sizeof pagename); str_wiki_index(pagename); - wprintf("roomname=%s
pagename=%s
\n", roomname, pagename); - - if (strcasecmp(roomname, WC->roomname)) { + /* If we're not in the correct room, try going there. */ + if (strcasecmp(roomname, WC->wc_roomname)) { gotoroom(roomname); } - if (strcasecmp(roomname, WC->roomname)) { - /* can't find the room */ - convenience_page(char *titlebarcolor, char *titlebarmsg, char *messagetext); + /* If we're still not in the correct room, it doesn't exist. */ + if (strcasecmp(roomname, WC->wc_roomname)) { + snprintf(errmsg, sizeof errmsg, + _("There is no room called '%s'."), + roomname); + convenience_page("FF0000", _("Error"), errmsg); + return; + } + + if (WC->wc_view != VIEW_WIKI) { + snprintf(errmsg, sizeof errmsg, + _("'%s' is not a Wiki room."), + roomname); + convenience_page("FF0000", _("Error"), errmsg); + return; + } + + if (strlen(pagename) == 0) { + strcpy(pagename, "home"); + } + + /* Found it! Now read it. */ + msgnum = locate_message_by_uid(pagename); + if (msgnum >= 0L) { + output_headers(1, 1, 1, 0, 0, 0); + read_message(msgnum, 0, ""); + wDumpContent(1); + return; } output_headers(1, 1, 1, 0, 0, 0); + wprintf("

" + "
" + "" + "
" + ); + wprintf("
"); + wprintf(_("There is no page called '%s' here."), pagename); + wprintf("

"); + wprintf("", pagename); + wprintf(_("Click here if you would like to create this page.")); + wprintf(""); + wprintf("

"); + wprintf("
\n"); wDumpContent(1); } -- 2.30.2