summaryrefslogtreecommitdiff
path: root/httemplate/browse/router.cgi
blob: 354111875af333d9daa285adaba303e913df9a1f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<% include('elements/browse.html',
                'title'           => 'Routers',
                'menubar'         => [ @menubar ],
                'name_singular'   => 'router',
                'query'           => { 'table'     => 'router',
                                       'hashref'   => {},
                                       'extra_sql' => $extra_sql,
                                     },
                'count_query'     => "SELECT count(*) from router $count_sql",
                'header'          => [ @header_fields ],
                'fields'          => [ @fields ],
                'links'           => [ @links ],
                'agent_virt'      => 1,
                'agent_null_right'=> "Broadband global configuration",
                'agent_pos'       => 1,
          )
%>
<%init>

die "access denied"
  unless $FS::CurrentUser::CurrentUser->access_right('Broadband configuration')
  || $FS::CurrentUser::CurrentUser->access_right('Broadband global configuration');

my $p2 = popurl(2);
my $extra_sql = '';

my @menubar = ( 'Add a new router', "${p2}edit/router.cgi" );

if ($cgi->param('hidecustomerrouters') eq '1') {
  $extra_sql = 'WHERE svcnum > 0';
  $cgi->delete('hidecustomerrouters');
  push @menubar, 'Show customer routers', $cgi->self_url();
  $cgi->param('hidecustomerrouters', 1);
} else {
  $cgi->param('hidecustomerrouters', 1);
  push @menubar, 'Hide customer routers', $cgi->self_url();
  $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, encode_entities($_->{'label'});
  push @fields, encode_entities($_->{'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',
  );


</%init>