Lots of changes. They aren't visible though.
[egate.git] / www / search.egw
index 9263dfa..738906b 100644 (file)
@@ -1,8 +1,8 @@
 <html>
 {
-# $Id: search.egw,v 1.33 1996/02/29 15:41:39 adam Exp $
+# $Id: search.egw,v 1.34 1996/03/07 12:46:09 adam Exp $
 
-proc start-scan {scanNo cache dir initSet} {
+proc start-scan {scanNo targetNo cache dir initSet} {
     global sessionId
     global sessionParms
     global sessionWait
@@ -14,7 +14,7 @@ proc start-scan {scanNo cache dir initSet} {
     global useIcons
     global debug
 
-    set host $hist($setNo,host)
+    set host $hist($setNo,$targetNo,host)
 
     html "<head><title> WWW/Z39.50 Gateway Scan " [splitHostSpec $host]
     html " </title>\n"
@@ -40,7 +40,8 @@ proc start-scan {scanNo cache dir initSet} {
             return
         }
         html {<a href="http:} $env(SCRIPT_NAME)
-        html / $sessionId {/search.egw/} $setNo + [expr $scanNo - 1] + b {">}
+        html / $sessionId {/search.egw/} $setNo + $targetNo + 
+        html [expr $scanNo - 1] + b {">}
         if {$useIcons} {
             html {<img src="/egwgif/button-previous-terms.gif" }
             html {alt="Next Terms" border=0></a>}
@@ -49,7 +50,8 @@ proc start-scan {scanNo cache dir initSet} {
         }
 
         html {<a href="http:} $env(SCRIPT_NAME)
-        html / $sessionId {/search.egw/} $setNo + [expr $scanNo + 1] + f {">}
+        html / $sessionId {/search.egw/} $setNo + $targetNo +
+        html [expr $scanNo + 1] + f {">}
         if {$useIcons} {
             html {<img src="/egwgif/button-next-terms.gif" }
             html {alt="Next Terms" border=0></a>}
@@ -67,11 +69,11 @@ proc start-scan {scanNo cache dir initSet} {
         set oSetNo 0
     } else {
         set oSetNo $initSet
-        set databaseDefault $hist($oSetNo,database)
+        set databaseDefault $hist($oSetNo,$targetNo,database)
     }
     
     html {<form action="http:} $env(SCRIPT_NAME)
-    html / $sessionId {/search.egw/} $setNo {+1" method=get>} \n
+    html / $sessionId {/search.egw/} $setNo + $targetNo {+1" method=get>} \n
     set nodb [llength $databases]
     if {$nodb > 1} {
         if {$nodb > 2} {
@@ -130,7 +132,8 @@ proc start-scan {scanNo cache dir initSet} {
     button-europagate
 
     html {<a href="http:} $env(SCRIPT_NAME)
-    html / $sessionId {/search.egw/} $setNo + [expr $scanNo - 1] + b {">}
+    html / $sessionId {/search.egw/} $setNo + $targetNo +
+    html [expr $scanNo - 1] + b {">}
     if {$useIcons} {
         html {<img src="/egwgif/button-previous-terms.gif" }
         html {alt="Next Terms" border=0></a>}
@@ -139,7 +142,8 @@ proc start-scan {scanNo cache dir initSet} {
     }
 
     html {<a href="http:} $env(SCRIPT_NAME)
-    html / $sessionId {/search.egw/} $setNo + [expr $scanNo + 1] + f {">}
+    html / $sessionId {/search.egw/} $setNo + $targetNo +
+    html [expr $scanNo + 1] + f {">}
     if {$useIcons} {
         html {<img src="/egwgif/button-next-terms.gif" }
         html {alt="Next Terms" border=0></a>}
@@ -159,50 +163,12 @@ proc start-scan {scanNo cache dir initSet} {
     }
     html "form: " [egw_form] " <br>\n"
     html "target: " $host " <br>\n"
-    html "databases: " $hist($setNo,database) " <br>\n"
+    html "databases: " $hist($setNo,$targetNo,database) " <br>\n"
     html "selected: " [egw_form base] " <br>\n"
     html "setNo: " $setNo " <br>\n"
     html "nextSetNo: " $nextSetNo " <br>\n"    
 }
 
-proc buttons {setNo setMax startPos after} {
-    global sessionId
-    global useIcons
-    global env
-    global hist
-
-    html "<p>\n"
-    button-europagate
-    if {$setMax > 0 && $setMax < [z39.$setNo resultCount]} {
-        html {<a href="http:} $env(SCRIPT_NAME)
-        html / $sessionId {/search.egw/} $setNo + [expr $setMax + 1]
-        html + [expr $setMax + $hist($setNo,maxPresent)]
-        if {$useIcons} {
-            html {"><img src="/egwgif/button-next-records.gif" alt="Next Records"}
-           html { border=0></a>}
-        } else {
-            html {">Next Records</a>} " | \n"
-        }
-    }
-    if {$setMax > 0 && $startPos != "" && $startPos != "1"} {
-        html {<a href="http:} $env(SCRIPT_NAME)
-        html / $sessionId {/search.egw/} $setNo 
-        html + [expr $startPos - $hist($setNo,maxPresent)]
-        html + [expr $startPos - 1]
-        if {$useIcons} {
-            html {"><img src="/egwgif/button-previous-records.gif" }
-           html {alt="Previous Records" border=0></a>}
-        } else {
-            html {">Previous Records</a>} " | \n"
-        }
-    }
-    button-new-query 1 $setNo
-    button-new-target 1
-    button-view-history 0
-
-    html "<p>\n"
-}
-
     if {[info commands saveState] == ""} {
         source z39util.tcl
     }
@@ -212,12 +178,15 @@ proc buttons {setNo setMax startPos after} {
     global hist
 
     set setNo [lindex $sessionParms 0]
-    set startPos [lindex $sessionParms 1]
-    set endPos [lindex $sessionParms 2]
+    set targetNo [lindex $sessionParms 1]
+    set startPos [lindex $sessionParms 2]
+    set endPos [lindex $sessionParms 3]
 
     if {[egw_form] != ""} {
-        set hist($nextSetNo,idAuthentication) $hist($setNo,idAuthentication)
-        set hist($nextSetNo,host) $hist($setNo,host)
+        set hist($nextSetNo,$targetNo,idAuthentication) \
+            $hist($setNo,$targetNo,idAuthentication)
+        set hist($nextSetNo,$targetNo,host) \
+            $hist($setNo,$targetNo,host)
 
         if {$nextSetNo == $setNo} {
             set setNo $nextSetNo
@@ -239,22 +208,22 @@ proc buttons {setNo setMax startPos after} {
         set hist($setNo,form,logic2) [egw_form logic2]
         set hist($setNo,form,logic3) {}
         
-        set host $hist($setNo,host)
+        set host $hist($setNo,0,host)
         set databases [lindex $targets($host) 1]
 
         set b [egw_form base]
        if {[egw_form baseall] != ""} {
-           set hist($setNo,database) $databases
+           set hist($setNo,0,database) $databases
         } elseif {$b == ""} {
-            set hist($setNo,database) $databases
+            set hist($setNo,0,database) $databases
         } else {
-            set hist($setNo,database) $b
+            set hist($setNo,0,database) $b
         }
         set hist($setNo,maxPresent) [egw_form hits]
         if {$hist($setNo,maxPresent) == ""} {
             set hist($setNo,maxPresent) 30
         }
-        set i [lindex $sessionParms 1]
+        set i [lindex $sessionParms 2]
         if {$i == ""} {
             for {set j 1} {$j <= 3} {incr j} {
                 if {[egw_form scan$j] != ""} {
@@ -266,15 +235,15 @@ proc buttons {setNo setMax startPos after} {
         if {$i != ""} {
             set scanNo 1000
             set hist($setNo,scan) $i
-            set termPlusAttr [build-scan $hist($setNo,host) $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 0 {} $setNo
+            start-scan $scanNo $targetNo 0 {} $setNo
             html "</body></html>\n"
             egw_abort
             return
         }
-        set query [build-query $hist($setNo,host) 3]
+        set query [build-query $hist($setNo,0,host) 3]
         if {"x$query" == "x"} {
             html "<head><title> WWW/Z39.50 Gateway Search</title>\n<body>\n"
             displayError "Empty query" \
@@ -282,12 +251,15 @@ proc buttons {setNo setMax startPos after} {
             html "</body></html>\n"
             egw_abort
         }
-        set hist($setNo,query) $query
-    } elseif {[lindex $sessionParms 1] == "hyper"} {
+        set hist($setNo,0,query) $query
+    } elseif {[lindex $sessionParms 2] == "hyper"} {
         egw_log debug "hyper search"
-        set hist($nextSetNo,idAuthentication) $hist($setNo,idAuthentication)
-        set hist($nextSetNo,host) $hist($setNo,host)
-        set hist($nextSetNo,database) $hist($setNo,database)
+        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
@@ -296,90 +268,39 @@ proc buttons {setNo setMax startPos after} {
             catch {unset hist($setNo,hits)}
         }
         set hist($setNo,scan) 0
-        set hist($setNo,query) \
-            "$hist($setNo,scanAttr) \"[lindex $sessionParms 2]\""
-        egw_log debug "hyper databases: $hist($setNo,database)"
-        set hist($setNo,form,entry1) [lindex $sessionParms 2]
+        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 1] == "scan"} {
+    } elseif {[lindex $sessionParms 2] == "scan"} {
         egw_log debug "star scan"
         set scanNo 1000
         set hist($setNo,$scanNo,scanTerm) {}
-        start-scan $scanNo 0 {} {}
+        start-scan $scanNo $targetNo 0 {} {}
         html "</body></html>\n"
         egw_abort
     } else {
         if {![info exists hist($setNo,scan)]} return
         if {$hist($setNo,scan) > 0} {
-            set scanNo [lindex $sessionParms 1]
-            set dir [lindex $sessionParms 2]
+            set scanNo [lindex $sessionParms 2]
+            set dir [lindex $sessionParms 3]
             if {$scanNo == ""} {
                 set scanNo 1000
             }
-            start-scan $scanNo 1 $dir $setNo
+            start-scan $scanNo $targetNo 1 $dir $setNo
             html "</body></html>\n"
             egw_abort
         }
     }
-    set host $hist($setNo,host)
+    set host $hist($setNo,$targetNo,host)
 
     html "<head><title> WWW/Z39.50 Gateway Search " [splitHostSpec $host] 
     html " </title>\n"
     html "</head><body>\n"
 
-    set setMax 0
-    set setOffset 0
-    set useIcons 1
-    if {$startPos == ""} {
-        if {[z39search $setNo 1 0 B] != "1"} {
-            return
-        }
-        set r [z39.$setNo resultCount]
-
-        set setMax [z39.$setNo resultCount]
-        if {$setMax > $hist($setNo,maxPresent)} {
-            set setMax $hist($setNo,maxPresent)
-        }
-        buttons $setNo $setMax $startPos 0
-
-        set setOffset [z39.$setNo numberOfRecordsReturned]
-        if {$setMax > 0} {
-            html {<h3> Records 1-} $setMax " out of $r</h3>\n"
-        } else {
-            html "<h3> No hits</h3>\n"
-        }
-        egw_flush
-        html "<ul>\n"
-        display-rec 1 $setMax display-brief 0
-        incr setOffset
-
-    } else {
-        if {[z39search $setNo 0 0 B] != "1"} {
-            return 
-        }
-        set r [z39.$setNo resultCount]
-        set setOffset $startPos
-        set setMax [z39.$setNo resultCount]
-        if {$setMax > $endPos} {
-            set setMax $endPos
-        }
-        buttons $setNo $setMax $startPos 0
-        if {$setMax > 0} {
-            html {<h3> Records } $startPos {-} $setMax " out of $r</h3>\n"
-        } else {
-            html "<h3> No hits</h3>\n"
-        }
-        egw_flush
-        html "<ul>\n"
-    }
-    if {$setMax > 0} {
-        z39present $setNo 0 $setOffset $setMax display-brief B
-    }
-    html "</ul>\n"
-    set useIcons 0
-    buttons $setNo $setMax $startPos 1
+    display-result-set-s $setNo $targetNo $startPos $endPos
 }
-
 {
     global debug
     if {!$debug} return
@@ -392,12 +313,11 @@ proc buttons {setNo setMax startPos after} {
     }
     html "form: " [egw_form] " <br>\n"
     html "target: " $host " <br>\n"
-    html "databases: " $hist($setNo,database) " <br>\n"
+    html "databases: " $hist($setNo,$targetNo,database) " <br>\n"
     html "selected: " [egw_form base] " <br>\n"
-    html "query: --" $hist($setNo,query) "-- <br>"
+    html "query: --" $hist($setNo,$targetNo,query) "-- <br>"
     html "setNo: " $setNo " <br>\n"
     html "nextSetNo: " $nextSetNo " <br>\n"
 }
-
 </body>
 </html>