1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
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;
|