diff options
| author | ivan <ivan> | 2009-11-04 01:04:36 +0000 | 
|---|---|---|
| committer | ivan <ivan> | 2009-11-04 01:04:36 +0000 | 
| commit | 81e1ef5d087e2c16708c2e220fbfd67c6fc92133 (patch) | |
| tree | 398615248725d2c57efd7c6baa7740618c8a5009 /httemplate | |
| parent | 3def16aa3b656347e6dbe032afe183ac24646dc9 (diff) | |
reconcile breakage from stale accounts, RT#6407
Diffstat (limited to 'httemplate')
| -rw-r--r-- | httemplate/config/config-process.cgi | 130 | ||||
| -rw-r--r-- | httemplate/config/config-view.cgi | 23 | 
2 files changed, 90 insertions, 63 deletions
| diff --git a/httemplate/config/config-process.cgi b/httemplate/config/config-process.cgi index 50db40c31..788d9016e 100644 --- a/httemplate/config/config-process.cgi +++ b/httemplate/config/config-process.cgi @@ -1,3 +1,74 @@ +<% header('Configuration set') %> +  <SCRIPT TYPE="text/javascript"> +%   my $n = 0; +%   foreach my $type ( ref($i->type) ? @{$i->type} : $i->type ) { +    var configCell = window.top.document.getElementById('<% $agentnum. $i->key. $n %>'); +    if ( ! configCell ) { +      window.top.location.reload(); +    } +    //alert('found cell ' + configCell); +%     if (    $type eq 'textarea' +%          || $type eq 'editlist' +%          || $type eq 'selectmultiple' ) { +        configCell.innerHTML = +          '<font size="-2"><pre>' + "\n" + +          <% encode_entities(join("\n", +               map { length($_) > 88 ? substr($_,0,88).'...' : $_ } +                   $conf->config($i->key, $agentnum) +             ) ) +          |js_string %> + +          '</pre></font>'; + +%     } elsif ( $type eq 'checkbox' ) { +%       if ( $conf->exists($i->key, $agentnum) ) { +          configCell.style.backgroundColor = '#00ff00'; +          configCell.innerHTML = 'YES'; +%       } else { +          configCell.style.backgroundColor = '#ff0000'; +          configCell.innerHTML = 'NO'; +%       } +%     } elsif ( $type eq 'select' && $i->select_hash ) { +%       my %hash; +%       if ( ref($i->select_hash) eq 'ARRAY' ) { +%         tie %hash, 'Tie::IxHash', '' => '', @{ $i->select_hash }; +%       } else { +%         tie %hash, 'Tie::IxHash', '' => '', %{ $i->select_hash }; +%       } +        configCell.innerHTML = <% $conf->exists($i->key, $agentnum) ? $hash{ $conf->config($i->key, $agentnum) } : '' |js_string %>; + +%     } elsif ( $type eq 'text' || $type eq 'select' ) { +        configCell.innerHTML = <% $conf->exists($i->key, $agentnum) ? $conf->config($i->key, $agentnum) : '' |js_string %>; +%     } elsif ( $type =~ /^select-(part_svc|part_pkg|pkg_class)$/ && ! $i->multiple ) { +%       my $table = $1; +%       my $namecol = $namecol{$table}; +%       my $pkey = dbdef->table($table)->primary_key; +%       my $key = $conf->config($i->key, $agentnum); +%       my $record = qsearchs($table, { $pkey => $key }); +%       my $value = $record ? "$key: ".$record->$namecol() : $key; +        configCell.innerHTML = <% $value |js_string %>; +%     } elsif ( $type eq 'select-sub' ) { +        configCell.innerHTML = +          <% $conf->config($i->key, $agentnum) |js_string %> + ': ' + +          <% &{ $i->option_sub }( $conf->config($i->key, $agentnum) ) |js_string %>; +%     } else { +        //alert('unknown type <% $type %>'); +        window.top.location.reload(); +%     } + +%     $n++; +%   } +    parent.cClick(); +  </SCRIPT> +</BODY> +</HTML> +<%once> +#false laziness w/config-view.cgi +my %namecol = ( +  'part_svc'  => 'svc', +  'part_pkg'  => 'pkg', +  'pkg_class' => 'classname', +); +</%once>  <%init>  die "access denied\n"    unless $FS::CurrentUser::CurrentUser->access_right('Configuration'); @@ -65,62 +136,3 @@ $conf->touch($_, $agentnum) foreach @touch;  $conf->delete($_, $agentnum) foreach @delete;  </%init> -<% header('Configuration set') %> -  <SCRIPT TYPE="text/javascript"> -%   my $n = 0; -%   foreach my $type ( ref($i->type) ? @{$i->type} : $i->type ) { -    var configCell = window.top.document.getElementById('<% $agentnum. $i->key. $n %>'); -    if ( ! configCell ) { -      window.top.location.reload(); -    } -    //alert('found cell ' + configCell); -%     if (    $type eq 'textarea' -%          || $type eq 'editlist' -%          || $type eq 'selectmultiple' ) { -        configCell.innerHTML = -          '<font size="-2"><pre>' + "\n" + -          <% encode_entities(join("\n", -               map { length($_) > 88 ? substr($_,0,88).'...' : $_ } -                   $conf->config($i->key, $agentnum) -             ) ) -          |js_string %> + -          '</pre></font>'; - -%     } elsif ( $type eq 'checkbox' ) { -%       if ( $conf->exists($i->key, $agentnum) ) { -          configCell.style.backgroundColor = '#00ff00'; -          configCell.innerHTML = 'YES'; -%       } else { -          configCell.style.backgroundColor = '#ff0000'; -          configCell.innerHTML = 'NO'; -%       } -%     } elsif ( $type eq 'select' && $i->select_hash ) { -%       my %hash; -%       if ( ref($i->select_hash) eq 'ARRAY' ) { -%         tie %hash, 'Tie::IxHash', '' => '', @{ $i->select_hash }; -%       } else { -%         tie %hash, 'Tie::IxHash', '' => '', %{ $i->select_hash }; -%       } -        configCell.innerHTML = <% $conf->exists($i->key, $agentnum) ? $hash{ $conf->config($i->key, $agentnum) } : '' |js_string %>; - -%     } elsif ( $type eq 'text' || $type eq 'select' ) { -        configCell.innerHTML = <% $conf->exists($i->key, $agentnum) ? $conf->config($i->key, $agentnum) : '' |js_string %>; -%     } elsif ( $type =~ /^select-(part_svc|part_pkg|pkg_class)$/ && ! $i->multiple ) { -        configCell.innerHTML = -          <% $conf->config($i->key, $agentnum) |js_string %> -%# + ': ' + -%#          <% &{ $i->option_sub }( $conf->config($i->key, $agentnum) ) |js_string %>; -%     } elsif ( $type eq 'select-sub' ) { -        configCell.innerHTML = -          <% $conf->config($i->key, $agentnum) |js_string %> + ': ' + -          <% &{ $i->option_sub }( $conf->config($i->key, $agentnum) ) |js_string %>; -%     } else { -        //alert('unknown type <% $type %>'); -        window.top.location.reload(); -%     } - -%     $n++; -%   } -    parent.cClick(); -  </SCRIPT> -  </BODY></HTML> diff --git a/httemplate/config/config-view.cgi b/httemplate/config/config-view.cgi index 856a2eaef..13286cf21 100644 --- a/httemplate/config/config-view.cgi +++ b/httemplate/config/config-view.cgi @@ -210,13 +210,21 @@ Click on a configuration value to change it.              </tr>  %   } elsif ( $type =~ /^select-(part_svc|part_pkg|pkg_class)$/ ) { +% +%     my $table = $1; +%     my $namecol = $namecol{$table}; +%     my $pkey = dbdef->table($table)->primary_key; +%  %     my @keys = $conf->config($i->key, $agentnum);              <tr>                <td id="<% $agentnum.$i->key.$n %>" bgcolor="#ffffff"> -                <% join('<BR>', map { $_ # ': '. $svc, $pkg, whatever -                                    } -                                    @keys +                <% join( '<BR>', +                         map { +                           my $key = $_; +                           my $record = qsearchs($table, { $pkey => $key }); +                           $record ? "$key: ".$record->$namecol() : $key; +                         } @keys                         )                  %>                </td> @@ -301,6 +309,14 @@ Click on a configuration value to change it.  </SCRIPT>  </body></html> +<%once> +#false laziness w/config-process.cgi +my %namecol = ( +  'part_svc'  => 'svc', +  'part_pkg'  => 'pkg', +  'pkg_class' => 'classname', +); +</%once>  <%init>  die "access denied" @@ -343,6 +359,5 @@ my @all_agents = ();  if ( $cgi->param('showagent') ) {    @all_agents = qsearch('agent', { 'disabled' => '' } );  } -warn 'all agents: '. join('-', @all_agents);  </%init> | 
