X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=web%2Fhtdocs%2Fdetails%2Ffull.mc;h=2ce16c35522db7e708ad037dc50e3adf6e43bfdb;hb=e277114d1174f602b137e85b08837541f3aaa4b1;hp=cb2df50e1dd5a313f45b4f6b33cd98d2d4dc116b;hpb=1205bf12d1c393229ed5b84b2750332303411510;p=irspy-moved-to-github.git diff --git a/web/htdocs/details/full.mc b/web/htdocs/details/full.mc index cb2df50..2ce16c3 100644 --- a/web/htdocs/details/full.mc +++ b/web/htdocs/details/full.mc @@ -1,4 +1,4 @@ -%# $Id: full.mc,v 1.9 2006-11-06 17:04:23 mike Exp $ +%# $Id: full.mc,v 1.14 2006-11-14 16:24:39 mike Exp $ <%args> $id @@ -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; +} +