From: Ivan Kohler Date: Fri, 25 Apr 2014 23:14:47 +0000 (-0700) Subject: optimize package view with tons of packages, RT#28526 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=c931539d1b09590c37576efff8128ae9095c758a optimize package view with tons of packages, RT#28526 --- 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)); + 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 ) {
% } @@ -12,6 +12,7 @@ 'double_space' => '   ', 'escape_function' => \&encode_entities, 'countrydefault' => $countrydefault, + 'cust_main' => $opt{'cust_main'}, ) %> @@ -19,11 +20,13 @@
<% $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'}, + } &> % } @@ -32,7 +35,7 @@ <% $loc->censustract %> (<% $loc->censusyear %> census) -% } elsif ( $conf->exists('cust_main-require_censustract') ) { +% } elsif ( $opt{'cust_main-require_censustract'} ) {
<% 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 @@ %> <% $curuser->option('show_pkgnum') ? $cust_pkg->pkgnum.': ' : '' %><% $part_pkg->pkg |h %> + ><% $opt{show_pkgnum} ? $cust_pkg->pkgnum.': ' : '' %><% $part_pkg->pkg |h %> % my $custom_comment = $part_pkg->custom_comment('cust_pkg'=>$cust_pkg); <% $custom_comment ? ' - ' : '' %> <% $custom_comment |h %> @@ -65,10 +65,10 @@ <% $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 % ) { ( <%pkg_event_link($cust_pkg)%> ) % } 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'),