diff options
Diffstat (limited to 'rt/lib/RT/Watchers.pm')
-rwxr-xr-x | rt/lib/RT/Watchers.pm | 226 |
1 files changed, 0 insertions, 226 deletions
diff --git a/rt/lib/RT/Watchers.pm b/rt/lib/RT/Watchers.pm deleted file mode 100755 index c55adda3f..000000000 --- a/rt/lib/RT/Watchers.pm +++ /dev/null @@ -1,226 +0,0 @@ -# $Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/Watchers.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ -# (c) 1996-2000 Jesse Vincent <jesse@fsck.com> -# This software is redistributable under the terms of the GNU GPL - -=head1 NAME - - RT::Watchers - Collection of RT Watcher objects - -=head1 SYNOPSIS - - use RT::Watchers; - my $watchers = new RT::Watchers($CurrentUser); - while (my $watcher = $watchers->Next()) { - print $watcher->Id . "is a watcher"; - } - -=head1 DESCRIPTION - -This module should never be called directly by client code. it's an internal module which -should only be accessed through exported APIs in Ticket, Queue and other similar objects. - - -=head1 METHODS - -=begin testing - -ok(require RT::TestHarness); -ok(require RT::Watchers); - -=end testing - -=cut - -package RT::Watchers; - -use strict; -use vars qw( @ISA ); - - -require RT::EasySearch; -require RT::Watcher; -@ISA= qw(RT::EasySearch); - - -# {{{ sub _Init -sub _Init { - my $self = shift; - - $self->{'table'} = "Watchers"; - $self->{'primary_key'} = "id"; - return($self->SUPER::_Init(@_)); -} -# }}} - -# {{{ sub Limit - -=head2 Limit - - A wrapper around RT::EasySearch::Limit which sets -the default entry aggregator to 'AND' - -=cut - -sub Limit { - my $self = shift; - my %args = ( ENTRYAGGREGATOR => 'AND', - @_); - - $self->SUPER::Limit(%args); -} -# }}} - -# {{{ sub LimitToTicket - -=head2 LimitToTicket - -Takes a single arg which is a ticket id -Limits to watchers of that ticket - -=cut - -sub LimitToTicket { - my $self = shift; - my $ticket = shift; - $self->Limit( ENTRYAGGREGATOR => 'OR', - FIELD => 'Value', - VALUE => $ticket); - $self->Limit (ENTRYAGGREGATOR => 'AND', - FIELD => 'Scope', - VALUE => 'Ticket'); -} -# }}} - -# {{{ sub LimitToQueue - -=head2 LimitToQueue - -Takes a single arg, which is a queue id -Limits to watchers of that queue. - -=cut - -sub LimitToQueue { - my $self = shift; - my $queue = shift; - $self->Limit (ENTRYAGGREGATOR => 'OR', - FIELD => 'Value', - VALUE => $queue); - $self->Limit (ENTRYAGGREGATOR => 'AND', - FIELD => 'Scope', - VALUE => 'Queue'); -} -# }}} - -# {{{ sub LimitToType - -=head2 LimitToType - -Takes a single string as its argument. That string is a watcher type -which is one of 'Requestor', 'Cc' or 'AdminCc' -Limits to watchers of that type - -=cut - - -sub LimitToType { - my $self = shift; - my $type = shift; - $self->Limit(FIELD => 'Type', - VALUE => "$type"); -} -# }}} - -# {{{ sub LimitToRequestors - -=head2 LimitToRequestors - -Limits to watchers of type 'Requestor' - -=cut - -sub LimitToRequestors { - my $self = shift; - $self->LimitToType("Requestor"); -} -# }}} - -# {{{ sub LimitToCc - -=head2 LimitToCc - -Limits to watchers of type 'Cc' - -=cut - -sub LimitToCc { - my $self = shift; - $self->LimitToType("Cc"); -} -# }}} - -# {{{ sub LimitToAdminCc - -=head2 LimitToAdminCc - -Limits to watchers of type AdminCc - -=cut - -sub LimitToAdminCc { - my $self = shift; - $self->LimitToType("AdminCc"); -} -# }}} - -# {{{ sub Emails - -=head2 Emails - -# Return a (reference to a) list of emails - -=cut - -sub Emails { - my $self = shift; - my @list; # List is a list of watcher email addresses - - # $watcher is an RT::Watcher object - while (my $watcher=$self->Next()) { - push(@list, $watcher->Email); - } - return \@list; -} -# }}} - -# {{{ sub EmailsAsString - -=head2 EmailsAsString - -# Returns the RT::Watchers->Emails as a comma seperated string - -=cut - -sub EmailsAsString { - my $self = shift; - return(join(", ",@{$self->Emails})); -} -# }}} - -# {{{ sub NewItem - - - -sub NewItem { - my $self = shift; - - use RT::Watcher; - my $item = new RT::Watcher($self->CurrentUser); - return($item); -} -# }}} -1; - - - - |