RT# 82949 - changes section name from fees to pricing, better opiton
[freeside.git] / httemplate / edit / tower.html
index 03b488e..f2faa5a 100644 (file)
@@ -2,26 +2,43 @@
      name_singular => 'tower',
      table         => 'tower',
      viewall_dir   => 'browse',
+     html_init     => include('/elements/mapselect.html'),
      fields        => [ 'towername',
                         { field=>'disabled', type=>'checkbox', value=>'Y', },
-                        { field             => 'default_ip_addr',
+                        { field=>'color',    type=>'pickcolor' },
+                        { field               => 'default_ip_addr',
                           curr_value_callback => $default_ip_addr_callback },
-                        { field             => 'sectornum',
-                          type              => 'tower_sector',
-                          o2m_table         => 'tower_sector',
-                          m2_label          => 'Sector',
-                          m2_error_callback => $m2_error_callback,
-                        },
                         'latitude',
                         'longitude',
+                        'altitude',
+                        'height',
+                        'veg_height',
+                        'up_rate_limit',
+                        'down_rate_limit',
+#                        { field             => 'sectornum',
+#                          type              => 'tower_sector',
+#                          o2m_table         => 'tower_sector',
+#                          m2_label          => 'Sector',
+#                          m2_error_callback => $m2_error_callback,
+#                        },
+                        { type              => 'tower_sectors',
+                          field             => 'sectornum',
+                          # does its own o2m-thing
+                        },
                       ],
-     labels        => { 'towernum'  => 'Tower',
-                        'towername' => 'Name',
-                        'sectornum' => 'Sector',
-                        'disabled'  => 'Disabled',
+     labels        => { 'towernum'        => 'Tower',
+                        'towername'       => 'Name',
+                        'sectornum'       => 'Sector',
+                        'disabled'        => 'Disabled',
                         'default_ip_addr' => 'Tower IP address',
-                        'latitude' => 'Latitude',
-                        'longitude' => 'Longitude',
+                        'latitude'        => 'Latitude',
+                        'longitude'       => 'Longitude',
+                        'altitude'        => 'Altitude (feet)',
+                        'height'          => 'Tower height (feet)',
+                        'veg_height'      => 'Vegetation height (feet)',
+                        'color'           => 'Color',
+                        'up_rate_limit'   => 'Up Rate Limit(Kbps)',
+                        'down_rate_limit' => 'Down Rate Limit(Kbps)',
                       },
 &>
 <%init>
 my $m2_error_callback = sub { # reconstruct the list
   my ($cgi, $object) = @_;
 
-  my @fields = qw(sectorname ip_addr);
-  map {
-    my $k = $_;
-    next if !length($cgi->param($k.'_sectorname'));
-    new FS::tower_sector {
-      'towernum'  => $object->towernum,
-      'sectornum' => scalar( $cgi->param($k) ),
-      map { $_ => scalar( $cgi->param($k.'_'.$_) ) } @fields,
-    };
-  } grep /^sectornum\d+$/, ($cgi->param);
+  my @fields = qw(
+    sectorname ip_addr height freq_mhz direction width tilt v_width db_high db_low sector_range up_rate_limit down_rate_limit
+  );
+
+  my @sectors;
+  foreach my $k ($cgi->param) {
+    if ($k =~ /^sectornum\d+$/) {
+      my $sectornum = $cgi->param($k);
+      my $sector = FS::tower_sector->new({
+        'sectornum' => $sectornum,
+        'towernum'  => $object->towernum,
+        map { $_ => scalar($cgi->param($k.'_'.$_)) } @fields,
+      });
+      push @sectors, $sector if length($sector->sectorname) && $sector->sectorname ne '_default';
+    }
+  }
+
+  return @sectors;
 };
 
 my $default_ip_addr_callback = sub {