diff options
author | Christopher Burger <burgerc@freeside.biz> | 2018-02-26 12:00:45 -0500 |
---|---|---|
committer | Christopher Burger <burgerc@freeside.biz> | 2018-02-26 12:00:45 -0500 |
commit | 8c36d1e4f1255abb483bc7372fa1908cc192b528 (patch) | |
tree | 4860dc83c68920f2a8444c67ba01187501d2b3fc /httemplate/elements | |
parent | 66feacf4ed45aa7b27d48f91c0d8741f0ad9b9de (diff) | |
parent | def6bb5926b81d4a4b66e0c9dd7ff03bf55706ad (diff) |
Merge branch 'master' of ssh://git.freeside.biz/home/git/freeside
Diffstat (limited to 'httemplate/elements')
-rw-r--r-- | httemplate/elements/create_uri_query | 23 | ||||
-rw-r--r-- | httemplate/elements/email-link.html | 13 | ||||
-rw-r--r-- | httemplate/elements/handle_uri_query | 12 |
3 files changed, 40 insertions, 8 deletions
diff --git a/httemplate/elements/create_uri_query b/httemplate/elements/create_uri_query index ce6249e..4d360b2 100644 --- a/httemplate/elements/create_uri_query +++ b/httemplate/elements/create_uri_query @@ -1,3 +1,24 @@ +<%doc> + +Instead of: + + my $link = $self_url. '?'. $cgi->query_string; + +which will fail when the query string exceeds ~2k (browser-dependent) + + +Usage: + + my $query = $m->scomp('/elements/create_uri_query'); + my $link = $self_url. '?'. $query; + +You can also pass an optional 'secure'=>1 parameter to force handling as +session data, even for short query strings. + + +See also handle_uri_query which needs to be used by the target page. + +</%doc> <% $query %>\ <%init> @@ -14,7 +35,7 @@ if ( $opt{secure} ) { } -my $query = $cgi->query_string; +my $query = $opt{query} || $cgi->query_string; if ( length($query) > 1920 || $opt{secure} ) { #stupid IE 2083 URL limit diff --git a/httemplate/elements/email-link.html b/httemplate/elements/email-link.html index 16935cf..012afff 100644 --- a/httemplate/elements/email-link.html +++ b/httemplate/elements/email-link.html @@ -1,18 +1,19 @@ % if ( $FS::CurrentUser::CurrentUser->access_right('Bulk send customer notices') ) { -<A HREF="<%$p%>misc/email-customers.html?table=<%$table%>&agent_virt_agentnum=<%$agent_virt_agentnum%>&<%$query%>"><%$label%></A> +<A HREF="<%$p%>misc/email-customers.html?<%$query%>"><%$label%></A> % } <%init> my %opt = @_; -my $table = $opt{'table'}; -my $agent_virt_agentnum = $opt{'agent_virt_agentnum'}; my $search_hash = $opt{'search_hash'}; -die "'table' required" if !$table; +die "'table' required" if !$opt{'table'}; die "'search_hash' required" if !$search_hash; my $uri = new URI; my @params = map { $_, $search_hash->{$_} } sort keys %$search_hash; -$uri->query_form(@params); -my $query = $uri->query; +$uri->query_form( @params, + table => $opt{'table'}, + agent_virt_agentnum => $opt{'agent_virt_agentnum'} + ); +my $query = $m->scomp('/elements/create_uri_query', query=>$uri->query); my $label = ($opt{'label'} || 'Email a notice to these customers'); </%init> diff --git a/httemplate/elements/handle_uri_query b/httemplate/elements/handle_uri_query index 2dea96a..b86ef00 100644 --- a/httemplate/elements/handle_uri_query +++ b/httemplate/elements/handle_uri_query @@ -1,9 +1,17 @@ +<%doc> + +Usage (before accessing any $cgi parameters): + +$m->comp('/elements/handle_uri_query'); + +</%doc> <%init> -my %opt = @_; +#my %opt = @_; if ( $cgi->param('redirect') ) { my $session = $cgi->param('redirect'); + my $maxrecords = $cgi->param('maxrecords'); my $pref = $FS::CurrentUser::CurrentUser->option("redirect$session"); die "unknown redirect session $session\n" unless length($pref); @@ -16,5 +24,7 @@ if ( $cgi->param('redirect') ) { $cgi->param($param, $decrypted); } + $cgi->param('maxrecords', $maxrecords) if $maxrecords =~ /^(\d+)$/; + } </%init> |