[Rt-commit] rt branch, 3.8-trunk, updated. rt-3.8.6-39-ge8c391f

sunnavy at bestpractical.com sunnavy at bestpractical.com
Tue Oct 27 03:40:50 EDT 2009


The branch, 3.8-trunk has been updated
       via  e8c391f7a4119cee3176956fe3d2f7f11599b874 (commit)
      from  e1a7593cca1c5662ad4dbe052323d5054d00f9ac (commit)

Summary of changes:
 share/html/Search/Build.html            |    6 ++++-
 share/html/Search/Bulk.html             |    7 ++++-
 share/html/Search/Chart.html            |    4 ++-
 share/html/Search/Edit.html             |    4 ++-
 share/html/Search/Elements/EditSearches |    3 +-
 share/html/Search/Results.html          |    7 ++++-
 share/html/Ticket/Elements/Tabs         |    3 +-
 share/html/Widgets/SavedSearch          |   34 +++++++++++++++++++++++-------
 8 files changed, 51 insertions(+), 17 deletions(-)

- Log -----------------------------------------------------------------
commit e8c391f7a4119cee3176956fe3d2f7f11599b874
Author: sunnavy <sunnavy at bestpractical.com>
Date:   Tue Oct 27 15:20:17 2009 +0800

    make people can update saved chart search easily

diff --git a/share/html/Search/Build.html b/share/html/Search/Build.html
index 06edfdd..e2c13ff 100644
--- a/share/html/Search/Build.html
+++ b/share/html/Search/Build.html
@@ -71,10 +71,12 @@
     Title => $title,
     %query,
     SavedSearchId => $saved_search{'Id'},
+    SavedChartSearchId => $ARGS{SavedChartSearchId},
 &>
 
 <form method="post" action="Build.html" name="BuildQuery">
 <input type="hidden" class="hidden" name="SavedSearchId" value="<% $saved_search{'Id'} %>" />
+<input type="hidden" class="hidden" name="SavedChartSearchId" value="<% $ARGS{'SavedChartSearchId'} %>" />
 <input type="hidden" class="hidden" name="Query" value="<% $query{'Query'} %>" />
 <input type="hidden" class="hidden" name="Format" value="<% $query{'Format'} %>" />
 
@@ -114,6 +116,8 @@
 use RT::Interface::Web::QueryBuilder;
 use RT::Interface::Web::QueryBuilder::Tree;
 
+$ARGS{SavedChartSearchId} ||= 'new';
+
 my $title = loc("Query Builder");
 
 my %query;
