% }
%
%} else {
-<% header('Configuration set') %>
+<& /elements/header-popup.html, 'Configuration set' &>
<SCRIPT TYPE="text/javascript">
% my $n = 0;
% foreach my $type ( ref($i->type) ? @{$i->type} : $i->type ) {
'</pre></font>';
% } elsif ( $type eq 'checkbox' ) {
-% if ( $conf->exists($i->key, $agentnum) ) {
+% if ( $conf->config_bool($i->key, $agentnum) ) {
configCell.style.backgroundColor = '#00ff00';
configCell.innerHTML = 'YES';
% } else {
configCell.innerHTML = <% $value |js_string %>;
% } elsif ( $type eq 'select-sub' && ! $i->multiple ) {
configCell.innerHTML =
- <% $conf->config($i->key, $agentnum) |js_string %> + ': ' +
+ <% $conf->exists($i->key, $agentnum) ? $conf->config($i->key, $agentnum) : '' |js_string %> + ': ' +
<% &{ $i->option_sub }( $conf->config($i->key, $agentnum) ) |js_string %>;
% } else {
//alert('unknown type <% $type %>');
my $curuser = $FS::CurrentUser::CurrentUser;
die "access denied\n" unless $curuser->access_right('Configuration');
-my $conf = new FS::Conf;
+my $locale = $cgi->param('locale') || '';
+
+my $conf = new FS::Conf { 'locale' => $locale };
if ( $conf->exists('disable_settings_changes') ) {
my @changers = split(/\s*,\s*/, $conf->config('disable_settings_changes'));
}
}
-$FS::Conf::DEBUG = 1;
+#$FS::Conf::DEBUG = 1;
my @config_items = grep { $_->key != ~/^invoice_(html|latex|template)/ }
$conf->config_items;
my %confitems = map { $_->key => $_ } $conf->config_items;
}
} elsif ( $type eq 'checkbox' ) {
if ( defined $cgi->param($i->key.$n) ) {
- push @touch, $i->key;
+ my $error = &{$i->validate}('', $n) if $i->validate;
+ push @error, $error if $error;
+ push @touch, $i->key if !$error;
} else {
push @delete, $i->key;
}
or ( $type =~ /^select(-(sub|part_svc|part_pkg|pkg_class|agent))?$/
|| $i->multiple )
) {
- if ( scalar(@{[ $cgi->param($i->key.$n) ]}) ) {
+ if ( scalar(@{[ $cgi->param($i->key.$n) ]}) && $cgi->param($i->key.$n) ne '' ) {
my $error = &{$i->validate}([ $cgi->param($i->key.$n) ], $n) if $i->validate;
push @error, $error if $error;
- $conf->set($i->key, join("\n", @{[ $cgi->param($i->key.$n) ]} ), $agentnum);
+ $conf->set($i->key, join("\n", @{[ $cgi->param($i->key.$n) ]} ), $agentnum) if !$error;
} else {
$conf->delete($i->key, $agentnum);
}
}
# warn @touch;
$conf->touch($_, $agentnum) foreach @touch;
-$conf->delete($_, $agentnum) foreach @delete;
+$conf->delete_bool($_, $agentnum) foreach @delete;
if (scalar(@error)) {
$cgi->param('error', join(' ', @error));