rename /add.html link to /add_target.html to avoid the 500 spam posts/day, see #3401
[irspy-moved-to-github.git] / web / htdocs / chrome / layout.mc
index 1ec34b3..4d98463 100644 (file)
@@ -1,4 +1,3 @@
-%# $Id: layout.mc,v 1.30 2007-04-27 14:04:40 mike Exp $
 <%args>
 $debug => undef
 $title
@@ -8,13 +7,14 @@ $component
 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 cql_quote
+use ZOOM::IRSpy::Utils qw(utf8param trimField isodate xml_encode cql_target cql_quote
                           irspy_xpath_context irspy_make_identifier
                          irspy_record2identifier
                          irspy_identifier2target modify_xml_document
-                         bib1_access_point);
+                         bib1_access_point calc_reliability_string);
 </%once>
 % $r->content_type("text/html; charset=utf-8");
+% my $text = $m->scomp($component, %ARGS);
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE html 
      PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
@@ -30,16 +30,16 @@ use ZOOM::IRSpy::Utils qw(isodate xml_encode cql_target cql_quote
     <td>
      <table width="100%">
       <tr>
-    <td align="left">
-     <br/>
-     <h1><a class="logo" href="/">IRSpy</a></h1>
-    </td>
-    <td align="right">
-     <br/>
-     <h1 class="title"><% xml_encode($title) %></h1>
-    </td>
-      </table>
-     </tr>
+       <td align="left">
+       <br/>
+       <h1><a class="logo" href="/">IRSpy</a></h1>
+       </td>
+       <td align="right">
+       <br/>
+       <h1 class="title"><% xml_encode($title) %></h1>
+       </td>
+      </tr>
+     </table>
     </td>
    </tr>
   </table>
@@ -65,7 +65,8 @@ use ZOOM::IRSpy::Utils qw(isodate xml_encode cql_target cql_quote
       <a href="/"><b>Home</b></a><br/>
       <a href="/admin/all.html">Test&nbsp;all&nbsp;targets</a><br/>
       <a href="/find.html">Find a target</a><br/>
-      <a href="/admin/edit.html?op=new">Add a target</a><br/>
+      <a href="/add_target.html">Add a target</a><br/>
+      <a href="/upload.html">Upload a target</a><br/>
       <a href="/stats.html">Statistics</a><br/>
      </p>
      <p>
@@ -77,41 +78,44 @@ use ZOOM::IRSpy::Utils qw(isodate xml_encode cql_target cql_quote
       <a href="/find.html?cql.allRecords=1+not+dc.title+=/regexp/firstInField+[a-z].*&amp;_sort=dc.title&amp;_count=9999&amp;_search=Search">[Others]</a>
      </p>
 <%perl>
-my $id = $r->param("id");
+# 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 = utf8param($r, "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");
+    my $protocol = utf8param($r, "protocol");
+    my $host = utf8param($r, "host");
+    my $port = utf8param($r, "port");
+    my $dbname = utf8param($r, "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 $protocol && defined $host &&
+    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) {
      <div class="panel2">
       <b>This Target</b>
       <br/>
-      <a href="<% xml_encode("/full.html?id=" . uri_escape($id)) %>">Show details</a>
+      <a href="<% xml_encode("/full.html?id=" . uri_escape_utf8($id)) %>">Show details</a>
       <br/>
-      <a href="<% xml_encode("/admin/edit.html?op=edit&id=" . uri_escape($id)) %>">Edit details</a>
+      <a href="<% xml_encode("/admin/edit.html?op=edit&id=" . uri_escape_utf8($id)) %>">Edit details</a>
       <br/>
-      <a href="<% xml_encode("/admin/edit.html?op=copy&id=" . uri_escape($id)) %>">Copy target</a>
+      <a href="<% xml_encode("/admin/edit.html?op=copy&id=" . uri_escape_utf8($id)) %>">Copy target</a>
       <br/>
-      <a href="<% xml_encode("/admin/delete.html?id=" . uri_escape($id)) %>">Delete target</a>
+      <a href="<% xml_encode("/admin/delete.html?id=" . uri_escape_utf8($id)) %>">Delete target</a>
       <p>
-       <a href="<% xml_encode("/admin/check.html?id=" . uri_escape($id)) . "&amp;test=Quick" %>">Quick Test</a>
+       <a href="<% xml_encode("/admin/check.html?id=" . uri_escape_utf8($id)) . "&amp;test=Quick" %>">Quick Test</a>
        <br/>
-       <a href="<% xml_encode("/admin/check.html?id=" . uri_escape($id)) . "&amp;test=Main" %>">Full Test</a>
+       <a href="<% xml_encode("/admin/check.html?id=" . uri_escape_utf8($id)) . "&amp;test=Main" %>">Full Test</a>
       </p>
       <p>
-       <a href="<% xml_encode("/raw.html?id=" . uri_escape($id)) %>">XML</a>
+       <a href="<% xml_encode("/raw.html?id=" . uri_escape_utf8($id)) %>">XML</a>
       </p>
 <%doc><!-- Maybe this would be too heavyweight -->
       <br/>
@@ -140,7 +144,7 @@ my $id = $r->param("id");
     </td>
     <td class="spacer">&nbsp;</td>
     <td valign="top">
-<& $component, %ARGS &>
+% print $text;
     </td>
    </tr>
   </table>
@@ -150,7 +154,11 @@ my $id = $r->param("id");
    <small>
     Powered by <a style="text-decoration: none"
        href="http://indexdata.com/"
-       >Index&nbsp;Data</a>
+       >Index&nbsp;Data</a>.
+    <br/>
+    Report errors and omissions to <a style="text-decoration: none"
+       href="mailto:irspy@indexdata.com"
+                   >irspy@indexdata.com</a>
    </small>
   </div>
  </body>