Handle hostnames with upper-case letters
[webmin.git] / webmin / edit_advanced.cgi
1 #!/usr/local/bin/perl
2 # Display the advanced options form
3
4 require './webmin-lib.pl';
5 &ui_print_header(undef, $text{'advanced_title'}, "");
6 &get_miniserv_config(\%miniserv);
7
8 print &ui_form_start("change_advanced.cgi", "post");
9 print &ui_table_start($text{'advanced_header'}, undef, 2);
10
11 # Global temp directory
12 print &ui_table_row($text{'advanced_temp'},
13                     &ui_opt_textbox("tempdir", $gconfig{'tempdir'},
14                                     30, $text{'advanced_tempdef'})."<br>".
15                     &ui_checkbox("tempdirdelete", 1, $text{'advanced_tdd'},
16                                  $gconfig{'tempdirdelete'}));
17
18 # Temp files clearing period
19 print &ui_table_row($text{'advanced_tempdelete'},
20                     &ui_opt_textbox("tempdelete", $gconfig{'tempdelete_days'},
21                                     5, $text{'advanced_nodelete'})." ".
22                     $text{'advanced_days'});
23
24 # Per-module temp directories
25 @mods = sort { $a->{'desc'} cmp $b->{'desc'} } &get_all_module_infos();
26 $ttable = &ui_columns_start([ $text{'advanced_tmod'},
27                               $text{'advanced_tdir'} ]);
28 $i = 0;
29 foreach $d (&get_tempdirs(\%gconfig), [ ]) {
30         $ttable .= &ui_columns_row([
31                 &ui_select("tmod_$i", $d->[0],
32                         [ [ "", "&nbsp;" ],
33                           map { [ $_->{'dir'}, $_->{'desc'} ] } @mods ]),
34                 &ui_textbox("tdir_$i", $d->[1], 30)
35                 ]);
36         $i++;
37         }
38 $ttable .= &ui_columns_end();
39 print &ui_table_row($text{'advanced_tempmods'}, $ttable);
40
41 @preloads = &get_preloads(\%miniserv);
42 if (!@preloads && (!$miniserv{'premodules'} ||
43                    $miniserv{'premodules'} eq 'WebminCore')) {
44         # New-style preload possible or enabled
45         print &ui_table_row($text{'advanced_preload'},
46                     &ui_yesno_radio("preload",
47                                     $miniserv{'premodules'} eq 'WebminCore'));
48         }
49 elsif ($preloads[0]->[0] eq "main" && $preloads[0]->[1] eq "web-lib-funcs.pl") {
50         # Old-style preloads enabled
51         print &ui_table_row($text{'advanced_preload'},
52                             &ui_yesno_radio("preload", 1));
53         }
54
55 # Files to pre-cache
56 $mode = $miniserv{'precache'} eq 'none' ? 0 :
57         $miniserv{'precache'} eq '' ? 1 : 2;
58 print &ui_table_row($text{'advanced_precache'},
59         &ui_radio("precache_mode", $mode,
60                   [ [ 0, $text{'advanced_precache0'}."<br>" ],
61                     [ 1, $text{'advanced_precache1'}."<br>" ],
62                     [ 2, &text('advanced_precache2',
63                           &ui_textbox("precache",
64                            $mode == 2 ? $miniserv{'precache'} : "", 40)) ] ]));
65
66 # Umask for created files
67 print &ui_table_row($text{'advanced_umask'},
68             &ui_opt_textbox("umask", $gconfig{'umask'}, 5, $text{'default'}));
69
70 # Overwrite immutable files
71 if (&has_command("chattr")) {
72         print &ui_table_row($text{'advanced_chattr'},
73                     &ui_yesno_radio("chattr", $gconfig{'chattr'}));
74         }
75
76 # Nice level for cron jobs
77 if (&foreign_check("proc")) {
78         &foreign_require("proc", "proc-lib.pl");
79         print &ui_table_row($text{'advanced_nice'},
80             &ui_radio("nice_def", $gconfig{'nice'} eq '' ? 1 : 0,
81               [ [ 1, $text{'default'} ],
82                 [ 0, $text{'advanced_pri'}." ".
83                      &proc::nice_selector("nice", $gconfig{'nice'} || 0) ] ]));
84
85         # IO scheduling class and priority
86         if (defined(&proc::os_list_scheduling_classes) &&
87             (@classes = &proc::os_list_scheduling_classes())) {
88                 print &ui_table_row($text{'advanced_sclass'},
89                         &ui_select("sclass", $gconfig{'sclass'},
90                                    [ [ undef, $text{'default'} ],
91                                      @classes ]));
92
93                 @prios = &proc::os_list_scheduling_priorities();
94                 print &ui_table_row($text{'advanced_sprio'},
95                         &ui_select("sprio", $gconfig{'sprio'},
96                                    [ [ undef, $text{'default'} ],
97                                      @prios ]));
98                 }
99         }
100
101 print &ui_table_end();
102 print &ui_form_end([ [ "save", $text{'save'} ] ]);
103
104 &ui_print_footer("", $text{'index_return'});
105