import rt 3.2.2
[freeside.git] / rt / lib / RT / CustomFields_Overlay.pm
1 # {{{ BEGIN BPS TAGGED BLOCK
2
3 # COPYRIGHT:
4 #  
5 # This software is Copyright (c) 1996-2004 Best Practical Solutions, LLC 
6 #                                          <jesse@bestpractical.com>
7
8 # (Except where explicitly superseded by other copyright notices)
9
10
11 # LICENSE:
12
13 # This work is made available to you under the terms of Version 2 of
14 # the GNU General Public License. A copy of that license should have
15 # been provided with this software, but in any event can be snarfed
16 # from www.gnu.org.
17
18 # This work is distributed in the hope that it will be useful, but
19 # WITHOUT ANY WARRANTY; without even the implied warranty of
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21 # General Public License for more details.
22
23 # You should have received a copy of the GNU General Public License
24 # along with this program; if not, write to the Free Software
25 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26
27
28 # CONTRIBUTION SUBMISSION POLICY:
29
30 # (The following paragraph is not intended to limit the rights granted
31 # to you to modify and distribute this software under the terms of
32 # the GNU General Public License and is only of importance to you if
33 # you choose to contribute your changes and enhancements to the
34 # community by submitting them to Best Practical Solutions, LLC.)
35
36 # By intentionally submitting any modifications, corrections or
37 # derivatives to this work, or any other work intended for use with
38 # Request Tracker, to Best Practical Solutions, LLC, you confirm that
39 # you are the copyright holder for those contributions and you grant
40 # Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
41 # royalty-free, perpetual, license to use, copy, create derivative
42 # works based on those contributions, and sublicense and distribute
43 # those contributions and any derivatives thereof.
44
45 # }}} END BPS TAGGED BLOCK
46 =head1 NAME
47
48   RT::CustomFields - a collection of RT CustomField objects
49
50 =head1 SYNOPSIS
51
52   use RT::CustomFields;
53
54 =head1 DESCRIPTION
55
56 =head1 METHODS
57
58
59 =begin testing
60
61 ok (require RT::CustomFields);
62
63 =end testing
64
65 =cut
66
67 use strict;
68 no warnings qw(redefine);
69
70
71 # {{{ sub LimitToGlobalOrQueue 
72
73 =item LimitToGlobalOrQueue QUEUEID
74
75 Limits the set of custom fields found to global custom fields or those tied to the queue with ID QUEUEID 
76
77 =cut
78
79 sub LimitToGlobalOrQueue {
80     my $self = shift;
81     my $queue = shift;
82     $self->LimitToQueue($queue);
83     $self->LimitToGlobal();
84 }
85
86 # }}}
87
88 # {{{ sub LimitToQueue 
89
90 =head2 LimitToQueue QUEUEID
91
92 Takes a queue id (numerical) as its only argument. Makes sure that 
93 Scopes it pulls out apply to this queue (or another that you've selected with
94 another call to this method
95
96 =cut
97
98 sub LimitToQueue  {
99    my $self = shift;
100   my $queue = shift;
101  
102   $self->Limit (ENTRYAGGREGATOR => 'OR',
103                 FIELD => 'Queue',
104                 VALUE => "$queue")
105       if defined $queue;
106   
107 }
108 # }}}
109
110 # {{{ sub LimitToGlobal
111
112 =head2 LimitToGlobal
113
114 Makes sure that 
115 Scopes it pulls out apply to all queues (or another that you've selected with
116 another call to this method or LimitToQueue
117
118 =cut
119
120
121 sub LimitToGlobal  {
122    my $self = shift;
123  
124   $self->Limit (ENTRYAGGREGATOR => 'OR',
125                 FIELD => 'Queue',
126                 VALUE => 0);
127   
128 }
129 # }}}
130
131
132 # {{{ sub _DoSearch 
133
134 =head2 _DoSearch
135
136   A subclass of DBIx::SearchBuilder::_DoSearch that makes sure that _Disabled ro
137 ws never get seen unless
138 we're explicitly trying to see them.
139
140 =cut
141
142 sub _DoSearch {
143     my $self = shift;
144     
145     #unless we really want to find disabled rows, make sure we\'re only finding enabled ones.
146     unless($self->{'find_disabled_rows'}) {
147         $self->LimitToEnabled();
148     }
149     
150     return($self->SUPER::_DoSearch(@_));
151     
152 }
153
154 # }}}
155   
156 1;
157