--- /dev/null
+<% $query %>\
+<%init>
+
+my $query = $cgi->query_string;
+
+if ( length($query) > 1920 ) { #stupid IE 2083 URL limit
+
+ my $session = int(rand(4294967296)); #XXX
+ my $pref = new FS::access_user_pref({
+ 'usernum' => $FS::CurrentUser::CurrentUser->usernum,
+ 'prefname' => "redirect$session",
+ 'prefvalue' => $query,
+ 'expiration' => time + 3600, #1h? 1m?
+ });
+ my $pref_error = $pref->insert;
+ if ( $pref_error ) {
+ die "FATAL: couldn't even set redirect cookie: $pref_error".
+ " attempting to set redirect$session to $query\n";
+ }
+
+ $query = "redirect=$session";
+
+}
+
+</%init>
--- /dev/null
+<%init>
+if ( $cgi->param('redirect') ) {
+ my $session = $cgi->param('redirect');
+ my $pref = $FS::CurrentUser::CurrentUser->option("redirect$session");
+ die "unknown redirect session $session\n" unless length($pref);
+ $cgi = new CGI($pref);
+}
+</%init>
my @footer_align = ( 'c', 'r', 'r' );
my $custnum_update_callback = '';
-if ( FS::Record->scalar_sql('SELECT count(*) FROM part_pkg_discount') ) {
+if ( FS::Record->scalar_sql('SELECT COUNT(*) FROM part_pkg_discount') ) {
push @header, '';
push @fields, 'discount_term';
push @types, 'immutable';
push @footer, '';
push @footer_align, '';
+$m->comp('/elements/handle_uri_query');
+
</%init>
%
% my $erow=0;
% $cgi->param('error'. $erow++, shift @errors) while @errors;
-%
%
-<% $cgi->redirect($p.'batch-cust_pay.html?'. $cgi->query_string)
+% my $query = $m->scomp('/elements/create_uri_query');
+%
+<% $cgi->redirect($p."batch-cust_pay.html?$query")
%>
% } else {