From b5288c1ea0785c0f3b979c73af3b287952f36d27 Mon Sep 17 00:00:00 2001 From: "Anders S. Mortensen" Date: Thu, 4 Jan 2007 14:11:55 +0000 Subject: [PATCH 01/16] Getting ready to implement to the demo. --- www/demo/about.php | 16 +++ www/demo/css/styles.css | 253 ++++++++++++++++++++++++++++++++++++++++++ www/demo/gfx/arrow_down.gif | Bin 0 -> 53 bytes www/demo/gfx/arrow_right.gif | Bin 0 -> 54 bytes www/demo/gfx/background.gif | Bin 0 -> 105 bytes www/demo/gfx/logo.gif | Bin 0 -> 1361 bytes www/demo/gfx/minus.gif | Bin 0 -> 60 bytes www/demo/gfx/plus.gif | Bin 0 -> 62 bytes www/demo/help.php | 16 +++ www/demo/includes.phpi | 11 ++ www/demo/index.php | 16 +++ www/demo/page_segments.phpi | 72 ++++++++++++ www/demo/settings.phpi | 9 ++ 13 files changed, 393 insertions(+) create mode 100644 www/demo/about.php create mode 100644 www/demo/css/styles.css create mode 100644 www/demo/gfx/arrow_down.gif create mode 100644 www/demo/gfx/arrow_right.gif create mode 100644 www/demo/gfx/background.gif create mode 100644 www/demo/gfx/logo.gif create mode 100644 www/demo/gfx/minus.gif create mode 100644 www/demo/gfx/plus.gif create mode 100644 www/demo/help.php create mode 100644 www/demo/includes.phpi create mode 100644 www/demo/index.php create mode 100644 www/demo/page_segments.phpi create mode 100644 www/demo/settings.phpi diff --git a/www/demo/about.php b/www/demo/about.php new file mode 100644 index 0000000..b928e0f --- /dev/null +++ b/www/demo/about.php @@ -0,0 +1,16 @@ +Welcome to the about page"; + +insert_footer(); + +?> diff --git a/www/demo/css/styles.css b/www/demo/css/styles.css new file mode 100644 index 0000000..3f77445 --- /dev/null +++ b/www/demo/css/styles.css @@ -0,0 +1,253 @@ +html { +overflow-y: scroll; +} + +html, body { +background-color: #5d82b7; +color: #002863; +font: 11px verdana, arial, sans-serif; +} + +div.container { +position: relative; +width: 995px; +background-color: #ffffff; +color: #002863; +margin-left: auto; +margin-right: auto; +height: 100%; +} + +img { +border: none; +} + +div.topbar { +background-color: #002863; +color: #ffffff; +height: 105px; +position: absolute; +left: 0px; +top: 0px; +width: 100%; +border-bottom: 5px solid #335382; +} + +#logo { +position: relative; +left: 71px; +top: 44px; +} + +div.topmenu { +position: absolute; +right: 0px; +top: 64px; +text-align: right; +width: 729px; +padding-top: 4px; +padding-right: 35px; +border-top: 1px solid #335382; +height: 25px; +vertical-align: center; +} + +div.topmenu a { +color: #ffffff; +font: bold 11px verdana, arial, sans-serif; +padding-left: 41px; +} + + +div.search { +position: relative; +top: 110px; +left: 0px; +width: 100%; +height: 90px; +background-color: #ffffff; +color: #002863; +font-weight: bold; +} + +div.search span { +position: absolute; +right: 788px; +top: 30px; +} + +div.search div { +position: absolute; +left: 225px; +top: 25px; +} + +input.search { +background-color: #f0f0f0; +color: #002863; +border: 1px solid #a5acb2; +height: 17px; +line-height: 17px; +width: 420px; +} + + +div.main { +width: 100%; +height: 100%; +background-color: #ffffff; +background-image: url(../gfx/background.gif); +background-position: top left; +backgroun-repeat: repeat-y; +color: #002863; +position: relative; +top: 100px; +left: 0px; +} + +div.clear { +clear: both; +} + +div.leftbar { +float: left; +width: 167px; +padding-left: 23px; +padding-top: 15px; +padding-right: 20px; +padding-bottom: 30px; +margin-right: 17px; +border-top: 1px solid #c5cedc; +color: #000000; +height: 100%; +} + +div.content { +float: right; +width: 733px; +padding-right: 35px; +padding-top: 15px; +padding-bottom: 30px; +background-color: #ffffff; +color: #002863; +border-top: 1px solid #c5cedc; +height: 100%; +} + + +input.button { +background-color: #5d82b7; +color: #ffffff; +border: none; +line-height: 19px; +height: 19px; +font: bold 11px verdana; +} + + +a { +color: #5d82b7; +text-decoration: none; +} + +a:visited { +color: #a0689d; +} + +a:hover { +text-decoration: underline; +} + +a.record { +padding-left: 27px; +background-image: url(../gfx/arrow_right.gif); +background-position: 7px 6px; +background-repeat: no-repeat; +display: block; +height: 20px; +line-height: 20px; +margin-bottom: 5px; +} + +div.records a.select { +padding-left: 27px; +background-image: url(../gfx/arrow_down.gif); +background-position: 7px 8px; +background-repeat: no-repeat; +font-weight: bold; +height: 20px; +line-height: 20px; +background-color: #e7ecf4; +display: block; +} + +div.results { +float: left; +font-weight: bold; +color: #000000; +} + +div.detail { +background-color: #e7ecf4; +margin-top: 2px; +width: 100%; +padding-top: 5px; +padding-bottom: 5px; +} + +table { +padding: 0px; +margin: 0px; +border-collapse: collapse; +} + +td.item { +width: 100px; +color: #000000; +font-weight: bold; +} + +div.detail a { +background: none; +padding: 0px; +margin: 0px; +} + +div.detail table { +margin-left: 40px; +} + +div.pages { +float: right; +} + +div.pages a { +text-decoration: underline; +} + +div.pages a.select { +text-decoration: none; +font-weight: bold; +} + +div.leftbar a { +display: block; +padding-left: 20px; +} + +a.unselected { +background-image: url(../gfx/minus.gif); +background-position: 0px 2px; +background-repeat: no-repeat; +} + +a.selected { +background-image: url(../gfx/plus.gif); +background-position: 0px 2px; +background-repeat: no-repeat; +} + +span.green { +color: #63b05d; +font-weight: bold; +} \ No newline at end of file diff --git a/www/demo/gfx/arrow_down.gif b/www/demo/gfx/arrow_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..09a19d2c59bc7ba8aa716e8b49693bebc1adbe54 GIT binary patch literal 53 zcmZ?wbhEHbWM|-DXkcWBZQB0-|9{1wEQ|~cj0`#qKmd|qVB%qETDCFkgj~wzTisj? F)&Owm4kG{n literal 0 HcmV?d00001 diff --git a/www/demo/gfx/arrow_right.gif b/www/demo/gfx/arrow_right.gif new file mode 100644 index 0000000000000000000000000000000000000000..0e56a1fbff549c90eb2eabf3fe985df1252e60e8 GIT binary patch literal 54 zcmZ?wbhEHbWM|-DXkcWBZQB0-|9{1wEQ|~cj0`#qKmd|qVB%$I%9y_KtxuJgA6p_L GgEato?hRT1 literal 0 HcmV?d00001 diff --git a/www/demo/gfx/background.gif b/www/demo/gfx/background.gif new file mode 100644 index 0000000000000000000000000000000000000000..be66809f9e2693e0541ada990fd220ea1860ea0d GIT binary patch literal 105 zcmZ?wbhEHbe9X+m(7?d(>g}ih|NkrgWMKdS9S{MMVPJA->0f#JE&t* zzwMF7v}c{mUY*+Zj{Ep0pX=XxpZ_}d{onnA9PLLIee957nto>4XU<-)Nk%w1VVeLX0K@>Fg5E`a z8p+mZKwx8IJN0775h}L{1_?yN&4Zkpm`al?`4V-$8mr;(?F<~$vU>g9cqHY4)C&I& z3LZm)%|4(#8hnBsCI*3nc5WzqiZ=mjCmV=rBV}PX1_*I~l9O$D17#9c3zQ~xo^pVm zkRF<>9gQA*s*bH`td(GxuU{o5on}tM8o#Aw0hnaF9tCO$G6B*Hdu47vPRqi>9tmm# z5-^8lcqVab4O5S0k#WRMJ(f2FYQMnpR#W2#b0*bh<-C14kdNM%QB#6lx`B$H6$hrw zB~nxFgfn*cnB~LOVW9_uzHTVoh$GY|EfG2YdPFfYA-)^EWHBt0PU05>COaTpgi$3) zpZ?If)cBKQhd;eMwwzKxT7W+yU-JBtEZBOz5*}6A*&yR8D(6-*WCCCocofj|q5477U z4Z}|vPg&!wW`8wj+I;ez@LqgC-B+Oh6-`N#+FJiDh}UuY8K)UbYM`+mfdis&V09e! z_gaOvoF^d)+7w|0NVr9alRO(j2G@rtDi~RZq{KmDY-J!=NKTDJ*v)t`k`x(@93kM; zl1}-C;c6!=r=mqk?PyvoP6C%9Yvh@r%>mjtrzDe0=AhRq+IcnzVK`c$SVuuh%B)W{qOFe1|!e)X~TsFykHx9`P0{vLn+6}z*WZRmFW#x8DE9|hu7HjOW z$R?}ovdlIctNT32GdFl0Jhmi3jhG!LU6$YCPXWM2jF&_0R!w-jC0m>mq8^N_62yj6J4@599!EPCRgTnPx(p8)R7 zCcw)9x#prvtra|@Q1Qz?TM_jM6>tCn%mQpXF3~uX6!ZyEPi@85N^|W&(n$|(1-J^F zU^Ka6qY!t{17}@?ITo-V`pN=rD--$J*`cmy1uop`$0T3#^)CcHj*x03@d_|u!?YH+p;klSzu z-v&QA2PSvR!3B=1{;|Wsf6K7aZIgWT+5Sjo0 literal 0 HcmV?d00001 diff --git a/www/demo/help.php b/www/demo/help.php new file mode 100644 index 0000000..22a9ac5 --- /dev/null +++ b/www/demo/help.php @@ -0,0 +1,16 @@ +Welcome to the help page"; + +insert_footer(); + +?> diff --git a/www/demo/includes.phpi b/www/demo/includes.phpi new file mode 100644 index 0000000..4ebcf98 --- /dev/null +++ b/www/demo/includes.phpi @@ -0,0 +1,11 @@ + diff --git a/www/demo/index.php b/www/demo/index.php new file mode 100644 index 0000000..c1455b2 --- /dev/null +++ b/www/demo/index.php @@ -0,0 +1,16 @@ +Welcome to front-page!"; + +insert_footer(); + +?> diff --git a/www/demo/page_segments.phpi b/www/demo/page_segments.phpi new file mode 100644 index 0000000..e4a8e4a --- /dev/null +++ b/www/demo/page_segments.phpi @@ -0,0 +1,72 @@ + + + + Keystone Retriever + + + + +
+
+ + + +
+ ABOUT + HELP +
+
+ +
+
+ Limit search results
+ Narrow your search by using the keywords below:
+
+ Subject + Subject 1 + Subject 2 + Subject 3 +
+ Author +
+ Institution +
+ Date + Date 1 + Date 2 + Date 3 +
+
+END_OF_HEADER; +} + + +function insert_footer () { +echo << +
+
+
+ + +END_OF_FOOTER; +} diff --git a/www/demo/settings.phpi b/www/demo/settings.phpi new file mode 100644 index 0000000..7b87dbc --- /dev/null +++ b/www/demo/settings.phpi @@ -0,0 +1,9 @@ + -- 1.7.10.4 From 861de69a42ccfd585b10e50fc44ed8c0797f8904 Mon Sep 17 00:00:00 2001 From: "Anders S. Mortensen" Date: Thu, 4 Jan 2007 14:39:06 +0000 Subject: [PATCH 02/16] Default message on front-page. --- www/demo/index.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/www/demo/index.php b/www/demo/index.php index c1455b2..f8bb0bb 100644 --- a/www/demo/index.php +++ b/www/demo/index.php @@ -1,6 +1,6 @@ Welcome to front-page!"; +echo "

