<& elements/svc_Common.html, 'title' => 'Fiber Search Results', 'name' => 'fiber services', 'query' => $query, 'count_query' => $query->{'count_query'}, 'redirect' => $link, 'header' => [ '#', 'OLT', 'Shelf/Card/Port', 'ONT', 'Model', 'Serial', emt('Pkg. Status'), FS::UI::Web::cust_header($cgi->param('cust_fields')), ], 'fields' => [ 'svcnum', 'oltname', sub { my $svc = shift; join('-', $svc->shelf, $svc->card, $svc->olt_port) }, 'ont_id', 'ont_description', 'ont_serial', 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, $link, '', # pkg status FS::UI::Web::cust_links($cgi->param('cust_fields')), ], 'align' => 'rlllllr'. FS::UI::Web::cust_aligns(), 'color' => [ ('') x 6, 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' => [ ('') x 6, 'b', FS::UI::Web::cust_styles(), ], &> <%init> die "access denied" unless $FS::CurrentUser::CurrentUser->access_right([ 'Services: Fiber', 'List services' ]); my %cust_pkg_cache; my $conf = new FS::Conf; my %search_hash; if ( $cgi->param('magic') eq 'unlinked' ) { %search_hash = ( 'unlinked' => 1 ); } else { foreach (qw( custnum agentnum svcpart cust_fields ont_typenum oltnum shelf olt_port card vlan )) { $search_hash{$_} = $cgi->param($_) if defined($cgi->param($_)); } if ( defined($cgi->param('cancelled')) ) { $search_hash{'cancelled'} = $cgi->param('cancelled') ? 1 : 0; } } my $query = FS::svc_fiber->search(\%search_hash); $query->{addl_from} .= ' LEFT JOIN fiber_olt USING (oltnum) '; $query->{select} .= ', oltname'; my $link = [ $p.'view/svc_fiber.cgi?', 'svcnum' ];