Merge branch 'master' of git.freeside.biz:/home/git/freeside
[freeside.git] / httemplate / edit / tower.html
1 <& elements/edit.html,
2      name_singular => 'tower',
3      table         => 'tower',
4      viewall_dir   => 'browse',
5      fields        => [ 'towername',
6                         { field=>'disabled', type=>'checkbox', value=>'Y', },
7                         { field=>'color',    type=>'pickcolor' },
8                         { field               => 'default_ip_addr',
9                           curr_value_callback => $default_ip_addr_callback },
10                         'latitude',
11                         'longitude',
12                         'altitude',
13                         'height',
14                         'veg_height',
15                         { field             => 'sectornum',
16                           type              => 'tower_sector',
17                           o2m_table         => 'tower_sector',
18                           m2_label          => 'Sector',
19                           m2_error_callback => $m2_error_callback,
20                         },
21                       ],
22      labels        => { 'towernum'        => 'Tower',
23                         'towername'       => 'Name',
24                         'sectornum'       => 'Sector',
25                         'disabled'        => 'Disabled',
26                         'default_ip_addr' => 'Tower IP address',
27                         'latitude'        => 'Latitude',
28                         'longitude'       => 'Longitude',
29                         'altitude'        => 'Altitude (feet)',
30                         'height'          => 'Height (feet)',
31                         'veg_height'      => 'Vegetation height (feet)',
32                         'color'           => 'Color',
33                       },
34 &>
35 <%init>
36
37 my $m2_error_callback = sub { # reconstruct the list
38   my ($cgi, $object) = @_;
39
40   my @fields = qw(
41     sectorname ip_addr height freq_mhz direction width sector_range
42   );
43
44   map {
45     my $k = $_;
46     new FS::tower_sector {
47       'towernum'  => $object->towernum,
48       'sectornum' => scalar( $cgi->param($k) ),
49       map { $_ => scalar( $cgi->param($k.'_'.$_) ) } @fields,
50     };
51   } grep length($cgi->param($_.'_sectorname')),
52       grep /^sectornum\d+$/,
53         ($cgi->param);
54 };
55
56 my $default_ip_addr_callback = sub {
57   my ($cgi, $object) = @_;
58   my $sector = $object ? $object->default_sector : '';
59   $sector ? $sector->ip_addr : '';
60 };
61
62 </%init>