-<%= header('Routers', menubar('Main Menu' => $p)) %>
-<%
+<% 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 @router = qsearch('router', {});
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',
+ );
-<% if ($cgi->param('error')) { %>
- <FONT SIZE="+1" COLOR="#ff0000">Error: <%=$cgi->param('error')%></FONT>
- <BR><BR>
-<% } %>
-
-<A HREF="<%=$p2%>edit/router.cgi"><I>Add a new router</I></A><BR><BR>
-
-<%=table()%>
-<!-- <TH><TD>Field name</TD><TD>Field value</TD></TH> -->
-<% foreach $router (sort {$a->routernum <=> $b->routernum} @router) { %>
- <TR>
-<!-- <TD ROWSPAN="<%=scalar($router->router_field) + 2%>"> -->
- <TD>
- <A HREF="<%=$p2%>edit/router.cgi?<%=$router->routernum%>"><%=$router->routername%></A>
- </TD>
- <!--
- <% foreach (sort { $a->part_router_field->name cmp $b->part_router_field->name } $router->router_field ) { %>
- <TR>
- <TD BGCOLOR="#cccccc" ALIGN="right"><%=$_->part_router_field->name%></TD>
- <TD BGCOLOR="#ffffff"><%=$_->value%></TD>
- </TR>
- <% } %>
- -->
- </TR>
-<% } %>
-</TABLE>
-</BODY>
-</HTML>
+</%init>