[Rt-commit] r5416 - in rt/branches/3.7-EXPERIMENTAL: . html/Admin/Tools/Shredder/Search html/Search/Elements

ruz at bestpractical.com ruz at bestpractical.com
Thu Jun 22 17:07:49 EDT 2006


Author: ruz
Date: Thu Jun 22 17:07:48 2006
New Revision: 5416

Added:
   rt/branches/3.7-EXPERIMENTAL/html/Admin/Tools/Shredder/Search/
   rt/branches/3.7-EXPERIMENTAL/html/Admin/Tools/Shredder/Search/index.html
Modified:
   rt/branches/3.7-EXPERIMENTAL/   (props changed)
   rt/branches/3.7-EXPERIMENTAL/html/Admin/Tools/Shredder/index.html
   rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/ResultViews

Log:
 r3301 at cubic-pc:  cubic | 2006-06-23 01:17:08 +0400
  r3300 at cubic-pc:  cubic | 2006-06-23 01:16:53 +0400
  * shredder link on the search results page
 


Added: rt/branches/3.7-EXPERIMENTAL/html/Admin/Tools/Shredder/Search/index.html
==============================================================================
--- (empty file)
+++ rt/branches/3.7-EXPERIMENTAL/html/Admin/Tools/Shredder/Search/index.html	Thu Jun 22 17:07:48 2006
@@ -0,0 +1,74 @@
+<%ARGS>
+$Query
+$Rows => 10
+$Page => 1
+$OrderBy => 'id'
+$Order   => 'ASC'
+
+$Wipeout => ''
+ at WipeoutObject => ()
+</%ARGS>
+<& /Admin/Elements/Header, Title => $title &>
+<& /Admin/Elements/ToolTabs,
+	current_tab => 'Admin/Tools/Shredder',
+	current_subtab => 'Admin/Tools/Shredder/Search',
+	Title => $title,
+&>
+<form id="shredder-search-form" action="<% $RT::WebPath %>/Admin/Tools/Shredder/Search/" method="GET">
+% foreach (qw(Query Rows Page OrderBy Order)) {
+<input type="hidden" name="<% $_ %>" value="<% $ARGS{$_} || '' %>" />
+% }
+<& /Elements/ListActions, actions => $messages{'Errors'} &>
+<& /Elements/ListActions, actions => $messages{'Success'} &>
+<& /Admin/Tools/Shredder/Elements/SelectObjects, Objects => \@objs &>
+</form>
+<%INIT>
+
+require RT::Shredder;
+my $title = loc('Wipeout found tickets');
+my %messages = ( Errors => [], Success => [] );
+
+my $objs = RT::Tickets->new( $session{'CurrentUser'} );
+$objs->FromSQL( $Query );
+$objs->RowsPerPage( $Rows );
+$objs->GotoPage( $Page );
+{
+    my @OrderBy = split /\|/, $OrderBy;
+    my @Order = split /\|/, $Order;
+    $objs->OrderByCols( map { { FIELD => $OrderBy[$_], ORDER => $Order[$_] } } ( 0 .. $#OrderBy ) );
+}
+my $catch_non_fatals = sub {
+    require RT::Shredder::Exceptions;
+    if ( my $e = RT::Shredder::Exception::Info->caught ) {
+        push @{ $messages{Errors} }, "$e";
+        $objs = undef;
+        return 1;
+    }
+    if ( UNIVERSAL::isa( $@, 'Class::Exception' ) ) {
+        $@->rethrow;
+    } else {
+        die $@;
+    }
+};
+
+if( $Wipeout ) {
+    { # use additional block({}) to effectively exit block on errors
+        my $shredder = new RT::Shredder( force => 1 );
+        my ($fn, $fh) = $shredder->SetFile;
+        push @{ $messages{'Success'} }, "SQL dump file is '$fn'";
+
+        $shredder->PutObjects( Objects => \@WipeoutObject );
+    	eval { $shredder->WipeoutAll };
+        $catch_non_fatals->() && last if $@;
+
+	    push @{ $messages{Success} }, 'objects were successfuly removed';
+    } 
+    $objs->RedoSearch;
+}
+
+my @objs;
+{
+    my $shredder = new RT::Shredder;
+    @objs = $shredder->CastObjectsToRecords( Objects => $objs );
+}
+</%INIT>

Modified: rt/branches/3.7-EXPERIMENTAL/html/Admin/Tools/Shredder/index.html
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Admin/Tools/Shredder/index.html	(original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Admin/Tools/Shredder/index.html	Thu Jun 22 17:07:48 2006
@@ -33,11 +33,16 @@
 
 my $catch_non_fatals = sub {
     require RT::Shredder::Exceptions;
-    die $@ unless my $e = RT::Shredder::Exception::Info->caught;
-
-    push @{ $messages{Errors} }, "$e";
-    $Search = ''; @objs = ();
-    return 1;
+    if ( my $e = RT::Shredder::Exception::Info->caught ) {
+        push @{ $messages{Errors} }, "$e";
+        $Search = ''; @objs = ();
+        return 1;
+    }
+    if ( UNIVERSAL::isa( $@, Class::Exception ) ) {
+        $@->rethrow;
+    } else {
+        die $@;
+    }
 };
 
 

Modified: rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/ResultViews
==============================================================================
--- rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/ResultViews	(original)
+++ rt/branches/3.7-EXPERIMENTAL/html/Search/Elements/ResultViews	Thu Jun 22 17:07:48 2006
@@ -23,3 +23,6 @@
 <&|/l, $m->scomp('SelectChartType', Name => 'ChartStyle') &>style: [_1]</&>
 <input type="submit" class="button" value="<%loc('Go')%>" />
 </form>
+% if ( $session{'CurrentUser'}->HasRight( Right => 'SuperUser', Object => $RT::System ) ) {
+<a href="<%$RT::WebPath%>/Admin/Tools/Shredder/Search/<%$QueryString%>"><&|/l&>Shredder...</&></a>
+% }


More information about the Rt-commit mailing list