add latitude/longitude to prospects, customers and package locations, RT#15539
[freeside.git] / httemplate / view / svc_broadband.cgi
1 <& elements/svc_Common.html,
2   table   => 'svc_broadband',
3   labels  => \%labels,
4   fields  => \@fields,
5 &>
6 <%init>
7
8 my $conf = FS::Conf->new;
9 my $fields = FS::svc_broadband->table_info->{'fields'};
10 my %labels = map { $_ => ( ref($fields->{$_}) 
11                             ? $fields->{$_}{'label'} 
12                             : $fields->{$_}
13                           );
14                  } keys %$fields;
15
16 #my %labels = ();
17
18 $labels{'description'} = emt('Description');
19 $labels{'router'} = emt('Router');
20 $labels{'speed_down'} = emt('Download Speed');
21 $labels{'speed_up'} = emt('Upload Speed');
22 $labels{'ip_addr'} = emt('IP Address');
23 $labels{'usergroup'} = emt('RADIUS groups'); #?
24
25 $labels{'coordinates'} = 'Latitude/Longitude';
26
27 my @fields = (
28   'description',
29   { field => 'router', value => \&router },
30   'speed_down',
31   'speed_up',
32   { field => 'ip_addr', value => \&ip_addr },
33   { field => 'sectornum', value => \&sectornum },
34   'mac_addr',
35   #'latitude',
36   #'longitude',
37   { field => 'coordinates', value => \&coordinates },
38   'altitude',
39   'vlan_profile',
40   'authkey',
41   'plan_id',
42 );
43
44 push @fields,
45   { field => 'usergroup', value => \&usergroup }
46   if $conf->exists('svc_broadband-radius');
47
48 sub router {
49   my $svc = shift;
50   my $addr_block = $svc->addr_block or return '';
51   my $router = $addr_block->router or return '';
52   $router->routernum . ': ' . $router->routername;
53 }
54
55 sub ip_addr {
56   my $svc = shift;
57   my $ip_addr = $svc->ip_addr;
58   my $out = $ip_addr;
59   $out .= ' (' . include('/elements/popup_link-ping.html', ip => $ip_addr) . ')'
60     if $ip_addr;
61   if ( my $addr_block = $svc->addr_block ) {
62     $out .= '<br>Netmask: ' . $addr_block->NetAddr->mask .
63             '<br>Gateway: ' . $addr_block->ip_gateway;
64   }
65   $out;
66 }
67
68 sub usergroup {
69   my $svc = shift;
70   my $usergroup = $svc->usergroup;
71   join('<BR>', $svc->radius_groups('long_description'));
72 }
73
74 sub sectornum {
75   my $svc_broadband = shift;
76   return '' unless $svc_broadband->sectornum;
77   my $tower_sector = $svc_broadband->tower_sector;
78   my $link = $tower_sector->ip_addr
79                ? '<A HREF="http://'. $tower_sector->ip_addr. '">'
80                : '';
81
82   $link .  $tower_sector->description. ( $link ? '</A>' : '');
83 }
84
85 sub coordinates {
86   my $s = shift; #$svc_broadband
87   return '' unless $s->latitude && $s->longitude;
88
89   my $d = $s->description;
90   unless ($d) {
91     my $cust_pkg = $s->cust_svc->cust_pkg;
92     $d = $cust_pkg->cust_main->name_short if $cust_pkg;
93   }
94   
95   #'Latitude: '. $s->latitude. ', Longitude: '. $s->longitude. ' '.
96   $s->latitude. ', '. $s->longitude. ' '.
97     include('/elements/coord-links.html', $s->latitude, $s->longitude, $d);
98 }
99
100 </%init>