UI for emailing customer statements on v4, RT#34078
[freeside.git] / httemplate / misc / email-customers.html
index 3327303..0c90b07 100644 (file)
@@ -10,8 +10,12 @@ This may also be used as an element in other pages, enabling you to provide an
 alternate initial form while using this for search freezing/thawing and 
 preview/send actions, with the following options:
 
+acl - the access right to use (defaults to 'Bulk send customer notices')
+
 form_action - the URL to submit the form to
 
+process_url - the URL for starting the JSRPC process
+
 title - the title of the page
 
 no_search_fields - arrayref of additional fields that are not search parameters
@@ -25,15 +29,14 @@ gets passed options 'conf' and 'search' (a reference to the unfrozen %search has
 should be used to set msgnum or from/subject/html_body cgi params
 
 </%doc>
-
 % if ($popup) {
-<% include('/elements/header-popup.html', $title) %>
+<& /elements/header-popup.html, $title &>
 % } else {
-<% include('/elements/header.html', $title) %>
+<& /elements/header.html, $title &>
 % }
 
 
-<FORM NAME="OneTrueForm" ACTION="<% $form_action %>" METHOD="POST">
+<FORM NAME="OneTrueForm" ACTION="<% $form_action %>" METHOD="GET">
 <INPUT TYPE="hidden" NAME="table" VALUE="<% $table %>">
 %# Mixing search params with from address, subject, etc. required special-case
 %# handling of those, risked name conflicts, and caused massive problems with 
@@ -50,7 +53,7 @@ should be used to set msgnum or from/subject/html_body cgi params
     <% include('/elements/progress-init.html',
                  'OneTrueForm',
                  [ qw( search table from subject html_body text_body msgnum ) ],
-                 'process/email-customers.html',
+                 $process_url,
                  $pdest,
               )
     %>
@@ -63,7 +66,7 @@ should be used to set msgnum or from/subject/html_body cgi params
 
 % if ( $cgi->param('action') ) {
 
-    <TABLE BGCOLOR="#cccccc" CELLSPACING=0>
+    <TABLE CLASS="fsinnerbox">
     <INPUT TYPE="hidden" NAME="msgnum" VALUE="<% $cgi->param('msgnum') %>">
 
 %   if ( $msg_template ) {
@@ -89,8 +92,9 @@ should be used to set msgnum or from/subject/html_body cgi params
       %>
 
       <INPUT TYPE="hidden" NAME="html_body" VALUE="<% $html_body |h %>">
+      <TR><TD COLSPAN=2>&nbsp;</TD></TR>
       <TR>
-        <TD ALIGN="right" VALIGN="top">Message (HTML display): </TD>
+        <TH ALIGN="right" VALIGN="top">Message (HTML display): </TD>
         <TD CLASS="background" ALIGN="left"><% $html_body %></TD>
       </TR>
 
@@ -100,9 +104,14 @@ should be used to set msgnum or from/subject/html_body cgi params
 %                       )
 %                     );
       <INPUT TYPE="hidden" NAME="text_body" VALUE="<% $text_body |h %>">
+      <TR><TD COLSPAN=2>&nbsp;</TD></TR>
       <TR>
-        <TD ALIGN="right" VALIGN="top">Message (Text display): </TD>
-        <TD CLASS="background" STYLE="background-color:white" ALIGN="left"><PRE><% $text_body %></PRE></TD>
+        <TH ALIGN="right" VALIGN="top">Message (Text display): </TD>
+        <TD CLASS="background" ALIGN="left">
+          <a href="javascript:void(0)" ID="email-message-text-view" style="color:#666666" onclick="showtext()">(view)</a>
+          <a href="javascript:void(0)" ID="email-message-text-hide" style="color:#666666; display: none;" onclick="hidetext()">(hide)</a>
+          <PRE id="email-message-text" style="display: none;"><% $text_body %></PRE>
+        </TD>
       </TR>
 
     </TABLE>
@@ -110,6 +119,19 @@ should be used to set msgnum or from/subject/html_body cgi params
 %   if ( $cgi->param('action') eq 'preview' ) {
 
       <SCRIPT>
+
+        function showtext() {
+          $('#email-message-text-view').css('display','none');
+          $('#email-message-text-hide').css('display','');
+          $('#email-message-text').slideDown();
+        }
+
+        function hidetext() {
+          $('#email-message-text-view').css('display','');
+          $('#email-message-text-hide').css('display','none');
+          $('#email-message-text').slideUp();
+        }
+
         function areyousure(href) {
           return confirm("Send this notice to <% ($num_cust > 1) ? "$num_cust customers" : '1 customer' %> ?");
         }
@@ -192,13 +214,16 @@ Template:
 
 my %opt = @_;
 
+$opt{'acl'} ||= 'Bulk send customer notices';
+
 die "access denied"
-  unless $FS::CurrentUser::CurrentUser->access_right('Bulk send customer notices');
+  unless $FS::CurrentUser::CurrentUser->access_right($opt{'acl'});
 
 my $conf = FS::Conf->new;
 my @no_search_fields = qw( action table from subject html_body text_body popup url );
 
 my $form_action = $opt{'form_action'} || 'email-customers.html';
+my $process_url = $opt{'process_url'} || 'process/email-customers.html';
 my $title = $opt{'title'} || 'Send customer notices';
 push( @no_search_fields, @{$opt{'no_search_fields'}} ) if $opt{'no_search_fields'};