Handle hostnames with upper-case letters
[webmin.git] / usermin / edit_themes.cgi
1 #!/usr/local/bin/perl
2 # edit_themes.cgi
3 # Display all themes, and allow installation of a new one
4
5 require './usermin-lib.pl';
6 $access{'themes'} || &error($text{'acl_ecannot'});
7 &ReadParse();
8 &ui_print_header(undef, $text{'themes_title'}, "");
9
10 @themes = &list_themes();
11 &get_usermin_config(\%uconfig);
12 if (@themes) {
13         print "$text{'themes_desc'}<br>\n";
14         print "<form action=change_theme.cgi>\n";
15         print "<b>$text{'themes_sel'}</b> <select name=theme>\n";
16         foreach $t ( { 'desc' => $text{'themes_default'} }, @themes) {
17                 printf "<option value='%s' %s>%s\n",
18                         $t->{'dir'},
19                         $uconfig{'theme'} eq $t->{'dir'} ? 'selected' : '',
20                         $t->{'desc'};
21                 }
22         print "</select>\n";
23         print "<input type=submit value='$text{'themes_change'}'></form>\n";
24         print &ui_hr();
25         }
26
27 # Display install form
28 print "$text{'themes_installdesc'}<br>\n";
29 print "<form action=install_theme.cgi enctype=multipart/form-data method=post>\n";
30 print "<input type=radio name=source value=0 checked> $text{'mods_local'}\n";
31 print "<input name=file size=40>\n";
32 print &file_chooser_button("file", 0, 1),"<br>\n";
33 print "<input type=radio name=source value=1> $text{'mods_uploaded'}\n";
34 print "<input name=upload type=file size=30><br>\n";
35 print "<input type=radio name=source value=2> $text{'mods_ftp'}\n";
36 print "<input name=url size=40><br>\n";
37 print "<input type=submit value=\"$text{'themes_installok'}\"></form>\n";
38
39 # Display deletion form
40 &get_usermin_config(\%uconfig);
41 foreach $c (keys %uconfig) {
42         if ($c =~ /^theme_(\S+)$/) {
43                 $utheme{$uconfig{$c}}++ if (defined(getpwnam($1)));
44                 }
45         }
46 @themes = grep { $_->{'dir'} ne $uconfig{'theme'} &&
47                  !$utheme{$_->{'dir'}} } @themes;
48 if (@themes) {
49         print &ui_hr();
50         print "$text{'themes_delete'}<br>\n";
51         print "<form action=delete_mod.cgi>\n";
52         print "<b>$text{'themes_delok'}</b>\n";
53         print "<select name=mod>\n";
54         foreach $t (@themes) {
55                 printf "<option value=%s>%s\n",
56                         $t->{'dir'}, $t->{'desc'};
57                 }
58         print "</select>\n";
59         print "<input type=submit value='$text{'delete'}'></form>\n";
60         }
61
62 # Display export form
63 print &ui_hr();
64 print "$text{'themes_desc4'}<p>\n";
65
66 print &ui_form_start("export_mod.cgi/theme.ubt.gz");
67 print "<table>\n";
68
69 print "<tr> <td valign=top><b>$text{'themes_exportmods'}</b></td>\n";
70 print "<td>",&ui_select("mod", undef,
71         [ map { [ $_->{'dir'}, $_->{'desc'} ] } @themes ], 5, 1),
72         "</td> </tr>\n";
73
74 print "<tr> <td valign=top><b>$text{'mods_exportto'}</b></td>\n";
75 print "<td>",&ui_radio("to", 0,
76         [ [ 0, $text{'mods_exportshow'}."<br>" ],
77           [ 1, &text('mods_exportfile',
78                      &ui_textbox("file", undef, 40)) ] ]),"</td> </tr>\n";
79
80 print "</table>\n";
81 print &ui_form_end([ [ "ok", $text{'themes_exportok'} ] ]);
82
83 &ui_print_footer("", $text{'index_return'});
84