tower tracking, RT#15538
[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             => 'sectornum',
8                           type              => 'tower_sector',
9                           o2m_table         => 'tower_sector',
10                           m2_label          => 'Sector',
11                           m2_error_callback => $m2_error_callback,
12                         },
13                       ],
14      labels        => { 'towernum'  => 'Tower',
15                         'towername' => 'Name',
16                         'sectornum' => 'Sector',
17                         'disabled'  => 'Disabled',
18                       },
19 &>
20 <%init>
21
22 my $m2_error_callback = sub { # reconstruct the list
23   my ($cgi, $object) = @_;
24
25   my @fields = qw(sectorname ip_addr);
26   map {
27     my $k = $_;
28     next if !length($cgi->param($k.'_sectorname'));
29     new FS::tower_sector {
30       'towernum'  => $object->towernum,
31       'sectornum' => scalar( $cgi->param($k) ),
32       map { $_ => scalar( $cgi->param($k.'_'.$_) ) } @fields,
33     };
34   } grep /^sectornum\d+$/, ($cgi->param);
35 };
36
37 </%init>