X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fsearch%2Fcust_msg.html;h=65460f7b905f8997c92a2fbe4004a462fea5d97e;hp=716addfd6c9c6fe1f17759bad6b8b12f8d0345f2;hb=fc263806f5e475559a0c4cfdb70a5f1cefe0ffa3;hpb=7a7a0c736e3cfbd10b06151a93bf499d185d37d3 diff --git a/httemplate/search/cust_msg.html b/httemplate/search/cust_msg.html index 716addfd6..65460f7b9 100644 --- a/httemplate/search/cust_msg.html +++ b/httemplate/search/cust_msg.html @@ -1,46 +1,56 @@ -<& 'elements/search.html', - 'title' => $title, - 'name' => 'messages', - 'query' => $query, - 'count_query' => $count_query, - 'header' => [ - 'Date', - 'Type', - 'Destination', - 'Status', - '', #error - ], - 'fields' => [ - sub { - my $date = $_[0]->_date; - $date ? time2str('%Y-%m-%d %T',$_[0]->_date) : '' - }, - sub { - ucfirst($_[0]->msgtype) || $_[0]->msgname - }, - sub { - join('
', split(/,\s*/, $_[0]->env_to) ) - }, - 'status', - sub { encode_entities($_[0]->error) }, - ], - 'align' => 'rllcl', - 'links' => [ ], +<& elements/search.html, + 'title' => $title, + 'name_singular' => 'message', + 'query' => $query, + 'count_query' => $count_query, + 'header' => [ + 'Date', + 'Type', + 'Destination', + 'Status', + '', #error + ], + 'fields' => [ + sub { + my $date = $_[0]->_date; + $date ? time2str('%Y-%m-%d %T',$_[0]->_date) : '' + }, + sub { + ucfirst($_[0]->msgtype) || $_[0]->msgname + }, + sub { + join('
', + map { encode_entities($_->format) } + Email::Address->parse($_[0]->env_to) + ) + }, + 'status', + sub { encode_entities($_[0]->error) }, + ], + 'sort_fields' => [ '_date', + 'msgtype', + 'env_to', + 'status', + 'error', + ], + 'align' => 'rllcl', + 'links' => [], 'link_onclicks' => [ - $sub_popup_link, - $sub_popup_link, - $sub_popup_link, - '', - '', - ], - 'color' => [ '', - $typecolor, - '', - $statuscolor, - $statuscolor, - ], - 'html_init' => $html_init, + $sub_popup_link, + $sub_popup_link, + $sub_popup_link, + '', + '', + ], + 'color' => [ '', + $typecolor, + '', + $statuscolor, + $statuscolor, + ], + 'html_init' => $html_init, 'really_disable_download' => 1, + 'order_by' => '_date DESC', &> <%init> #hmm... @@ -51,13 +61,23 @@ my $conf = new FS::Conf; my $title = 'Outgoing Message Log'; -my @where; +#here is the agent virtualization +my $agentnums_sql = $FS::CurrentUser::CurrentUser->agentnums_sql( + 'table' => 'cust_main', + 'null_right' => [ 'View system logs', 'Configuration' ], +); + +my @where = ( $agentnums_sql ); + if ( $cgi->param('status') =~ /^(\w+)$/ ) { push @where, "status = '$1'"; } if ( $cgi->param('msgtype') =~ /^(\w+)$/ ) { push @where, "msgtype = '$1'"; } +if ( $cgi->param('custnum') =~ /^(\d+)$/ ) { + push @where, "cust_msg.custnum = $1"; +} my ($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi, ''); push @where, "(_date >= $beginning AND _date <= $ending)"; @@ -66,20 +86,22 @@ if ( $cgi->param('order_by') =~ /^(\w+)$/ ) { $order_by = $1; } -my $where = ''; -$where = ' WHERE '.join(' AND ', @where) if @where; +my $where = ' WHERE '. join(' AND ', @where); + +my $join_cust_main = ' LEFT JOIN cust_main USING ( custnum ) '; + my $query = { 'table' => 'cust_msg', 'select' => join(', ', 'cust_msg.*', 'msg_template.msgname', ), - 'addl_from' => ' LEFT JOIN msg_template USING ( msgnum )', + 'addl_from' => ' LEFT JOIN msg_template USING ( msgnum ) '. $join_cust_main, 'hashref' => {}, 'extra_sql' => $where, 'order_by' => "ORDER BY $order_by", }; -my $count_query = 'SELECT COUNT(*) FROM cust_msg'.$where; +my $count_query = "SELECT COUNT(*) FROM cust_msg $join_cust_main $where"; my $sub_popup_link = sub { my $custmsgnum = $_[0]->custmsgnum; @@ -107,17 +129,17 @@ my $html_init = qq!
!. '
From '. include('/elements/input-date-field.html', - { 'name' => 'beginning', 'value' => $cgi->param('beginning') } + { 'name' => 'beginning', 'value' => scalar($cgi->param('beginning')) } ). ' To '. include('/elements/input-date-field.html', - { 'name' => 'ending', 'value' => ($cgi->param('ending') || ''), + { 'name' => 'ending', 'value' => (scalar($cgi->param('ending')) || ''), 'noinit' => 1, } ). ' Status '. include('/elements/select.html', 'field' => 'status', - 'curr_value' => $cgi->param('status') || '', + 'curr_value' => scalar($cgi->param('status')) || '', 'options' => [ '', 'failed', 'sent', ], 'labels' => { '' => '(any)', 'failed' => 'failed', @@ -126,12 +148,13 @@ include('/elements/select.html', ' Type '. include('/elements/select.html', 'field' => 'msgtype', - 'curr_value' => $cgi->param('msgtype') || '', - 'options' => [ '', 'invoice', 'receipt', 'admin' ], + 'curr_value' => scalar($cgi->param('msgtype')) || '', + 'options' => [ '', 'invoice', 'receipt', 'admin', 'report' ], 'labels' => { '' => '(any)', 'invoice' => 'Invoices', 'receipt' => 'Receipts', 'admin' => 'Admin notices', + 'report' => 'Reports', }, ) . '