diff options
author | Mark Wells <mark@freeside.biz> | 2014-08-12 16:01:28 -0700 |
---|---|---|
committer | Mark Wells <mark@freeside.biz> | 2014-08-12 16:52:59 -0700 |
commit | f4aa07316a23cbbd1db83cf1bceb1d59111ff0d6 (patch) | |
tree | 2e6179fc3f28b99bc8b644d608c5381f86d129a2 /httemplate/view | |
parent | 8171fd8de079cdfb23eb2b0dcc297e0e670b6e4e (diff) |
popup view for collapsed packages, #25130, #27305
Diffstat (limited to 'httemplate/view')
-rw-r--r-- | httemplate/view/cust_main/packages/contact.html | 2 | ||||
-rw-r--r-- | httemplate/view/cust_main/packages/hidden.html | 65 | ||||
-rwxr-xr-x | httemplate/view/cust_main/packages/section.html | 30 | ||||
-rw-r--r-- | httemplate/view/cust_pkg-popup.html | 27 |
4 files changed, 122 insertions, 2 deletions
diff --git a/httemplate/view/cust_main/packages/contact.html b/httemplate/view/cust_main/packages/contact.html index 0f0cde71f..10c584c8c 100644 --- a/httemplate/view/cust_main/packages/contact.html +++ b/httemplate/view/cust_main/packages/contact.html @@ -10,10 +10,12 @@ ( <%pkg_detach_link($cust_pkg)%> ) </FONT> % } + <BR> % } elsif ( $show_contact_link && ! $opt{no_links} ) { <FONT SIZE=-1> ( <%pkg_add_contact_link($cust_pkg)%> ) </FONT> + <BR> % } <%init> diff --git a/httemplate/view/cust_main/packages/hidden.html b/httemplate/view/cust_main/packages/hidden.html new file mode 100644 index 000000000..35eda8c46 --- /dev/null +++ b/httemplate/view/cust_main/packages/hidden.html @@ -0,0 +1,65 @@ +% if (!$iopt{noframe}) { +% # then start the block here, and assign a suitable ID (cust_pkgX_block) +<TABLE CLASS="hiddenrows" STYLE="display: none" ID="<% $id %>_block"> +% } + <TR ID="<% $id %>"> + <TD> + <A NAME="<% $id %>"/> + <% $pkgnum %> + </TD> + <TD> +% if ( $pkgpart_change and $location_change ) { + Package type and location change +% } elsif ( $pkgpart_change ) { + Package type change +% } elsif ( $location_change ) { + Location change +% } # or else what? + <B><% time2str('%b %o, %Y', $cust_pkg->get('cancel')) %></B> + </TD><TD> +% if ( $pkgpart_change ) { + from <% $popup_link |n %><B><% $part_pkg->pkg |h %></B> - <% $part_pkg->custom_comment |h %></A> +% } +% if ( $pkgpart_change and $location_change ) { + <BR> +% } +% if ( $location_change ) { + from <I><% $popup_link |n %><% $cust_pkg->location_label %></A></I> +% } + </TD> + </TR> +% if ( $cust_pkg->get('changed_from_pkg') ) { +<& hidden.html, $cust_pkg->get('changed_from_pkg'), + %iopt, + 'next_pkg' => $cust_pkg, + 'noframe' => 1 +&> +% } +% if ( !$iopt{noframe} ) { +</TABLE> +% } +<%init> +my $cust_pkg = shift; +my $part_pkg = $cust_pkg->part_pkg; +my %iopt = @_; +my $next = delete($iopt{'next_pkg'}); +my $curuser = $FS::CurrentUser::CurrentUser; +my $pkgnum = $curuser->option('show_pkgnum') ? $cust_pkg->pkgnum.': ' : ''; + +my $id = "cust_pkg".$cust_pkg->pkgnum; + +my $pkgpart_change = ($next->pkgpart != $cust_pkg->pkgpart); +my $location_change = ($next->locationnum != $cust_pkg->locationnum); +my $both_change = $pkgpart_change && $location_change; + +my $onclick = + include('/elements/popup_link_onclick.html', + 'action' => $fsurl.'view/cust_pkg-popup.html?' . $cust_pkg->pkgnum, + 'actionlabel' => 'Package #'.$cust_pkg->pkgnum, + 'width' => '1000', + 'height' => '310', + 'color' => $cust_pkg->statuscolor, + ); +my $popup_link = qq(<A HREF="#" onclick="$onclick">); + +</%init> diff --git a/httemplate/view/cust_main/packages/section.html b/httemplate/view/cust_main/packages/section.html index 11928ec64..217e8c556 100755 --- a/httemplate/view/cust_main/packages/section.html +++ b/httemplate/view/cust_main/packages/section.html @@ -4,17 +4,22 @@ <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Package') |h %></TH> <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Status') |h %></TH> <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Contact/Location') |h %></TH> +% if (!$opt{no_services}) { <TH CLASS="grid" BGCOLOR="#cccccc"><% mt('Services') |h %></TH> +% } </TR> % #$FS::cust_pkg::DEBUG = 2; % foreach my $cust_pkg (@$packages) { +% # if requested, this can override cust_pkg-group_by_location <& .packagerow, $cust_pkg, + %conf_opt, ( map { $_ => $opt{$_} } qw( cust_main bgcolor no_links cust_location_cache before_pkg_callback before_svc_callback after_svc_callback + cust_pkg-group_by_location + no_services )), - %conf_opt &> % } % } else { # there are no packages @@ -30,11 +35,32 @@ <& package.html, %iopt &> <& status.html, %iopt &> <TD CLASS="inv" BGCOLOR="<% $iopt{bgcolor} %>" WIDTH="20%" VALIGN="top"> - <& contact.html, %iopt &><BR> + <& contact.html, %iopt &> <& location.html, %iopt &> </TD> +% if (!$iopt{no_services}) { <& services.html, %iopt &> +% } + </TR> +% # insert hidden predecessors to this package, if any +% # and a rolldown button to show them +% # (we'll make it do something later) +% if ( $cust_pkg->get('changed_from_pkg') ) { + <TR CLASS="row<% $row % 2 %>"> + <TD COLSPAN=4> + <BUTTON CLASS="rolldown_button" + ID="rolldown_<% $cust_pkg->change_pkgnum %>"> + History ⬇ + </BUTTON> +% # the hidden block here has ID="cust_pkgX" where X is the first pkgnum +% # it contains. + <& hidden.html, $cust_pkg->get('changed_from_pkg'), + %iopt, + 'next_pkg' => $cust_pkg, + &> + </TD> </TR> +% } % $row++; % # show the change target, if there is one % if ( $cust_pkg->change_to_pkg ) { diff --git a/httemplate/view/cust_pkg-popup.html b/httemplate/view/cust_pkg-popup.html new file mode 100644 index 000000000..96956c732 --- /dev/null +++ b/httemplate/view/cust_pkg-popup.html @@ -0,0 +1,27 @@ +<& /elements/header-popup.html &> +<TABLE STYLE="width: 100%"> +<& cust_main/packages/section.html, + 'cust_main' => $cust_main, + 'packages' => [ $cust_pkg ], + 'cust_pkg-group_by_location' => 0, + 'no_services' => 1, +&> +</TABLE> +</BODY> +</HTML> +<%init> +my $curuser = $FS::CurrentUser::CurrentUser; +my ($pkgnum) = $cgi->keywords; +$pkgnum =~ /^\d+$/ or die "bad pkgnum $pkgnum"; + +my $cust_pkg = qsearchs({ + 'table' => 'cust_pkg', + 'addl_from' => 'JOIN cust_main USING (custnum)', + 'hashref' => { 'pkgnum' => $pkgnum }, + 'extra_sql' => ' AND '.$curuser->agentnums_sql, +}); +die "Package not found" unless $cust_pkg; +my $cust_main = $cust_pkg->cust_main; + +my $title = mt('Package [_1]', $pkgnum); +</%init> |