From 873351275cca76878a15128ed8ffbd556f880c0f Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Wed, 11 Nov 2009 16:27:04 +0000 Subject: [PATCH] * The 'Search' box now works properly in a Wiki room. --- webcit/messages.c | 15 +++++++++++---- webcit/webcit.h | 1 + webcit/wiki.c | 10 ++++++++-- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/webcit/messages.c b/webcit/messages.c index 682477de3..53b5b9eb6 100644 --- a/webcit/messages.c +++ b/webcit/messages.c @@ -751,7 +751,7 @@ typedef struct _RoomRenderer{ /* * command loop for reading messages * - * Set oper to "readnew" or "readold" or "readfwd" or "headers" or "readgt" + * Set oper to "readnew" or "readold" or "readfwd" or "headers" or "readgt" or "do_search" */ void readloop(long oper) { @@ -769,8 +769,14 @@ void readloop(long oper) SharedMessageStatus Stat; void *ViewSpecific; - if (havebstr("is_summary") && (1 == (ibstr("is_summary")))) + if (havebstr("is_summary") && (1 == (ibstr("is_summary")))) { WCC->wc_view = VIEW_MAILBOX; + } + + if (WCC->wc_view == VIEW_WIKI) { + display_wiki_pagelist(); + return; + } memset(&Stat, 0, sizeof(SharedMessageStatus)); Stat.maxload = 10000; @@ -781,8 +787,9 @@ void readloop(long oper) WCC->wc_view = VIEW_BBS; GetHash(ReadLoopHandler, IKEY(WCC->wc_view), &vViewMsg); } - if (vViewMsg == NULL) - return;///TODO: print message + if (vViewMsg == NULL) { + return; // TODO: print message + } ViewMsg = (RoomRenderer*) vViewMsg; if (!WCC->is_ajax) { diff --git a/webcit/webcit.h b/webcit/webcit.h index 3dc49116f..e015ce50f 100644 --- a/webcit/webcit.h +++ b/webcit/webcit.h @@ -793,6 +793,7 @@ long guess_calhourformat(void); int get_time_format_cached (void); int xtoi(const char *in, size_t len); const char *get_selected_language(void); +void display_wiki_pagelist(void); #define DATEFMT_FULL 0 #define DATEFMT_BRIEF 1 diff --git a/webcit/wiki.c b/webcit/wiki.c index b7b03c1a0..71f052efe 100644 --- a/webcit/wiki.c +++ b/webcit/wiki.c @@ -272,7 +272,13 @@ void tmplput_display_wiki_pagelist(StrBuf *Target, WCTemplputParams *TP) } } - serv_printf("MSGS ALL|||4"); + if (!IsEmptyStr(bstr("query"))) { + serv_printf("MSGS SEARCH|%s||4", bstr("query")); /* search-reduced list */ + } + else { + serv_printf("MSGS ALL|||4"); /* full list */ + } + Buf = NewStrBuf(); StrBuf_ServGetln(Buf); if (GetServerStatus(Buf, NULL) == 1) { @@ -305,7 +311,7 @@ void tmplput_display_wiki_pagelist(StrBuf *Target, WCTemplputParams *TP) /* - * Display a list of all pages in a Wiki room + * Display a list of all pages in a Wiki room. Search requests in a Wiki room also go here. */ void display_wiki_pagelist(void) { -- 2.30.2