X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Flib%2FRT%2FKeywords.pm;fp=rt%2Flib%2FRT%2FKeywords.pm;h=a9ecda2bcd348ee3e1af7a3fd71e6d15af6010fc;hp=0000000000000000000000000000000000000000;hb=3ef62a0570055da710328937e7f65dbb2c027c62;hpb=030438c9cb1c12ccb79130979ef0922097b4311a diff --git a/rt/lib/RT/Keywords.pm b/rt/lib/RT/Keywords.pm new file mode 100644 index 000000000..a9ecda2bc --- /dev/null +++ b/rt/lib/RT/Keywords.pm @@ -0,0 +1,106 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/Keywords.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + +=head1 NAME + + RT::Keywords - a collection of RT::Keyword objects + +=head1 SYNOPSIS + + use RT::Keywords; + my $keywords = RT::Keywords->new($user); + $keywords->LimitToParent(0); + while my ($keyword = $keywords->Next()) { + print $keyword->Name ."\n"; + } + + +=head1 DESCRIPTION + + +=head1 METHODS + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Keywords); + +=end testing + +=cut + +package RT::Keywords; + +use strict; +use vars qw( @ISA ); +use RT::EasySearch; +use RT::Keyword; + +@ISA = qw( RT::EasySearch ); + + +# {{{ sub _Init + +sub _Init { + my $self = shift; + $self->{'table'} = 'Keywords'; + $self->{'primary_key'} = 'id'; + + # By default, order by name + $self->OrderBy( ALIAS => 'main', + FIELD => 'Name', + ORDER => 'ASC'); + + return ($self->SUPER::_Init(@_)); +} +# }}} + +# {{{ sub _DoSearch + +=head2 _DoSearch + + A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled rows never get seen unless +we're explicitly trying to see them. + +=cut + +sub _DoSearch { + my $self = shift; + + #unless we really want to find disabled rows, make sure we\'re only finding enabled ones. + unless($self->{'find_disabled_rows'}) { + $self->LimitToEnabled(); + } + + return($self->SUPER::_DoSearch(@_)); + +} + +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + return (RT::Keyword->new($self->CurrentUser)); +} +# }}} + +# {{{ sub LimitToParent + +=head2 LimitToParent + +Takes a parent id and limits the returned keywords to children of that parent. + +=cut + +sub LimitToParent { + my $self = shift; + my $parent = shift; + $self->Limit( FIELD => 'Parent', + VALUE => $parent, + OPERATOR => '=', + ENTRYAGGREGATOR => 'OR' ); +} +# }}} + +1; +