add selectable domain option to signup, RT#21557
authorIvan Kohler <ivan@freeside.biz>
Mon, 29 Apr 2013 19:18:07 +0000 (12:18 -0700)
committerIvan Kohler <ivan@freeside.biz>
Mon, 29 Apr 2013 19:18:07 +0000 (12:18 -0700)
FS/FS/ClientAPI/Signup.pm
FS/FS/Conf.pm
fs_selfservice/FS-SelfService/SelfService.pm
fs_selfservice/FS-SelfService/cgi/signup.cgi
fs_selfservice/FS-SelfService/cgi/signup.html

index 1dbb20b..895c582 100644 (file)
@@ -98,7 +98,7 @@ sub signup_info {
 
     my @signup_bools = qw( no_company recommend_daytime recommend_email );
 
-    my @signup_server_scalars = qw( default_pkgpart default_svcpart );
+    my @signup_server_scalars = qw( default_pkgpart default_svcpart default_domain );
 
     my @selfservice_textareas = qw( head body_header body_footer );
 
index 6a19ff4..c93331d 100644 (file)
@@ -2159,11 +2159,18 @@ and customer address. Include units.',
   {
     'key'         => 'signup_server-default_svcpart',
     'section'     => 'self-service',
-    'description' => 'Default service definition for the signup server - only necessary for services that trigger special provisioning widgets (such as DID provisioning).',
+    'description' => 'Default service definition for the signup server - only necessary for services that trigger special provisioning widgets (such as DID provisioning or domain selection).',
     'type'        => 'select-part_svc',
   },
 
   {
+    'key'         => 'signup_server-default_domain',
+    'section'     => 'self-service',
+    'description' => 'If specified, the default domain for signup (useful when domain is set to selectable choice).',
+    'type'        => 'text',
+  },
+
+  {
     'key'         => 'signup_server-mac_addr_svcparts',
     'section'     => 'self-service',
     'description' => 'Service definitions which can receive mac addresses (current mapped to username for svc_acct).',
index 651a8f5..1fa67c2 100644 (file)
@@ -1799,8 +1799,9 @@ sub domainselector {
            '<INPUT TYPE="hidden" NAME="domsvc" VALUE="'. $key. '"></TD></TR>'
   }
 
-  my $text .= qq!<TR><TD ALIGN="right">Domain</TD><TD><SELECT NAME="domsvc" SIZE=1 STYLE="width: 20em"><OPTION>(Choose Domain)!;
+  my $text .= qq!<TR><TD ALIGN="right">Domain</TD><TD><SELECT NAME="domsvc" SIZE=1 STYLE="width: 20em">;
 
+  $text .= '<OPTION>(Choose Domain)' unless $domsvc;
 
   foreach my $domain ( sort { $domains->{$a} cmp $domains->{$b} } keys %$domains ) {
     $text .= qq!<OPTION VALUE="!. $domain. '"'.
index 23d814e..88eab5c 100755 (executable)
@@ -231,7 +231,7 @@ if ( $magic eq 'process' || $action eq 'process_signup' ) {
                 invoicing_list referral_custnum promo_code reg_code
                 override_ban_warn
                 pkgpart refnum agentnum
-                username sec_phrase _password popnum
+                username sec_phrase _password popnum domsvc
                 mac_addr
                 countrycode phonenum sip_password pin prepaid_shortform
               ),
@@ -500,5 +500,7 @@ END
 
 package FS::SelfService::_signupcgi;
 use HTML::Entities;
-use FS::SelfService qw(regionselector expselect popselector didselector);
+use FS::SelfService qw( regionselector expselect popselector domainselector
+                        didselector
+                      );
 
index 16ef7f7..d5cbcd4 100755 (executable)
@@ -319,6 +319,12 @@ ENDOUT
   <TD ALIGN="right">Username</TD>
   <TD><INPUT TYPE="text" NAME="username" VALUE="$username"></TD>
 </TR>
+ENDOUT
+
+  $OUT .= domainselector( svcpart=>$default_svcpart, domsvc=>$default_domain )
+    if $default_svcpart;
+
+    $OUT .= <<ENDOUT;
 <TR>
   <TD ALIGN="right">Password</TD>
   <TD><INPUT TYPE="password" NAME="_password" VALUE="$_password"></TD>