+sub action_detail
+{
+ my $cn = param ('cn');
+ die unless ($cn);
+
+ my $person = Person->load ($cn);
+ if (!$person)
+ {
+ print qq(\t<div>Entry "$cn" could not be loaded from DB.</div>\n);
+ return;
+ }
+
+ my $cn_esc = uri_escape ($cn);
+
+ print <<EOF;
+ <table class="detail">
+ <tr>
+ <th>Name</th>
+ <td>$cn</td>
+ </tr>
+EOF
+ for (@MultiFields)
+ {
+ my $field = $_;
+ my $values = $person->get ($field);
+ my $num = scalar (@$values);
+ my $print = defined ($FieldNames{$field}) ? $FieldNames{$field} : $field;
+
+ next unless ($num);
+
+ print "\t\t<tr>\n";
+ if ($num > 1)
+ {
+ print qq(\t\t\t<th rowspan="$num">$print</th>\n);
+ }
+ else
+ {
+ print qq(\t\t\t<th>$print</th>\n);
+ }
+
+ for (my $i = 0; $i < $num; $i++)
+ {
+ my $val = $values->[$i];
+ print "\t\t<tr>\n" if ($i);
+ print "\t\t\t<td>$val</td>\n",
+ "\t\t</tr>\n";
+ }
+ }
+ print <<EOF;
+ </table>
+ <div class="detail menu">
+ [<a href="$MySelf?action=edit&cn=$cn_esc">edit</a>]
+ </div>
+EOF
+}
+