summaryrefslogtreecommitdiff
path: root/httemplate/config
diff options
context:
space:
mode:
authorivan <ivan>2009-11-04 01:04:35 +0000
committerivan <ivan>2009-11-04 01:04:35 +0000
commit89e3b22429fb7c216a6f4755002bf50677dd9e97 (patch)
tree02067f81eba73ca0e59c7fd569493e5028a8ba28 /httemplate/config
parent56d8a66d0ad959056e04578e237c14d1f5242a44 (diff)
reconcile breakage from stale accounts, RT#6407
Diffstat (limited to 'httemplate/config')
-rw-r--r--httemplate/config/config-process.cgi130
-rw-r--r--httemplate/config/config-view.cgi23
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>