3 # $Id: search.egw,v 1.4 1995/10/31 10:03:53 adam Exp $
10 proc fail-response {} {
15 proc display-rec {from to} {
17 htmlr {<b>} $from {</b><br>}
19 set title [lindex [z39.1 getMarc $from field 245 * a] 0]
20 set year [lindex [z39.1 getMarc $from field 260 * c] 0]
22 htmlr $title { <i> } $year {</i><br>}
34 for {set i 1} {$i < 4} {incr i} {
35 set term [form entry$i]
37 set field [form menu$i]
38 foreach x [lindex $targets($t) 2] {
39 if {[lindex $x 0] == $field} {
40 set attr [lindex $x 1]
45 { set q "@and $q ${attr} ${term}" }
47 { set q "@or $q ${attr} ${term}" }
49 { set q "@not $q ${attr} ${term}" }
51 { set q "${attr} ${term}" }
60 z39 callback ok-response
61 z39 failback fail-response
64 z39.1 databaseNames [form base]
65 htmlr {<head><title> WWW/Z39.50 Gateway Search } $t { </title>}
67 set query [build-query]
68 htmlr {query: } $query {<br>}
70 htmlr {sessionId: } $sessionId {<br>}
71 htmlr {sessionParms: } $sessionParms {<br>}
72 htmlr {form: } [form] { <br>}
73 htmlr {databases: } $databases { <br>}
75 if {$sessionWait == 1} {
76 set r [z39.1 resultCount]
77 htmlr {<strong> } $r { hits</strong><br>}
79 set status [z39.1 searchStatus]
80 set msg [lindex $status 2]
81 set addinfo [lindex $status 3]
82 html {<strong>Search fail: } $msg
86 htmlr {</strong><br></body></html>}
89 set setOffset [z39.1 numberOfRecordsReturned]
90 display-rec 0 $setOffset
91 set setMax [z39.1 resultCount]
95 set toGet [expr $setMax - $setOffset]
97 z39.1 present $setOffset $toGet
98 set got [z39.1 numberOfRecordsReturned]
99 display-rec $setOffset [expr $got + $setOffset]
100 set $setOffset [expr $got + $setOffset]
101 set toGet [expr $setMax - $setOffset]
104 if {$sessionWait != "1"} {