diff options
Diffstat (limited to 'rt/lib/RT/KeywordSelects.pm')
-rw-r--r-- | rt/lib/RT/KeywordSelects.pm | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/rt/lib/RT/KeywordSelects.pm b/rt/lib/RT/KeywordSelects.pm new file mode 100644 index 000000000..c220b39f9 --- /dev/null +++ b/rt/lib/RT/KeywordSelects.pm @@ -0,0 +1,143 @@ +#$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Attic/KeywordSelects.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $ + + + +=begin testing + +ok (require RT::TestHarness); +ok (require RT::Scrip); + +=end testing + +=cut + + +package RT::KeywordSelects; + +use strict; +use vars qw( @ISA ); +use RT::EasySearch; +use RT::KeywordSelect; + +@ISA = qw( RT::EasySearch ); + +# {{{ _Init +sub _Init { + my $self = shift; + $self->{'table'} = 'KeywordSelects'; + $self->{'primary_key'} = 'id'; + 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 LimitToQueue +=head2 LimitToQueue + +Takes a queue id. Limits the returned set to KeywordSelects for that queue. +Repeated calls will be OR'd together. + +=cut + +sub LimitToQueue { + my $self = shift; + my $queue = shift; + + $self->Limit( FIELD => 'ObjectValue', + VALUE => $queue, + OPERATOR => '=', + ENTRYAGGREGATOR => 'OR' + ); + + $self->Limit( FIELD => 'ObjectType', + VALUE => 'Ticket', + OPERATOR => '='); + + $self->Limit( FIELD => 'ObjectField', + VALUE => 'Queue', + OPERATOR => '='); + + +} +# }}} + +# {{{ sub LimitToGlobals + +=head2 LimitToGlobals + +Limits the returned set to KeywordSelects for all queues. +Repeated calls will be OR'd together. + +=cut + +sub LimitToGlobals { + my $self = shift; + + $self->Limit( FIELD => 'ObjectType', + VALUE => 'Ticket', + OPERATOR => '='); + + $self->Limit( FIELD => 'ObjectField', + VALUE => 'Queue', + OPERATOR => '='); + + $self->Limit( FIELD => 'ObjectValue', + VALUE => '0', + OPERATOR => '=', + ENTRYAGGREGATOR => 'OR' + ); + +} +# }}} + +# {{{ sub IncludeGlobals +=head2 IncludeGlobals + +Include KeywordSelects which apply globally in the set of returned results + +=cut + + +sub IncludeGlobals { + my $self = shift; + $self->Limit( FIELD => 'ObjectValue', + VALUE => '0', + OPERATOR => '=', + ENTRYAGGREGATOR => 'OR' + ); + + +} +# }}} + +# {{{ sub NewItem +sub NewItem { + my $self = shift; + #my $Handle = shift; + return (new RT::KeywordSelect($self->CurrentUser)); +} +# }}} +1; + |