Handle hostnames with upper-case letters
[webmin.git] / bacula-backup / edit_group.cgi
1 #!/usr/local/bin/perl
2 # Show the details of one node group, which is actually a special client
3
4 require './bacula-backup-lib.pl';
5 &ReadParse();
6 $conf = &get_director_config();
7 @groups = &find("Client", $conf);
8 @catalogs = map { $n=&find_value("Name", $_->{'members'}) }
9                 &find("Catalog", $conf);
10 if ($in{'new'}) {
11         &ui_print_header(undef, $text{'group_title1'}, "");
12         $mems = [ { 'name' => 'FDPort',
13                     'value' => 9102 },
14                   { 'name' => 'Catalog',
15                     'value' => $catalogs[0] },
16                   { 'name' => 'File Retention',
17                     'value' => '30 days' },
18                   { 'name' => 'Job Retention',
19                     'value' => '6 months' },
20                 ];
21         $group = { 'members' => $mems };
22         }
23 else {
24         &ui_print_header(undef, $text{'group_title2'}, "");
25         $group = &find_by("Name", "ocgroup_".$in{'name'}, \@groups);
26         $group || &error($text{'group_egone'});
27         $mems = $group->{'members'};
28         }
29
30 # Get node group
31 @nodegroups = &list_node_groups();
32 $ngname = $in{'name'} || $in{'new'};
33 ($nodegroup) = grep { $_->{'name'} eq $ngname } @nodegroups;
34
35 # Show details
36 print &ui_form_start("save_group.cgi", "post");
37 print &ui_hidden("new", $in{'new'}),"\n";
38 print &ui_hidden("old", $in{'name'}),"\n";
39 print &ui_table_start($text{'group_header'}, "width=100%", 4);
40
41 # Group name
42 print &ui_table_row($text{'group_name'},
43                     $in{'new'} || $in{'name'});
44
45 # Password for remote
46 print &ui_table_row($text{'client_pass'},
47         &ui_textbox("pass", $pass=&find_value("Password", $mems), 60), 3);
48
49 # FD port
50 print &ui_table_row($text{'client_port'},
51         &ui_textbox("port", $port=&find_value("FDPort", $mems), 6), 3);
52
53 # Catalog
54 print &ui_table_row($text{'client_catalog'},
55         &ui_select("catalog", $catalog=&find_value("Catalog", $mems),
56                    [ map { [ $_ ] } @catalogs ], 1, 0, 1));
57
58 # Prune option
59 $prune = &find_value("AutoPrune", $mems);
60 print &ui_table_row($text{'client_prune'},
61         &ui_radio("prune", $prune,
62                   [ [ "yes", $text{'yes'} ], [ "no", $text{'no'} ],
63                     [ "", $text{'default'} ] ]));
64
65 # Retention options
66 $fileret = &find_value("File Retention", $mems);
67 print &ui_table_row($text{'client_fileret'},
68                     &show_period_input("fileret", $fileret));
69 $jobret = &find_value("Job Retention", $mems);
70 print &ui_table_row($text{'client_jobret'},
71                     &show_period_input("jobret", $jobret));
72
73 # Members
74 print &ui_table_row($text{'group_members'},
75                     join(", ", @{$nodegroup->{'members'}}), 3);
76
77 # All done
78 print &ui_table_end();
79 if ($in{'new'}) {
80         print &ui_form_end([ [ "create", $text{'create'} ] ]);
81         }
82 else {
83         print &ui_form_end([ [ "save", $text{'save'} ],
84                              [ "delete", $text{'delete'} ] ]);
85         }
86 &ui_print_footer("list_groups.cgi", $text{'groups_return'});
87