[Rt-commit] r11829 - rt/branches/3.8-TESTING/html/Search/Elements

ruz at bestpractical.com ruz at bestpractical.com
Tue Apr 22 19:40:38 EDT 2008


Author: ruz
Date: Tue Apr 22 19:40:34 2008
New Revision: 11829

Modified:
   rt/branches/3.8-TESTING/html/Search/Elements/EditSearches

Log:
* update html/Search/Elements/EditSearches with support
  for customizable list of SearchFields 

Modified: rt/branches/3.8-TESTING/html/Search/Elements/EditSearches
==============================================================================
--- rt/branches/3.8-TESTING/html/Search/Elements/EditSearches	(original)
+++ rt/branches/3.8-TESTING/html/Search/Elements/EditSearches	Tue Apr 22 19:40:34 2008
@@ -48,8 +48,7 @@
 <&| /Widgets/TitleBox, title => loc($Title)&>
 
 %# Hide all the save functionality if the user shouldn't see it.
-% if ($session{'CurrentUser'}->HasRight( Right => 'CreateSavedSearch',
-%                                        Object=> $RT::System )) {
+% if ( $can_modify ) {
 <&|/l&>Privacy:</&>
 % if ( $Object && $Object->id ) {
 <& SearchPrivacy, Object => $Object->Object &>
@@ -62,7 +61,7 @@
 
 % if ($Id ne 'new') {
 <nobr>
-% if ($Dirty) {
+% if ( $Dirty ) {
 <input type="submit" class="button" name="SavedSearchRevert" value="<%loc('Revert')%>" />
 % }
 <input type="submit" class="button" name="SavedSearchDelete" value="<%loc('Delete')%>" />
@@ -87,11 +86,9 @@
     Object => $RT::System,
 );
 
-# If we're modifying an old query, check if it's been changed
-my $Dirty = $m->comp(
-    'EditSearches:IsDirty',
-    Query => $CurrentSearch,
-    SavedSearch => { Id => $Id, Object => $Object, Description => $Description }
+my $can_modify = $session{'CurrentUser'}->HasRight(
+    Right  => 'CreateSavedSearch',
+    Object => $RT::System,
 );
 
 use RT::SavedSearches;
@@ -100,6 +97,31 @@
     if $session{'CurrentUser'}->HasRight( Object=> $RT::System,
                                           Right => 'SuperUser' );
 
+my $is_dirty = sub {
+    my %arg = (
+        Query       => {},
+        SavedSearch => {},
+        SearchFields => [qw(Query Format OrderBy Order RowsPerPage)],
+        @_
+    );
+
+    my $obj  = $arg{'SavedSearch'}->{'Object'};
+    return 0 unless $obj && $obj->id;
+
+    foreach( @{ $arg{'SearchFields'} } ) {
+        return 1 if $obj->SubValue( $_ ) ne $arg{'Query'}->{$_};
+    }
+
+    return 0;
+};
+
+# If we're modifying an old query, check if it's been changed
+my $Dirty = $is_dirty->(
+    Query       => $CurrentSearch,
+    SavedSearch => { Id => $Id, Object => $Object, Description => $Description },
+    SearchFields => \@SearchFields,
+);
+
 </%INIT>
 
 <%ARGS>
@@ -108,19 +130,19 @@
 $Type          => 'Ticket'
 $Description   => ''
 $CurrentSearch => {}
+ at SearchFields   => ()
 $AllowCopy     => 1
 $Title         => loc('Saved searches')
 </%ARGS>
 
 <%METHOD Init>
 <%ARGS>
-$Query   => {}
+$Query       => {}
 $SavedSearch => {}
+ at SearchFields => qw(Query Format OrderBy Order RowsPerPage)
 </%ARGS>
 <%INIT>
 
-my @FIELDS = qw(Query Format OrderBy Order RowsPerPage);
-
 $SavedSearch->{'Id'}          = $ARGS{'SavedSearchId'}          || 'new';
 $SavedSearch->{'Description'} = $ARGS{'SavedSearchDescription'} || '';
 
@@ -135,7 +157,7 @@
     $SavedSearch->{'Id'}          = $ARGS{'SavedSearchLoad'};
     $SavedSearch->{'Object'}      = $search;
     $SavedSearch->{'Description'} = $search->Description;
-    $Query->{$_} = $search->SubValue($_) foreach @FIELDS;
+    $Query->{$_} = $search->SubValue($_) foreach @SearchFields;
 }
 elsif ( $ARGS{'SavedSearchDelete'} ) {
     # We set $SearchId to 'new' above already, so peek into the %ARGS
@@ -220,22 +242,3 @@
 
 </%INIT>
 </%METHOD>
-
-<%METHOD IsDirty>
-<%ARGS>
-$Query   => {}
-$SavedSearch => {}
-</%ARGS>
-<%INIT>
-
-my $obj  = $SavedSearch->{'Object'};
-return 0 unless $obj && $obj->id;
-
-foreach( qw(Query Format OrderBy Order RowsPerPage) ) {
-    return 1 if $obj->SubValue( $_ ) ne $Query->{$_};
-}
-
-return 0;
-
-</%INIT>
-</%METHOD>


More information about the Rt-commit mailing list