Handle hostnames with upper-case letters
[webmin.git] / qmailadmin / list_virts.cgi
1 #!/usr/local/bin/perl
2 # list_virts.cgi
3 # Display a list of virtual domain mappings
4
5 require './qmail-lib.pl';
6 &ReadParse();
7 &ui_print_header(undef, $text{'virts_title'}, "");
8
9 @virts = &list_virts();
10 print &text('virts_desc', "list_aliases.cgi"),"<p>\n";
11 &virt_form();
12
13 if ($in{'search'}) {
14         # Restrict to search results
15         @virts = grep { $_->{'from'} =~ /$in{'search'}/ } @virts;
16         }
17 elsif ($config{'max_records'} && @virts > $config{'max_records'}) {
18         # Show search form
19         print $text{'virts_toomany'},"<br>\n";
20         print "<form action=list_virts.cgi>\n";
21         print "<input type=submit value='$text{'virts_go'}'>\n";
22         print "<input name=search size=20></form>\n";
23         undef(@virts);
24         }
25
26 if (@virts) {
27         # sort if needed
28         if ($config{'sort_mode'} == 1) {
29                 @virts = sort { lc($a->{'from'}) cmp lc($b->{'from'}) }
30                                @virts;
31                 }
32
33         # render tables
34         print &ui_form_start("delete_virts.cgi", "post");
35         print &select_all_link("d", 1),"\n";
36         print &select_invert_link("d", 1),"<br>\n";
37         if ($config{'columns'} == 2) {
38                 $mid = int((@virts+1)/2);
39                 print "<table width=100%> <tr><td width=50% valign=top>\n";
40                 &virts_table(@virts[0..$mid-1]);
41                 print "</td><td width=50% valign=top>\n";
42                 if ($mid < @virts) { &virts_table(@virts[$mid..$#virts]); }
43                 print "</td></tr> </table><br>\n";
44                 }
45         else {
46                 &virts_table(@virts);
47                 }
48         print &select_all_link("d", 1),"\n";
49         print &select_invert_link("d", 1),"<br>\n";
50         print &ui_form_end([ [ "delete", $text{'virts_delete'} ] ]);
51         }
52
53 &ui_print_footer("", $text{'index_return'});
54
55 sub virts_table
56 {
57 print "<table border width=100%>\n";
58 print "<tr $tb> <td width=5><br></td> <td><b>$text{'virts_from'}</b></td> ",
59       "<td><b>$text{'virts_prepend'}</b></td> </tr>\n";
60 foreach $v (@_) {
61         print "<tr $cb>\n";
62         print "<td width=5>",&ui_checkbox("d", $v->{'from'}),"</td>\n";
63         print "<td valign=top><a href=\"edit_virt.cgi?idx=$v->{'idx'}\">",
64               ($v->{'from'} ? &html_escape($v->{'from'})
65                             : "<i>$text{'virts_all'}</i>"),"</a></td>\n";
66         print "<td>",($v->{'prepend'} ? &html_escape($v->{'prepend'}) :
67               "<i>$text{'virts_none'}</i>"),"</td> </tr>\n";
68         }
69 print "</table>\n";
70 }
71