overlib include
[freeside.git] / httemplate / config / config-view.cgi
index 7f2a1b2..4f6b546 100644 (file)
@@ -1,6 +1,21 @@
-<% include("/elements/header.html",'View Configuration', menubar( 'Main Menu' => $p,
-                                     'Edit Configuration' => 'config.cgi' ) ) %>
-% my $conf = new FS::Conf; my @config_items = $conf->config_items; 
+<% include("/elements/header.html",
+     $title,
+     menubar(
+       'View all agents' => $p.'browse/agent.cgi',
+     )
+   )
+%>
+
+Click on a configuration value to change it.
+<BR><BR>
+
+<% 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
 %                           ),
 % } 
 
   </FONT><BR>
-  <% table("#cccccc", 2) %>
+  <TABLE BGCOLOR="#cccccc" BORDER=1 CELLSPACING=0 CELLPADDING=0 BORDERCOLOR="#999999">
   <tr>
     <th colspan="2" bgcolor="#dcdcdc">
       <% ucfirst($section || 'unclassified') %> configuration options
     </th>
   </tr>
 % foreach my $i (grep $_->section eq $section, @config_items) { 
+%   my @types = ref($i->type) ? @{$i->type} : ($i->type);
+%   my( $width, $height ) = ( 522, 336 );
+%   if ( grep $_ eq 'textarea', @types ) {
+%     #800x600
+%     $width = 763;
+%     $height = 408;
+%     #1024x768
+%     #$width =
+%     #$height = 
+%   }
 
     <tr>
-      <td><a name="<% $i->key %>">
-        <b><% $i->key %></b>&nbsp;-&nbsp;<% $i->description %>
-      </a></td>
+      <td><% include('/elements/popup_link.html',
+                       'action'      => 'config.cgi?key='.      $i->key.
+                                                  ';agentnum='. $agentnum,
+                       'width'       => $width,
+                       'height'      => $height,
+                       'actionlabel' => 'Enter configuration value',
+                       'label'       => '<b>'. $i->key. '</b>',
+                       'aname'       => $i->key,
+                    )
+          %>: <% $i->description %>
+      </td>
       <td><table border=0>
-% foreach my $type ( ref($i->type) ? @{$i->type} : $i->type ) {
+% foreach my $type (@types) {
 %             my $n = 0; 
 % if ( $type eq '' ) { 
 
@@ -45,8 +78,8 @@
 % } elsif (   $type eq 'binary' ) {
 
             <tr>
-              <% $conf->exists($i->key)
-                   ? qq!<a href="config-download.cgi?!. $i->key. qq!">download</a>!
+              <% $conf->exists($i->key, $agentnum)
+                   ? qq!<a href="config-download.cgi?key=!. $i->key. ';agentnum='. $agentnum. qq!">download</a>!
                    : 'empty'
               %>
             </tr>
 
             <tr>
               <td bgcolor="#ffffff">
-<pre>
-<% encode_entities(join("\n", $conf->config($i->key) ) ) %>
-</pre>
+<font size="-2"><pre>
+<% encode_entities(join("\n",
+     map { length($_) > 88 ? substr($_,0,88).'...' : $_ }
+         $conf->config($i->key, $agentnum)
+   ) )
+%>
+</pre></font>
               </td>
             </tr>
 % } elsif ( $type eq 'checkbox' ) { 
 
             <tr>
-              <td bgcolor="#<% $conf->exists($i->key) ? '00ff00">YES' : 'ff0000">NO' %></td>
+              <td bgcolor="#<% $conf->exists($i->key, $agentnum) ? '00ff00">YES' : 'ff0000">NO' %></td>
             </tr>
 % } elsif ( $type eq 'text' || $type eq 'select' )  { 
 
             <tr>
               <td bgcolor="#ffffff">
-                <% $conf->exists($i->key) ? $conf->config($i->key) : '' %>
+                <% $conf->exists($i->key, $agentnum) ? $conf->config($i->key, $agentnum) : '' %>
               </td></tr>
 % } elsif ( $type eq 'select-sub' ) { 
 
             <tr>
               <td bgcolor="#ffffff">
-                <% $conf->config($i->key) %>: 
-                <% &{ $i->option_sub }( $conf->config($i->key) ) %>
+                <% $conf->config($i->key, $agentnum) %>: 
+                <% &{ $i->option_sub }( $conf->config($i->key, $agentnum) ) %>
               </td>
             </tr>
 % } else { 
 
 </body></html>
 <%init>
+
 die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+my $agentnum = '';
+if ($cgi->param('agentnum') =~ /^(\d+)$/) {
+  $agentnum = $1;
+}
+
+my $title;
+if ($agentnum) {
+  my $agent = qsearchs('agent', { 'agentnum' => $agentnum } );
+  die "Agent $agentnum not found!" unless $agent;
+
+  $title = "Configuration for ". $agent->agent;
+} else {
+  $title = 'Global Configuration';
+}
+
+my $conf = new FS::Conf;
+my @config_items = grep { $agentnum ? $_->per_agent : 1 }
+                   grep { $_->key != ~/^invoice_(html|latex|template)/ }
+                        $conf->config_items; 
 </%init>