Current File : //usr/share/webmin/webmin/change_overlay.cgi
#!/usr/bin/perl
# Change the current webmin theme overlay

require './webmin-lib.pl';
&ReadParse();
&error_setup($text{'themes_err4'});

# Get the overlay and make sure it is compatible
($gtheme) = split(/\s+/, $gconfig{'theme'});
if ($in{'overlay'}) {
	%oinfo = &get_theme_info($in{'overlay'});
	if ($oinfo{'overlays'} &&
	    &indexof($gtheme, split(/\s+/, $oinfo{'overlays'})) < 0) {
		&error($text{'themes_eoverlay'});
		}
	}

&lock_file("$config_directory/config");
if ($in{'overlay'}) {
	$gconfig{'theme'} = join(" ", $gtheme, $in{'overlay'});
	}
else {
	$gconfig{'theme'} = $gtheme;
	}
&write_file("$config_directory/config", \%gconfig);
&unlock_file("$config_directory/config");

&lock_file($ENV{'MINISERV_CONFIG'});
&get_miniserv_config(\%miniserv);
if ($in{'overlay'}) {
	$miniserv{'preroot'} = join(" ", $gtheme, $in{'overlay'});
	}
else {
	$miniserv{'preroot'} = $gtheme;
	}
&put_miniserv_config(\%miniserv);
&unlock_file($ENV{'MINISERV_CONFIG'});
&reload_miniserv();

&webmin_log('theme', undef, undef, \%in);
&ui_print_header(undef, $text{'themes_title'}, "");
print "$text{'themes_ok2'}<p>\n";
print &js_redirect("/", "top", 1500);
&ui_print_footer("", $text{'index_return'});