Handle hostnames with upper-case letters
[webmin.git] / lpadmin / list_jobs.cgi
1 #!/usr/local/bin/perl
2 # list_jobs.cgi
3 # List all print jobs on some printer
4
5 require './lpadmin-lib.pl';
6 &ReadParse();
7 print "Refresh: $config{'queue_refresh'}\r\n"
8         if ($config{'queue_refresh'});
9 &ui_print_header(&text('jobs_on', "<tt>$in{'name'}</tt>"), $text{'jobs_title'}, "");
10
11 @jobs = &get_jobs($in{'name'});
12 if (@jobs) {
13         if ($access{'cancel'}) {
14                 # Start of cancel form
15                 print &ui_form_start("cancel_all.cgi", "post");
16                 print &ui_hidden("name", $in{'name'});
17                 @tds = ( "width=5" );
18                 @links = ( &select_all_link("d"), &select_invert_link("d") );
19                 print &ui_links_row(\@links);
20                 }
21         print &ui_columns_start([
22                 $access{'cancel'} ? ( "" ) : ( ),
23                 $text{'jobs_id'},
24                 $text{'jobs_size'},
25                 $text{'jobs_by'},
26                 $jobs[0]->{'when'} ? ( $text{'jobs_when'} ) : ( ),
27                 $jobs[0]->{'file'} ? ( $text{'jobs_file'} ) : ( ),
28                 ], 100, 0, \@tds);
29         foreach $j (@jobs) {
30                 local $ju = $j->{'user'};
31                 $ju =~ s/\!.*$//;
32                 local @cols;
33                 push(@cols, &html_escape($j->{'id'}));
34                 if ($j->{'printfile'} && &can_edit_jobs($in{'name'}, $ju)) {
35                         push(@cols,
36                             "<a href='view_job.cgi?name=$in{'name'}".
37                             "&id=$j->{'id'}'>".&nice_size($j->{'size'})."</a>");
38                         $printfile++;
39                         }
40                 else {
41                         push(@cols, &nice_size($j->{'size'}));
42                         }
43                 if ($j->{'user'} =~ /^(\S+)\!(\S+)$/) {
44                         push(@cols, &html_escape("$2\@$1"));
45                         }
46                 else {
47                         push(@cols, &html_escape($j->{'user'}));
48                         }
49                 if ($j->{'when'}) {
50                         push(@cols, $j->{'when'});
51                         }
52                 if ($j->{'file'}) {
53                         push(@cols, $j->{'file'});
54                         }
55                 if (&can_edit_jobs($in{'name'}, $ju) &&
56                     $access{'cancel'}) {
57                         # Can cancel this job
58                         print &ui_checked_columns_row(\@cols, \@tds,
59                                                       "d", $j->{'id'});
60                         }
61                 elsif ($access{'cancel'}) {
62                         # Can cancel, but not this job
63                         print &ui_columns_row([ "", @cols ], \@tds);
64                         }
65                 else {
66                         # Cannot cancel at all
67                         print &ui_columns_row(\@cols, \@tds);
68                         }
69                 }
70         print &ui_columns_end();
71         if ($access{'cancel'}) {
72                 print &ui_links_row(\@links);
73                 print &ui_form_end([ [ undef, $text{'jobs_cancelsel'} ] ]);
74                 }
75         }
76 else {
77         print "<b>",&text('jobs_none', "<tt>$in{'name'}</tt>"),"</b><p>\n";
78         }
79
80 # Test print button
81 print &ui_form_start("test_form.cgi");
82 print &ui_hidden("name", $in{'name'});
83 print &ui_form_end([ [ undef, $text{'jobs_test'} ] ]);
84
85 &ui_print_footer("", $text{'index_return'});
86
87