Matthew,
We do just what you want.
In file /opt/rt3/Callbacks/myCompany/Ticket/Elements/Tabs/Default :
<%init>
if ($Ticket) {
my $groups = $session{CurrentUser}->UserObj->OwnGroups();
$groups->Limit(FIELD => ‘Name’, VALUE => ‘CanMarkSpam’ );
if ( $groups->Count
|| $session{CurrentUser}->HasRight( Right => 'SuperUser',
Object => $RT::System )) {
$actions->{‘zz’} = { title => loc(‘Spam’),
path =>
‘Ticket/Display.html?Action=Spam&id=’.$Ticket->id };
}
}
</%init>
<%args>
$Ticket =>undef
$tabs => undef
$actions => undef
</%args>
And then we customize Display.html:
if (defined $ARGS{'Action'}) {
if ($ARGS{'Action'} =~ /^(Steal|Kill|Take|SetTold|Delete|Spam)$/) {
my $action = $1;
my ($res, $msg)=$TicketObj->$action();
push(@Actions, $msg);
}
}
And then in Ticket_Local.pm:
sub Spam {
my $self = shift;
$self->Reject();
my $requestors = $self->Requestors->UserMembersObj->ItemsArrayRef();
my ($rv, $msg);
for ( @$requestors ) {
$_->CurrentUser( $RT::SystemUser );
($rv, $msg) = $_->PrincipalObj->SetDisabled(1);
}
$RT::Logger->debug( $self->CurrentUser->UserObj->Name . ' marking
ticket ’ . $self->id . ’ as spam!’ );
return (1, ‘spammer disabled!’) if $rv;
}
-ToddOn 12/3/07, Matthew Ekstrand-Abueg mattea@rescomp.berkeley.edu wrote:
Dear RT Devel Group,
I am trying to create an additional button to quickly and easily mark something
as Spam in our current infrastructure (a Custom Field). For look and ease of
acccess, I wanted to put this in the header actions along with the following:
* Steal ··· Comment · Reply · Resolve
I would preferrably like to do this as a Callback if possible, but I can’t
figure out where I would add this, or even how the Callbacks work in terms of
which directory tree controls what (local/Callbacks vs local/html/Callbacks vs
local/share/html/Callbacks vs share/html/Callbacks ). Any help with
this would be greatly appreciated.
–
Matthew Ekstrand-Abueg
Systems Administrator
Network Infrastructure, RSSP-IT
UC Berkeley
List info: The rt-devel Archives
SAVE THOUSANDS OF DOLLARS ON RT SUPPORT:
If you sign up for a new RT support contract before December 31, we’ll take
up to 20 percent off the price. This sale won’t last long, so get in touch today.
Email us at sales@bestpractical.com or call us at +1 617 812 0745.