From af213c494294f73750b6b5b07ca828782ff3a9e4 Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 4 Jul 2003 00:51:29 +0000 Subject: optimize javascript to handle large numbers of POPs --- fs_signup/FS-SignupClient/cgi/signup.cgi | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'fs_signup/FS-SignupClient/cgi') diff --git a/fs_signup/FS-SignupClient/cgi/signup.cgi b/fs_signup/FS-SignupClient/cgi/signup.cgi index de142a1c4..09bdd43fa 100755 --- a/fs_signup/FS-SignupClient/cgi/signup.cgi +++ b/fs_signup/FS-SignupClient/cgi/signup.cgi @@ -1,6 +1,6 @@ #!/usr/bin/perl -Tw # -# $Id: signup.cgi,v 1.37 2003-06-24 15:34:45 ivan Exp $ +# $Id: signup.cgi,v 1.38 2003-07-04 00:51:29 ivan Exp $ use strict; use vars qw( @payby $cgi $locales $packages $pops $init_data $error @@ -401,8 +401,7 @@ sub popselector { 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.length = 0 what.form.popac.options[0] = new Option("Area code", "-1", false, true); END @@ -422,8 +421,7 @@ END $text .= < 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 -- cgit v1.2.1 From f2098c54512150c098f28f59ffe4a62464ef630e Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 4 Jul 2003 01:37:46 +0000 Subject: don't populate the whole initial list if there are tons of POPs --- fs_signup/FS-SignupClient/cgi/signup.cgi | 41 +++++++++++++++++++------------- 1 file changed, 24 insertions(+), 17 deletions(-) (limited to 'fs_signup/FS-SignupClient/cgi') diff --git a/fs_signup/FS-SignupClient/cgi/signup.cgi b/fs_signup/FS-SignupClient/cgi/signup.cgi index 09bdd43fa..b40068520 100755 --- a/fs_signup/FS-SignupClient/cgi/signup.cgi +++ b/fs_signup/FS-SignupClient/cgi/signup.cgi @@ -1,9 +1,11 @@ #!/usr/bin/perl -Tw # -# $Id: signup.cgi,v 1.38 2003-07-04 00:51:29 ivan Exp $ +# $Id: signup.cgi,v 1.39 2003-07-04 01:37:46 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 @@ -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; @@ -328,7 +336,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 +374,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 { @@ -386,10 +385,12 @@ sub popselector { '' 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 = < @@ -460,8 +461,14 @@ END $text .= qq!'; + } else { + $text .= <'; #callback? return 3 html pieces? #''; $text .= -- cgit v1.2.1 From 1d98e81e8fabbe245a50a16b080c72ad51aca598 Mon Sep 17 00:00:00 2001 From: ivan Date: Fri, 4 Jul 2003 03:21:42 +0000 Subject: properly pass init_popstate to error pages --- fs_signup/FS-SignupClient/cgi/signup.cgi | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'fs_signup/FS-SignupClient/cgi') diff --git a/fs_signup/FS-SignupClient/cgi/signup.cgi b/fs_signup/FS-SignupClient/cgi/signup.cgi index 28b739eec..57b93d4f0 100755 --- a/fs_signup/FS-SignupClient/cgi/signup.cgi +++ b/fs_signup/FS-SignupClient/cgi/signup.cgi @@ -1,6 +1,6 @@ #!/usr/bin/perl -Tw # -# $Id: signup.cgi,v 1.42 2003-07-04 03:12:21 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 @@ -405,7 +405,8 @@ sub popselector { END if ( $init_popstate ) { - $text .=''; + $text .= ''; } else { $text .= < Date: Fri, 4 Jul 2003 03:47:35 +0000 Subject: adding --- fs_signup/FS-SignupClient/cgi/stateselect.html | 80 ++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 fs_signup/FS-SignupClient/cgi/stateselect.html (limited to 'fs_signup/FS-SignupClient/cgi') 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 @@ +ISP Signup +ISP Signup - state selection

+ +
+Select your state: + +
+ + -- cgit v1.2.1