Handle hostnames with upper-case letters
[webmin.git] / bacula-backup / edit_gjob.cgi
1 #!/usr/local/bin/perl
2 # Show the details of one backup job
3
4 require './bacula-backup-lib.pl';
5 &ReadParse();
6 $conf = &get_director_config();
7 @jobs = &find("JobDefs", $conf);
8 @clients = map { $n=&find_value("Name", $_->{'members'}); }
9                 grep { ($g, $c) = &is_oc_object($_); $g && !$c }
10                    &find("Client", $conf);
11 @filesets = map { $n=&find_value("Name", $_->{'members'}) }
12                 &find("FileSet", $conf);
13 @schedules = map { $n=&find_value("Name", $_->{'members'}) }
14                 &find("Schedule", $conf);
15 @storages = map { $n=&find_value("Name", $_->{'members'}) }
16                 &find("Storage", $conf);
17 @pools = map { $n=&find_value("Name", $_->{'members'}) }
18                 &find("Pool", $conf);
19 @messages = map { $n=&find_value("Name", $_->{'members'}) }
20                 &find("Messages", $conf);
21 if ($in{'new'}) {
22         &ui_print_header(undef, $text{'gjob_title1'}, "");
23         $mems = [ { 'name' => 'Type',
24                     'value' => 'Backup' },
25                   { 'name' => 'Level',
26                     'value' => 'Incremental' },
27                   { 'name' => 'Client',
28                     'value' => $clients[0] },
29                   { 'name' => 'FileSet',
30                     'value' => $filesets[0] },
31                   { 'name' => 'Schedule',
32                     'value' => $schedules[0] },
33                   { 'name' => 'Storage',
34                     'value' => $storages[0] },
35                   { 'name' => 'Messages',
36                     'value' => $messages[0] },
37                   { 'name' => 'Pool',
38                     'value' => $pools[0] },
39                 ];
40         $job = { 'name' => 'Job',
41                  'members' => $mems };
42         }
43 else {
44         &ui_print_header(undef, $text{'gjob_title2'}, "");
45         $job = &find_by("Name", "ocjob_".$in{'name'}, \@jobs);
46         $job || &error($text{'job_egone'});
47         $mems = $job->{'members'};
48         }
49
50 # Show details
51 print &ui_form_start("save_gjob.cgi", "post");
52 print &ui_hidden("new", $in{'new'}),"\n";
53 print &ui_hidden("old", $in{'name'}),"\n";
54 print &ui_table_start($text{'gjob_header'}, "width=100%", 4);
55
56 # Job name
57 print &ui_table_row($text{'job_name'},
58                     &ui_textbox("name", $in{'name'}, 40), 3);
59
60 # Job type
61 $type = &find_value("Type", $mems);
62 print &ui_table_row($text{'job_type'},
63         &ui_select("type", $type,
64                 [ [ "Backup" ], [ "Restore" ], [ "Verify" ], [ "Admin" ] ],
65                 1, 0, 1));
66
67 # Backup level
68 $level = &find_value("Level", $mems);
69 print &ui_table_row($text{'job_level'},
70         &ui_select("level", $level,
71                 [ map { [ $_ ] } @backup_levels ],
72                 1, 0, 1));
73
74 # Client being backed up
75 $client = &find_value("Client", $mems);
76 print &ui_table_row($text{'gjob_client'},
77         &ui_select("client", $client,
78                 [ map { [ $_, &is_oc_object($_) ] } @clients ], 1, 0, 1));
79
80 # Files to be backed up
81 $fileset = &find_value("FileSet", $mems);
82 print &ui_table_row($text{'job_fileset'},
83         &ui_select("fileset", $fileset,
84                 [ map { [ $_ ] } @filesets ], 1, 0, 1));
85
86 # Backup schedule
87 $schedule = &find_value("Schedule", $mems);
88 print &ui_table_row($text{'job_schedule'},
89         &ui_select("schedule", $schedule,
90                 [ [ "", "<$text{'default'}>" ],
91                   map { [ $_ ] } @schedules ], 1, 0, 1));
92
93 # Storage device
94 $storage = &find_value("Storage", $mems);
95 print &ui_table_row($text{'job_storage'},
96         &ui_select("storage", $storage,
97                 [ map { [ $_ ] } @storages ], 1, 0, 1));
98
99 # Backup pool
100 $pool = &find_value("Pool", $mems);
101 print &ui_table_row($text{'job_pool'},
102         &ui_select("pool", $pool,
103                 [ map { [ $_ ] } @pools ], 1, 0, 1));
104
105 # Backup messages
106 $messages = &find_value("Messages", $mems);
107 print &ui_table_row($text{'job_messages'},
108         &ui_select("messages", $messages,
109                 [ map { [ $_ ] } @messages ], 1, 0, 1));
110
111 # Priority level
112 $prority = &find_value("Priority", $mems);
113 print &ui_table_row($text{'job_prority'},
114         &ui_opt_textbox("priority", $priority, 4, $text{'default'}));
115
116 # Before and after commands
117 print &ui_table_hr();
118
119 $before = &find_value("Run Before Job", $mems);
120 print &ui_table_row($text{'job_before'},
121         &ui_opt_textbox("before", $before, 60, $text{'default'}), 3);
122 $after = &find_value("Run After Job", $mems);
123 print &ui_table_row($text{'job_after'},
124         &ui_opt_textbox("after", $after, 60, $text{'default'}), 3);
125
126 $cbefore = &find_value("Client Run Before Job", $mems);
127 print &ui_table_row($text{'job_cbefore'},
128         &ui_opt_textbox("cbefore", $cbefore, 60, $text{'default'}), 3);
129 $cafter = &find_value("Client Run After Job", $mems);
130 print &ui_table_row($text{'job_cafter'},
131         &ui_opt_textbox("cafter", $cafter, 60, $text{'default'}), 3);
132
133 # All done
134 print &ui_table_end();
135 if ($in{'new'}) {
136         print &ui_form_end([ [ "create", $text{'create'} ] ]);
137         }
138 else {
139         print &ui_form_end([ [ "save", $text{'save'} ],
140                              [ "run", $text{'job_run'} ],
141                              [ "delete", $text{'delete'} ] ]);
142         }
143 &ui_print_footer("list_gjobs.cgi", $text{'jobs_return'});
144