From ffa1f64207647ee1c5126bfad6a246526f4c677c Mon Sep 17 00:00:00 2001 From: jeff Date: Wed, 12 Dec 2007 05:58:43 +0000 Subject: self-service can select domain on provision (#2801) --- fs_selfservice/FS-SelfService/SelfService.pm | 63 ++++++++++++++++++++++- fs_selfservice/FS-SelfService/cgi/selfservice.cgi | 6 +-- fs_selfservice/FS-SelfService/cgi/svc_acct.html | 3 ++ 3 files changed, 68 insertions(+), 4 deletions(-) (limited to 'fs_selfservice/FS-SelfService') diff --git a/fs_selfservice/FS-SelfService/SelfService.pm b/fs_selfservice/FS-SelfService/SelfService.pm index 9b3b71a8e..2999245f2 100644 --- a/fs_selfservice/FS-SelfService/SelfService.pm +++ b/fs_selfservice/FS-SelfService/SelfService.pm @@ -51,13 +51,14 @@ $socket .= '.'.$tag if defined $tag && length($tag); 'unprovision_svc' => 'MyAccount/unprovision_svc', 'myaccount_passwd' => 'MyAccount/myaccount_passwd', 'signup_info' => 'Signup/signup_info', + 'domain_select_hash' => 'Signup/domain_select_hash', # expose? 'new_customer' => 'Signup/new_customer', 'agent_login' => 'Agent/agent_login', 'agent_logout' => 'Agent/agent_logout', 'agent_info' => 'Agent/agent_info', 'agent_list_customers' => 'Agent/agent_list_customers', ); -@EXPORT_OK = ( keys(%autoload), qw( regionselector expselect popselector ) ); +@EXPORT_OK = ( keys(%autoload), qw( regionselector expselect popselector domainselector) ); $ENV{'PATH'} ='/usr/bin:/usr/ucb:/bin'; $ENV{'SHELL'} = '/bin/sh'; @@ -1243,6 +1244,66 @@ END } +=item domainselector HASHREF | LIST + +Takes as input a hashref or list of key/value pairs with the following keys: + +=over 4 + +=item pkgnum + +Package number + +=item domsvc + +Service number of the selected item. + +=back + +Returns an HTML fragment for domain selection. + +=cut + +sub domainselector { + my $param; + if ( ref($_[0]) ) { + $param = shift; + } else { + $param = { @_ }; + } + my $domsvc= $param->{'domsvc'}; + my $rv = + domain_select_hash(map {$_ => $param->{$_}} qw(pkgnum svcpart pkgpart) ); + my $domains = $rv->{'domains'}; + $domsvc = $rv->{'domsvc'} unless $domsvc; + + return '' + unless scalar(keys %$domains); + + if (scalar(keys %$domains) == 1) { + my $key; + foreach(keys %$domains) { + $key = $_; + } + return 'Domain'. $domains->{$key}. + '' + } + + my $text .= qq!Domain!; + + $text; + +} + =back =head1 RESELLER FUNCTIONS diff --git a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi index 9cf8c4b1e..b5a672059 100644 --- a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi +++ b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi @@ -14,7 +14,7 @@ use FS::SelfService qw( login customer_info invoice process_prepay list_pkgs order_pkg signup_info order_recharge part_svc_info provision_acct provision_external - unprovision_svc change_pkg + unprovision_svc change_pkg domainselector list_svcs list_svc_usage list_support_usage myaccount_passwd ); @@ -439,7 +439,7 @@ sub process_svc_acct { my $result = provision_acct ( 'session_id' => $session_id, map { $_ => $cgi->param($_) } qw( - pkgnum svcpart username _password _password2 sec_phrase popnum ) + pkgnum svcpart username domsvc _password _password2 sec_phrase popnum ) ); if ( exists $result->{'error'} && $result->{'error'} ) { @@ -563,7 +563,7 @@ package FS::SelfService::_selfservicecgi; #use FS::SelfService qw(regionselector expselect popselector); use HTML::Entities; -use FS::SelfService qw(popselector); +use FS::SelfService qw(popselector domainselector); #false laziness w/agent.cgi sub include { diff --git a/fs_selfservice/FS-SelfService/cgi/svc_acct.html b/fs_selfservice/FS-SelfService/cgi/svc_acct.html index abed8786e..00244386b 100644 --- a/fs_selfservice/FS-SelfService/cgi/svc_acct.html +++ b/fs_selfservice/FS-SelfService/cgi/svc_acct.html @@ -15,6 +15,9 @@ Username +<%= + $OUT .= domainselector(pkgnum=>$pkgnum, svcpart=>$svcpart); +%> Password -- cgit v1.2.1