diff options
Diffstat (limited to 'fs_signup/FS-SignupClient/cgi')
-rwxr-xr-x | fs_signup/FS-SignupClient/cgi/signup.cgi | 83 | ||||
-rw-r--r-- | fs_signup/FS-SignupClient/cgi/stateselect.html | 80 |
2 files changed, 130 insertions, 33 deletions
diff --git a/fs_signup/FS-SignupClient/cgi/signup.cgi b/fs_signup/FS-SignupClient/cgi/signup.cgi index e384aaf8e..57b93d4f0 100755 --- a/fs_signup/FS-SignupClient/cgi/signup.cgi +++ b/fs_signup/FS-SignupClient/cgi/signup.cgi @@ -1,12 +1,14 @@ #!/usr/bin/perl -Tw # -# $Id: signup.cgi,v 1.36 2003-04-21 20:53:57 ivan Exp $ +# $Id: signup.cgi,v 1.43 2003-07-04 03:21:42 ivan Exp $ use strict; -use vars qw( @payby $cgi $locales $packages $pops $init_data $error +use vars qw( @payby $cgi $locales $packages + $pops %pop %popnum2pop + $init_data $error $last $first $ss $company $address1 $address2 $city $state $county $country $zip $daytime $night $fax $invoicing_list $payby $payinfo - $paydate $payname $referral_custnum + $paydate $payname $referral_custnum $init_popstate $pkgpart $username $password $password2 $sec_phrase $popnum $agentnum $ieak_file $ieak_template $cck_file $cck_template @@ -137,6 +139,12 @@ if ( -e $decline_html ) { ( $locales, $packages, $pops, $init_data ) = signup_info(); @payby = @{$init_data->{'payby'}} if @{$init_data->{'payby'}}; $packages = $init_data->{agentnum2part_pkg}{$agentnum} if $agentnum; +%pop = (); +%popnum2pop = (); +foreach (@$pops) { + push @{ $pop{ $_->{state} }->{ $_->{ac} } }, $_; + $popnum2pop{$_->{popnum}} = $_; +} $cgi = new CGI; @@ -205,6 +213,7 @@ if ( defined $cgi->param('magic') ) { $password = $cgi->param('_password'); $popnum = $cgi->param('popnum'); #$agentnum, # = $cgi->param('agentnum'), + $init_popstate = $cgi->param('init_popstate'); if ( $cgi->param('_password') ne $cgi->param('_password2') ) { $error = $init_data->{msgcat}{passwords_dont_match}; #msgcat @@ -295,12 +304,14 @@ if ( defined $cgi->param('magic') ) { $sec_phrase = ''; $popnum = ''; $referral_custnum = $cgi->param('ref') || ''; + $init_popstate = $cgi->param('init_popstate') || ''; print_form; } sub print_form { $cgi->delete('ref'); + $cgi->delete('init_popstate'); $self_url = $cgi->self_url; $error = "Error: $error" if $error; @@ -328,7 +339,7 @@ sub print_okay { or die "fatal: invalid email_name got past FS::SignupClient::new_customer"; $email_name = $1; #global for template - my $pop = pop_info($cgi->param('popnum')); + my $pop = $popnum2pop{$cgi->param('popnum')}; #or die "fatal: invalid popnum got past FS::SignupClient::new_customer"; if ( $pop ) { ( $ac, $exch, $loc ) = ( $pop->{'ac'}, $pop->{'exch'}, $pop->{'loc'} ); @@ -366,15 +377,6 @@ sub print_okay { } } -sub pop_info { - my $popnum = shift; - my $pop; - foreach $pop ( @{$pops} ) { - if ( $pop->{'popnum'} == $popnum ) { return $pop; } - } - ''; -} - #horrible false laziness with FS/FS/svc_acct_pop.pm::popselector sub popselector { @@ -382,14 +384,16 @@ sub popselector { return '<INPUT TYPE="hidden" NAME="popnum" VALUE="">' unless @$pops; return $pops->[0]{city}. ', '. $pops->[0]{state}. - ' ('. $pops->[0]{ac}. ')/'. $pops->[0]{exch}. + ' ('. $pops->[0]{ac}. ')/'. $pops->[0]{exch}. '-'. $pops->[0]{loc}. '<INPUT TYPE="hidden" NAME="popnum" VALUE="'. $pops->[0]{popnum}. '">' if scalar(@$pops) == 1; - my %pop = (); - foreach (@$pops) { - push @{ $pop{ $_->{state} }->{ $_->{ac} } }, $_; - } + #my %pop = (); + #my %popnum2pop = (); + #foreach (@$pops) { + # push @{ $pop{ $_->{state} }->{ $_->{ac} } }, $_; + # $popnum2pop{$_->{popnum}} = $_; + #} my $text = <<END; <SCRIPT> @@ -398,16 +402,23 @@ sub popselector { var length = what.length; what.options[length] = optionName; } +END - function acstate_changed(what) { - state = what.options[what.selectedIndex].text; - for (var i = what.form.popac.length;i > 0;i--) - what.form.popac.options[i] = null; - what.form.popac.options[0] = new Option("Area code", "-1", false, true); + if ( $init_popstate ) { + $text .= '<INPUT TYPE="hidden" NAME="init_popstate" VALUE="'. + $init_popstate. '">'; + } else { + $text .= <<END; + function acstate_changed(what) { + state = what.options[what.selectedIndex].text; + what.form.popac.options.length = 0 + what.form.popac.options[0] = new Option("Area code", "-1", false, true); END + } - foreach my $state ( sort { $a cmp $b } keys %pop ) { - $text .= "\nif ( state == \"$state\" ) {\n"; + my @states = $init_popstate ? ( $init_popstate ) : keys %pop; + foreach my $state ( sort { $a cmp $b } @states ) { + $text .= "\nif ( state == \"$state\" ) {\n" unless $init_popstate; foreach my $ac ( sort { $a cmp $b } keys %{ $pop{$state} }) { $text .= "opt(what.form.popac, \"$ac\", \"$ac\");\n"; @@ -415,27 +426,26 @@ END $text .= "what.form.popac.options[what.form.popac.length-1].selected = true;\n"; } } - $text .= "}\n"; + $text .= "}\n" unless $init_popstate; } $text .= "popac_changed(what.form.popac)}\n"; $text .= <<END; function popac_changed(what) { ac = what.options[what.selectedIndex].text; - for (var i = what.form.popnum.length;i > 0;i--) - what.form.popnum.options[i] = null; + what.form.popnum.options.length = 0; what.form.popnum.options[0] = new Option("City", "-1", false, true); END - foreach my $state ( keys %pop ) { + foreach my $state ( @states ) { foreach my $popac ( keys %{ $pop{$state} } ) { $text .= "\nif ( ac == \"$popac\" ) {\n"; foreach my $pop ( @{$pop{$state}->{$popac}}) { my $o_popnum = $pop->{popnum}; my $poptext = $pop->{city}. ', '. $pop->{state}. - ' ('. $pop->{ac}. ')/'. $pop->{exch}; + ' ('. $pop->{ac}. ')/'. $pop->{exch}. '-'. $pop->{loc}; $text .= "opt(what.form.popnum, \"$o_popnum\", \"$poptext\");\n"; if ($popnum == $o_popnum) { @@ -453,7 +463,7 @@ END qq!<TABLE CELLPADDING="0"><TR><TD><SELECT NAME="acstate"! . qq!SIZE=1 onChange="acstate_changed(this)"><OPTION VALUE=-1>State!; $text .= "<OPTION" . ($_ eq $cgi->param('acstate') ? " SELECTED" : "") . - ">$_" foreach sort { $a cmp $b } keys %pop; + ">$_" foreach sort { $a cmp $b } @states; $text .= '</SELECT>'; #callback? return 3 html pieces? #'</TD>'; $text .= @@ -462,12 +472,19 @@ END $text .= qq!<TR><TD><SELECT NAME="popnum" SIZE=1 STYLE="width: 20em"><OPTION>City!; + #comment this block to disable initial list polulation - foreach my $pop ( sort { $a->{state} cmp $b->{state} } @$pops ) { + my @initial_select = (); + if ( scalar( @$pops ) > 100 ) { + push @initial_select, $popnum2pop{$popnum} if $popnum2pop{$popnum}; + } else { + @initial_select = @$pops; + } + foreach my $pop ( sort { $a->{state} cmp $b->{state} } @initial_select ) { $text .= qq!<OPTION VALUE="!. $pop->{popnum}. '"'. ( ( $popnum && $pop->{popnum} == $popnum ) ? ' SELECTED' : '' ). ">". $pop->{city}. ', '. $pop->{state}. - ' ('. $pop->{ac}. ')/'. $pop->{exch}; + ' ('. $pop->{ac}. ')/'. $pop->{exch}. '-'. $pop->{loc}; } $text .= qq!</SELECT></TD></TR></TABLE>!; diff --git a/fs_signup/FS-SignupClient/cgi/stateselect.html b/fs_signup/FS-SignupClient/cgi/stateselect.html new file mode 100644 index 000000000..39823be83 --- /dev/null +++ b/fs_signup/FS-SignupClient/cgi/stateselect.html @@ -0,0 +1,80 @@ +<HTML><HEAD><TITLE>ISP Signup</TITLE></HEAD> +<BODY BGCOLOR="#e8e8e8"><FONT SIZE=7>ISP Signup - state selection</FONT><BR><BR> +<SCRIPT> +function gotoURL(object) { + window.location.href = object.options[object.selectedIndex].value; +} +</SCRIPT> +<FORM> +Select your state: +<SELECT NAME="init_popstate" onChange="gotoURL(this.form.init_popstate)"> +<OPTION VALUE="stateselect.html"></OPTION> +<OPTION VALUE="signup.cgi?init_popstate=AL">ALABAMA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=AK">ALASKA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=AS">AMERICAN SAMOA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=AZ">ARIZONA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=AR">ARKANSAS</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=CA">CALIFORNIA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=CO">COLORADO</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=CT">CONNECTICUT</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=DE">DELAWARE</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=DC">DISTRICT OF COLUMBIA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=FM">FEDERATED STATES OF MICRONESIA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=FL">FLORIDA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=GA">GEORGIA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=GU">GUAM</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=HI">HAWAII</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=ID">IDAHO</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=IL">ILLINOIS</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=IN">INDIANA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=IA">IOWA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=KS">KANSAS</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=KY">KENTUCKY</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=LA">LOUISIANA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=ME">MAINE</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=MH">MARSHALL ISLANDS</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=MD">MARYLAND</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=MA">MASSACHUSETTS</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=MI">MICHIGAN</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=MN">MINNESOTA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=MS">MISSISSIPPI</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=MO">MISSOURI</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=MT">MONTANA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=NE">NEBRASKA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=NV">NEVADA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=NH">NEW HAMPSHIRE</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=NJ">NEW JERSEY</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=NM">NEW MEXICO</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=NY">NEW YORK</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=NC">NORTH CAROLINA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=ND">NORTH DAKOTA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=MP">NORTHERN MARIANA ISLANDS</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=OH">OHIO</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=OK">OKLAHOMA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=OR">OREGON</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=PW">PALAU</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=PA">PENNSYLVANIA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=PR">PUERTO RICO</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=RI">RHODE ISLAND</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=SC">SOUTH CAROLINA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=SD">SOUTH DAKOTA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=TN">TENNESSEE</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=TX">TEXAS</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=UT">UTAH</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=VT">VERMONT</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=VI">VIRGIN ISLANDS</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=VA">VIRGINIA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=WA">WASHINGTON</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=WV">WEST VIRGINIA</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=WI">WISCONSIN</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=WY">WYOMING</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=AE">Armed Forces Africa</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=AA">Armed Forces Americas</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=AE">Armed Forces Canada</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=AE">Armed Forces Europe</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=AE">Armed Forces Middle East</OPTION> +<OPTION VALUE="signup.cgi?init_popstate=AP">Armed Forces Pacific</OPTION> +</SELECT> +</FORM> +</BODY> +</HTML> |