diff options
| author | mark <mark> | 2009-08-09 09:05:38 +0000 | 
|---|---|---|
| committer | mark <mark> | 2009-08-09 09:05:38 +0000 | 
| commit | 283ea2b5137ae3ec36882b492e6de024b0ce6027 (patch) | |
| tree | 25edd2e6f0ba3446c13a5b3e4417cfba0447d62f /httemplate/view | |
| parent | c183de0b7e942672cafdc1c14a203e389ffd2c43 (diff) | |
Add cust_attachment stuff
Diffstat (limited to 'httemplate/view')
| -rw-r--r-- | httemplate/view/attachment.html | 16 | ||||
| -rwxr-xr-x | httemplate/view/cust_main.cgi | 28 | ||||
| -rwxr-xr-x | httemplate/view/cust_main/attachments.html | 133 | 
3 files changed, 168 insertions, 9 deletions
| diff --git a/httemplate/view/attachment.html b/httemplate/view/attachment.html new file mode 100644 index 000000000..c85b1375f --- /dev/null +++ b/httemplate/view/attachment.html @@ -0,0 +1,16 @@ +<%init> +my ($query) = $cgi->keywords; +$query =~ /^(\d+)$/; +my $attachnum = $1 or die 'Invalid attachment number'; +$FS::CurrentUser::CurrentUser->access_right('Download attachment') or die 'access denied'; + +my $attach = qsearchs('cust_attachment', { attachnum => $attachnum }) or die 'Attachment not found: $attachnum'; + +$m->clear_buffer; +$r->content_type($attach->mime_type || 'text/plain'); +$r->headers_out->add('Content-Disposition' => 'attachment;filename=' . $attach->filename); + +binmode STDOUT; +print STDOUT $attach->body; + +</%init> diff --git a/httemplate/view/cust_main.cgi b/httemplate/view/cust_main.cgi index 78bcb1fc1..da1a56a96 100755 --- a/httemplate/view/cust_main.cgi +++ b/httemplate/view/cust_main.cgi @@ -113,7 +113,6 @@ Comments  % if ( ! $conf->exists('cust_main-disable_notes') || $notecount) {  %   unless ( $view eq 'notes' && $cust_main->comments !~ /[^\s\n\r]/ ) { -      <BR>        <A NAME="cust_main_note"><FONT SIZE="+2">Notes</FONT></A><BR>  %   } @@ -138,6 +137,22 @@ Comments  <% include('cust_main/notes.html', 'custnum' => $cust_main->custnum ) %>  % } +<BR> + +% if(! $conf->config('disable_cust_attachment')  +%  and $curuser->access_right('Add attachment')) { +<% include( '/elements/popup_link-cust_main.html', +              'label'       => 'Attach file', +              'action'      => $p.'edit/cust_main_attach.cgi', +              'actionlabel' => 'Upload file', +              'cust_main'   => $cust_main, +              'width'       => 616, +              'height'      => 408, +          ) +%> +% } +<% include('cust_main/attachments.html', 'custnum' => $cust_main->custnum ) %> +<BR>  % } @@ -181,10 +196,6 @@ Comments  % } -% if ( $view eq 'change_history' ) { #  || $view eq 'jumbo' -  <% include('cust_main/change_history.html', $cust_main ) %> -% } -  <% include('/elements/footer.html') %>  <%init> @@ -218,12 +229,11 @@ tie my %views, 'Tie::IxHash',         'Notes'            => 'notes', #notes and files?  ;  $views{'Tickets'}         =  'tickets' -  if $conf->config('ticket_system'); +                               if $conf->config('ticket_system');  $views{'Packages'}        =  'packages';  $views{'Payment History'} =  'payment_history' -  unless $conf->config('payby-default' eq 'HIDE'); -$views{'Change History'}  =  'change_history' -  if $curuser->access_right('View customer history'); +                               unless $conf->config('payby-default' eq 'HIDE'); +#$views{'Change History'}  =  '';  $views{'Jumbo'}           =  'jumbo';  my %viewname = reverse %views; diff --git a/httemplate/view/cust_main/attachments.html b/httemplate/view/cust_main/attachments.html new file mode 100755 index 000000000..e25814ff5 --- /dev/null +++ b/httemplate/view/cust_main/attachments.html @@ -0,0 +1,133 @@ +% if ( scalar(@attachments) ) { + +  <% include('/elements/init_overlib.html') %> + +  <% include("/elements/table-grid.html") %> + +  <TR> +    <TH CLASS="grid" BGCOLOR="#cccccc">Date</TH> +%   if ( $conf->exists('cust_main_note-display_times') ) { +      <TH CLASS="grid" BGCOLOR="#cccccc">Time</TH> +%   } +    <TH CLASS="grid" BGCOLOR="#cccccc">Person</TH> +    <TH CLASS="grid" BGCOLOR="#cccccc">Filename</TH> +    <TH CLASS="grid" BGCOLOR="#cccccc">Type</TH> +    <TH CLASS="grid" BGCOLOR="#cccccc">Size</TH> +    <TH CLASS="grid" BGCOLOR="#cccccc"></TH> +  </TR> + +% my $bgcolor1 = '#eeeeee'; +% my $bgcolor2 = '#ffffff'; +% my $bgcolor = ''; +% +% foreach my $attach ((grep { $_->disabled } @attachments), +%                     (grep { ! $_->disabled } @attachments)) { +% +%   if ( $bgcolor eq $bgcolor1 ) { +%     $bgcolor = $bgcolor2; +%   } else { +%     $bgcolor = $bgcolor1; +%   } +% +%   my $pop = popurl(3); +%   my $attachnum = $attach->attachnum; +%   my $edit = ''; +%   my $download = ''; +%   if($attach->disabled) { +%     my $onclick = include('/elements/popup_link_onclick.html', +%                            'action'   => popurl(2). +%                                         'edit/process/cust_main_attach.cgi'. +%                                         "?custnum=$custnum;". +%                                         "attachnum=$attachnum;". +%                                         "undelete=1", +%                            'actionlabel' => 'Undelete attachment', +%                            'width'       => 616, +%                            'height'      => 408, +%                            'frame'       => 'top', +%                         ); +%     my $clickjs = qq!onclick="$onclick"!; +%     if($curuser->access_right('Edit attachment')) { +%       $edit = qq! <A HREF="javascript:void(0);" $clickjs>(undelete)</A>!; +%     } +%   } +%   else { +%     my $onclick = include( '/elements/popup_link_onclick.html', +%                              'action'      => popurl(2). +%                                               'edit/cust_main_attach.cgi'. +%                                               "?custnum=$custnum". +%                                               ";attachnum=$attachnum", +%                              'actionlabel' => 'Edit customer note', +%                              'width'       => 616, +%                              'height'      => 408, +%                              'frame'       => 'top', +%                          ); +%     my $clickjs = qq!onclick="$onclick"!; +% +%     if ($curuser->access_right('Edit attachment') ) { +%       $edit = qq! <A HREF="javascript:void(0);" $clickjs>(edit)</A>!; +%     } +%     if ($curuser->access_right('Download attachment') ) { +%       $download = qq! <A HREF="!.popurl(1).'attachment.html?'.$attachnum.qq!">(download)</A>!; +%     } +%   } + +    <TR> +      <% note_datestr($attach,$conf,$bgcolor) %> +      <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"> +         <% $attach->otaker%> +      </TD> +      <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"> +        <% $attach->filename %> +      </TD> +      <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"> +        <% $attach->mime_type %> +      </TD> +      <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"> +        <% size_units( $attach->size ) %> +      </TD> +      <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"> +         <% $edit %> +         <% $download %> +      </TD> +      <% $attach->disabled ? '</I>' : '' %> +    </TR> + +% } #end display notes + +</TABLE> + +% } +<%init> + +my $conf = new FS::Conf; +my $curuser = $FS::CurrentUser::CurrentUser; + +my(%opt) = @_; + +my $custnum = $opt{'custnum'}; + +my $cust_main = qsearchs('cust_main', {'custnum' => $custnum} ); +die "Customer not found!" unless $cust_main; + +my (@attachments) = qsearch('cust_attachment', {'custnum' => $custnum}); + +#subroutines + +sub note_datestr { +  my($note, $conf, $bgcolor) = @_ or return ''; +  my $td = qq{<TD CLASS="grid" BGCOLOR="$bgcolor" ALIGN="right">}; +  my $format = "$td%b %o, %Y</TD>"; +  $format .= "$td%l:%M%P</TD>" +    if $conf->exists('cust_main_note-display_times'); +  ( my $strip = time2str($format, $note->_date) ) =~ s/ (\d)/$1/g; +  $strip; +} + +sub size_units { +  my $bytes = shift; +  return $bytes if $bytes < 1024; +  return int($bytes / 1024)."K" if $bytes < 1048576; +  return int($bytes / 1048576)."M"; +} + +</%init> | 
