[rt-devel] [fsck.com #438] rt --limit-keyword=[!]<keyword_select>/<keyword>
Jesse Vincent
jesse at bestpractical.com
Tue Feb 26 02:13:01 EST 2002
Thanks! this will be in 2.0.12pre um. whatever the next prerelease is ;) Thanks.
On Tue, Feb 26, 2002 at 12:12:45PM +1000, Byron Ellacott wrote:
> Attached is a patch to enable limiting by keyword in the CLI.
>
> Works by applying the limit to the most recently specified queue limit,
> eg:
>
> rt --summary --limit-queue=myqueue --limit-keyword=select/keyword
>
> --
> bje
> Index: rt
> ===================================================================
> RCS file: /usr/local/cvs/fsck/rt2/bin/rt,v
> retrieving revision 1.1.1.1
> diff -c -4 -r1.1.1.1 rt
> *** rt 2002/01/10 05:51:48 1.1.1.1
> --- rt 2002/02/26 02:06:24
> ***************
> *** 53,60 ****
> --- 53,61 ----
> @limit_memberof,
> @limit_hasmember,
> @limit_refersto,
> @limit_referredtoby,
> + @limit_keyword,
>
> @limit_due,
> @limit_starts,
> @limit_started,
> ***************
> *** 112,119 ****
> --- 113,121 ----
> "limit-body=s", \@limit_body,
> "limit-created=s" => \@limit_created,
> "limit-due=s" => \@limit_due,
> "limit-last-updated=s" => \@limit_lastupdated,
> + "limit-keyword=s" => \@limit_keyword,
>
> "limit-member-of=s" => \@limit_memberof,
> "limit-has-member=s" => \@limit_hasmember,
> "limit-depended-on-by=s" => \@limit_dependedonby,
> ***************
> *** 189,196 ****
> --- 191,199 ----
> starts is less than ends
> --limit-requestor=[!]<userid>|<email>
> --limit-subject=[!]<text>
> --limit-body=[!]<text>
> + --limit-keyword=[!]<select>/<keyword>
>
> Links
> --limit-member-of=<ticketid>
> --limit-has-member=<ticketid>
> ***************
> *** 382,389 ****
> --- 385,393 ----
> my $Tickets = new RT::Tickets($CurrentUser);
>
> # {{{ Limit our search
> my $value; #to use when iterating through restrictions
> + my $queue_id; #to use when limiting by keyword
>
> # {{{ limit on id
>
> foreach $value (@id) {
> ***************
> *** 441,450 ****
> --- 445,486 ----
> }
> $RT::Logger->debug ("Limiting queue to $op ".$queue_obj->Name);
> $Tickets->LimitQueue(VALUE => $queue_obj->Name,
> OPERATOR => $op);
> + $queue_id=$queue_obj->id;
> }
> }
> +
> + # {{{ limit on keyword
> + foreach $value (@limit_keyword) {
> + if ($value =~ /^(\W?)(.*?)\/(.*)$/i) {
> + my $op = $1;
> + my $select = $2;
> + my $keyword = $3;
> +
> + $op = ParseBooleanOp($op);
> +
> + # load the keyword select
> + my $keyselect = RT::KeywordSelect->new($RT::SystemUser);
> + unless ($keyselect->LoadByName(Name=>$select, Queue=>$queue_id)) {
> + $RT::Logger->debug("KeywordSelect '$select' not found");
> + print STDERR "KeywordSelect '$select' not fount\n";
> + exit(-1);
> + }
> +
> + # load the keyword
> + my $k = RT::Keyword->new($RT::SystemUser);
> + unless ($k->LoadByNameAndParentId($keyword, $keyselect->Keyword)) {
> + $RT::Logger->debug("Keyword '$keyword' not found");
> + print STDERR "Keyword '$keyword' not found\n";
> + exit(-1);
> + }
> + $Tickets->LimitKeyword(OPERATOR => $op,
> + KEYWORDSELECT => $keyselect->id,
> + KEYWORD => $k->id);
> + $RT::Logger->debug ("Limiting keyword to $op ".$k->Path);
> + }
> + }
> # }}}
> # {{{ limit on owner
> foreach $value (@limit_owner) {
> if ($value =~ /^(\W?)(.*?)$/i) {
--
http://www.bestpractical.com/products/rt -- Trouble Ticketing. Free.
More information about the Rt-devel
mailing list