Enter your search!

"; insert_footer(); -- 1.7.10.4 From c06c46da38284ff97d202d6267bc110d37ecea8f Mon Sep 17 00:00:00 2001 From: "Anders S. Mortensen" Date: Thu, 4 Jan 2007 14:39:42 +0000 Subject: [PATCH 03/16] div structure more appropriate for ajax programming. --- www/demo/page_segments.phpi | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/www/demo/page_segments.phpi b/www/demo/page_segments.phpi index e4a8e4a..87131bc 100644 --- a/www/demo/page_segments.phpi +++ b/www/demo/page_segments.phpi @@ -1,6 +1,6 @@ Limit search results
Narrow your search by using the keywords below:

- Subject - Subject 1 - Subject 2 - Subject 3 + Subject +

- Author + Author +

- Institution + Institution +

- Date - Date 1 - Date 2 - Date 3 + Date +
END_OF_HEADER; -- 1.7.10.4 From 7d59ebd395d2aeb762f6abe0a9329fd71881fdbc Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Thu, 4 Jan 2007 19:04:34 +0000 Subject: [PATCH 04/16] *** empty log message *** --- src/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Makefile b/src/Makefile index 69c3c02..2382494 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,12 +1,12 @@ # ParaZ. Copyright (C) 2000-2004, Index Data ApS # All rights reserved. -# $Id: Makefile,v 1.6 2007-01-04 02:35:42 quinn Exp $ +# $Id: Makefile,v 1.7 2007-01-04 19:04:34 quinn Exp $ SHELL=/bin/sh CC=gcc -YAZCONF=yaz/yaz-config +YAZCONF=yaz-config YAZLIBS=`$(YAZCONF) --libs` YAZCFLAGS=`$(YAZCONF) --cflags` -- 1.7.10.4 From 216a058d5cc5bdc3cc83cc239ccbec00f01c1aeb Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Thu, 4 Jan 2007 20:00:58 +0000 Subject: [PATCH 05/16] Added 'virtual' facet named 'xtargets' to termlist command, which returns information about targets with the most hitcounts. Description in PROTOCOL --- PROTOCOL | 46 +++++++++++++++++++++++++++----------------- src/http_command.c | 53 +++++++++++++++++++++++++++++++++++++++++---------- src/pazpar2.c | 4 ++-- www/test1/search.js | 6 +++--- 4 files changed, 77 insertions(+), 32 deletions(-) diff --git a/PROTOCOL b/PROTOCOL index 5e3ad07..a3a68c4 100644 --- a/PROTOCOL +++ b/PROTOCOL @@ -136,21 +136,33 @@ search.pz2?session=2044502273&command=termlist&name=author,subject Output: - 3 - - - Donald Knuth - 10 - - - Robert Pirsig - 2 - - - - - Computer programming - 10 - - +3 + + +Donald Knuth +10 + + +Robert Pirsig +2 + + + + +Computer programming +10 + + + +For the special termlist name "xtargets", results are returned about the targets +which have returned the most hits. The 'term' subtree has additional elements, +specifically a state and diagnostic field (in the example below, a target ID is +returned in place of 'name'. This may or may not change later. + + +library2.mcmaster.ca +11734 +Client_Idle +0 + diff --git a/src/http_command.c b/src/http_command.c index c4837a6..25871a0 100644 --- a/src/http_command.c +++ b/src/http_command.c @@ -1,5 +1,5 @@ /* - * $Id: http_command.c,v 1.5 2007-01-04 02:53:37 quinn Exp $ + * $Id: http_command.c,v 1.6 2007-01-04 20:00:58 quinn Exp $ */ #include @@ -144,6 +144,34 @@ static void cmd_init(struct http_channel *c) http_send_response(c); } +// Compares two hitsbytarget nodes by hitcount +static int cmp_ht(const void *p1, const void *p2) +{ + const struct hitsbytarget *h1 = p1; + const struct hitsbytarget *h2 = p2; + return h2->hits - h1->hits; +} + +// This implements functionality somewhat similar to 'bytarget', but in a termlist form +static void targets_termlist(WRBUF wrbuf, struct session *se) +{ + struct hitsbytarget *ht; + int count, i; + + if (!(ht = hitsbytarget(se, &count))) + return; + qsort(ht, count, sizeof(struct hitsbytarget), cmp_ht); + for (i = 0; i < count && i < 15; i++) + { + wrbuf_puts(wrbuf, "\n\n"); + wrbuf_printf(wrbuf, "%s\n", ht[i].id); + wrbuf_printf(wrbuf, "%d\n", ht[i].hits); + wrbuf_printf(wrbuf, "%s\n", ht[i].state); + wrbuf_printf(wrbuf, "%d\n", ht[i].diagnostic); + wrbuf_puts(wrbuf, "\n\n"); + } +} + static void cmd_termlist(struct http_channel *c) { struct http_response *rs = c->response; @@ -177,16 +205,21 @@ static void cmd_termlist(struct http_channel *c) strncpy(tname, name, tp - name); tname[tp - name] = '\0'; - p = termlist(s->psession, tname, &len); wrbuf_printf(c->wrbuf, "\n\n", tname); - if (p) - for (i = 0; i < len; i++) - { - wrbuf_puts(c->wrbuf, "\n"); - wrbuf_printf(c->wrbuf, "%s", p[i]->term); - wrbuf_printf(c->wrbuf, "%d", p[i]->frequency); - wrbuf_puts(c->wrbuf, ""); - } + if (!strcmp(tname, "xtargets")) + targets_termlist(c->wrbuf, s->psession); + else + { + p = termlist(s->psession, tname, &len); + if (p) + for (i = 0; i < len; i++) + { + wrbuf_puts(c->wrbuf, "\n"); + wrbuf_printf(c->wrbuf, "%s", p[i]->term); + wrbuf_printf(c->wrbuf, "%d", p[i]->frequency); + wrbuf_puts(c->wrbuf, ""); + } + } wrbuf_puts(c->wrbuf, "\n"); name = tp; if (*name == ',') diff --git a/src/pazpar2.c b/src/pazpar2.c index 1537054..66a1d12 100644 --- a/src/pazpar2.c +++ b/src/pazpar2.c @@ -1,4 +1,4 @@ -/* $Id: pazpar2.c,v 1.12 2007-01-04 07:38:36 adam Exp $ */; +/* $Id: pazpar2.c,v 1.13 2007-01-04 20:00:58 quinn Exp $ */; #include #include @@ -465,7 +465,7 @@ static struct record *ingest_record(struct client *cl, Z_External *rec) } else if (!strcmp(n->name, "metadata")) { - xmlChar *type = xmlGetProp(n, "type"), *value; + xmlChar *type = xmlGetProp(n, "type"); if (type && !strcmp(type, "title")) { xmlChar *value = xmlNodeListGetString(xdoc, n->children, 0); diff --git a/www/test1/search.js b/www/test1/search.js index 94fd03a..c3658fc 100644 --- a/www/test1/search.js +++ b/www/test1/search.js @@ -1,4 +1,4 @@ -/* $Id: search.js,v 1.5 2007-01-04 03:06:40 quinn Exp $ +/* $Id: search.js,v 1.6 2007-01-04 20:00:58 quinn Exp $ * --------------------------------------------------- * Javascript container */ @@ -260,12 +260,12 @@ function show_termlist() } } - function check_termlist() { var url = "search.pz2?" + "command=termlist" + - "&session=" + session; + "&session=" + session + + "&name=" + "subject"; xtermlist = GetXmlHttpObject(); xtermlist.onreadystatechange=show_termlist; xtermlist.open("GET", url); -- 1.7.10.4 From d33ed57aa11756bdfbfefde01f7357333d62c789 Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Thu, 4 Jan 2007 20:18:16 +0000 Subject: [PATCH 06/16] Updated. --- TODO | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/TODO b/TODO index c025fff..0e05d0c 100644 --- a/TODO +++ b/TODO @@ -1,16 +1,9 @@ Short term: +Pull more metadata from records. Figure out how this relates to record retrieval Structured target profiles -- Zeerex? -- requires libxml -Normalization of records -- test if libXSLT is fast enough to: - -- Extract Subject headings, titles, dates, authors for facets and display - -- Merge keys for relevance ranking, etc. - -- Also normalize to UTF-8. Sort by title, date, author. Parameter to 'show' webservice command. -Additional facets. At least do 'author'.. think about making it general. -- libxml -Implement detection of 'search complete', so client knows when to stop polling. Full record retrieval. -- libxml -Implement hitsbytarget function to emulate traditional LOT-style U/I - -- Begs a 'limit by target' type of function... ?? Longer term: -- 1.7.10.4 From f17fe9c133574644af32b0aafaa67a3d1de10f1f Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Thu, 4 Jan 2007 20:33:51 +0000 Subject: [PATCH 07/16] Editing comments only. --- etc/pazpar2.cfg | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/etc/pazpar2.cfg b/etc/pazpar2.cfg index e63a98c..3ccbda5 100644 --- a/etc/pazpar2.cfg +++ b/etc/pazpar2.cfg @@ -5,13 +5,6 @@ configuration. --> - - @@ -23,14 +16,8 @@ - - - - - - - + marc21 -- 1.7.10.4 From 1f17c7a1f402364e96429a2922480c2c92aa9fef Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Thu, 4 Jan 2007 21:08:26 +0000 Subject: [PATCH 08/16] Moved Makefile --- src/Makefile | 47 ----------------------------------------------- src/Makefile.dist | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 47 deletions(-) delete mode 100644 src/Makefile create mode 100644 src/Makefile.dist diff --git a/src/Makefile b/src/Makefile deleted file mode 100644 index 2382494..0000000 --- a/src/Makefile +++ /dev/null @@ -1,47 +0,0 @@ -# ParaZ. Copyright (C) 2000-2004, Index Data ApS -# All rights reserved. -# $Id: Makefile,v 1.7 2007-01-04 19:04:34 quinn Exp $ - -SHELL=/bin/sh - -CC=gcc - -YAZCONF=yaz-config -YAZLIBS=`$(YAZCONF) --libs` -YAZCFLAGS=`$(YAZCONF) --cflags` - -PROG=pazpar2 -PROGO=pazpar2.o eventl.o util.o command.o http.o http_command.o termlists.o \ - reclists.o relevance.o config.o - -all: $(PROG) - -$(PROG): $(PROGO) - $(CC) $(CFLAGS) $(YAZCFLAGS) -o $(PROG) $(PROGO) yaz/src/.libs/libyaz.a $(YAZLIBS) -# $(CC) $(CFLAGS) $(YAZCFLAGS) -o $(PROG) $(PROGO) $(YAZLIBS) - -.c.o: - $(CC) -c $(CFLAGS) -I. $(YAZCFLAGS) $< - -clean: - rm -f *.[oa] test core mon.out gmon.out errlist $(PROG) - - -## Dependencies go below - -command.o: command.c command.h util.h eventl.h pazpar2.h termlists.h \ - relevance.h reclists.h config.h -config.o: config.c config.h -eventl.o: eventl.c eventl.h -http.o: http.c command.h util.h eventl.h pazpar2.h termlists.h \ - relevance.h reclists.h config.h http.h http_command.h -http_command.o: http_command.c command.h util.h eventl.h pazpar2.h \ - termlists.h relevance.h reclists.h config.h http.h http_command.h -pazpar2.o: pazpar2.c pazpar2.h termlists.h relevance.h reclists.h \ - eventl.h config.h command.h http.h -reclists.o: reclists.c pazpar2.h termlists.h relevance.h reclists.h \ - eventl.h config.h -relevance.o: relevance.c relevance.h pazpar2.h termlists.h eventl.h \ - config.h reclists.h -termlists.o: termlists.c termlists.h -util.o: util.c diff --git a/src/Makefile.dist b/src/Makefile.dist new file mode 100644 index 0000000..7d6e41d --- /dev/null +++ b/src/Makefile.dist @@ -0,0 +1,47 @@ +# ParaZ. Copyright (C) 2000-2004, Index Data ApS +# All rights reserved. +# $Id: Makefile.dist,v 1.1 2007-01-04 21:08:26 quinn Exp $ + +SHELL=/bin/sh + +CC=gcc + +YAZCONF=yaz-config +YAZLIBS=`$(YAZCONF) --libs` +YAZCFLAGS=`$(YAZCONF) --cflags` + +PROG=pazpar2 +PROGO=pazpar2.o eventl.o util.o command.o http.o http_command.o termlists.o \ + reclists.o relevance.o config.o + +all: $(PROG) + +$(PROG): $(PROGO) + $(CC) $(CFLAGS) $(YAZCFLAGS) -o $(PROG) $(PROGO) yaz/src/.libs/libyaz.a $(YAZLIBS) +# $(CC) $(CFLAGS) $(YAZCFLAGS) -o $(PROG) $(PROGO) $(YAZLIBS) + +.c.o: + $(CC) -c $(CFLAGS) -I. $(YAZCFLAGS) $< + +clean: + rm -f *.[oa] test core mon.out gmon.out errlist $(PROG) + + +## Dependencies go below + +command.o: command.c command.h util.h eventl.h pazpar2.h termlists.h \ + relevance.h reclists.h config.h +config.o: config.c config.h +eventl.o: eventl.c eventl.h +http.o: http.c command.h util.h eventl.h pazpar2.h termlists.h \ + relevance.h reclists.h config.h http.h http_command.h +http_command.o: http_command.c command.h util.h eventl.h pazpar2.h \ + termlists.h relevance.h reclists.h config.h http.h http_command.h +pazpar2.o: pazpar2.c pazpar2.h termlists.h relevance.h reclists.h \ + eventl.h config.h command.h http.h +reclists.o: reclists.c pazpar2.h termlists.h relevance.h reclists.h \ + eventl.h config.h +relevance.o: relevance.c relevance.h pazpar2.h termlists.h eventl.h \ + config.h reclists.h +termlists.o: termlists.c termlists.h +util.o: util.c -- 1.7.10.4 From f4786fd4cc4cf36efc12470e063a46b3bd237d22 Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Thu, 4 Jan 2007 21:09:50 +0000 Subject: [PATCH 09/16] Ignoring Makefile --- src/.cvsignore | 1 + 1 file changed, 1 insertion(+) diff --git a/src/.cvsignore b/src/.cvsignore index b7d1a45..149ca71 100644 --- a/src/.cvsignore +++ b/src/.cvsignore @@ -1 +1,2 @@ pazpar2 +Makefile -- 1.7.10.4 From bcaed24b08fc63903adc99683d4e2994d75b07b1 Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Thu, 4 Jan 2007 21:33:27 +0000 Subject: [PATCH 10/16] Changed indent on XML example --- PROTOCOL | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/PROTOCOL b/PROTOCOL index a3a68c4..4ddfd03 100644 --- a/PROTOCOL +++ b/PROTOCOL @@ -136,23 +136,23 @@ search.pz2?session=2044502273&command=termlist&name=author,subject Output: -3 - - -Donald Knuth -10 - - -Robert Pirsig -2 - - - - -Computer programming -10 - - + 3 + + + Donald Knuth + 10 + + + Robert Pirsig + 2 + + + + + Computer programming + 10 + + For the special termlist name "xtargets", results are returned about the targets @@ -161,8 +161,8 @@ specifically a state and diagnostic field (in the example below, a target ID is returned in place of 'name'. This may or may not change later. -library2.mcmaster.ca -11734 -Client_Idle -0 + library2.mcmaster.ca + 11734 + Client_Idle + 0 -- 1.7.10.4 From 723b0382c06b5ff2bf6d4ecc8a59bd4c29ed7da0 Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Thu, 4 Jan 2007 22:03:56 +0000 Subject: [PATCH 11/16] Next-previous links used different page size than retrieval. Introduced setting variable. --- www/test1/search.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/www/test1/search.js b/www/test1/search.js index c3658fc..6c605a1 100644 --- a/www/test1/search.js +++ b/www/test1/search.js @@ -1,4 +1,4 @@ -/* $Id: search.js,v 1.6 2007-01-04 20:00:58 quinn Exp $ +/* $Id: search.js,v 1.7 2007-01-04 22:03:56 quinn Exp $ * --------------------------------------------------- * Javascript container */ @@ -20,6 +20,7 @@ var stattimer; var session_cells = Array('query', 'startrec', 'action_type'); var old_session = session_read(); var url_surveillence; +var recstoshow = 15; function initialize () @@ -169,13 +170,13 @@ function show_records() if (start + num < merged) body.innerHTML += ' Next'; if (start > 0) body.innerHTML += ' Previous'; @@ -208,7 +209,7 @@ function check_search() var url = "search.pz2?" + "command=show" + "&start=" + document.search.startrec.value + - "&num=15" + + "&num=" + recstoshow + "&session=" + session + "&block=1"; xshow = GetXmlHttpObject(); -- 1.7.10.4 From e87d57823550dad9a66ac3569a277835ce3bc3d3 Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Thu, 4 Jan 2007 22:04:25 +0000 Subject: [PATCH 12/16] Minor noodling --- src/pazpar2.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/pazpar2.c b/src/pazpar2.c index 66a1d12..049fa85 100644 --- a/src/pazpar2.c +++ b/src/pazpar2.c @@ -1,4 +1,4 @@ -/* $Id: pazpar2.c,v 1.13 2007-01-04 20:00:58 quinn Exp $ */; +/* $Id: pazpar2.c,v 1.14 2007-01-04 22:04:25 quinn Exp $ */; #include #include @@ -11,6 +11,7 @@ #include #include +#include #include #include #include @@ -1159,9 +1160,7 @@ struct termlist_score **termlist(struct session *s, const char *name, int *num) return 0; } -#ifdef REPORT_NMEM -// conditional compilation by SH: This lead to a warning with currently installed -// YAZ header files on us1 +#ifdef MISSING_HEADERS void report_nmem_stats(void) { size_t in_use, is_free; -- 1.7.10.4 From 5a2509922bc906df7233657d8af277c70c0f0d5c Mon Sep 17 00:00:00 2001 From: Sebastian Hammer Date: Fri, 5 Jan 2007 02:12:51 +0000 Subject: [PATCH 13/16] Implemented selectable subject/author facet in simple client --- www/test1/search.js | 47 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 40 insertions(+), 7 deletions(-) diff --git a/www/test1/search.js b/www/test1/search.js index 6c605a1..d5df1a6 100644 --- a/www/test1/search.js +++ b/www/test1/search.js @@ -1,4 +1,4 @@ -/* $Id: search.js,v 1.7 2007-01-04 22:03:56 quinn Exp $ +/* $Id: search.js,v 1.8 2007-01-05 02:12:51 quinn Exp $ * --------------------------------------------------- * Javascript container */ @@ -21,7 +21,7 @@ var session_cells = Array('query', 'startrec', 'action_type'); var old_session = session_read(); var url_surveillence; var recstoshow = 15; - +var cur_termlist = "subject"; function initialize () { @@ -221,13 +221,46 @@ function check_search() function refine_query (obj) { var query_cell = document.getElementById('query'); - var subject = obj.innerHTML; + var term = obj.innerHTML; - subject = subject.replace(/[\(\)]/g, ''); - query_cell.value += ' and su=(' + subject + ')'; + term = term.replace(/[\(\)]/g, ''); + if (cur_termlist == 'subject') + query_cell.value += ' and su=(' + term + ')'; + else if (cur_termlist == 'author') + query_cell.value += ' and au=(' + term + ')'; start_search(); } +function set_termlist(termlist) +{ + cur_termlist = termlist; + check_termlist(); + if (termtimer) + { + clearTimeout(termtimer); + termtimer = 0; + } +} + +function show_termlistoptions(body) +{ + var opts = Array( + Array('subject', 'Subject'), + Array('author', 'Author') + ); + + for (i in opts) + { + if (opts[i][0] == cur_termlist) + body.innerHTML += opts[i][1]; + else + body.innerHTML += '' + opts[i][1] + ''; + body.innerHTML += ' '; + } + body.innerHTML += '

