From 1e101aa1bfddbdbad0024f743ff71447cc432a11 Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Wed, 17 Jan 2007 14:21:29 +0000 Subject: [PATCH] Made termlist length tunable (partially) from browser client --- src/http_command.c | 14 +++++++++----- www/demo/search.js | 5 +++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/http_command.c b/src/http_command.c index 940b1f1..114d2ea 100644 --- a/src/http_command.c +++ b/src/http_command.c @@ -1,5 +1,5 @@ /* - * $Id: http_command.c,v 1.22 2007-01-15 04:34:28 quinn Exp $ + * $Id: http_command.c,v 1.23 2007-01-17 14:21:29 quinn Exp $ */ #include @@ -157,7 +157,7 @@ static int cmp_ht(const void *p1, const void *p2) } // This implements functionality somewhat similar to 'bytarget', but in a termlist form -static void targets_termlist(WRBUF wrbuf, struct session *se) +static void targets_termlist(WRBUF wrbuf, struct session *se, int num) { struct hitsbytarget *ht; int count, i; @@ -165,7 +165,7 @@ static void targets_termlist(WRBUF wrbuf, struct session *se) if (!(ht = hitsbytarget(se, &count))) return; qsort(ht, count, sizeof(struct hitsbytarget), cmp_ht); - for (i = 0; i < count && i < 15; i++) + for (i = 0; i < count && i < num; i++) { wrbuf_puts(wrbuf, "\n\n"); wrbuf_printf(wrbuf, "%s\n", ht[i].id); @@ -185,6 +185,8 @@ static void cmd_termlist(struct http_channel *c) int len; int i; char *name = http_argbyname(rq, "name"); + char *nums = http_argbyname(rq, "num"); + int num = 15; int status; if (!s) @@ -196,6 +198,8 @@ static void cmd_termlist(struct http_channel *c) name = "subject"; if (strlen(name) > 255) return; + if (nums) + num = atoi(nums); wrbuf_rewind(c->wrbuf); @@ -213,12 +217,12 @@ static void cmd_termlist(struct http_channel *c) wrbuf_printf(c->wrbuf, "\n\n", tname); if (!strcmp(tname, "xtargets")) - targets_termlist(c->wrbuf, s->psession); + targets_termlist(c->wrbuf, s->psession, num); else { p = termlist(s->psession, tname, &len); if (p) - for (i = 0; i < len; i++) + for (i = 0; i < len && i < num; i++) { wrbuf_puts(c->wrbuf, "\n"); wrbuf_printf(c->wrbuf, "%s", p[i]->term); diff --git a/www/demo/search.js b/www/demo/search.js index d0a64c2..517f597 100644 --- a/www/demo/search.js +++ b/www/demo/search.js @@ -1,4 +1,4 @@ -/* $Id: search.js,v 1.35 2007-01-17 14:12:03 quinn Exp $ +/* $Id: search.js,v 1.36 2007-01-17 14:21:29 quinn Exp $ * --------------------------------------------------- * Javascript container */ @@ -579,7 +579,8 @@ function check_termlist() var url = "search.pz2?" + "command=termlist" + "&session=" + session + - "&name=" + facet_name; + "&name=" + facet_name + + "&num=12"; xtermlist = GetXmlHttpObject(); xtermlist.onreadystatechange=show_termlist; xtermlist.open("GET", url); -- 1.7.10.4