Previus/next scan buttons in scan.
[egate.git] / www / z39util.tcl
index 406662d..9413385 100644 (file)
@@ -1,5 +1,5 @@
 #
-# $Id: z39util.tcl,v 1.13 1995/12/21 15:49:53 adam Exp $
+# $Id: z39util.tcl,v 1.16 1996/01/03 08:59:45 adam Exp $
 #
 proc saveState {} {
     uplevel #0 {
@@ -331,7 +331,7 @@ proc display-full {zset no tno} {
     if {"x$url" != "x"} {
         html "<dt><b>URL</b>\n"
         if {"x$sp" == "x"} {
-            set sp reference
+            set sp $url
         }
         html {<dd><a href="} $url {">} [join $sp] "</a>\n"
     }
@@ -361,20 +361,18 @@ proc display-rec {from to dfunc tno} {
     }
 }
 
-proc build-scan {t ilines} {
+proc build-scan {t i} {
     global targets
 
-    for {set i 1} {$i <= $ilines} {incr i} {
-        set term [wform entry$i]
-        if {$term != ""} {
-            set field [wform menu$i]
-            foreach x [lindex $targets($t) 2] {
-                if {[lindex $x 0] == $field} {
-                    set attr [lindex $x 1]
-                }
+    set term [wform entry$i]
+    if {$term != ""} {
+        set field [wform menu$i]
+        foreach x [lindex $targets($t) 2] {
+            if {[lindex $x 0] == $field} {
+                set attr [lindex $x 1]
             }
-            return [list $term $attr]
         }
+        return [list $term $attr]
     }
     return ""
 }
@@ -409,7 +407,7 @@ proc build-query {t ilines} {
     return $q
 }
 
-proc z39scan {setNo scanNo tno scanLines scanPos} {
+proc z39scan {setNo scanNo tno scanLines scanPos cache} {
     global hist
     global sessionWait
     global targets
@@ -480,7 +478,7 @@ proc z39scan {setNo scanNo tno scanLines scanPos} {
             return 0
         }
     } else {
-        if {![catch [list $zs numberOfTermsRequested 5]]} {
+        if {$cache && ![catch [list $zs numberOfTermsRequested 5]]} {
             return 1
         }
     }
@@ -517,6 +515,8 @@ proc z39scan {setNo scanNo tno scanLines scanPos} {
 proc display-scan {setNo scanNo tno} {
     global hist
     global targets
+    global env
+    global sessionId
 
     if {$tno > 0} {
         set zz z39$tno
@@ -525,16 +525,30 @@ proc display-scan {setNo scanNo tno} {
     }
     set zs $zz.s$scanNo.$setNo
     set m [$zs numberOfEntriesReturned]
-
-    html "<dl>\n"
+        
+    if {$m > 0} {
+        set t [lindex [$zs scanLine 0] 1]
+        if {$tno > 0} {
+            set hist($setNo,$tno,[expr $scanNo - 1],scanTerm) $t
+        } else {
+            set hist($setNo,[expr $scanNo - 1],scanTerm) $t
+        }
+        set t [lindex [$zs scanLine [expr $m - 1]] 1]
+        if {$tno > 0} {
+            set hist($setNo,$tno,[expr $scanNo + 1],scanTerm) $t
+        } else {
+            set hist($setNo,[expr $scanNo + 1],scanTerm) $t
+        }
+    }
     for {set i 0} {$i < $m} {incr i} {
-        html "<dt>"
+        html {<a href="http:} $env(SCRIPT_NAME)
+        html / $sessionId {/query.egw/} $hist($setNo,host) + $setNo +
+        html $hist($setNo,scan) + [lindex [$zs scanLine $i] 1] {">}
         html [lindex [$zs scanLine $i] 1]
-        html ": "
+        html {</a>: <em>}
         html [lindex [$zs scanLine $i] 2]
-        html "\n"
+        html "</em><br>\n"
     }
-    html "</dl>\n"
 }
 
 proc z39search {setNo piggy tno elements} {
@@ -605,9 +619,11 @@ proc z39search {setNo piggy tno elements} {
             return 0
         }
     } else {
-        if {![catch [list $zz.$setNo smallSetUpperBound 0]]} {
+        if {[info exists hist($setNo,hits)] && \
+                ![catch [list $zz.$setNo smallSetUpperBound 0]]} {
             return 1
         }
+        
     }
     ir-set $zz.$setNo $zz
     
@@ -856,7 +872,7 @@ proc z39history {} {
     if {![info exists nextSetNo]} {
         return
     }
-    html "<hr><h3>History</h3><dl>\n"
+    html "<hr><h2>History</h2><dl><br>\n"
     for {set setNo 1} {$setNo < $nextSetNo} {incr setNo} {
         html {<dt> <a href="http:} $env(SCRIPT_NAME)
         html / $sessionId {/search.egw/} $setNo + 1
@@ -882,7 +898,7 @@ proc z39history {} {
 
 proc displayError {msga msgb} {
     html "<p><center>\n"
-    html {<img src="/gif/noway.gif">}
+    html {<img src="/gif/noway.gif" alt="Error">}
     html "<h2>" $msga "</h2>\n"
     if {$msgb != ""} {
         html "<h3>" $msgb "</h3>\n"
@@ -890,4 +906,4 @@ proc displayError {msga msgb} {
     html "</center><p>\n"
 }
 
-set useIcons 1
\ No newline at end of file
+set useIcons 1