Handle hostnames with upper-case letters
[webmin.git] / postfix / mailq.cgi
1 #!/usr/local/bin/perl
2 # mailq.cgi
3 # Display messages currently in the queue.
4
5 require './postfix-lib.pl';
6 require './boxes-lib.pl';
7 &ReadParse();
8
9 $access{'mailq'} || &error($text{'mailq_ecannot'});
10 &ui_print_header(undef, $text{'mailq_title'}, "");
11
12 # Get queued messages and sort
13 @qfiles = &list_queue(1);
14 if ($config{'mailq_sort'} == 0) {
15         @qfiles = sort { $a->{'id'} cmp $b->{'id'} } @qfiles;
16         }
17 elsif ($config{'mailq_sort'} == 1) {
18         @qfiles = sort { lc($a->{'from'}) cmp lc($b->{'from'}) } @qfiles;
19         }
20 elsif ($config{'mailq_sort'} == 2) {
21         @qfiles = sort { lc($a->{'to'}) cmp lc($b->{'to'}) } @qfiles;
22         }
23 elsif ($config{'mailq_sort'} == 4) {
24         @qfiles = sort { lc($a->{'status'}) cmp lc($b->{'status'}) } @qfiles;
25         }
26 elsif ($config{'mailq_sort'} == 5) {
27         @qfiles = sort { $b->{'size'} <=> $a->{'size'} } @qfiles;
28         }
29 elsif ($config{'mailq_sort'} == 6) {
30         @qfiles = sort { $b->{'time'} <=> $a->{'time'} } @qfiles;
31         }
32
33 if (@qfiles) {
34         if (@qfiles > $config{'perpage'}) {
35                 # Need to show arrows
36                 print "<center>\n";
37                 $s = int($in{'start'});
38                 $e = $in{'start'} + $config{'perpage'} - 1;
39                 $e = @qfiles-1 if ($e >= @qfiles);
40                 if ($s) {
41                         printf "<a href='mailq.cgi?start=%d'>%s</a>\n",
42                             $s - $config{'perpage'},
43                             "<img src=/images/left.gif border=0 align=middle>";
44                         }
45                 print "<font size=+1>",&text('mail_pos', $s+1, $e+1,
46                                              scalar(@qfiles)),"</font>\n";
47                 if ($e < @qfiles-1) {
48                         printf "<a href='mailq.cgi?start=%d'>%s</a>\n",
49                             $s + $config{'perpage'},
50                             "<img src=/images/right.gif border=0 align=middle>";
51                         }
52                 print "</center>\n";
53                 }
54         else {
55                 # Can show them all
56                 $s = 0;
57                 $e = @qfiles - 1;
58                 }
59
60         # Show the mails
61         &mailq_table([ @qfiles[$s .. $e] ]);
62
63         # Show queue search form
64         print &ui_form_start("mailq_search.cgi");
65         print "<b>$text{'mailq_search'}</b>\n";
66         print &ui_select("field", "from",
67                 [ map { [ $_, $text{'match_'.$_} ] }
68                     ('from', 'to', 'date', 'size', '',
69                      '!from', '!to', '!date', '!size') ]);
70         print &ui_textbox("match", undef, 40);
71         print &ui_submit($text{'mail_ok'});
72         print &ui_form_end();
73
74         # Show flush button, if the needed command is installed
75         if (&has_command($config{'postfix_queue_command'})) {
76                 print &ui_hr();
77                 print &ui_buttons_start();
78                 print &ui_buttons_row("flushq.cgi", $text{'mailq_flush'},
79                                       $text{'mailq_flushdesc'});
80                 print &ui_buttons_row("mailq.cgi?$in", $text{'mailq_refresh'},
81                                       $text{'mailq_refreshdesc'});
82                 print &ui_buttons_end();
83                 }
84         }
85 else {
86         print "<b>$text{'mailq_none'}</b> <p>\n";
87         }
88
89 &ui_print_footer("", $text{'index_return'});
90
91