Handle hostnames with upper-case letters
[webmin.git] / webmin / 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 './webmin-lib.pl';
6 &ReadParse();
7 &ui_print_header(undef, $text{'themes_title'}, "");
8
9 @all = &list_themes();
10 @themes = grep { !$_->{'overlay'} } @all;
11 @overlays = grep { $_->{'overlay'} } @all;
12 $prog = "edit_themes.cgi?mode=";
13 ($gtheme, $goverlay) = split(/\s+/, $gconfig{'theme'});
14
15 # Start tabs
16 if (@themes) {
17         @tabs = ( [ "change", $text{'themes_tabchange'}, $prog."change" ] );
18         }
19 if (@overlays) {
20         push(@tabs, [ "overlay", $text{'themes_taboverlay'}, $prog."overlay" ]);
21         }
22 if (!&shared_root_directory()) {
23         push(@tabs, [ "install", $text{'themes_tabinstall'}, $prog."install" ]);
24         }
25 if (!&shared_root_directory() && @all) {
26         push(@tabs, [ "delete", $text{'themes_tabdelete'}, $prog."delete" ]);
27         }
28 if (@themes || @overlays) {
29         push(@tabs, [ "export", $text{'themes_tabexport'}, $prog."export" ] );
30         }
31 print &ui_tabs_start(\@tabs, "mode", $in{'mode'} || $tabs[0]->[0], 1);
32
33 # Display theme change form
34 if (@themes) {
35         print &ui_tabs_start_tab("mode", "change");
36         print "$text{'themes_desc'}<p>\n";
37         print &ui_form_start("change_theme.cgi");
38         print "<b>$text{'themes_sel'}</b>\n";
39         print &ui_select("theme", $gtheme,
40                 [ [ '', $text{'themes_default'} ],
41                   map { [ $_->{'dir'}, $_->{'desc'} ] } @themes ]),"<p>\n";
42         print &ui_form_end([ [ undef, $text{'themes_change'} ] ]);
43         print &ui_tabs_end_tab("mode", "change");
44         }
45
46 # Display overlay change form
47 if (@overlays && $gtheme) {
48         print &ui_tabs_start_tab("mode", "overlay");
49         print "$text{'themes_overdesc'}<p>\n";
50         print &ui_form_start("change_overlay.cgi");
51         print "<b>$text{'themes_overlay'}</b>\n";
52         print &ui_select("overlay", $goverlay,
53                 [ [ '', $text{'themes_none'} ],
54                   map { [ $_->{'dir'}, $_->{'desc'} ] } @overlays ]),"<br>\n";
55         print &ui_form_end([ [ undef, $text{'themes_change'} ] ]);
56         print &ui_tabs_end_tab("mode", "overlay");
57         }
58
59 if (!&shared_root_directory()) {
60         # Display install form
61         print &ui_tabs_start_tab("mode", "install");
62         print "$text{'themes_installdesc'}<p>\n";
63         print &ui_form_start("install_theme.cgi", "form-data");
64         print &ui_radio_table("source", 0,
65                 [ [ 0, $text{'mods_local'}, &ui_filebox("file", undef ,40) ],
66                   [ 1, $text{'mods_uploaded'}, &ui_upload("upload") ],
67                   [ 2, $text{'mods_ftp'}, &ui_textbox("url", undef, 40) ] ]);
68         print &ui_form_end([ [ undef, $text{'themes_installok'} ] ]);
69         print &ui_tabs_end_tab("mode", "install");
70         }
71
72 if (!&shared_root_directory() && @all) {
73         # Display deletion form
74         print &ui_tabs_start_tab("mode", "delete");
75         print "$text{'themes_delete'}<p>\n";
76         print &ui_form_start("delete_mod.cgi");
77         print "<b>$text{'themes_delok'}</b>\n";
78         print &ui_select("mod", undef,
79                 [ map { [ $_->{'dir'}, $_->{'desc'} ] } @all ]),"<br>\n";
80         print &ui_form_end([ [ undef, $text{'delete'} ] ]);
81         print &ui_tabs_end_tab("mode", "delete");
82         }
83
84 # Display export form
85 print &ui_tabs_start_tab("mode", "export");
86 print "$text{'themes_desc4'}<p>\n";
87
88 print &ui_form_start("export_mod.cgi/theme.wbt.gz");
89 print &ui_table_start(undef, undef, 2);
90
91 print &ui_table_row($text{'themes_exportmods'},
92         &ui_select("mod", undef,
93                 [ map { [ $_->{'dir'}, $_->{'desc'} ] } @themes ], 5, 1));
94
95 print &ui_table_row($text{'mods_exportto'},
96         &ui_radio("to", 0,
97                 [ [ 0, $text{'mods_exportshow'}."<br>" ],
98                   [ 1, &text('mods_exportfile',
99                              &ui_textbox("file", undef, 40)) ] ]));
100
101 print &ui_table_end();
102 print &ui_form_end([ [ "ok", $text{'themes_exportok'} ] ]);
103 print &ui_tabs_end_tab("mode", "export");
104
105 print &ui_tabs_end(1);
106
107 &ui_print_footer("", $text{'index_return'});
108