Handle hostnames with upper-case letters
[webmin.git] / bacula-backup / clientstatus_form.cgi
1 #!/usr/local/bin/perl
2 # Show a form for displaying the status of one client
3
4 require './bacula-backup-lib.pl';
5 &ui_print_header(undef,  $text{'clientstatus_title'}, "", "clientstatus");
6 &ReadParse();
7
8 # Client selector
9 @clients = sort { lc($a->{'name'}) cmp lc($b->{'name'}) }
10                 grep { !&is_oc_object($_, 1) } &get_bacula_clients();
11 if (@clients == 1) {
12         $in{'client'} ||= $clients[0]->{'name'};
13         }
14 print &ui_form_start("clientstatus_form.cgi");
15 print "<b>$text{'clientstatus_show'}</b>\n";
16 print &ui_select("client", $in{'client'},
17          [ map { [ $_->{'name'},
18                    &text('clientstatus_on', $_->{'name'}, $_->{'address'}) ] }
19            @clients ]);
20 print &ui_submit($text{'clientstatus_ok'}),"<br>\n";
21 print &ui_form_end();
22
23 if ($in{'client'}) {
24         # Show this client
25         ($msg, $ok, $run, $done) = &get_client_status($in{'client'});
26
27         if ($ok) {
28                 print &text('clientstatus_msg', $in{'client'}, $msg),"<p>\n";
29
30                 # Running jobs
31                 print &ui_subheading($text{'dirstatus_run'});
32                 if (@$run) {
33                         print &ui_form_start("cancel_jobs.cgi", "post");
34                         print &ui_hidden("client", $in{'client'}),"\n";
35                         @links = ( &select_all_link("d", 1),
36                                    &select_invert_link("d", 1) );
37                         print &ui_links_row(\@links);
38                         @tds = ( "width=5" );
39                         print &ui_columns_start([ "", $text{'dirstatus_name'},
40                                                   $text{'dirstatus_id'},
41                                                   $text{'dirstatus_date2'} ],
42                                                 "100%", 0, \@tds);
43                         foreach $j (@$run) {
44                                 print &ui_checked_columns_row([
45                                         &joblink($j->{'name'}),
46                                         $j->{'id'},
47                                         $j->{'date'} ], \@tds, "d", $j->{'id'});
48                                 }
49                         print &ui_columns_end();
50                         print &ui_links_row(\@links);
51                         print &ui_form_end([ [ "cancel", $text{'dirstatus_cancel'} ] ]);
52                         }
53                 else {
54                         print "<b>$text{'dirstatus_runnone'}</b><p>\n";
55                         }
56
57                 # Completed jobs
58                 print &ui_subheading($text{'dirstatus_done'});
59                 if (@$done) {
60                         print &ui_columns_start([ $text{'dirstatus_name'},
61                                                   $text{'dirstatus_id'},
62                                                   $text{'dirstatus_level'},
63                                                   $text{'dirstatus_date'},
64                                                   $text{'dirstatus_bytes'},
65                                                   $text{'dirstatus_files'},
66                                                   $text{'dirstatus_status2'} ],
67                                                 "100%");
68                         foreach $j (@$done) {
69                                 print &ui_columns_row([
70                                         &joblink($j->{'name'}),
71                                         $j->{'id'},
72                                         $j->{'level'},
73                                         $j->{'date'},
74                                         &nice_size($j->{'bytes'}),
75                                         $j->{'files'},
76                                         $j->{'status'} ]);
77                                 }
78                         print &ui_columns_end();
79                         }
80                 else {
81                         print "<b>$text{'dirstatus_donenone'}</b><p>\n";
82                         }
83                 }
84         else {
85                 # Couldn't connect!
86                 print "<b>",&text('clientstatus_err', $in{'client'}, $msg),
87                       "</b><p>\n";
88                 }
89         }
90
91 &ui_print_footer("", $text{'index_return'});
92
93