diff options
author | ivan <ivan> | 2009-07-05 21:35:52 +0000 |
---|---|---|
committer | ivan <ivan> | 2009-07-05 21:35:52 +0000 |
commit | 0ce1ba66efbd074aca5182bb3e42bd99ff55472a (patch) | |
tree | 596f309179d1c6c502ffb9bc2adb3bb8e310c7ea /httemplate | |
parent | 15c8b0fd8580afcd9c10d5816cbae43996c02ec0 (diff) |
CDR search by dcontext, charged_party, toggle of display fields, RT#4081
Diffstat (limited to 'httemplate')
-rw-r--r-- | httemplate/elements/checkboxes.html | 10 | ||||
-rw-r--r-- | httemplate/search/cdr.html | 23 | ||||
-rw-r--r-- | httemplate/search/report_cdr.html | 65 |
3 files changed, 83 insertions, 15 deletions
diff --git a/httemplate/elements/checkboxes.html b/httemplate/elements/checkboxes.html index 126224538..b120adab7 100644 --- a/httemplate/elements/checkboxes.html +++ b/httemplate/elements/checkboxes.html @@ -10,8 +10,9 @@ Example: 'names_list' => [ 'value', 'other value', - [ 'complex value' => { 'desc' => "Add'l description", - 'note' => ' *', + [ 'complex value' => { 'label' => 'Display value', + 'desc' => "Add'l description", + 'note' => ' *', } ], ], @@ -40,7 +41,10 @@ Example: % foreach my $item ( @{ $opt{'names_list'} } ) { % % my $name = ref($item) ? $item->[0] : $item; -% ( my $display = $name ) =~ s/ / /g; +% my $display = ( ref($item) && $item->[1]{label} ) +% ? $item->[1]{label} +% : $name; +% $display =~ s/ / /g; % $display .= $item->[1]{note} if ref($item) && $item->[1]{note}; % my $desc = ref($item) && $item->[1]{desc} ? $item->[1]{desc} : ''; % diff --git a/httemplate/search/cdr.html b/httemplate/search/cdr.html index 26eac75b3..126c4fd43 100644 --- a/httemplate/search/cdr.html +++ b/httemplate/search/cdr.html @@ -158,6 +158,12 @@ if ( $cgi->param('dst') =~ /^\s*([\d\-\+ ]+)\s*$/ ) { push @search, "dst = '$dst'"; } +if ( $cgi->param('dcontext') =~ /^\s*(.+)\s*$/ ) { + my $dcontext = $1; + $hashref->{'dcontext'} = $dcontext; + push @search, "dcontext = '$dcontext'"; +} + if ( $cgi->param('charged_party') =~ /^\s*([\d\-\+\ ]+)\s*$/ ) { ( my $charged_party = $1 ) =~ s/\D//g; #$hashref->{'charged_party'} = $charged_party; @@ -203,24 +209,17 @@ $qsearch = ( scalar(keys %$hashref) ? ' AND ' : ' WHERE ' ) . $qsearch # display fields ### -#XXX fill in some (more) nice names -my %header = ( - 'calldate' => 'Call Date', - 'clid' => 'Caller ID', - 'charged_party' => 'Charged party', - 'src' => 'Source', - 'dst' => 'Destination', - 'dcontext' => 'Destination Context', - 'channel' => 'Channel', - 'dstchannel' => 'Destination Channel', - 'freesidestatus' => 'Freeside status', -); +my %header = %{ FS::cdr->table_info->{'fields'} }; my @first = qw( acctid calldate clid charged_party src dst dcontext ); my %first = map { $_=>1 } @first; my @fields = ( @first, grep !$first{$_}, fields('cdr') ); +if ( $cgi->param('show') ) { + @fields = grep $cgi->param("show_$_"), @fields; +} + my @header = map { if ( exists($header{$_}) ) { $header{$_}; diff --git a/httemplate/search/report_cdr.html b/httemplate/search/report_cdr.html index 6a0b89bf8..c5f728c87 100644 --- a/httemplate/search/report_cdr.html +++ b/httemplate/search/report_cdr.html @@ -5,6 +5,12 @@ <TABLE BGCOLOR="#cccccc" CELLSPACING=0> <TR> + <TH BGCOLOR="#e8e8e8" COLSPAN=2 ALIGN="left"> + <FONT SIZE="+1">Search options</FONT> + </TH> + </TR> + + <TR> <TD ALIGN="right">Status: </TD> <TD> <SELECT NAME="freesidestatus"> @@ -48,6 +54,21 @@ </TD> </TR> + <TR> + <TD ALIGN="right">Destination Context: </TD> + <TD> + <INPUT TYPE="text" NAME="dcontext"> + </TD> + </TR> + + + <TR> + <TD ALIGN="right">Charged Party #: </TD> + <TD> + <INPUT TYPE="text" NAME="charged_party"> + </TD> + </TR> + <% include( '/elements/tr-input-lessthan_greaterthan.html', 'label' => 'Duration (sec)', 'field' => 'duration', @@ -62,6 +83,28 @@ <% include( '/elements/tr-select-cdrbatch.html' ) %> + <TR> + <TH BGCOLOR="#e8e8e8" COLSPAN=2> </TH> + </TR> + + <TR> + <TH BGCOLOR="#e8e8e8" COLSPAN=2 ALIGN="left"><FONT SIZE="+1">Display options</FONT></TH> + </TR> + + <INPUT TYPE="hidden" NAME="show" VALUE="1"> + + <TR> + <TD COLSPAN=2> + <% include('/elements/checkboxes.html', + 'names_list' => $names_list, + 'element_name_prefix' => 'show_', + 'checked_callback' => sub { $show_default{$_[1]} }, + # my($cgi, $name) = @_; + ) + %> + </TD> + </TR> + </TABLE> <BR> @@ -73,4 +116,26 @@ die "access denied" unless $FS::CurrentUser::CurrentUser->access_right('List rating data'); +my @fields = fields('cdr'); +my $labels = FS::cdr->table_info->{'fields'}; + +#XXX config +my @show_default = qw( + calldate clid src dst dcontext charged_party + startdate answerdate enddate duration billsec + disposition amaflags accountcode userfield + rated_price upstream_price carrierid + svcnum freesidestatus freesiderewritestatus cdrbatch +); +my %show_default = map { $_=>1 } @show_default; + +my $names_list = [ map { + [ $_ => { + 'label' => 'Show '. ( $labels->{$_} || $_ ) + } + ] + } + @fields + ]; + </%init> |