summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2014-04-25 16:14:47 -0700
committerIvan Kohler <ivan@freeside.biz>2014-04-25 16:14:47 -0700
commitc931539d1b09590c37576efff8128ae9095c758a (patch)
treecd6160088b63c1db7395bcf20f30ec93789bf9a8
parent4b2a48f5247303f07a00b42eb3091145be1150e2 (diff)
optimize package view with tons of packages, RT#28526
-rw-r--r--httemplate/elements/coord-links.html24
-rw-r--r--httemplate/view/cust_main/packages/location.html18
-rw-r--r--httemplate/view/cust_main/packages/package.html6
-rwxr-xr-xhttemplate/view/cust_main/packages/section.html5
4 files changed, 34 insertions, 19 deletions
diff --git a/httemplate/elements/coord-links.html b/httemplate/elements/coord-links.html
index 4c263c638..c885ade87 100644
--- a/httemplate/elements/coord-links.html
+++ b/httemplate/elements/coord-links.html
@@ -23,7 +23,17 @@
<%init>
-my ($latitude, $longitude, $name, $agentnum) = @_;
+my %opt = ();
+my ($latitude, $longitude, $name, $agentnum);
+if ( ref($_[0]) ) {
+ %opt = %{ $_[0] };
+ $latitude = $opt{latitude};
+ $longitude = $opt{longitude};
+ $name = $opt{name};
+ $agentnum = $opt{agentnum};
+} else {
+ ($latitude, $longitude, $name, $agentnum) = @_;
+}
my $query = 'name='. uri_escape_utf8($name).
';lat='. $latitude.
@@ -35,12 +45,10 @@ $m->interp->apply_escapes($js_name, 'js_string');
$js_name =~ s/^'//;
$js_name =~ s/'$//;
-my @origin;
-my $origin;
#for directions link
-if ( $agentnum =~ /^\d+$/ ) {
- @origin = FS::Conf->new->config('company_address', $agentnum);
- $origin = join (/,/,@origin);
- $origin = uri_escape($origin);
-}
+my @origin = $opt{company_address}
+ ? @{ $opt{company_address} }
+ : FS::Conf->new->config('company_address', $agentnum);
+my $origin = uri_escape(join(',', @origin));
+
</%init>
diff --git a/httemplate/view/cust_main/packages/location.html b/httemplate/view/cust_main/packages/location.html
index db67d45b9..871bfcbe7 100644
--- a/httemplate/view/cust_main/packages/location.html
+++ b/httemplate/view/cust_main/packages/location.html
@@ -3,7 +3,7 @@
% {
% # don't show the location
% } else {
-% if ( !$conf->exists('cust_pkg-group_by_location') ) {
+% if ( !$opt{'cust_pkg-group_by_location'} ) {
% if ( $default ) {
<DIV STYLE="font-style: italic; font-size: small">
% }
@@ -12,6 +12,7 @@
'double_space' => ' &nbsp; ',
'escape_function' => \&encode_entities,
'countrydefault' => $countrydefault,
+ 'cust_main' => $opt{'cust_main'},
)
%>
@@ -19,11 +20,13 @@
<BR>
<FONT SIZE=-1>
<% $loc->latitude %>, <% $loc->longitude %>
- <& /elements/coord-links.html,
- $loc->latitude,
- $loc->longitude,
- $opt{'cust_main'}->name_short. ': '. $opt{'part_pkg'}->pkg,
- $opt{'cust_main'}->agentnum,
+ <& /elements/coord-links.html, {
+ 'latitude' => $loc->latitude,
+ 'longitude' => $loc->longitude,
+ 'name' => $opt{'cust_main'}->name_short.
+ ': '. $opt{'part_pkg'}->pkg,
+ 'company_address' => $opt{'company_address'},
+ }
&>
</FONT>
% }
@@ -32,7 +35,7 @@
<FONT SIZE=-1>
<% $loc->censustract %> (<% $loc->censusyear %> census)
</FONT>
-% } elsif ( $conf->exists('cust_main-require_censustract') ) {
+% } elsif ( $opt{'cust_main-require_censustract'} ) {
<BR>
<FONT SIZE=-1 COLOR="#ee3300">
<% emt('Census tract unknown') %>
@@ -64,7 +67,6 @@
% # preceding package.
<%init>
-my $conf = new FS::Conf;
my %opt = @_;
my $cust_pkg = $opt{'cust_pkg'};
diff --git a/httemplate/view/cust_main/packages/package.html b/httemplate/view/cust_main/packages/package.html
index 06eb50d34..ab7bad2bf 100644
--- a/httemplate/view/cust_main/packages/package.html
+++ b/httemplate/view/cust_main/packages/package.html
@@ -10,7 +10,7 @@
%>
<A NAME="cust_pkg<% $cust_pkg->pkgnum %>"
ID ="cust_pkg<% $cust_pkg->pkgnum %>"
- ><% $curuser->option('show_pkgnum') ? $cust_pkg->pkgnum.': ' : '' %><B><% $part_pkg->pkg |h %></B></A>
+ ><% $opt{show_pkgnum} ? $cust_pkg->pkgnum.': ' : '' %><B><% $part_pkg->pkg |h %></B></A>
% my $custom_comment = $part_pkg->custom_comment('cust_pkg'=>$cust_pkg);
<% $custom_comment ? ' - ' : '' %>
<% $custom_comment |h %>
@@ -65,10 +65,10 @@
<% $br ? '<BR>' : '' %>
% }
-% if ( $cust_pkg->num_cust_event
-% && ( $curuser->access_right('Billing event reports')
+% if ( ( $curuser->access_right('Billing event reports')
% || $curuser->access_right('View customer billing events')
% )
+% && $cust_pkg->num_cust_event
% ) {
(&nbsp;<%pkg_event_link($cust_pkg)%>&nbsp;)
% }
diff --git a/httemplate/view/cust_main/packages/section.html b/httemplate/view/cust_main/packages/section.html
index 730bb2cf0..7c8297831 100755
--- a/httemplate/view/cust_main/packages/section.html
+++ b/httemplate/view/cust_main/packages/section.html
@@ -98,6 +98,7 @@ my $countrydefault = scalar($conf->config('countrydefault')) || 'US';
my %conf_opt = (
#for package.html
'invoice-unitprice' => $conf->exists('invoice-unitprice'),
+ 'show_pkgnum' => $curuser->option('show_pkgnum'),
#for services.html and status.html
'cust_pkg-display_times' => ($conf->exists('cust_pkg-display_times')
@@ -113,6 +114,10 @@ my %conf_opt = (
'countrydefault' => $countrydefault,
'statedefault' => ( scalar($conf->config('statedefault'))
|| ($countrydefault eq 'US' ? 'CA' : '') ),
+ 'cust_pkg-group_by_location'=> $conf->exists('cust_pkg-group_by_location'),
+ 'cust_main-require_censustract'=> $conf->exists('cust_main-require_censustract'),
+ 'company_address' => [ $conf->config('company_address', $opt{cust_main}->agentnum ) ],
+
#for services.html
'svc_external-skip_manual' => $conf->exists('svc_external-skip_manual'),
'legacy_link' => $conf->exists('legacy_link'),