Handle hostnames with upper-case letters
[webmin.git] / cpan / edit_mod.cgi
1 #!/usr/local/bin/perl
2 # edit_mod.cgi
3 # Display the details and documentation of a perl module
4
5 require './cpan-lib.pl';
6 &ReadParse();
7 if ($in{'name'}) {
8         @mods = &list_perl_modules($in{'name'});
9         $mod = $mods[0];
10         }
11 else {
12         @mods = &list_perl_modules($in{'name'});
13         $mod = $mods[$in{'idx'}];
14         }
15 $midx = $in{'midx'} ? $in{'midx'} : 0;
16
17 &ui_print_header(undef, $text{'edit_title'}, "");
18
19 print &ui_table_start($text{'edit_header'}, "width=100%", 4);
20
21 # Module name and version
22 @m = @{$mod->{'mods'}};
23 ($desc, $ver) = &module_desc($mod, $midx);
24 print &ui_table_row($text{'edit_mod'}, "$m[$midx] $ver");
25
26 # Description
27 print &ui_table_row($text{'edit_desc'},
28         $desc ? &html_escape($desc) : $text{'edit_none'}, 2);
29
30 # Install date
31 print &ui_table_row($text{'edit_date'}, $mod->{'date'});
32
33 # Main file
34 print &ui_table_row($text{'edit_file'}, $mod->{'files'}->[$midx]);
35
36 # Install method (RPM or whatever)
37 print &ui_table_row($text{'edit_method'},
38     $mod->{'pkg'} ? &text('edit_'.$mod->{'pkgtype'}, "<tt>$mod->{'pkg'}</tt>")
39                   : $text{'edit_manual'});
40
41 if ($midx == $mod->{'master'} && @m > 1) {
42         # Sub-modules
43         @links = ( );
44         for($i=0; $i<@m; $i++) {
45                 push(@links, "<a href='edit_mod.cgi?idx=$in{'idx'}&midx=$i&name=$in{'name'}'>$m[$i]</a>") if ($i != $mod->{'master'});
46                 }
47         print &ui_table_row($text{'edit_subs'}, &ui_links_row(\@links), 3);
48         }
49
50 print &ui_table_end();
51
52 # Un-install form
53 print "<table> <tr>\n";
54 if ($midx == $mod->{'master'} && !$mod->{'noremove'}) {
55         print &ui_form_start("uninstall.cgi");
56         print &ui_hidden("idx", $in{'idx'});
57         print "<td>",&ui_submit($text{'edit_uninstall'}),"</td>\n";
58         print &ui_form_end();
59         }
60
61 # Upgrade form
62 if ($midx == $mod->{'master'} && !$mod->{'noupgrade'}) {
63         print &ui_form_start("download.cgi");
64         print &ui_hidden("cpan", $mod->{'mods'}->[0]);
65         print &ui_hidden("source", 3);
66         print "<td>",&ui_submit($text{'edit_upgrade'}),"</td>\n";
67         print &ui_form_end();
68         }
69 print "</table>\n";
70
71 # Module documentation
72 open(DOC, "$perl_doc -t '$m[$midx]' 2>/dev/null |");
73 while(<DOC>) { $doc .= $_; }
74 close(DOC);
75 if ($doc =~ /\S/) {
76         print &ui_table_start($text{'edit_header2'}, "width=100%", 2);
77         print &ui_table_row(undef, "<pre>".&html_escape($doc)."</pre>", 2);
78         print &ui_table_end();
79         }
80
81 &ui_print_footer($midx != $mod->{'master'} ?
82          ( "edit_mod.cgi?idx=$in{'idx'}&midx=$mod->{'master'}&name=$in{'name'}",
83            $text{'edit_return'} ) : ( ),
84         "", $text{'index_return'});
85