summaryrefslogtreecommitdiff
path: root/httemplate/config
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
parent9c8e3bcad078ed4d4d0f13369210db0fe7aa1ce5 (diff)
don't reload the whole page every time a config option is changed, RT#3989
Diffstat (limited to 'httemplate/config')
-rw-r--r--httemplate/config/config-process.cgi39
-rw-r--r--httemplate/config/config-view.cgi37
2 files changed, 58 insertions, 18 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>
diff --git a/httemplate/config/config-view.cgi b/httemplate/config/config-view.cgi
index 4f6b5463a..b7e6f6797 100644
--- a/httemplate/config/config-view.cgi
+++ b/httemplate/config/config-view.cgi
@@ -12,10 +12,9 @@ Click on a configuration value to change it.
<% include('/elements/init_overlib.html') %>
% if ($FS::UID::use_confcompat) {
-
<FONT SIZE="+1" COLOR="#ff0000">CONFIGURATION NOT STORED IN DATABASE -- USING COMPATIBILITY MODE</FONT><BR><BR>
%}
-%
+
% foreach my $section ( qw(required billing username password UI session
% shell BIND
% ),
@@ -68,14 +67,16 @@ Click on a configuration value to change it.
%>: <% $i->description %>
</td>
<td><table border=0>
+
+% my $n = 0;
% foreach my $type (@types) {
-% my $n = 0;
-% if ( $type eq '' ) {
+
+% if ( $type eq '' ) {
<tr>
<td><font color="#ff0000">no type</font></td>
</tr>
-% } elsif ( $type eq 'binary' ) {
+% } elsif ( $type eq 'binary' ) {
<tr>
<% $conf->exists($i->key, $agentnum)
@@ -83,12 +84,13 @@ Click on a configuration value to change it.
: 'empty'
%>
</tr>
-% } elsif ( $type eq 'textarea'
-% || $type eq 'editlist'
-% || $type eq 'selectmultiple' ) {
+
+% } elsif ( $type eq 'textarea'
+% || $type eq 'editlist'
+% || $type eq 'selectmultiple' ) {
<tr>
- <td bgcolor="#ffffff">
+ <td id="<% $i->key.$n %>" bgcolor="#ffffff">
<font size="-2"><pre>
<% encode_entities(join("\n",
map { length($_) > 88 ? substr($_,0,88).'...' : $_ }
@@ -98,32 +100,33 @@ Click on a configuration value to change it.
</pre></font>
</td>
</tr>
-% } elsif ( $type eq 'checkbox' ) {
+% } elsif ( $type eq 'checkbox' ) {
<tr>
- <td bgcolor="#<% $conf->exists($i->key, $agentnum) ? '00ff00">YES' : 'ff0000">NO' %></td>
+ <td id="<% $i->key.$n %>" bgcolor="#<% $conf->exists($i->key, $agentnum) ? '00ff00">YES' : 'ff0000">NO' %></td>
</tr>
-% } elsif ( $type eq 'text' || $type eq 'select' ) {
+% } elsif ( $type eq 'text' || $type eq 'select' ) {
<tr>
- <td bgcolor="#ffffff">
+ <td id="<% $i->key.$n %>" bgcolor="#ffffff">
<% $conf->exists($i->key, $agentnum) ? $conf->config($i->key, $agentnum) : '' %>
</td></tr>
-% } elsif ( $type eq 'select-sub' ) {
+% } elsif ( $type eq 'select-sub' ) {
<tr>
- <td bgcolor="#ffffff">
+ <td id="<% $i->key.$n %>" bgcolor="#ffffff">
<% $conf->config($i->key, $agentnum) %>:
<% &{ $i->option_sub }( $conf->config($i->key, $agentnum) ) %>
</td>
</tr>
-% } else {
+% } else {
<tr><td>
<font color="#ff0000">unknown type <% $type %></font>
</td></tr>
+% }
+% $n++;
% }
-% $n++; }
</table></td>
</tr>