[freeside-commits] freeside/httemplate/misc email-customers.html, NONE, 1.1.2.2

Ivan,,, ivan at wavetail.420.am
Mon Jun 16 20:36:12 PDT 2008


Update of /home/cvs/cvsroot/freeside/httemplate/misc
In directory wavetail.420.am:/tmp/cvs-serv32538/httemplate/misc

Added Files:
      Tag: FREESIDE_1_7_BRANCH
	email-customers.html 
Log Message:
finish adding a feature to easily list all email addresses for an agent & send them email

--- NEW FILE: email-customers.html ---
<% include('/elements/header.html', $title) %>

<FORM NAME="OneTrueForm" ACTION="email-customers.html" METHOD="POST">
% foreach my $key ( keys %search ) {
%   my @values = ref($search{$key}) ? @{$search{$key}} : ( $search{$key} );
%   foreach my $value ( @values ) {
      <INPUT TYPE="hidden" NAME="<% $key |h %>" VALUE="<% $value |h %>">
%   }
% }

% if ( $cgi->param('magic') eq 'send' ) {

    <FONT SIZE="+2">Sending notice</FONT>

    <% include('/elements/progress-init.html',
                 'OneTrueForm',
                 [ keys(%search), qw( from subject html_body text_body ) ],
                 'process/email-customers.html',
                 { 'message' => "Notice sent" }, #would be nice to show #, but..
              )
    %>

% } elsif ( $cgi->param('magic') eq 'preview' ) {

    <FONT SIZE="+2">Preview notice</FONT>

% }

% if ( $cgi->param('magic') ) {

    <TABLE BGCOLOR="#cccccc" CELLSPACING=0>

      <% include('/elements/tr-fixed.html',
                   'field'      => 'from',
                   'label'      => 'From:',
                   'value' => scalar( $cgi->param('from') ),
                )
      %>

      <% include('/elements/tr-fixed.html',
                   'field'      => 'subject',
                   'label'      => 'Subject:',
                   'value' => scalar( $cgi->param('subject') ),
                )
      %>

      <INPUT TYPE="hidden" NAME="html_body" VALUE="<% $cgi->param('html_body') |h %>">
      <TR>
        <TD ALIGN="right" VALIGN="top">Message (HTML display): </TD>
        <TD BGCOLOR="#e8e8e8" ALIGN="left"><% $cgi->param('html_body') %></TD>
      </TR>

%     my $text_body = HTML::FormatText->new(leftmargin=>0)->format(
%                       HTML::TreeBuilder->new_from_content(
%                         $cgi->param('html_body')
%                       )
%                     );
      <INPUT TYPE="hidden" NAME="text_body" VALUE="<% $text_body |h %>">
      <TR>
        <TD ALIGN="right" VALIGN="top">Message (Text display): </TD>
        <TD BGCOLOR="#e8e8e8" ALIGN="left"><PRE><% $text_body %></PRE></TD>
      </TR>

    </TABLE>

% if ( $cgi->param('magic') eq 'preview' ) {

      <SCRIPT>
        function areyousure(href) {
          return confirm("Send this notice to <% $num_cust %> customers?");
        }
      </SCRIPT>

      <BR>
      <INPUT TYPE="hidden" NAME="magic" VALUE="send">
      <INPUT TYPE="submit" VALUE="Send notice" onClick="return areyousure()">
    
%   }

% } else {

  <TABLE BGCOLOR="#cccccc" CELLSPACING=0 WIDTH="100%">

    <% include('/elements/tr-input-text.html',
                 'field' => 'from',
                 'label' => 'From:',
              )
    %>

    <% include('/elements/tr-input-text.html',
                 'field' => 'subject',
                 'label' => 'Subject:',
              )
    %>

    <TR>
      <TD ALIGN="right" VALIGN="top">Message: </TD>
      <TD><% include('/elements/htmlarea.html', 'field'=>'html_body') %></TD>
    </TR>

  </TABLE>

%#Substitution vars:

    <BR><BR>
    <INPUT TYPE="hidden" NAME="magic" VALUE="preview">
    <INPUT TYPE="submit" VALUE="Preview notice">

% }

</FORM>

% if ( $cgi->param('magic') eq 'send' ) {
    <SCRIPT TYPE="text/javascript">
      process();
    </SCRIPT>
% }

<% include('/elements/footer.html') %>

<%init>

die "access denied"
  unless $FS::CurrentUser::CurrentUser->access_right('Bulk send customer notices');

my %search = $cgi->Vars;
delete $search{$_} for qw( magic from subject html_body text_body );
$search{$_} = [ split(/\0/, $search{$_}) ]
  foreach grep $search{$_} =~ /\0/, keys %search;

my $title = 'Bulk send customer notices';

my $num_cust;
if ( $cgi->param('magic') eq 'preview' ) {
  my $sql_query = FS::cust_main->search_sql(\%search);
  my $count_query = delete($sql_query->{'count_query'});
  my $count_sth = dbh->prepare($count_query)
    or die "Error preparing $count_query: ". dbh->errstr;
  $count_sth->execute
    or die "Error executing $count_query: ". $count_sth->errstr;
  my $count_arrayref = $count_sth->fetchrow_arrayref;
  $num_cust = $count_arrayref->[0];
}

</%init>



More information about the freeside-commits mailing list