3 # $Id: search.egw,v 1.35 1996/03/08 16:47:05 adam Exp $
5 proc start-scan {scanNo targetNo cache dir initSet} {
17 set host $hist($setNo,$targetNo,host)
19 html "<head><title> WWW/Z39.50 Gateway Scan " [splitHostSpec $host]
21 html "</head><body>\n"
29 } elseif {$dir == "f"} {
36 if {$hist($setNo,$scanNo,scanTerm) != ""} {
37 if {[z39scan $setNo $scanNo 0 $lines $pos $cache] != "1"} {
38 button-new-query 0 $setNo
39 egw_log debug "z39_scan failed"
42 html {<a href="http:} $env(SCRIPT_NAME)
43 html / $sessionId {/search.egw/} $setNo + $targetNo +
44 html [expr $scanNo - 1] + b {">}
46 html {<img src="/egwgif/button-previous-terms.gif" }
47 html {alt="Next Terms" border=0></a>}
49 html {Previous Terms</a> | }
52 html {<a href="http:} $env(SCRIPT_NAME)
53 html / $sessionId {/search.egw/} $setNo + $targetNo +
54 html [expr $scanNo + 1] + f {">}
56 html {<img src="/egwgif/button-next-terms.gif" }
57 html {alt="Next Terms" border=0></a>}
59 html {Next Terms</a> | }
63 button-new-query 0 $setNo
65 set databases [splitDatabaseSpec $host]
68 set databaseDefault [lindex $databases 0]
72 set databaseDefault $hist($oSetNo,$targetNo,database)
75 html {<form action="http:} $env(SCRIPT_NAME)
76 html / $sessionId {/search.egw/} $setNo + $targetNo {+1" method=get>} \n
77 set nodb [llength $databases]
80 html "Databases:<br>\n"
83 foreach d $databases {
84 html {<input type="checkbox" name="base" value="} $d
85 if {[lsearch $databaseDefault $d] == -1} {
88 html {" checked> } $d \n
93 html {<input type="checkbox" name="baseall" value="}
94 html [concat $databases] {"> All <br>} \n
97 html "Input your scan criteria:<br>\n"
98 set fields [lindex $targets($host) 2]
100 html {<select name="menu} $no {">} \n
103 set template [join $hist($oSetNo,form,menu$no)]
104 egw_log debug "template=$template"
106 if {[string length $template] > 0} {
107 html {<option> } $template \n
110 set name [lindex $f 0]
111 if {$template == $name} continue
112 html {<option> } $name \n
115 html {<input type="text" name="entry} $no {"}
117 html {<input type=submit name=submit value="Scan">}
122 if {$hist($setNo,$scanNo,scanTerm) == ""} {
124 button-new-query 0 $setNo
129 display-scan $setNo $scanNo 0
134 html {<a href="http:} $env(SCRIPT_NAME)
135 html / $sessionId {/search.egw/} $setNo + $targetNo +
136 html [expr $scanNo - 1] + b {">}
138 html {<img src="/egwgif/button-previous-terms.gif" }
139 html {alt="Next Terms" border=0></a>}
141 html {Previous Terms</a> | }
144 html {<a href="http:} $env(SCRIPT_NAME)
145 html / $sessionId {/search.egw/} $setNo + $targetNo +
146 html [expr $scanNo + 1] + f {">}
148 html {<img src="/egwgif/button-next-terms.gif" }
149 html {alt="Next Terms" border=0></a>}
151 html {Next Terms</a> | }
154 button-new-query 0 $setNo
158 html "<h3>Debug information</h3>\n"
159 html "sessionId: $sessionId <br>\n"
160 html "sessionParms: $sessionParms <br>\n"
161 foreach e {SERVER_NAME PATH_INFO SCRIPT_NAME} {
162 html $e {: } $env($e) {<br>} \n
164 html "form: " [egw_form] " <br>\n"
165 html "target: " $host " <br>\n"
166 html "databases: " $hist($setNo,$targetNo,database) " <br>\n"
167 html "selected: " [egw_form base] " <br>\n"
168 html "setNo: " $setNo " <br>\n"
169 html "nextSetNo: " $nextSetNo " <br>\n"
172 if {[info commands saveState] == ""} {
180 set setNo [lindex $sessionParms 0]
181 set targetNo [lindex $sessionParms 1]
182 set startPos [lindex $sessionParms 2]
183 set endPos [lindex $sessionParms 3]
185 if {[egw_form] != ""} {
186 set hist($nextSetNo,$targetNo,idAuthentication) \
187 $hist($setNo,$targetNo,idAuthentication)
188 set hist($nextSetNo,$targetNo,host) \
189 $hist($setNo,$targetNo,host)
191 if {$nextSetNo == $setNo} {
195 catch {unset hist($setNo,hits)}
197 set hist($setNo,scan) 0
199 set hist($setNo,form,menu1) [egw_form menu1]
200 set hist($setNo,form,menu2) [egw_form menu2]
201 set hist($setNo,form,menu3) [egw_form menu3]
203 set hist($setNo,form,entry1) [egw_form entry1]
204 set hist($setNo,form,entry2) [egw_form entry2]
205 set hist($setNo,form,entry3) [egw_form entry3]
207 set hist($setNo,form,logic1) [egw_form logic1]
208 set hist($setNo,form,logic2) [egw_form logic2]
209 set hist($setNo,form,logic3) {}
211 set host $hist($setNo,0,host)
213 set databases [splitDatabaseSpec $host]
215 set b [egw_form base]
216 if {[egw_form baseall] != ""} {
217 set hist($setNo,0,database) $databases
218 } elseif {$b == ""} {
219 set hist($setNo,0,database) $databases
221 set hist($setNo,0,database) $b
223 set hist($setNo,maxPresent) [egw_form hits]
224 if {$hist($setNo,maxPresent) == ""} {
225 set hist($setNo,maxPresent) 30
227 set i [lindex $sessionParms 2]
229 for {set j 1} {$j <= 3} {incr j} {
230 if {[egw_form scan$j] != ""} {
238 set hist($setNo,scan) $i
239 set termPlusAttr [build-scan $hist($setNo,0,host) $i]
240 set hist($setNo,$scanNo,scanTerm) [lindex $termPlusAttr 0]
241 set hist($setNo,scanAttr) [lindex $termPlusAttr 1]
242 start-scan $scanNo $targetNo 0 {} $setNo
243 html "</body></html>\n"
247 set query [build-query $hist($setNo,0,host) 3]
248 if {"x$query" == "x"} {
249 html "<head><title> WWW/Z39.50 Gateway Search</title>\n<body>\n"
250 displayError "Empty query" \
251 "You must specify at least one search word"
252 html "</body></html>\n"
255 set hist($setNo,0,query) $query
256 } elseif {[lindex $sessionParms 2] == "hyper"} {
257 egw_log debug "hyper search"
258 set hist($nextSetNo,$targetNo,idAuthentication) \
259 $hist($setNo,$targetNo,idAuthentication)
260 set hist($nextSetNo,$targetNo,host) \
261 $hist($setNo,$targetNo,host)
262 set hist($nextSetNo,$targetNo,database) \
263 $hist($setNo,$targetNo,database)
265 if {$nextSetNo == $setNo} {
269 catch {unset hist($setNo,hits)}
271 set hist($setNo,scan) 0
272 set hist($setNo,$targetNo,query) \
273 "$hist($setNo,scanAttr) \"[lindex $sessionParms 3]\""
274 egw_log debug "hyper databases: $hist($setNo,$targetNo,database)"
275 set hist($setNo,form,entry1) [lindex $sessionParms 3]
277 } elseif {[lindex $sessionParms 2] == "scan"} {
278 egw_log debug "star scan"
280 set hist($setNo,$scanNo,scanTerm) {}
281 start-scan $scanNo $targetNo 0 {} {}
282 html "</body></html>\n"
285 if {![info exists hist($setNo,scan)]} return
286 if {$hist($setNo,scan) > 0} {
287 set scanNo [lindex $sessionParms 2]
288 set dir [lindex $sessionParms 3]
292 start-scan $scanNo $targetNo 1 $dir $setNo
293 html "</body></html>\n"
297 set host $hist($setNo,$targetNo,host)
299 html "<head><title> WWW/Z39.50 Gateway Search " [splitHostSpec $host]
301 html "</head><body>\n"
303 display-result-set-s $setNo $targetNo $startPos $endPos
309 html "<h3>Debug information</h3>\n"
310 html "sessionId: $sessionId <br>\n"
311 html "sessionParms: $sessionParms <br>\n"
312 foreach n [array names env] {
313 html "env($n) = " $env($n) " <br>\n"
315 html "form: " [egw_form] " <br>\n"
316 html "target: " $host " <br>\n"
317 html "databases: " $hist($setNo,$targetNo,database) " <br>\n"
318 html "selected: " [egw_form base] " <br>\n"
319 html "query: --" $hist($setNo,$targetNo,query) "-- <br>"
320 html "setNo: " $setNo " <br>\n"
321 html "nextSetNo: " $nextSetNo " <br>\n"