-%# $Id: layout.mc,v 1.9 2006-09-28 16:03:08 mike Exp $
+%# $Id: layout.mc,v 1.16 2006-11-14 16:21:08 mike Exp $
<%args>
$debug => undef
$title
$component
</%args>
-<%once>
-BEGIN {
- use vars qw($LIBDIR);
- $LIBDIR = $r->dir_config("IRSpyLibDir");
+<%perl>
+{
+ # 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");
+ 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 "%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";
+ $r->param(id => $id);
+ $ARGS{id} = $id;
+ #warn "id set to '$id'";
+ }
}
-use lib $LIBDIR;
+</%perl>
+<%once>
+use URI::Escape;
use ZOOM::IRSpy::Web;
-use ZOOM::IRSpy::Record qw(xml_encode);
+use ZOOM::IRSpy::Utils qw(irspy_xpath_context xml_encode modify_xml_document);
</%once>
<& /chrome/head.mc, title => $title &>
<table border="0" cellpadding="0" cellspacing="0" width="100%">