'; +} + function show_termlist() { if (xtermlist.readyState != 4) @@ -242,11 +275,11 @@ function show_termlist() if (!hits[0]) { termtimer = setTimeout(check_termlist, 1000); - } else { body.innerHTML = "Limit results:
"; + show_termlistoptions(body); for (i = 0; i < hits.length; i++) { var namen = hits[i].getElementsByTagName("name"); @@ -266,7 +299,7 @@ function check_termlist() var url = "search.pz2?" + "command=termlist" + "&session=" + session + - "&name=" + "subject"; + "&name=" + cur_termlist; xtermlist = GetXmlHttpObject(); xtermlist.onreadystatechange=show_termlist; xtermlist.open("GET", url); -- 1.7.10.4 From bf2a014db13f03843cdc7a5cff0bc2eb3e36d48a Mon Sep 17 00:00:00 2001 From: "Anders S. Mortensen" Date: Fri, 5 Jan 2007 08:09:25 +0000 Subject: [PATCH 14/16] Typo. --- www/demo/css/styles.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/www/demo/css/styles.css b/www/demo/css/styles.css index 3f77445..78d8dc2 100644 --- a/www/demo/css/styles.css +++ b/www/demo/css/styles.css @@ -98,7 +98,7 @@ height: 100%; background-color: #ffffff; background-image: url(../gfx/background.gif); background-position: top left; -backgroun-repeat: repeat-y; +background-repeat: repeat-y; color: #002863; position: relative; top: 100px; @@ -250,4 +250,4 @@ background-repeat: no-repeat; span.green { color: #63b05d; font-weight: bold; -} \ No newline at end of file +} -- 1.7.10.4 From 50763f8f2d1cf8bbce78f90a223c76c107b3a955 Mon Sep 17 00:00:00 2001 From: "Anders S. Mortensen" Date: Fri, 5 Jan 2007 09:46:30 +0000 Subject: [PATCH 15/16] Added status bar. --- www/demo/page_segments.phpi | 31 +++++++++++++++++++------------ www/demo/settings.phpi | 5 ++++- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/www/demo/page_segments.phpi b/www/demo/page_segments.phpi index 87131bc..a2fe6e7 100644 --- a/www/demo/page_segments.phpi +++ b/www/demo/page_segments.phpi @@ -1,6 +1,6 @@ + - +

@@ -31,13 +32,17 @@ function insert_header () {
- - - -END_OF_FOOTER; + + '; } diff --git a/www/demo/settings.phpi b/www/demo/settings.phpi index 7b87dbc..c40101a 100644 --- a/www/demo/settings.phpi +++ b/www/demo/settings.phpi @@ -1,9 +1,12 @@ -- 1.7.10.4 From 2975f6a415c5bda99e633c6834a1dc012ac57038 Mon Sep 17 00:00:00 2001 From: "Anders S. Mortensen" Date: Fri, 5 Jan 2007 10:05:19 +0000 Subject: [PATCH 16/16] We have a working version. --- www/demo/page_segments.phpi | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/www/demo/page_segments.phpi b/www/demo/page_segments.phpi index a2fe6e7..2b3da07 100644 --- a/www/demo/page_segments.phpi +++ b/www/demo/page_segments.phpi @@ -1,6 +1,6 @@ + @@ -69,7 +70,9 @@ function insert_footer () { echo '
Status:
+ ';">Status: Initializing + +
-- 1.7.10.4