diff options
author | ivan <ivan> | 2008-09-14 20:20:41 +0000 |
---|---|---|
committer | ivan <ivan> | 2008-09-14 20:20:41 +0000 |
commit | 0f11d8bc92f250b608a0ddcada330bed9b9d4c7d (patch) | |
tree | 4a459314aa0a5ca0ec140b1a1c1b1950d1bc3fa5 /httemplate/config/config-process.cgi | |
parent | 9c8e3bcad078ed4d4d0f13369210db0fe7aa1ce5 (diff) |
don't reload the whole page every time a config option is changed, RT#3989
Diffstat (limited to 'httemplate/config/config-process.cgi')
-rw-r--r-- | httemplate/config/config-process.cgi | 39 |
1 files changed, 38 insertions, 1 deletions
diff --git a/httemplate/config/config-process.cgi b/httemplate/config/config-process.cgi index b0c8a7456..e220fd8ec 100644 --- a/httemplate/config/config-process.cgi +++ b/httemplate/config/config-process.cgi @@ -63,6 +63,43 @@ $conf->delete($_, $agentnum) foreach @delete; </%init> <% header('Configuration set') %> <SCRIPT TYPE="text/javascript"> - window.top.location.reload(); +% my $n = 0; +% foreach my $type ( ref($i->type) ? @{$i->type} : $i->type ) { + var configCell = window.top.document.getElementById('<% $i->key. $n %>'); + //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 'text' || $type eq 'select' ) { + configCell.innerHTML = <% $conf->exists($i->key, $agentnum) ? $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> |