X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fconfig%2Fconfig.cgi;h=cde48382a625b56e36a0d2473019fcdc8d958cc8;hb=0fb307c305e4bc2c9c27dc25a3308beae3a4d33c;hp=56da0698a6028137786a5524342472b82135cae4;hpb=b6724f3cf6c4b77ab66d259920042f12e46cf924;p=freeside.git diff --git a/httemplate/config/config.cgi b/httemplate/config/config.cgi index 56da0698a..cde48382a 100644 --- a/httemplate/config/config.cgi +++ b/httemplate/config/config.cgi @@ -1,51 +1,362 @@ -<%= header('Edit Configuration', menubar( 'Main Menu' => $p ) ) %> - -<% my $conf = new FS::Conf; my @config_items = $conf->config_items; %> - -
- -<% foreach my $section ( qw(required billing username password UI session - shell mail radius apache BIND - ), - '', 'depreciated') { %> - <%= table("#cccccc", 2) %> - - - <%= ucfirst($section || 'unclassified') %> configuration options - - - <% foreach my $i (grep $_->section eq $section, @config_items) { %> - - - <% my $n = 0; - foreach my $type ( ref($i->type) ? @{$i->type} : $i->type ) { - #warn $i->key unless defined($type); - %> - <% if ( $type eq '' ) { %> - no type - <% } elsif ( $type eq 'textarea' ) { %> - - <% } elsif ( $type eq 'checkbox' ) { %> - exists($i->key) ? ' CHECKED' : '' %>> - <% } elsif ( $type eq 'text' ) { %> - - <% } else { %> - unknown type <%= $type %> - <% } %> - <% $n++; } %> - - - <%= $i->key %> - <%= $i->description %> - - - <% } %> -

-<% } %> - -You may need to restart Apache and/or freeside-queued for configuration -changes to take effect.
- - -
- - +<% include("/elements/header-popup.html", $title) %> + + + +<% include('/elements/error.html') %> + +
+ + + +Setting <% $key %> + +% my $description_printed = 0; +% if ( grep $_ eq 'textarea', @types ) { +% $description_printed = 1; + + - <% $description %> + +% } + + + +% if ( defined $config_item->editlist_parts ) { +% my $pnum=0; +% foreach my $part ( @{$config_item->editlist_parts} ) { + + + +% $pnum++; +% } +% } else { + + + +% } + + +
+ +% my $n = 0; +% foreach my $type (@types) { +% if ( $type eq '' ) { + + no type + +% } elsif ( $type eq 'image' ) { + + <% $conf->exists($key, $agentnum) + ? 'Current image
'. + '
' + : '' + %> + +
+ New image filename "> + +% } elsif ( $type eq 'binary' ) { + + Filename "> + +% } elsif ( $type eq 'textarea' ) { + + + +% } elsif ( $type eq 'checkbox' ) { + + " type="checkbox" value="1" + <% $conf->exists($key, $agentnum) ? 'CHECKED' : '' %> > + +% } elsif ( $type eq 'text' ) { + + " type="text" value="<% $conf->exists($key, $agentnum) ? $conf->config($key, $agentnum) : '' |h %>"> + +% } elsif ( $type eq 'select' || $type eq 'selectmultiple' ) { + + + +% } elsif ( $type eq 'select-sub' ) { + + + +% } elsif ( $type eq 'editlist' ) { +% + +
+ ()"> + +
<% itable() %>
+ +% if ( $part->{type} eq 'text' ) { + + "> + +% } elsif ( $part->{type} eq 'immutable' ) { + + <% $part->{value} %> + " value="<% $part->{value} %>"> + +% } elsif ( $part->{type} eq 'select' ) { + + + +% } else { + + unknown type <% $part->type %> + +% } + + >(this.form)">
+ +% } elsif ( $element_types{$type} ) { +% +% my %opt = ( 'element_name' => "$key$n", +% 'empty_label' => ' ', +% 'showdisabled' => 1, +% ); +% if ( $config_item->multiple ) { +% $opt{'multiple'} = 1 if $config_item->multiple; +% $opt{'curr_value'} = [ $conf->config($key, $agentnum) ]; +% } else { +% $opt{'curr_value'} = +% $conf->exists($key, $agentnum) ? $conf->config($key, $agentnum) : ''; +% } + + <% include("/elements/$type.html", %opt ) %> + +% } else { + + unknown type <% $type %> + +% } +% $n++; +% } + + +% unless ( $description_printed ) { + <% $description %> +% } + + + +
+ + + +<%once> + +my $conf = new FS::Conf; +my @config_items = $conf->config_items; +my %confitems = map { $_->key => $_ } @config_items; + +my %element_types = map { $_ => 1 } qw( + select-part_svc select-part_pkg select-pkg_class +); + + +<%init> + +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); + +my $action = 'Set'; + +my $agentnum = ''; +if ($cgi->param('agentnum') =~ /(\d+)$/) { + $agentnum=$1; +} + +my $agent = ''; +my $title; +if ($agentnum) { + $agent = qsearchs('agent', { 'agentnum' => $1 } ); + die "Agent $agentnum not found!" unless $agent; + + $title = "$action configuration override for ". $agent->agent; +} else { + $title = "$action global configuration"; +} + +$cgi->param('key') =~ /^([-.\w]+)$/ or die "illegal configuration item"; +my $key = $1; +my $value = $conf->config($key); +my $config_item = $confitems{$key}; + +my $description = $config_item->description; +my $config_type = $config_item->type; +my @types = ref($config_type) ? @$config_type : ($config_type); + +