summaryrefslogtreecommitdiff
path: root/httemplate/search/svc_fiber.html
blob: a07c5f541b174f748aeaab9c5a5644b9b6923789 (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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<& 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' ];

</%init>