RT# 82092 - custom fields now save and fixed so name label is displayed insted of...
[freeside.git] / httemplate / browse / router.cgi
index 85512f8..c7713f3 100644 (file)
@@ -7,24 +7,9 @@
                                        'extra_sql' => $extra_sql,
                                      },
                 'count_query'     => "SELECT count(*) from router $count_sql",
-                'header'          => [ 'Router name',
-                                       'Address block(s)',
-                                       'IP addressing',
-                                       'Action',
-                                     ],
-                'fields'          => [ 'routername',
-                                       sub { join( '<BR>', map { $_->NetAddr }
-                                                               shift->addr_block
-                                                 );
-                                           },
-                                       sub { shift->manual_addr ? 'Manual' : 'Automatic' },
-                                       sub { 'Delete' },
-                                     ],
-                'links'           => [ [ "${p2}edit/router.cgi?", 'routernum' ],
-                                       '',
-                                       '',
-                                       [ "${p}misc/delete-router.html?", 'routernum' ],
-                                     ],
+                'header'          => [ @header_fields ],
+                'fields'          => [ @fields ],
+                'links'           => [ @links ],
                 'agent_virt'      => 1,
                 'agent_null_right'=> "Broadband global configuration",
                 'agent_pos'       => 1,
@@ -32,6 +17,8 @@
 %>
 <%init>
 
+use CGI qw(escapeHTML);
+
 die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('Broadband configuration')
   || $FS::CurrentUser::CurrentUser->access_right('Broadband global configuration');
@@ -52,6 +39,26 @@ if ($cgi->param('hidecustomerrouters') eq '1') {
   $cgi->delete('hidecustomerrouters');
 }
 
+my @header_fields = ('Router name', 'Address block(s)', 'IP addressing');
+my @fields = ( 'routername',
+               sub { join( '<BR>', map { $_->NetAddr } shift->addr_block); },
+               sub { shift->manual_addr ? 'Manual' : 'Automatic' },
+             );
+my @links = ( [ "${p2}edit/router.cgi?", 'routernum' ],
+              '',
+              '',
+            );
+
+foreach (FS::router->virtual_fields_hash) {
+  push @header_fields, escapeHTML($_->{'label'});
+  push @fields, escapeHTML($_->{'name'});
+  push @links, '';
+}
+
+push @header_fields, 'Action';
+push @fields, sub { 'Delete' };
+push @links, [ "${p}misc/delete-router.html?", 'routernum' ];
+
 my $count_sql = $extra_sql.  ( $extra_sql =~ /WHERE/ ? ' AND' : 'WHERE' ).
   $FS::CurrentUser::CurrentUser->agentnums_sql(
     'null_right' => 'Broadband global configuration',