import torrus 1.0.9
[freeside.git] / httemplate / edit / svc_broadband.cgi
index 25fb009..b11fec7 100644 (file)
@@ -2,18 +2,19 @@
      'post_url'             => popurl(1). 'process/svc_broadband.cgi',
      'name'                 => 'broadband service',
      'table'                => 'svc_broadband',
-     'labels'               => { 'svcnum'       => 'Service #',
+     'labels'               => { 'svcnum'       => 'Service',
                                  'description'  => 'Description',
                                  'ip_addr'      => 'IP address',
                                  'speed_down'   => 'Download speed',
                                  'speed_up'     => 'Upload speed',
                                  'blocknum'     => 'Router/Block',
-                                 'block_disp'   => 'Router/Block',
+                                 'block_label'  => 'Router/Block',
                                  'mac_addr'     => 'MAC address',
                                  'latitude'     => 'Latitude',
                                  'longitude'    => 'Longitude',
                                  'altitude'     => 'Altitude',
                                  'vlan_profile' => 'VLAN profile',
+                                 'performance_profile' => 'Performance profile',
                                  'authkey'      => 'Authentication key',
                                },
      'fields'               => \@fields, 
@@ -29,12 +30,16 @@ die "access denied"
 # If it's stupid but it works, it's still stupid.
 #  -Kristian
 
+my $conf = new FS::Conf;
+
 my @fields = (
   qw( description ip_addr speed_down speed_up blocknum ),
   { field=>'block_label', type=>'fixed' },
-  qw( mac_addr latitude longitude altitude vlan_profile authkey )
+  qw( mac_addr latitude longitude altitude vlan_profile performance_profile authkey )
 );
 
+my $fixedblock = '';
+
 my $callback = sub {
   my ($cgi, $object, $fieldref) = @_;
 
@@ -48,6 +53,8 @@ my $callback = sub {
   if ($columndef->columnflag eq 'F') {
     $fieldref->{'type'} = 'fixed';
     $fieldref->{'value'} = $columndef->columnvalue;
+    $fixedblock = $fieldref->{value}
+      if $fieldref->{field} eq 'blocknum';
   }
 
   if ($object->svcnum) { 
@@ -56,13 +63,26 @@ my $callback = sub {
       if $fieldref->{field} eq 'blocknum';
       
     $fieldref->{value} = $object->addr_block->label
-      if $fieldref->{field} eq 'block_label';
+      if $fieldref->{field} eq 'block_label' && $object->addr_block;
 
   } else { 
 
-    $fieldref->{type} = 'hidden' if $fieldref->{field} eq 'block_label';
+    if ($fieldref->{field} eq 'block_label') {
+      if ($fixedblock && $object->addr_block) {
+        $object->blocknum($fixedblock);
+        $fieldref->{value} = $object->addr_block->label;
+      }else{
+        $fieldref->{type} = 'hidden';
+      }
+    }
 
     if ($fieldref->{field} eq 'blocknum') {
+      if ( $fixedblock or $conf->exists('auto_router') ) {
+        $fieldref->{type} = 'hidden';
+        $fieldref->{value} = $fixedblock;
+        return;
+      }
+
       my $cust_pkg = qsearchs( 'cust_pkg', {pkgnum => $cgi->param('pkgnum')} );
       die "No cust_pkg entry!" unless $cust_pkg;
 
@@ -73,7 +93,8 @@ my $callback = sub {
                && $FS::CurrentUser::CurrentUser->agentnum($_->agentnum)
              }
         map { $_->addr_block } $object->allowed_routers;
-      my @options = map { $_->blocknum } @addr_block;
+      my @options = map { $_->blocknum } 
+                    sort { $a->label cmp $b->label } @addr_block;
       my %option_labels = map { ( $_->blocknum => $_->label ) } @addr_block;
       $fieldref->{type}    = 'select';
       $fieldref->{options} = \@options;