X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fmisc%2Femail-customers.html;h=83e86158fe2241bd7a7531faf5e24f0f80b47193;hb=191a9fb439b8ed15fdcd458dd51f5890dbf60f29;hp=759c8bf944867bdbda63d941b99f810d4f2ab92e;hpb=b5c4237a34aef94976bc343c8d9e138664fc3984;p=freeside.git diff --git a/httemplate/misc/email-customers.html b/httemplate/misc/email-customers.html index 759c8bf94..83e86158f 100644 --- a/httemplate/misc/email-customers.html +++ b/httemplate/misc/email-customers.html @@ -1,4 +1,9 @@ +% if ($popup) { +<% include('/elements/header-popup.html', $title) %> +% } else { <% include('/elements/header.html', $title) %> +% } +
@@ -7,6 +12,8 @@ %# multi-valued search params. We are no longer in search context, so we %# pack the search into a Storable string for later use. + + % if ( $cgi->param('action') eq 'send' ) { @@ -16,7 +23,7 @@ 'OneTrueForm', [ qw( search table from subject html_body text_body msgnum ) ], 'process/email-customers.html', - { 'message' => "Notice sent" }, #would be nice to show #, but.. + $pdest, ) %> @@ -76,7 +83,7 @@ @@ -95,30 +102,39 @@ function toggle(obj) { Template: - <% include('/elements/select-table.html', - 'label' => 'Template:', - 'table' => 'msg_template', - 'name_col' => 'msgname', - 'empty_label' => '(none)', - 'onchange' => 'toggle(this)', - ) - %>
+ <& /elements/select-msg_template.html, + onchange => 'toggle(this)', + &> +
- <% include('/elements/tr-input-text.html', - 'field' => 'from', - 'label' => 'From:', - ) - %> - + <& /elements/tr-td-label.html, 'label' => 'From:' &> + + <% include('/elements/tr-input-text.html', 'field' => 'subject', 'label' => 'Subject:', + 'size' => 50, ) %> - - + +
<& /elements/input-text.html, + 'field' => 'from_name', + 'value' => $conf->config('invoice_from_name', $agent_virt_agentnum) || + $conf->config('company_name', $agent_virt_agentnum), #? + 'size' => 20, + &> <\ + <& /elements/input-text.html, + 'field' => 'from_addr', + 'type' => 'email', # HTML5, woot + 'value' => $conf->config('invoice_from', $agent_virt_agentnum), + 'size' => 20, + &>>
Message: <% include('/elements/htmlarea.html', 'field'=>'html_body') %>Message: <& /elements/htmlarea.html, + 'field' => 'html_body', + 'width' => 763, + &> +
@@ -145,14 +161,23 @@ Template: die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('Bulk send customer notices'); +my $conf = FS::Conf->new; + my $table = $cgi->param('table') or die "'table' required"; +my $agent_virt_agentnum = $cgi->param('agent_virt_agentnum') || ''; + +my $popup = $cgi->param('popup'); +my $url = $cgi->param('url'); +my $pdest = { 'message' => "Notice sent" }; +$pdest->{'url'} = $cgi->param('url') if $url; + my %search; if ( $cgi->param('search') ) { %search = %{ thaw(decode_base64($cgi->param('search'))) }; } else { %search = $cgi->Vars; - delete $search{$_} for qw( action table from subject html_body text_body ); + delete $search{$_} for qw( action table from subject html_body text_body popup url ); # FS::$table->search is expected to know which parameters might be # multi-valued, and to accept scalar values for them also. No good # solution to this since CGI can't tell whether a parameter _might_ @@ -160,10 +185,18 @@ else { @search{keys %search} = map { /\0/ ? [ split /\0/, $_ ] : $_ } values %search; } -my $title = 'Send bulk customer notices'; +my $title = 'Send customer notices'; my $num_cust; -my $from = $cgi->param('from') || ''; +my $from = ''; +if ( $cgi->param('from') ) { + $from = $cgi->param('from'); +} elsif ( $cgi->param('from_name') ) { + $from = ($cgi->param('from_name') . ' <' . $cgi->param('from_addr') . '>'); +} elsif ( $cgi->param('from_addr') ) { + $from = $cgi->param('from_addr'); +} + my $subject = $cgi->param('subject') || ''; my $html_body = $cgi->param('html_body') || ''; @@ -184,9 +217,14 @@ if ( $cgi->param('action') eq 'preview' ) { { msgnum => $cgi->param('msgnum') } ) or die "template not found: ".$cgi->param('msgnum'); $sql_query->{'extra_sql'} .= ' LIMIT 1'; + $sql_query->{'select'} = "$table.*"; $sql_query->{'order_by'} = ''; - my $cust = qsearchs($sql_query)->cust_main; - my %message = $msg_template->prepare( 'cust_main' => $cust ); + my $object = qsearchs($sql_query); + my $cust = $object->cust_main; + my %message = $msg_template->prepare( + 'cust_main' => $cust, + 'object' => $object + ); ($from, $subject, $html_body) = @message{'from', 'subject', 'html_body'}; } }