Handle hostnames with upper-case letters
[webmin.git] / zones / create_form.cgi
1 #!/usr/local/bin/perl
2 # Shows a form for adding a new zone
3
4 require './zones-lib.pl';
5 do 'forms-lib.pl';
6 use Socket;
7 &ReadParse();
8 $p = new Webmin::Page(undef, $text{'create_title'}, "create");
9 $p->add_form(&get_create_form(\%in));
10 $p->add_footer("index.cgi", $text{'index_return'});
11 $p->print();
12 exit;
13
14 &ui_print_header(undef, $text{'create_title'}, "", "create");
15 &foreign_require("time", "time-lib.pl");
16
17 print &ui_form_start("create_zone.cgi", "post");
18 print &ui_table_start($text{'create_header'}, undef, 2);
19
20 print &ui_table_row($text{'edit_name'},
21                     &ui_textbox("name", undef, 20));
22
23 print &ui_table_row($text{'create_path'},
24                     &ui_opt_textbox("path", undef, 30,
25                         &text('create_auto', $config{'base_dir'}),
26                         $text{'create_sel'})."\n".
27                     &file_chooser_button("path", 1));
28                     
29 print &ui_table_row($text{'create_brand'},
30                         &ui_select("brand",undef, [ &list_brands() ], 0, 0, $value ? 1 : 0));
31
32 print &ui_table_row($text{'create_address'},
33                     &ui_opt_textbox("address", undef, 20,
34                                     $text{'create_noaddress'}));
35
36 print &ui_table_row($text{'net_physical'},
37                     &physical_input("physical", &get_default_physical()));
38
39 print &ui_table_row($text{'create_install'},
40                     &ui_yesno_radio("install", 0));
41
42 print &ui_table_row($text{'create_webmin'},
43                     &ui_yesno_radio("webmin", 0));
44                     
45 print &ui_table_row($text{'pkg_inherit'},
46                         &ui_yesno_radio("inherit", 0));
47
48 print &ui_table_row($text{'create_pkgs'},
49                     &ui_textarea("pkgs", undef, 5, 50));
50
51 print &ui_table_hr();
52
53 print &ui_table_row($text{'create_cfg'},
54                     &ui_radio("cfg", 1, [ [ 1, $text{'create_cfgyes'} ],
55                                           [ 0, $text{'create_cfgno'} ] ]));
56
57 print &ui_table_row($text{'create_hostname'},
58                     &ui_opt_textbox("hostname", undef, 20,
59                                 $text{'create_samehost'}));
60
61 print &ui_table_row($text{'create_root'},
62                     &ui_opt_textbox("root", undef, 15, $text{'create_same'}));
63
64 $tz = &time::get_current_timezone();
65 print &ui_table_row($text{'create_timezone'},
66                     &ui_opt_textbox("timezone", undef, 25,
67                                     &text('create_same2', $tz)));
68
69 $locale = &get_global_locale();
70 print &ui_table_row($text{'create_locale'},
71                     &ui_opt_textbox("locale", undef, 10,
72                             &text('create_same2', $locale)));
73
74 print &ui_table_row($text{'create_terminal'},
75                     &ui_opt_textbox("terminal", undef, 10,
76                                     $text{'create_vt100'}));
77
78 $dns = &net::get_dns_config();
79 ($resolv) = grep { $_ ne "files" } split(/\s+/, $dns->{'order'});
80 $resolv ||= "none";
81 print &ui_table_row($text{'create_name'},
82             &ui_radio("resolv", $resolv, [ [ "none", $text{'create_none'} ],
83                                        [ "dns", $text{'create_dns'} ],
84                                        [ "nis", $text{'create_nis'} ],
85                                        [ "nis+", $text{'create_nis+'} ],
86                                      ]));
87
88 $domain = $resolv eq "dns" ? $dns->{'domain'}->[0] :
89           $resolv eq "nis" || $resolv eq "nis+" ? &net::get_domainname()
90                                                 : undef;
91 print &ui_table_row($text{'create_domain'},
92                     &ui_textbox("domain", $domain, 20));
93
94 if ($resolv eq "dns") {
95         @servers = map { &to_hostname($_) || $_ }
96                          @{$dns->{'nameserver'}};
97         $server = join(" ", @servers);
98         }
99 elsif ($resolv eq "nis" || $resolv eq "nis+") {
100         $server = `ypwhich`;
101         chop($server);
102         }
103 print &ui_table_row($text{'create_server'},
104                     &ui_textbox("server", $server, 40));
105
106 ($router) = &net::get_default_gateway();
107 if (!$router) {
108         # Use active settings
109         foreach $r (&net::list_routes()) {
110                 $router = $r->{'gateway'} if ($r->{'dest'} eq '0.0.0.0');
111                 }
112         }
113 print &ui_table_row($text{'create_router'},
114                     &ui_opt_textbox("router", $router, 20,
115                                     $text{'create_none'}));
116
117 print &ui_table_end();
118 print &ui_form_end([ [ "ok", $text{'create_ok'} ] ]);
119
120 &ui_print_footer("index.cgi", $text{'index_return'});
121