X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=web%2Fhtdocs%2Fdetails%2Ffull.mc;h=36b7232457a133147dbd967fe1cb65b620f52564;hb=dc893c9705eb569cb6d47f6b71efc107c50b1606;hp=b1b5f3a66daf0eb915cc00fcb0a6171199ef8066;hpb=b317327c6c0750293f0639ee119066dccb2ae8f8;p=irspy-moved-to-github.git diff --git a/web/htdocs/details/full.mc b/web/htdocs/details/full.mc index b1b5f3a..36b7232 100644 --- a/web/htdocs/details/full.mc +++ b/web/htdocs/details/full.mc @@ -1,10 +1,7 @@ -%# $Id: full.mc,v 1.8 2006-11-06 17:01:03 mike Exp $ +%# $Id: full.mc,v 1.16 2006-11-16 11:48:49 mike Exp $ <%args> $id -<%once> -use ZOOM; - <%perl> my $conn = new ZOOM::Connection("localhost:3313/IR-Explain---1"); $conn->option(elementSetName => "zeerex"); @@ -25,6 +22,8 @@ if ($n == 0) { [ Host => "e:serverInfo/e:host" ], [ Port => "e:serverInfo/e:port" ], [ "Database Name" => "e:serverInfo/e:database" ], + [ "Type of Library" => "i:status/i:libraryType" ], + [ Country => "i:status/i:country" ], [ "Username (if needed)" => "e:serverInfo/e:authentication/e:user" ], [ "Password (if needed)" => @@ -35,6 +34,7 @@ if ($n == 0) { lang => "en", primary => "true" ], [ Author => "e:databaseInfo/e:author" ], [ Contact => "e:databaseInfo/e:contact" ], + [ "URL to Hosting Organisation" => "i:status/i:hostURL" ], [ Extent => "e:databaseInfo/e:extent" ], [ History => "e:databaseInfo/e:history" ], [ "Language of Records" => "e:databaseInfo/e:langUsage" ], @@ -44,14 +44,21 @@ if ($n == 0) { [ "Implementation Name" => "i:status/i:implementationName" ], [ "Implementation Version" => "i:status/i:implementationVersion" ], [ "Reliability" => \&calc_reliability, $xc ], - [ "Services" => sub { "### IRSpy does not yet check for search, present, delSet, concurrentOperations, namedResultSets, etc. and store the information is a usable form." } ], - [ "Bib-1 Use attributes" => \&calc_bib1, $xc ], - [ "Operators" => sub { "### and, or, not" } ], - [ "Record syntaxes" => sub { "### SUTRS, USmarc, Danmarc" } ], - [ "Explain" => sub { "### CategoryList, TargetInfo, DatabaseInfo, RecordSyntaxInfo, AttributeSetInfo, AttributeDetails" } ], + [ "Services" => sub { " +### IRSpy does not yet check for search, present, delSet, +concurrentOperations, namedResultSets, etc. and store the information +is a usable form. This information should probably be harvested from +the Init Response. +" } ], + [ "Bib-1 Use attributes" => \&calc_ap, $xc, "bib-1" ], + [ "Dan-1 Use attributes" => \&calc_ap, $xc, "dan-1" ], + [ "Operators" => \&calc_boolean, $xc ], + [ "Named Result Sets" => \&calc_nrs, $xc ], + [ "Record syntaxes" => \&calc_recsyn, $xc ], + [ "Explain" => \&calc_explain, $xc ], ); -

<% xml_encode($xc->find("e:databaseInfo/e:title")) %>

+

<% xml_encode($xc->find("e:databaseInfo/e:title"), "") %>

<%perl> foreach my $ref (@fields) { @@ -85,11 +92,12 @@ sub calc_reliability { return "$nok/$nall = " . int(100*$nok/$nall) . "%"; } -sub calc_bib1 { - my($xc) = @_; +sub calc_ap { + my($xc, $set) = @_; - my @bib1nodes = $xc->findnodes('e:indexInfo/e:index/e:map/e:attr[ - @set = "bib-1" and @type = "1"]'); + my $expr = 'e:indexInfo/e:index/e:map/e:attr[ + @set = "'.$set.'" and @type = "1"]'; + my @bib1nodes = $xc->findnodes($expr); my $nbib1 = @bib1nodes; return "[none]" if $nbib1 == 0; @@ -122,4 +130,41 @@ sub calc_bib1 { return "$nbib1 access points: $res"; } +sub calc_boolean { + my($xc) = @_; + + ### Note that we are currently interrogating an IRSpy extension. + # The standard ZeeRex record should be extended with a + # "supports" type for this. + my @nodes = $xc->findnodes('i:status/i:boolean[@ok = "1"]'); + my $res = join(", ", map { $_->findvalue('@operator') } @nodes); + $res = "[none]" if $res eq ""; + return $res; +} + +sub calc_nrs { + my($xc) = @_; + + my @nodes = $xc->findnodes('i:status/i:named_resultset[@ok = "1"]'); + return @nodes ? "Yes" : "No"; +} + +sub calc_recsyn { + my($xc) = @_; + + my @nodes = $xc->findnodes('e:recordInfo/e:recordSyntax'); + my $res = join(", ", map { $_->findvalue('@name') } @nodes); + $res = "[none]" if $res eq ""; + return $res; +} + +sub calc_explain { + my($xc) = @_; + + my @nodes = $xc->findnodes('i:status/i:explain[@ok = "1"]'); + my $res = join(", ", map { $_->findvalue('@category') } @nodes); + $res = "[none]" if $res eq ""; + return $res; +} +