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             => 'default_ip_addr',
8                           curr_value_callback => $default_ip_addr_callback },
9                         { field             => 'sectornum',
10                           type              => 'tower_sector',
11                           o2m_table         => 'tower_sector',
12                           m2_label          => 'Sector',
13                           m2_error_callback => $m2_error_callback,
14                         },
15                         'latitude',
16                         'longitude',
17                       ],
18      labels        => { 'towernum'  => 'Tower',
19                         'towername' => 'Name',
20                         'sectornum' => 'Sector',
21                         'disabled'  => 'Disabled',
22                         'default_ip_addr' => 'Tower IP address',
23                         'latitude' => 'Latitude',
24                         'longitude' => 'Longitude',
25                       },
26 &>
27 <%init>
28
29 my $m2_error_callback = sub { # reconstruct the list
30   my ($cgi, $object) = @_;
31
32   my @fields = qw(sectorname ip_addr);
33   map {
34     my $k = $_;
35     next if !length($cgi->param($k.'_sectorname'));
36     new FS::tower_sector {
37       'towernum'  => $object->towernum,
38       'sectornum' => scalar( $cgi->param($k) ),
39       map { $_ => scalar( $cgi->param($k.'_'.$_) ) } @fields,
40     };
41   } grep /^sectornum\d+$/, ($cgi->param);
42 };
43
44 my $default_ip_addr_callback = sub {
45   my ($cgi, $object) = @_;
46   my $sector = $object ? $object->default_sector : '';
47   $sector ? $sector->ip_addr : '';
48 };
49
50 </%init>