[Rt-commit] r5057 - in rt/branches/3.7-EXPERIMENTAL: . html/Search lib/RT/Report

ruz at bestpractical.com ruz at bestpractical.com
Wed Apr 19 22:12:31 EDT 2006


Author: ruz
Date: Wed Apr 19 22:12:29 2006
New Revision: 5057

Modified:
   rt/branches/3.7-EXPERIMENTAL/   (props changed)
   rt/branches/3.7-EXPERIMENTAL/html/Search/Chart
   rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/Chart
   rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/SelectGroupBy
   rt/branches/3.7-EXPERIMENTAL/lib/RT/Report/Tickets.pm

Log:
 r2417 at cubic-pc:  cubic | 2006-04-20 06:19:10 +0400
 * split labels and values


Modified: rt/branches/3.7-EXPERIMENTAL/html/Search/Chart
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Search/Chart	(original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Search/Chart	Wed Apr 19 22:12:29 2006
@@ -19,10 +19,17 @@
     $chart_class = "GD::Graph::bars";
 }
 
+use RT::Report::Tickets;
+my $tix = RT::Report::Tickets->new( $session{'CurrentUser'} );
+$tix->FromSQL( $Query );
+my $count_name = $tix->Column( FUNCTION => 'COUNT', FIELD => 'id' );
+$tix->GroupBy( FIELD => $PrimaryGroupBy );
+my $value_name = $tix->Column( FIELD => $PrimaryGroupBy );
+
 my $chart = $chart_class->new( 600 => 400 );
 if ($chart_class eq "GD::Graph::bars") {
     $chart->set(
-        x_label => $PrimaryGroupBy,
+        x_label => $tix->Label( $PrimaryGroupBy ),
         x_labels_vertical => 1,
         y_label => 'Tickets',
         show_values => 1
@@ -30,13 +37,6 @@
     $chart->set_legend_font( ['verdana', 'arial', gdMediumBoldFont], 12);
 }
 
-use RT::Report::Tickets;
-my $tix = RT::Report::Tickets->new( $session{'CurrentUser'} );
-$tix->FromSQL( $Query );
-my $count_name = $tix->Column( FUNCTION => 'COUNT', FIELD => 'id' );
-$tix->GroupBy( FIELD => $PrimaryGroupBy );
-my $value_name = $tix->Column( FIELD => $PrimaryGroupBy );
-
 my %class = (
     Queue => 'RT::Queue',
     Owner => 'RT::User',

Modified: rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/Chart
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/Chart	(original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/Chart	Wed Apr 19 22:12:29 2006
@@ -42,7 +42,7 @@
 
 <table class="collection-as-table">
 <tr>
-<th class="collection-as-table"><%loc($PrimaryGroupBy)%>
+<th class="collection-as-table"><% $tix->Label($PrimaryGroupBy) %>
 </th>
 <th class="collection-as-table"><&|/l&>Tickets</&>
 </th>

Modified: rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/SelectGroupBy
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/SelectGroupBy	(original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/SelectGroupBy	Wed Apr 19 22:12:29 2006
@@ -3,13 +3,14 @@
 $Default => 'Status'
 $Query   => ''
 </%args>
-<select name="<%$Name%>">
-% foreach my $option (@options) {
-<option value="<%$option%>" <% $option eq $Default ? 'SELECTED' : '' %>><%loc($option)%></option>
+<select name="<% $Name %>">
+% while (@options) {
+% my ($text, $value) = (shift @options, shift @options);
+<option value="<% $value %>" <% $value eq $Default ? 'selected' : '' %>><% loc($text) %></option>
 % }
 </select>
 <%init>
 use RT::Report::Tickets;
-my $report = RT::Report::Tickets->new($session{'CurrentUser'});
+my $report = RT::Report::Tickets->new( $session{'CurrentUser'} );
 my @options = $report->Groupings( Query => $Query );
 </%init>

Modified: rt/branches/3.7-EXPERIMENTAL/lib/RT/Report/Tickets.pm
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/lib/RT/Report/Tickets.pm	(original)
+++ rt/branches/3.7-EXPERIMENTAL/lib/RT/Report/Tickets.pm	Wed Apr 19 22:12:29 2006
@@ -32,12 +32,18 @@
         StartsMonthly
         StartsAnnually
     );
-    if ( $args{'Query'} ) {
+
+    @fields = map {$_, $_} @fields;
+
+    my $queues = $args{'Queues'};
+    if ( !$queues && $args{'Query'} ) {
         require RT::Interface::Web::QueryBuilder::Tree;
         my $tree = RT::Interface::Web::QueryBuilder::Tree->new('AND');
         $tree->ParseSQL( Query => $args{'Query'}, CurrentUser => $self->CurrentUser );
-        my $queues = $tree->GetReferencedQueues;
+        $queues = $tree->GetReferencedQueues;
+    }
 
+    if ( $queues ) {
         my $CustomFields = RT::CustomFields->new( $self->CurrentUser );
         foreach my $id (keys %$queues) {
             my $queue = RT::Queue->new( $self->CurrentUser );
@@ -52,12 +58,25 @@
         }
         $CustomFields->LimitToGlobal;
         while ( my $CustomField = $CustomFields->Next ) {
-            push @fields, "CF.{". $CustomField->Name ."}";
+            push @fields, "Custom field '". $CustomField->Name ."'", "CF.{". $CustomField->id ."}";
         }
     }
     return @fields;
 }
 
+sub Label {
+    my $self = shift;
+    my $field = shift;
+    if ( $field =~ /^(?:CF|CustomField)\.{(.*)}$/ ) {
+        my $cf = $1;
+        return $self->CurrentUser->loc( "Custom field '[_1]'", $cf ) if $cf =~ /\D/;
+        my $obj = RT::CustomField->new( $self->CurrentUser );
+        $obj->Load( $cf );
+        return $self->CurrentUser->loc( "Custom field '[_1]'", $obj->Name );
+    }
+    return $self->CurrentUser->loc($field);
+}
+
 sub GroupBy {
     my $self = shift;
     my %args = ref $_[0]? %{ $_[0] }: (@_);


More information about the Rt-commit mailing list