X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=www%2Fz39util.tcl;h=737ca46c040b82fc4b6ec19744f214524376d4ac;hb=0d7108cd3425504a09522f915dda5c9158443084;hp=3a2c69482c9a0e243bb1443fa1c46631f31072e6;hpb=df7b985601de6c729147a6fd6588adba6f905480;p=egate.git diff --git a/www/z39util.tcl b/www/z39util.tcl index 3a2c694..737ca46 100644 --- a/www/z39util.tcl +++ b/www/z39util.tcl @@ -1,5 +1,5 @@ # -# $Id: z39util.tcl,v 1.15 1996/01/02 10:52:32 adam Exp $ +# $Id: z39util.tcl,v 1.21 1996/01/12 13:08:30 adam Exp $ # proc saveState {} { uplevel #0 { @@ -70,6 +70,8 @@ proc display-brief {zset no tno} { global setNo global sessionId + + html {
  • } set type [$zset type $no] if {$type == "SD"} { set err [lindex [$zset diag $no] 1] @@ -83,7 +85,6 @@ proc display-brief {zset no tno} { if {$type != "DB"} { return } - html "${no}" set rtype [$zset recordType $no] if {$rtype == "SUTRS"} { html [join [$zset getSutrs $no]] @@ -91,12 +92,29 @@ proc display-brief {zset no tno} { return } if {![catch { + set author [$zset getMarc $no field 100 * a] set title [lindex [$zset getMarc $no field 245 * a] 0] set year [lindex [$zset getMarc $no field 260 * c] 0] } ] } { + set p 0 + foreach a $author { + if {$p} { + html ", " + } + html $a + set p 1 + } + if {$p} { + html ": " + } html { } $title {} " ${year} " + html $sessionId {/showfull.egw/} $setNo + $tno + $no + full {">} + if {[string length $title] == 0} { + html {No title} + } else { + html $title + } + html {} " ${year} " } html "
    \n" } @@ -361,20 +379,19 @@ 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 [join [wform menu$i]] + set attr {Title} + 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 "" } @@ -385,9 +402,9 @@ proc build-query {t ilines} { set op {} set q {} for {set i 1} {$i <= $ilines} {incr i} { - set term [wform entry$i] - if {$term != ""} { - set field [wform menu$i] + set term [join [wform entry$i]] + if {[string length $term] > 0} { + set field [join [wform menu$i]] foreach x [lindex $targets($t) 2] { if {[lindex $x 0] == $field} { set attr [lindex $x 1] @@ -409,7 +426,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 +497,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 } } @@ -496,7 +513,7 @@ proc z39scan {setNo scanNo tno scanLines scanPos} { set sessionWait 0 $zs scan "${scanAttr} ${scanTerm}" - if {[catch {zwait sessionWait 600}]} { + if {[catch {zwait sessionWait 60}]} { wlog debug "timeout/cancel in scan" displayError "Timeout in scan" {} html "\n" @@ -517,6 +534,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 +544,31 @@ proc display-scan {setNo scanNo tno} { } set zs $zz.s$scanNo.$setNo set m [$zs numberOfEntriesReturned] - - html "
    \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 "
    " + regsub -all {\ } [lindex [$zs scanLine $i] 1] + tterm + html {} html [lindex [$zs scanLine $i] 1] - html ": " + html {: } html [lindex [$zs scanLine $i] 2] - html "\n" + html "
    \n" } - html "
    \n" } proc z39search {setNo piggy tno elements} { @@ -858,33 +892,46 @@ proc z39history {} { if {![info exists nextSetNo]} { return } - html "

    History


    \n" + html "

    History


    \n" for {set setNo 1} {$setNo < $nextSetNo} {incr setNo} { - html {
    } [lindex $targets($hist($setNo,host)) 0] - if {[llength $hist($setNo,database)] > 1} { + if {$hist($setNo,scan) > 0} continue + set host $hist($setNo,host) + html {
    } [lindex $targets($host) 0] + if {[llength [lindex $targets($host) 1]] > 1} { html ": " foreach b $hist($setNo,database) { html " $b" } } - html "\n" - html "
    " + html {. } + if {[info exists hist($setNo,hits)]} { - html $hist($setNo,hits) " hits" + html { Result: } $hist($setNo,hits) { hits.} } else { - html failed + html {Search failed.} + } + html "
    \n" + html { Query: } + set op {} + for {set i 1} {$i <= 3} {incr i} { + if {[string length $hist($setNo,form,entry$i)] > 0} { + html " " [join $op " "] " " + html $hist($setNo,form,menu$i) "=" $hist($setNo,form,entry$i) + set op $hist($setNo,form,logic$i) + } } - html "\n" } html "
    \n" } proc displayError {msga msgb} { html "

    \n" - html {Error} + html {Error} html "

    " $msga "

    \n" if {$msgb != ""} { html "

    " $msgb "

    \n" @@ -892,4 +939,103 @@ proc displayError {msga msgb} { html "

    \n" } -set useIcons 1 +proc button-europagate {} { + global useIcons + if {$useIcons} { + html {Europagate} + } else { + html {Europagate | } + } +} + +proc button-new-target {more} { + global useIcons + global env + global sessionId + + html {} + } else { + html {">New Target} + if {$more} { + html " | \n" + } else { + html "\n" + } + } +} + +proc button-view-history {more} { + global useIcons + global env + global sessionId + global nextSetNo + + html {View History} + } else { + html {">View History} + if {$more} { + html " | \n" + } else { + html "\n" + } + } +} + +proc button-new-query {more setNo} { + global useIcons + global env + global sessionId + global hist + + html {} + if {$useIcons} { + html {} + } else { + html {New Query} + if {$more} { + html " | \n" + } else { + html "\n" + } + } +} + +proc button-scan-window {more setNo} { + global useIcons + global env + global sessionId + global hist + + html {} + if {$useIcons} { + html {} + } else { + html {Scan} + if {$more} { + html " | \n" + } else { + html "\n" + } + } +} + +proc maintenance {} { + html {


    This page is maintained by } + html { Peter Wad Hansen .} + html {Last modified 9. january 1996.
    } + html { This and the following pages are under construction and } + html {will continue to be so until the end of January 1996.} +}