[freeside-commits] freeside/rt/share/html/Elements SavedSearches, NONE, 1.1

Mark Wells mark at wavetail.420.am
Thu Jan 20 16:35:54 PST 2011


Update of /home/cvs/cvsroot/freeside/rt/share/html/Elements
In directory wavetail.420.am:/tmp/cvs-serv10902/share/html/Elements

Added Files:
	SavedSearches 
Log Message:
interface to view/edit saved searches, RT#10746

--- NEW FILE: SavedSearches ---
<& /Elements/ListActions, actions => \@results &>
<table width="100%"><tr>
% foreach my $type ('Ticket', 'Chart') {
<td width="50%">
<&|/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{<a href="__WebPath__/$resultpath?__ResultsURL__">__Name__</a>/TITLE:$title},
%       '__Query__',
%       qq{<a href="__WebPath__/Search/Build.html?SavedSearchLoad=$oid">[Edit]</a>&nbsp;} . 
%       qq{<a href="$uri?Delete=$oid">[Delete]</a>/TITLE:},
%     );
%     my $format = join(',', map { "'$_'" } @cols);
<& /Elements/CollectionList,
    %ARGS,
    Class => 'RT::SavedSearch',
    Format => $format,
    Collection => $SavedSearches,
    PassArguments => [qw(Format Name id)],
&>
%   } #foreach $Object
</&>
</td>
% } #foreach $type
</tr></table>
<%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',
);
</%init>
<%ARGS>
$user_attrs => undef
$Delete => undef
</%ARGS>



More information about the freeside-commits mailing list