+<& elements/svc_Common.html,
+ 'title' => 'Broadband Search Results',
+ 'name' => 'broadband services',
+ 'html_init' => $html_init,
+ 'query' => $sql_query,
+ 'count_query' => $sql_query->{'count_query'},
+ 'redirect' => [ popurl(2). "view/svc_broadband.cgi?", 'svcnum' ],
+ 'header' => [ '#',
+ 'Service',
+ 'Router',
+ @tower_header,
+ 'IP Address',
+ @header_pkg,
+ emt('Pkg. Status'),
+ FS::UI::Web::cust_header($cgi->param('cust_fields')),
+ ],
+ 'fields' => [ 'svcnum',
+ 'svc',
+ sub {
+ my $router = shift->router;
+ $router ? $router->routername : '';
+ },
+ @tower_fields,
+ 'ip_addr',
+ @fields_pkg,
+ sub {
+ $cust_pkg_cache{$_[0]->svcnum} ||= $_[0]->cust_svc->cust_pkg;
+ return '' unless $cust_pkg_cache{$_[0]->svcnum};
+ $cust_pkg_cache{$_[0]->svcnum}->ucfirst_status
+ },
+ \&FS::UI::Web::cust_fields,
+ ],
+ 'links' => [ $link,
+ $link,
+ '', #$link_router,
+ (map '', @tower_fields),
+ $link, # ip_addr
+ @blank_pkg,
+ '', # pkg status
+ ( map { $_ ne 'Cust. Status' ? $link_cust : '' }
+ FS::UI::Web::cust_header($cgi->param('cust_fields'))
+ ),
+ ],
+ 'align' => 'rll'.('r' x @tower_fields).
+ 'r'. # ip_addr
+ $align_pkg.
+ 'r'. # pkg status
+ FS::UI::Web::cust_aligns(),
+ 'color' => [
+ '',
+ '',
+ '',
+ (map '', @tower_fields),
+ '', # ip_addr
+ @blank_pkg,
+ sub {
+ $cust_pkg_cache{$_[0]->svcnum} ||= $_[0]->cust_svc->cust_pkg;
+ return '' unless $cust_pkg_cache{$_[0]->svcnum};
+ my $c = FS::cust_pkg::statuscolors;
+ $c->{$cust_pkg_cache{$_[0]->svcnum}->status };
+ }, # pkg status
+ FS::UI::Web::cust_colors(),
+ ],
+ 'style' => [
+ '',
+ '',
+ '',
+ (map '', @tower_fields),
+ '', # ip_addr
+ @blank_pkg,
+ 'b', # pkg status
+ FS::UI::Web::cust_styles(),
+ ],
+
+&>
+<%init>
+
+die "access denied" unless
+ $FS::CurrentUser::CurrentUser->access_right('List services');
+
+my %cust_pkg_cache;