38737dfb455adef3b1f3a761be3d36ae5a2d43bd
[irspy-moved-to-github.git] / web / htdocs / details / edit.mc
1 %# $Id: edit.mc,v 1.2 2006-10-27 00:47:24 mike Exp $
2 <%args>
3 $id
4 </%args>
5 <%once>
6 use ZOOM;
7 </%once>
8 <%perl>
9 my $conn = new ZOOM::Connection("localhost:3313/IR-Explain---1");
10 $conn->option(elementSetName => "zeerex");
11 my $qid = $id;
12 $qid =~ s/"/\\"/g;
13 my $query = qq[rec.id="$qid"];
14 my $rs = $conn->search(new ZOOM::Query::CQL($query));
15 my $n = $rs->size();
16 if ($n == 0) {
17     $m->comp("/details/error.mc",
18              title => "Error", message => "No such ID '$id'");
19 } else {
20     my $rec = $rs->record(0);
21     my $xc = irspy_xpath_context($rec);
22     my @fields =
23         (
24          [ protocol     => 0, "Protocol", "e:serverInfo/\@protocol" ],
25          [ host         => 0, "Host", "e:serverInfo/e:host" ],
26          [ port         => 0, "Port", "e:serverInfo/e:port" ],
27          [ dbname       => 0, "Database Name", "e:serverInfo/e:database" ],
28          [ username     => 0, "Username (if needed)", "e:serverInfo/e:authentication/e:user" ],
29          [ password     => 0, "Password (if needed)", "e:serverInfo/e:authentication/e:password" ],
30          [ title        => 0, "title", "e:databaseInfo/e:title", lang => "en", primary => "true" ],
31          [ description  => 5, "Description", "e:databaseInfo/e:description", lang => "en", primary => "true" ],
32          [ author       => 0, "Author", "e:databaseInfo/e:author" ],
33          [ contact      => 0, "Contact", "e:databaseInfo/e:contact" ],
34          [ extent       => 3, "Extent", "e:databaseInfo/e:extent" ],
35          [ history      => 5, "History", "e:databaseInfo/e:history" ],
36          [ language     => 0, "Language of Records", "e:databaseInfo/e:langUsage" ],
37          [ restrictions => 2, "Restrictions", "e:databaseInfo/e:restrictions" ],
38          [ subjects     => 2, "Subjects", "e:databaseInfo/e:subjects" ],
39          ### Remember to set e:metaInfo/e:dateModified
40          );
41 </%perl>
42      <h2><% xml_encode($id) %></h2>
43      <form method="get" action="">
44       <table class="fullrecord" border="1" cellspacing="0" cellpadding="5" width="100%">
45 <%perl>
46     foreach my $ref (@fields) {
47         my($name, $nlines, $caption, $xpath, %attrs) = @$ref;
48 </%perl>
49        <tr>
50         <th><% $caption %></th>
51         <td>
52 % my $data = xml_encode($xc->find($xpath));
53 % if ($nlines) {
54          <textarea name="<% $name %>" rows="<% $nlines %>" cols="61"><% $data %></textarea>
55 % } else {
56          <input name="<% $name %>" type="text" size="60" value="<% $data %>">
57 % }
58         </td>
59        </tr>
60 %   }
61        <tr>
62         <td></td>
63         <td align="right">
64          <input type="submit" name="update" value="Update"/>
65          <input type="hidden" name="id" value="<% xml_encode($id) %>"/>
66         </td>
67        </tr>
68       </table>
69      </form>
70 % }