X-Git-Url: http://git.indexdata.com/cgi-bin?a=blobdiff_plain;f=www%2Fsearch.egw;h=a4416d7e150e8ae6682b5bbca3646b4564e18efa;hb=cfd53e6da1790969cb800d187f81cc63c18859ce;hp=6687d2411525d3e3c835e4c748a5162b4e05263d;hpb=852b4caac48a2542af95c577dab306db1bda56f1;p=egate.git
diff --git a/www/search.egw b/www/search.egw
index 6687d24..a4416d7 100644
--- a/www/search.egw
+++ b/www/search.egw
@@ -1,129 +1,341 @@
{
-# $Id: search.egw,v 1.12 1995/11/09 15:24:36 adam Exp $
+# $Id: search.egw,v 1.40 1996/05/15 18:43:38 adam Exp $
-proc buttons {setNo setMax startPos} {
+proc start-scan {scanNo targetNo cache dir initSet} {
global sessionId
- global env
+ global sessionParms
+ global sessionWait
+ global setNo
global hist
+ global targets
+ global nextSetNo
+ global env
+ global useIcons
+ global debug
- html "
\n"
- if {$setMax < [z39.$setNo resultCount]} {
- html { Next records } "| \n"
+ set host $hist($setNo,$targetNo,host)
+
+ html "
WWW/Z39.50 Gateway Scan " [splitHostSpec $host]
+ html " \n"
+ html "\n"
+
+ set useIcons 1
+ button-main
+
+ if {$dir == "b"} {
+ set lines 20
+ set pos 20
+ } elseif {$dir == "f"} {
+ set lines 20
+ set pos 1
+ } else {
+ set lines 20
+ set pos 10
}
- if {$startPos != "" && $startPos != "1"} {
+ if {$hist($setNo,$scanNo,scanTerm) != ""} {
+ if {[z39scan $setNo $scanNo 0 $lines $pos $cache] != "1"} {
+ button-new-query $setNo
+ egw_log debug "z39_scan failed"
+ return
+ }
+ if {!$useIcons} {
+ html "\n | "
+ }
+ html {}
+ if {$useIcons} {
+ html {}
+ } else {
+ html {Previous Terms}
+ }
+
+ if {!$useIcons} {
+ html "\n | "
+ }
html {}
+ if {$useIcons} {
+ html {}
+ } else {
+ html {Next Terms}
}
- html {"> Previous records } "| \n"
+ html {}
+ }
+ button-new-query $setNo
+
+ set databases [splitDatabaseSpec $host]
+
+ if {$initSet == ""} {
+ set databaseDefault [lindex $databases 0]
+ set oSetNo 0
+ } else {
+ set oSetNo $initSet
+ set databaseDefault $hist($oSetNo,$targetNo,database)
+ }
+
+ html {
}
+
+ set useIcons 0
+ if {$hist($setNo,$scanNo,scanTerm) == ""} {
+ button-main
+ button-new-query $setNo
+ return
+ }
+
+ html "\n"
+ display-scan $setNo $scanNo 0
+ html "
\n"
+
+ button-main
+
+ if {!$useIcons} {
+ html "\n | "
}
html { New target } " | \n"
+ html / $sessionId {/search.egw/} $setNo + $targetNo +
+ html [expr $scanNo - 1] + b {">}
+ if {$useIcons} {
+ html {}
+ } else {
+ html {Previous Terms}
+ }
+
+ if {!$useIcons} {
+ html "\n | "
+ }
html { New query } "
\n"
+ html / $sessionId {/search.egw/} $setNo + $targetNo +
+ html [expr $scanNo + 1] + f {">}
+ if {$useIcons} {
+ html {}
+ } else {
+ html {Next Terms}
+ }
+ html {}
+ button-new-query $setNo
+
+ if {!$debug} return
+ html "
\n"
+ html "Debug information
\n"
+ html "sessionId: $sessionId
\n"
+ html "sessionParms: $sessionParms
\n"
+ foreach e {SERVER_NAME PATH_INFO SCRIPT_NAME} {
+ html $e {: } $env($e) {
} \n
+ }
+ html "form: " [egw_form] "
\n"
+ html "databases: " $hist($setNo,$targetNo,database) "
\n"
+ html "selected: " [egw_form base] "
\n"
+ html "setNo: " $setNo "
\n"
+ html "nextSetNo: " $nextSetNo "
\n"
}
if {[info commands saveState] == ""} {
source z39util.tcl
+ if {![info exists debug]} {
+ session-lost
+ egw_abort
+ }
}
global sessionWait
global nextSetNo
global setNo
global hist
- if {[wform menu1] == ""} {
- set setNo [lindex $sessionParms 0]
- } else {
- if {![info exists hist($nextSetNo,host)]} {
- set hist($nextSetNo,idAuthentication) $hist($setNo,idAuthentication)
- set hist($nextSetNo,host) $hist($setNo,host)
- }
- set setNo $nextSetNo
- html "using host " $hist($setNo,host) "
WWW/Z39.50 Gateway Search " $host " \n"
- html "\n"
-
- set startPos [lindex $sessionParms 1]
- set endPos [lindex $sessionParms 2]
- set setMax 0
- set setOffset 0
- if {$startPos == ""} {
- if {[z39search $setNo 1] != "1"} {
- return
+ set i [lindex $sessionParms 2]
+ if {[string length $i] == 0} {
+ for {set j 1} {$j <= 3} {incr j} {
+ if {[egw_form scan$j] != ""} {
+ set i $j
+ break
+ }
+ }
}
- set r [z39.$setNo resultCount]
- html " Search result $r hits
\n"
- wflush
- set setOffset [z39.$setNo numberOfRecordsReturned]
- display-rec 1 $setOffset display-brief z39
- incr setOffset
- set setMax [z39.$setNo resultCount]
- if {$setMax > $hist($setNo,maxPresent)} {
- set setMax $hist($setNo,maxPresent)
+ if {[string length $i] != 0} {
+ set scanNo 1000
+ set hist($setNo,scan) $i
+ set termPlusAttr [build-scan $hist($setNo,0,host) $i]
+ set hist($setNo,$scanNo,scanTerm) [lindex $termPlusAttr 0]
+ set hist($setNo,scanAttr) [lindex $termPlusAttr 1]
+ start-scan $scanNo $targetNo 0 {} $setNo
+ html "\n"
+ egw_abort
+ return
}
- } else {
- if {[z39search $setNo 0] != "1"} {
- return
+ set query [build-query $hist($setNo,0,host) 3]
+ if {[string length $query] == 0} {
+ html " WWW/Z39.50 Gateway Search\n\n"
+ displayError "Empty query" \
+ "You must specify at least one search word"
+ html "\n"
+ egw_abort
}
- set r [z39.$setNo resultCount]
- html " Search result $r hits
\n"
- wflush
- set setOffset $startPos
- set setMax [z39.$setNo resultCount]
- if {$setMax > $endPos} {
- set setMax $endPos
+ set hist($setNo,0,query) $query
+ } elseif {[lindex $sessionParms 2] == "hyper"} {
+ egw_log debug "hyper search"
+ set hist($nextSetNo,$targetNo,idAuthentication) \
+ $hist($setNo,$targetNo,idAuthentication)
+ set hist($nextSetNo,$targetNo,host) \
+ $hist($setNo,$targetNo,host)
+ set hist($nextSetNo,$targetNo,database) \
+ $hist($setNo,$targetNo,database)
+
+ if {$nextSetNo == $setNo} {
+ set setNo $nextSetNo
+ incr nextSetNo
+ } else {
+ catch {unset hist($setNo,$targetNo,hits)}
}
- if {$setMax > 0} {
- buttons $setNo $setMax $startPos
+ set hist($setNo,scan) 0
+ set hist($setNo,$targetNo,query) \
+ "$hist($setNo,scanAttr) \"[lindex $sessionParms 3]\""
+ egw_log debug "hyper databases: $hist($setNo,$targetNo,database)"
+ set hist($setNo,form,entry1) [lindex $sessionParms 3]
+ set startPos ""
+ } elseif {[lindex $sessionParms 2] == "scan"} {
+ egw_log debug "star scan"
+ set scanNo 1000
+ set hist($setNo,$scanNo,scanTerm) {}
+ start-scan $scanNo $targetNo 0 {} {}
+ html "