<& /Elements/ListActions, actions => \@results &> % foreach my $type ('Ticket', 'Chart') { % } #foreach $type
<&|/Widgets/TitleBox, title => loc('Saved '.$titles{$type}) &> % foreach my $Object (@Objects) { % $SavedSearches = RT::SavedSearches->new($session{CurrentUser}); % $SavedSearches->LimitToPrivacy(join('-',ref($Object),$Object->Id), $type); % my $title = $titles{$type}; % if (ref $Object eq 'RT::User' && $Object->Id == $session{CurrentUser}->Id) { % $title = loc("My saved ".lc($title)); % } else { % $title = loc("[_1]'s saved ".lc($title),$Object->Name); % } % $title = $m->interp->apply_escapes($title, 'h'); % % my $oid = join('-', ref($Object), $Object->Id, 'SavedSearch', '__id__'); % my $resultpath = $paths{$type}; % my @cols = ( % qq{__Name__/TITLE:$title}, % '__Query__', % qq{[Edit] } . % qq{[Delete]/TITLE:}, % ); % my $format = join(',', map { "'$_'" } @cols); <& /Elements/CollectionList, %ARGS, Class => 'RT::SavedSearch', Format => $format, Collection => $SavedSearches, PassArguments => [qw(Format Name id)], &> % } #foreach $Object
<%init> my @Objects; my $SavedSearches = RT::SavedSearches->new($session{'CurrentUser'}); push @Objects, $SavedSearches->_PrivacyObjects; push @Objects, RT::System->new( $session{'CurrentUser'} ) if $session{'CurrentUser'}->HasRight( Object=> $RT::System, Right => 'SuperUser' ); my $uri = '__WebPath__'.$m->request_path; my @results; if ( $Delete =~ /(.*)-SavedSearch-(\d+)/) { my ($privacy, $id) = ($1, $2); my $record = RT::SavedSearch->new($session{'CurrentUser'}); $record->Load($privacy, $id); if ( $record->Id ) { my ($status, $msg) = $record->Delete; push @results, $msg; } else { push @results, "Saved search #$Delete not found"; } } my %titles = ( 'Ticket' => 'Searches', 'Chart' => 'Charts' ); my %paths = ( 'Ticket' => 'Search/Results.html', 'Chart' => 'Search/Chart.html', ); <%ARGS> $user_attrs => undef $Delete => undef