[freeside-commits] freeside/httemplate/config config-process.cgi, 1.13, 1.14 config-view.cgi, 1.22, 1.23
Ivan,,,
ivan at wavetail.420.am
Sun Sep 14 13:20:43 PDT 2008
Update of /home/cvs/cvsroot/freeside/httemplate/config
In directory wavetail.420.am:/tmp/cvs-serv26273
Modified Files:
config-process.cgi config-view.cgi
Log Message:
don't reload the whole page every time a config option is changed, RT#3989
Index: config-process.cgi
===================================================================
RCS file: /home/cvs/cvsroot/freeside/httemplate/config/config-process.cgi,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- config-process.cgi 1 Aug 2007 22:25:00 -0000 1.13
+++ config-process.cgi 14 Sep 2008 20:20:40 -0000 1.14
@@ -63,6 +63,43 @@
</%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>
Index: config-view.cgi
===================================================================
RCS file: /home/cvs/cvsroot/freeside/httemplate/config/config-view.cgi,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -d -r1.22 -r1.23
--- config-view.cgi 31 Mar 2008 23:10:32 -0000 1.22
+++ config-view.cgi 14 Sep 2008 20:20:41 -0000 1.23
@@ -12,10 +12,9 @@
<% 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 @@
%>: <% $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 @@
: '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 @@
</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>
More information about the freeside-commits
mailing list