@@ -291,7 +295,7 @@ $session{'CurrentSearchHash'} = {
 # {{{ Show the results, if we were asked.
 
 if ( $ARGS{'DoSearch'} ) {
-    $m->comp( 'Results.html', %query );
+    $m->comp( 'Results.html', %query, SavedChartSearchId => $ARGS{'SavedChartSearchId'}, );
     $m->comp( '/Elements/Footer' );
     $m->abort;
 }
diff --git a/share/html/Search/Bulk.html b/share/html/Search/Bulk.html
index e11bdba..a0638c1 100755
--- a/share/html/Search/Bulk.html
+++ b/share/html/Search/Bulk.html
@@ -54,11 +54,13 @@
     Rows => $Rows,
     OrderBy => $OrderBy,
     Order => $Order,
-    SavedSearchId => $SavedSearchId &>
+    SavedSearchId => $SavedSearchId,
+    SavedChartSearchId => $SavedChartSearchId,
+    &>
 
 <& /Elements/ListActions, actions => \@results &>
 <form method="post" action="<% RT->Config->Get('WebPath') %>/Search/Bulk.html" enctype="multipart/form-data">
-% foreach my $var qw(Query Format OrderBy Order Rows Page) {
+% foreach my $var qw(Query Format OrderBy Order Rows Page SavedChartSearchId) {
 <input type="hidden" class="hidden" name="<%$var%>" value="<%$ARGS{$var} || ''%>" />
 %}
 <& /Elements/CollectionList, 
@@ -440,4 +442,5 @@ $Order => 'ASC'
 $OrderBy => 'id'
 $Query => undef
 $SavedSearchId => undef
+$SavedChartSearchId => undef
 </%args>
diff --git a/share/html/Search/Chart.html b/share/html/Search/Chart.html
index a3f8e9b..fb9f45c 100644
--- a/share/html/Search/Chart.html
+++ b/share/html/Search/Chart.html
@@ -80,7 +80,8 @@ my @actions = $m->comp( '/Widgets/SavedSearch:process', args => \%ARGS, self =>
 
 </%init>
 <& /Elements/Header, Title => $title &>
-<& /Ticket/Elements/Tabs, Title => $title, Query => $ARGS{Query}, &>
+<& /Ticket/Elements/Tabs, Title => $title, Query => $ARGS{Query},
+    SavedChartSearchId => $saved_search->{SearchId} &>
 <& /Elements/ListActions, actions => \@actions &>
 <& /Search/Elements/Chart, %ARGS &>
 
@@ -88,6 +89,7 @@ my @actions = $m->comp( '/Widgets/SavedSearch:process', args => \%ARGS, self =>
 <&| /Widgets/TitleBox, title => loc('Graph Properties')&>
 <form method="get" action="<%RT->Config->Get('WebPath')%>/Search/Chart.html">
 <input type="hidden" class="hidden" name="Query" value="<% $ARGS{Query} %>" />
+<input type="hidden" class="hidden" name="SavedChartSearchId" value="<% $saved_search->{SearchId} || 'new' %>" />
 <&|/l, $m->scomp('Elements/SelectChartType', Name => 'ChartStyle', Default => $ChartStyle), $m->scomp('Elements/SelectGroupBy', Name => 'PrimaryGroupBy', Query => $ARGS{Query}, Default => $PrimaryGroupBy) 
 &>[_1] chart by [_2]</&><input type="submit" class="button" value="<%loc('Update Graph')%>" />
 </form>
diff --git a/share/html/Search/Edit.html b/share/html/Search/Edit.html
index eb6d610..e3e2da2 100755
--- a/share/html/Search/Edit.html
+++ b/share/html/Search/Edit.html
@@ -55,12 +55,14 @@
     OrderBy => $OrderBy,
     Order   => $Order,
     SavedSearchId => $SavedSearchId,
+    SavedChartSearchId => $SavedChartSearchId,
 &>
 
 <& Elements/NewListActions, actions => \@actions &>
 
 <form method="post" action="Build.html">
 <input type="hidden" class="hidden" name="SavedSearchId" value="<% $SavedSearchId %>" />
+<input type="hidden" class="hidden" name="SavedChartSearchId" value="<% $SavedChartSearchId %>" />
 <&|/Widgets/TitleBox, title => loc('Query'), &>
 <textarea name="Query" rows="8" cols="72"><% $Query %></textarea>
 </&>
@@ -86,7 +88,7 @@ my $QueryString = $m->comp('/Elements/QueryString',
 
 <%ARGS>
 $SavedSearchId => 'new'
-
+$SavedChartSearchId => 'new'
 $Query         => ''
 $Format        => ''
 $Rows          => '50'
diff --git a/share/html/Search/Elements/EditSearches b/share/html/Search/Elements/EditSearches
index 0920107..2122fb9 100644
--- a/share/html/Search/Elements/EditSearches
+++ b/share/html/Search/Elements/EditSearches
@@ -143,7 +143,8 @@ $SavedSearch => {}
 </%ARGS>
 <%INIT>
 
-$SavedSearch->{'Id'}          = $ARGS{'SavedSearchId'}          || 'new';
+$SavedSearch->{'Id'}          = ( $ARGS{Type} && $ARGS{Type} eq 'Chart' ?
+$ARGS{'SavedChartSearchId'} : $ARGS{'SavedSearchId'} ) || 'new';
 $SavedSearch->{'Description'} = $ARGS{'SavedSearchDescription'} || undef;
 $SavedSearch->{'Privacy'}     = $ARGS{'SavedSearchOwner'}       || undef;
 
diff --git a/share/html/Search/Results.html b/share/html/Search/Results.html
index 3d12b69..13252ee 100755
--- a/share/html/Search/Results.html
+++ b/share/html/Search/Results.html
@@ -57,7 +57,9 @@
     Rows => $Rows,
     OrderBy => $OrderBy,
     Order => $Order,
-    SavedSearchId => $SavedSearchId &>
+    SavedSearchId => $SavedSearchId,
+    SavedChartSearchId => $SavedChartSearchId,
+    &>
 <& /Elements/CollectionList, 
     Query => $Query,
     AllowSorting => 1,
@@ -70,7 +72,7 @@
     BaseURL => $BaseURL
 
    &>
-% my %hiddens = (Query => $Query, Format => $Format, Rows => $Rows, OrderBy => $OrderBy, Order => $Order, HideResults => $HideResults, Page => $Page );
+% my %hiddens = (Query => $Query, Format => $Format, Rows => $Rows, OrderBy => $OrderBy, Order => $Order, HideResults => $HideResults, Page => $Page, SavedChartSearchId => $SavedChartSearchId );
 <div align="right" class="refresh">
 <form method="get" action="<%RT->Config->Get('WebPath')%>/Search/Results.html">
 % foreach my $key (keys(%hiddens)) {
@@ -195,4 +197,5 @@ $Page => 1
 $OrderBy => undef
 $Order => undef
 $SavedSearchId => undef
+$SavedChartSearchId => undef
 </%ARGS>
diff --git a/share/html/Ticket/Elements/Tabs b/share/html/Ticket/Elements/Tabs
index 83d9382..7deb8c1 100755
--- a/share/html/Ticket/Elements/Tabs
+++ b/share/html/Ticket/Elements/Tabs
@@ -247,12 +247,13 @@ my $has_query = '';
 my %query_args;
 my $search_id = $ARGS{'SavedSearchId'}
             || $session{'CurrentSearchHash'}->{'SearchId'} || '';
+my $chart_search_id = $ARGS{'SavedChartSearchId'} || '';
 
 $has_query = 1 if ( $ARGS{'Query'} or $session{'CurrentSearchHash'}->{'Query'} );
   
 %query_args = (
-
         SavedSearchId => ($search_id eq 'new') ? undef : $search_id,
+        SavedChartSearchId => $chart_search_id,
         Query  => $ARGS{'Query'}  || $session{'CurrentSearchHash'}->{'Query'},
         Format => $ARGS{'Format'} || $session{'CurrentSearchHash'}->{'Format'},
         OrderBy => $ARGS{'OrderBy'}
diff --git a/share/html/Widgets/SavedSearch b/share/html/Widgets/SavedSearch
index 784cf65..a8cb3dd 100644
--- a/share/html/Widgets/SavedSearch
+++ b/share/html/Widgets/SavedSearch
@@ -59,15 +59,25 @@ my @Objects = RT::SavedSearches->new( $session{CurrentUser} )->_PrivacyObjects;
 push @Objects, RT::System->new($session{'CurrentUser'})
     if $session{'CurrentUser'}->HasRight( Object=> $RT::System,
                                           Right => 'SuperUser' );
-$self->{SearchId} ||= 'new';
+$self->{SearchId} ||= $args->{'SavedChartSearchId'} || 'new';
+
 my $SearchParams = { map { $_ => $args->{$_} } @{$self->{SearchFields}} };
 
-if ( my ( $container_object, $search_id ) = _parse_saved_search( $args->{'SavedSearchLoad'} ) ) {
+if ( my ( $container_object, $search_id ) = _parse_saved_search(
+            $args->{'SavedSearchLoad'} || $args->{'SavedChartSearchId'} ) ) {
     my $search = $container_object->Attributes->WithId($search_id);
     # We have a $search and now; import the others
-    $self->{SearchId} = $args->{'SavedSearchLoad'};
+    $self->{SearchId} = $args->{'SavedSearchLoad'} ||
+        $args->{'SavedChartSearchId'};
     $self->{CurrentSearch}{Object} = $search;
-    $args->{$_} = $search->SubValue($_) for @{ $self->{SearchFields} };
+    for ( @{ $self->{SearchFields} } ) {
+        # we may updated Query
+        next if $_ eq 'Query' && ! $args->{'SavedSearchLoad'};
+
+        $args->{$_} = $search->SubValue($_) 
+    }
+    $args->{SavedChartSearchId} = $args->{'SavedSearchLoad'}
+        if $args->{'SavedSearchLoad'};
 # saved search in /Search/Chart.html is different from /Search/Build.html
 # the former is of type 'Chart', while the latter is of type 'Ticket'.
 # After loading a saved search from the former after loading one from the
@@ -99,7 +109,8 @@ if ( $args->{SavedSearchSave} ) {
     if ( my $search = $self->{CurrentSearch}{Object} ) {
         # rename
         $search->SetDescription( $args->{SavedSearchDescription} );
-	push @actions, loc( '[_1] [_2] renamed to [_3].', loc($self->{SearchType}), $self->{CurrentSearch}{Description}, $args->{SavedSearchDescription} );
+        $search->SetSubValues( Query => $args->{Query} );
+	    push @actions, loc( '[_1] [_2] updated.', loc($self->{SearchType}), $args->{SavedSearchDescription} );
     }
     else {
         # new saved search
@@ -111,7 +122,10 @@ if ( $args->{SavedSearchSave} ) {
             SearchParams => $SearchParams
         );
         if ($ok) {
-	    $self->{CurrentSearch}{Object} = $saved_search->{Attribute};
+	        $self->{CurrentSearch}{Object} = $saved_search->{Attribute};
+            $self->{SearchId} = $args->{SavedChartSearchId} = 'RT::User-' .
+                $session{CurrentUser}->id . '-SavedSearch-' .
+                $saved_search->Id;
             push @actions, loc( '[_1] [_2] saved.', loc($self->{SearchType}), $args->{SavedSearchDescription} );
         } else {
             push @actions,
@@ -125,7 +139,7 @@ if ( $args->{SavedSearchDelete} && $self->{CurrentSearch}{Object} ) {
     push @actions, $ok ? loc( '[_1] [_2] deleted.', loc($self->{SearchType}), $self->{CurrentSearch}{Object}->Description ) : $msg;
     delete $self->{CurrentSearch}{Object};
     delete $self->{SearchId};
-
+    delete $args->{SavedChartSearchId};
 }
 
 $self->{CurrentSearch}{Description} = $self->{CurrentSearch}{Object}->Description
@@ -143,11 +157,14 @@ $args
 <%method show>
 <form method="post" action="<% $Action %>" name="SaveSearch">
 <& /Search/Elements/EditSearches,
-    Id            => $self->{SearchId},
+    Id            => $self->{SearchId} || 'new',
     Type          => $self->{SearchType},
     CurrentSearch => $self->{CurrentSearch},
     Title         => $Title,
     AllowCopy     => 0,
+    $self->{CurrentSearch}{Object} ? 
+    ( Object        => $self->{CurrentSearch}{Object},
+    Description   => $self->{CurrentSearch}{Object}->Description, ) : (),
 &><br />
 <%PERL>
 foreach my $field ( @{$self->{SearchFields}} ) {
@@ -160,6 +177,7 @@ foreach my $field ( @{$self->{SearchFields}} ) {
 <input type="hidden" class="hidden" name="<% $field %>" value="<% $value %>" />
 %   }
 % }
+<input type="hidden" class="hidden" name="SavedChartSearchId" value="<% $self->{SearchId} || 'new'  %>" />
 </form>
 <%ARGS>
 $self   => undef

-----------------------------------------------------------------------


More information about the Rt-commit mailing list