X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=web%2Fhtdocs%2Fdetails%2Ffull.mc;h=36b7232457a133147dbd967fe1cb65b620f52564;hb=dc893c9705eb569cb6d47f6b71efc107c50b1606;hp=cb2df50e1dd5a313f45b4f6b33cd98d2d4dc116b;hpb=67a5a621eb79e96519b5cef74a076ef75b621d99;p=irspy-moved-to-github.git diff --git a/web/htdocs/details/full.mc b/web/htdocs/details/full.mc index cb2df50..36b7232 100644 --- a/web/htdocs/details/full.mc +++ b/web/htdocs/details/full.mc @@ -1,10 +1,7 @@ -%# $Id: full.mc,v 1.9 2006-11-06 17:04:23 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,15 +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." } ], + [ "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" => sub { "### and, or, not" } ], - [ "Record syntaxes" => sub { "### SUTRS, USmarc, Danmarc" } ], - [ "Explain" => sub { "### CategoryList, TargetInfo, DatabaseInfo, RecordSyntaxInfo, AttributeSetInfo, AttributeDetails" } ], + [ "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) { @@ -124,4 +130,41 @@ sub calc_ap { 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; +} +