add ability to remove suffix-ed config items, RT#5218
authorivan <ivan>
Sun, 3 May 2009 01:11:50 +0000 (01:11 +0000)
committerivan <ivan>
Sun, 3 May 2009 01:11:50 +0000 (01:11 +0000)
FS/FS/Conf.pm
httemplate/config/config-delete.cgi
httemplate/config/config-view.cgi

index cf4c439..d3bd817 100644 (file)
@@ -92,6 +92,7 @@ sub _usecompat {
   $compat->$method(@_);
 }
 
+# needs a non _ name, called externally by config-view now (and elsewhere?)
 sub _config {
   my($self,$name,$agentnum)=@_;
   my $hashref = { 'name' => $name };
@@ -451,11 +452,12 @@ sub _orbase_items {
           die "don't know about $base items" unless $proto->key eq $base;
 
           map { new FS::ConfItem { 
-                                   'key' => $_,
-                                   'section' => $proto->section,
-                                   'description' => 'Alternate ' . $proto->description . '  See the <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:1.7:Documentation:Administration#Invoice_templates">billing documentation</a> for details.',
-                                   'type' => $proto->type,
-                                 };
+                  'key'         => $_,
+                  'base_key'    => $proto->key,
+                  'section'     => $proto->section,
+                  'description' => 'Alternate ' . $proto->description . '  See the <a href="http://www.freeside.biz/mediawiki/index.php/Freeside:1.7:Documentation:Administration#Invoice_templates">billing documentation</a> for details.',
+                  'type'        => $proto->type,
+                };
               } &$listmaker($base);
         } @base_items,
   );
index ffeae78..a05cb1e 100644 (file)
@@ -10,8 +10,10 @@ die "Configuration not found!" unless $conf;
 $conf->delete;
 
 my $redirect = popurl(2);
-if ( $cgi->param('redirect') eq 'config_view' ) {
+if ( $cgi->param('redirect') eq 'config_view_showagent' ) {
   $redirect .= 'config/config-view.cgi?showagent=1#'. $conf->name;
+} elsif ( $cgi->param('redirect') eq 'config_view' ) {
+  $redirect .= 'config/config-view.cgi';
 } else {
   $redirect .= 'browse/agent.cgi';
 }
index aca37f2..9b5b132 100644 (file)
@@ -97,7 +97,16 @@ Click on a configuration value to change it.
                     )
           %>: <% $i->description %>
 %       if ( $agent && $cgi->param('showagent') ) {
-          (<A HREF="javascript:areyousure('delete this agent override', 'config-delete.cgi?confnum=<% _config_agentonly($conf, $i->key, $agent->agentnum)->confnum %>;redirect=config_view')">delete agent override</A>)
+%         my $confnum =
+%           _config_agentonly($conf, $i->key, $agent->agentnum)->confnum;
+          (<A HREF="javascript:areyousure('delete this agent override', 'config-delete.cgi?confnum=<% $confnum %>;redirect=config_view_showagent')">delete agent override</A>)
+%       } elsif ( $i->base_key ) {
+%         my $confnum =
+%           $agent
+%             ? _config_agentonly($conf, $i->key, $agent->agentnum)->confnum
+%             : $conf->_config( $i->key )->confnum;
+%         my $showagent = $cgi->param('showagent') ? '_showagent' : '';
+          (<A HREF="javascript:areyousure('delete this configuration item', 'config-delete.cgi?confnum=<% $confnum %>;redirect=config_view<%$showagent%>')">delete configuration item</A>)
 %       }
 
       </td>
@@ -308,7 +317,6 @@ if ($cgi->param('agentnum') =~ /^(\d+)$/) {
 my $conf = new FS::Conf;
  
 my @config_items = grep { $page_agent ? $_->per_agent : 1 }
-                   grep { $_->key != ~/^invoice_(html|latex|template)/ }
                         $conf->config_items; 
 
 my @sections = qw(required billing username password UI session shell BIND );