-%
+%die "access denied"
+% unless $FS::CurrentUser::CurrentUser->access_right('List services');
%
%my $conf = new FS::Conf;
%
-%my($query)=$cgi->keywords;
-%$query ||= ''; #to avoid use of unitialized value errors
-%my(@svc_broadband,$sortby);
-%if ( $query eq 'svcnum' ) {
-% $sortby=\*svcnum_sort;
-% @svc_broadband=qsearch('svc_broadband',{});
-%} elsif ( $query eq 'blocknum' ) {
-% $sortby=\*blocknum_sort;
-% @svc_broadband=qsearch('svc_broadband',{});
-%} else {
-% $cgi->param('ip_addr') =~ /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/;
-% my($ip_addr)=$1;
+%my @svc_broadband = ();
+%my $sortby=\*svcnum_sort;
+%#XXX agent-virtualization needs to be finished :/
+%my $agentnums_sql = $FS::CurrentUser::CurrentUser->agentnums_sql(
+% 'null_right' => 'View/link unlinked services'
+% );
+%
+%if ( $cgi->param('magic') =~ /^(all|unlinked)$/ ) {
+%
+% @svc_broadband = qsearch(
+% 'table' => 'svc_broadband',
+% 'hashref' => {},
+% #needs the join first 'extra_sql' => "WHERE $agentnums_sql",
+% );
+%
+% if ( $cgi->param('magic') eq 'unlinked' ) {
+% @svc_broadband = grep { qsearchs('cust_svc', {
+% 'svcnum' => $_->svcnum,
+% 'pkgnum' => '',
+% }
+% )
+% }
+% @svc_broadband;
+% } else {
+%
+% if ( $cgi->param('sortby') =~ /^(\w+)$/ ) {
+% my $sortby = $1;
+% if ( $sortby eq 'blocknum' ) {
+% $sortby = \*blocknum_sort;
+% }
+% }
+%
+%} elsif ( $cgi->param('svcpart') =~ /^(\d+)$/ ) {
+%
+% @svc_broadband =
+% qsearch( {
+% 'table' => 'svc_broadband',
+% 'addl_from' => 'LEFT JOIN cust_svc USING ( svcnum )',
+% 'extra_sql' => "WHERE svcpart = $1",
+% }
+% );
+%
+%} elsif ( $cgi->param('ip_addr') =~ /^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})$/ ) {
+% my $ip_addr = $1;
% @svc_broadband = qsearchs('svc_broadband',{'ip_addr'=>$ip_addr});
%}
%
<!-- mason kludge -->
%
-% eidiot "No matching ip address found!\n";
+% eidiot "No matching broadband services found!\n";
%} else {
%
<!-- mason kludge -->
%
% my($total)=scalar(@svc_broadband);
-% print header("IP Address Search Results",''), <<END;
+% print header("Broadband Search Results",''), <<END;
%
% $total matching broadband services found
% <TABLE BORDER=4 CELLSPACING=0 CELLPADDING=0>