assign entire address blocks to services for RADIUS Framed-Route option, #20742
[freeside.git] / httemplate / edit / process / elements / svc_Common.html
index 06f4c00..e1b7cbe 100644 (file)
@@ -1,6 +1,7 @@
 <% include( 'process.html',
                  'edit_ext' => 'cgi',
                  'redirect' => popurl(3)."view/$table.cgi?",
+                 'args_callback' => $args_callback,
                  %opt,
            )
 %>
@@ -16,4 +17,22 @@ foreach (fields($table)) {
   }
 }
 
+my $args_callback = sub {
+  my ($cgi, $svc) = @_;
+  my $part_svc = FS::part_svc->by_key($cgi->param('svcpart'))
+    or die "svcpart required";
+  if ( $part_svc->has_router ) {
+    my $router = FS::router->new({
+      map { $_ => $cgi->param("router_$_") }
+      qw( routernum routername blocknum )
+    });
+   if (length($router->routername) == 0) {
+      #sensible default
+      $router->set('routername', $svc->label);
+    }
+    return (child_objects => [ $router ]);
+  }
+  ();
+};
+
 </%init>