X-Git-Url: http://git.indexdata.com/?p=irspy-moved-to-github.git;a=blobdiff_plain;f=web%2Fhtdocs%2Fchrome%2Flayout.mc;h=a5b9f08368b41b02e0cba2f5073dc6d60968c24a;hp=6b9ec12e4406f1cc03596b7f0bdb580ec48a9c9e;hb=6110460cccb92cf046644c9271dd5f89daf96d90;hpb=81fa602b0aba8c96a8bcb7fc8fab1c00772c68cf
diff --git a/web/htdocs/chrome/layout.mc b/web/htdocs/chrome/layout.mc
index 6b9ec12..a5b9f08 100644
--- a/web/htdocs/chrome/layout.mc
+++ b/web/htdocs/chrome/layout.mc
@@ -1,15 +1,17 @@
-%# $Id: layout.mc,v 1.25 2007-03-29 11:20:56 mike Exp $
+%# $Id: layout.mc,v 1.31 2007-05-03 09:33:10 mike Exp $
<%args>
$debug => undef
$title
$component
%args>
<%once>
-use URI::Escape;
+use URI::Escape qw(uri_escape uri_escape_utf8);
use ZOOM;
use ZOOM::IRSpy::Web;
-use ZOOM::IRSpy::Utils qw(isodate xml_encode cql_target
- irspy_xpath_context modify_xml_document
+use ZOOM::IRSpy::Utils qw(isodate xml_encode cql_target cql_quote
+ irspy_xpath_context irspy_make_identifier
+ irspy_record2identifier
+ irspy_identifier2target modify_xml_document
bib1_access_point);
%once>
% $r->content_type("text/html; charset=utf-8");
@@ -25,6 +27,9 @@ use ZOOM::IRSpy::Utils qw(isodate xml_encode cql_target
+
+
+
@@ -33,6 +38,9 @@ use ZOOM::IRSpy::Utils qw(isodate xml_encode cql_target
<% xml_encode($title) %>
|
+
+ |
+
@@ -66,29 +74,30 @@ use ZOOM::IRSpy::Utils qw(isodate xml_encode cql_target
% foreach my $i ('a' .. 'z') {
<% uc($i) %>
% }
- [Others]
+ [Others]
<%perl>
+# Find the identifier to use in the record-specific menu, if any. If
+# the identifier components are all present (e.g. because a record has
+# just been edited or copied) we make an ID from those; otherwise we
+# use the "id" parameter, if specified.
my $id = $r->param("id");
{
- # Make up ID for newly created records. It would be more
- # rigorously correct, but insanely inefficient, to submit the
- # record to Zebra and then search for it; but since we know the
- # formula for IDs anyway, we just build one by hand.
- my $id = $r->param("id");
+ # Make up ID for newly created records.
+ my $protocol = $r->param("protocol");
my $host = $r->param("host");
my $port = $r->param("port");
my $dbname = $r->param("dbname");
- #warn "id='$id', host='$host', port='$port', dbname='$dbname'";
+ #warn "id='$id', protocol='$protocol' host='$host', port='$port', dbname='$dbname'";
#warn "%ARGS = {\n" . join("", map { "\t'$_' => '" . $ARGS{$_} . ",'\n" } sort keys %ARGS) . "}\n";
- if ((!defined $id || $id eq "") &&
- defined $host && defined $port && defined $dbname) {
- $id = "$host:$port/$dbname";
+ if (defined $protocol && defined $host &&
+ defined $port && defined $dbname) {
+ $id = irspy_make_identifier($protocol, $host, $port, $dbname);
#warn "id set to '$id'";
}
}
%perl>
-% if (defined $id && $r->param("op") ne "copy") {
+% if (defined $id) {
This Target