RT# 82092 - custom fields now save and fixed so name label is displayed insted of...
[freeside.git] / httemplate / browse / router.cgi
1 <% include('elements/browse.html',
2                 'title'           => 'Routers',
3                 'menubar'         => [ @menubar ],
4                 'name_singular'   => 'router',
5                 'query'           => { 'table'     => 'router',
6                                        'hashref'   => {},
7                                        'extra_sql' => $extra_sql,
8                                      },
9                 'count_query'     => "SELECT count(*) from router $count_sql",
10                 'header'          => [ @header_fields ],
11                 'fields'          => [ @fields ],
12                 'links'           => [ @links ],
13                 'agent_virt'      => 1,
14                 'agent_null_right'=> "Broadband global configuration",
15                 'agent_pos'       => 1,
16           )
17 %>
18 <%init>
19
20 use CGI qw(escapeHTML);
21
22 die "access denied"
23   unless $FS::CurrentUser::CurrentUser->access_right('Broadband configuration')
24   || $FS::CurrentUser::CurrentUser->access_right('Broadband global configuration');
25
26 my $p2 = popurl(2);
27 my $extra_sql = '';
28
29 my @menubar = ( 'Add a new router', "${p2}edit/router.cgi" );
30
31 if ($cgi->param('hidecustomerrouters') eq '1') {
32   $extra_sql = 'WHERE svcnum > 0';
33   $cgi->delete('hidecustomerrouters');
34   push @menubar, 'Show customer routers', $cgi->self_url();
35   $cgi->param('hidecustomerrouters', 1);
36 } else {
37   $cgi->param('hidecustomerrouters', 1);
38   push @menubar, 'Hide customer routers', $cgi->self_url();
39   $cgi->delete('hidecustomerrouters');
40 }
41
42 my @header_fields = ('Router name', 'Address block(s)', 'IP addressing');
43 my @fields = ( 'routername',
44                sub { join( '<BR>', map { $_->NetAddr } shift->addr_block); },
45                sub { shift->manual_addr ? 'Manual' : 'Automatic' },
46              );
47 my @links = ( [ "${p2}edit/router.cgi?", 'routernum' ],
48               '',
49               '',
50             );
51
52 foreach (FS::router->virtual_fields_hash) {
53   push @header_fields, escapeHTML($_->{'label'});
54   push @fields, escapeHTML($_->{'name'});
55   push @links, '';
56 }
57
58 push @header_fields, 'Action';
59 push @fields, sub { 'Delete' };
60 push @links, [ "${p}misc/delete-router.html?", 'routernum' ];
61
62 my $count_sql = $extra_sql.  ( $extra_sql =~ /WHERE/ ? ' AND' : 'WHERE' ).
63   $FS::CurrentUser::CurrentUser->agentnums_sql(
64     'null_right' => 'Broadband global configuration',
65   );
66
67
68 </%init>