summaryrefslogtreecommitdiff
path: root/httemplate/config/config-process.cgi
diff options
context:
space:
mode:
authorivan <ivan>2008-09-14 20:20:41 +0000
committerivan <ivan>2008-09-14 20:20:41 +0000
commit0f11d8bc92f250b608a0ddcada330bed9b9d4c7d (patch)
tree4a459314aa0a5ca0ec140b1a1c1b1950d1bc3fa5 /httemplate/config/config-process.cgi
parent9c8e3bcad078ed4d4d0f13369210db0fe7aa1ce5 (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.cgi39
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>