import rt 2.0.14
[freeside.git] / rt / lib / RT / Links.pm
1 #$Header: /home/cvs/cvsroot/freeside/rt/lib/RT/Links.pm,v 1.1 2002-08-12 06:17:07 ivan Exp $
2
3 =head1 NAME
4
5   RT::Links - A collection of Link objects
6
7 =head1 SYNOPSIS
8
9   use RT::Links;
10   my $links = new RT::Links($CurrentUser);
11
12 =head1 DESCRIPTION
13
14
15 =head1 METHODS
16
17
18 =begin testing
19
20 ok (require RT::TestHarness);
21 ok (require RT::Links);
22
23 =end testing
24
25 =cut
26
27 package RT::Links;
28 use RT::EasySearch;
29 use RT::Link;
30
31 @ISA= qw(RT::EasySearch);
32
33 # {{{ sub _Init  
34 sub _Init   {
35   my $self = shift;
36  
37   $self->{'table'} = "Links";
38   $self->{'primary_key'} = "id";
39
40
41   return ( $self->SUPER::_Init(@_));
42 }
43 # }}}
44
45 # {{{ sub Limit 
46 sub Limit  {
47     my $self = shift;
48     my %args = ( ENTRYAGGREGATOR => 'AND',
49                  OPERATOR => '=',
50                  @_);
51     
52     #if someone's trying to search for tickets, try to resolve the uris for searching.
53     
54     if (  ( $args{'OPERATOR'} eq '=') and
55           ( $args{'FIELD'}  eq 'Base') or ($args{'FIELD'} eq 'Target')
56        ) {
57         my $dummy = $self->NewItem();
58           $uri = $dummy->CanonicalizeURI($args{'VALUE'});
59     }
60
61
62     # If we're limiting by target, order by base
63     # (Order by the thing that's changing)
64
65     if ( ($args{'FIELD'} eq 'Target') or 
66          ($args{'FIELD'} eq 'LocalTarget') ) {
67         $self->OrderBy (ALIAS => 'main',
68                         FIELD => 'Base',
69                         ORDER => 'ASC');
70     }
71     elsif ( ($args{'FIELD'} eq 'Base') or 
72             ($args{'FIELD'} eq 'LocalBase') ) {
73         $self->OrderBy (ALIAS => 'main',
74                         FIELD => 'Target',
75                         ORDER => 'ASC');
76     }
77     
78
79     $self->SUPER::Limit(%args);
80 }
81 # }}}
82
83 # {{{ sub NewItem 
84 sub NewItem  {
85     my $self = shift;
86     return(RT::Link->new($self->CurrentUser));
87 }
88 # }}}
89   1;
90