Difference between revisions of "CustomActionQchange"

From Request Tracker Wiki
Jump to navigation Jump to search
(CustomActionQchange, new page.)
 
(formatting)
Line 7: Line 7:
==Code==
==Code==


# BEGIN BPS TAGGED BLOCK {{{
#
# COPYRIGHT:
#
# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
#                                          <sales@bestpractical.com>
#
# (Except where explicitly superseded by other copyright notices)
#
#
# LICENSE:
#
# This work is made available to you under the terms of Version 2 of
# the GNU General Public License. A copy of that license should have
# been provided with this software, but in any event can be snarfed
# from www.gnu.org.
#
# This work is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301 or visit their web page on the internet at
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
#
#
# CONTRIBUTION SUBMISSION POLICY:
#
# (The following paragraph is not intended to limit the rights granted
# to you to modify and distribute this software under the terms of
# the GNU General Public License and is only of importance to you if
# you choose to contribute your changes and enhancements to the
# community by submitting them to Best Practical Solutions, LLC.)
#
# By intentionally submitting any modifications, corrections or
# derivatives to this work, or any other work intended for use with
# Request Tracker, to Best Practical Solutions, LLC, you confirm that
# you are the copyright holder for those contributions and you grant
# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
# royalty-free, perpetual, license to use, copy, create derivative
# works based on those contributions, and sublicense and distribute
# those contributions and any derivatives thereof.
#
# END BPS TAGGED BLOCK }}}


<code># BEGIN BPS TAGGED BLOCK <nowiki>{{{</nowiki></code>


package RT::Action::QChange;
<code>#</code>


use strict;
<code># COPYRIGHT:</code>
use warnings;


use base qw(RT::Action::Notify);
<code>#</code>


use Email::Address;
<code># This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC</code>


=head1 Notify Owner or AdminCc
<code>#                                          <sales@bestpractical.com></code>


If the owner of this ticket is Nobody, notify the AdminCcs.  Otherwise, only notify the Owner.
<code>#</code>


=cut
<code># (Except where explicitly superseded by other copyright notices)</code>


sub Prepare {
<code>#</code>
  my $self = shift;


  return 1;
<code>#</code>
}


my $self;
<code># LICENSE:</code>


sub Commit {
<code>#</code>


  my $self = shift;
<code># This work is made available to you under the terms of Version 2 of</code>


my $argument = $self->Argument;
<code># the GNU General Public License. A copy of that license should have</code>
    unless ( $argument ) {
        $RT::Logger->error("Argument is mandatory for Test action");
        return 0;
    }


  my ($status, $msg) = $self->TicketObj->SetQueue("$argument");
<code># been provided with this software, but in any event can be snarfed</code>
  if ( not $status ) {
    RT::Logger->error("Could not reassign queue: $msg");
    return 0;
    }


<code># from www.gnu.org.</code>


    RT::Base->_ImportOverlays();
<code>#</code>


    return 1;
<code># This work is distributed in the hope that it will be useful, but</code>
}


1;
<code># WITHOUT ANY WARRANTY; without even the implied warranty of</code>
 
<code># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</code>
 
<code># General Public License for more details.</code>
 
<code>#</code>
 
<code># You should have received a copy of the GNU General Public License</code>
 
<code># along with this program; if not, write to the Free Software</code>
 
<code># Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA</code>
 
<code># 02110-1301 or visit their web page on the internet at</code>
 
<code># <nowiki>http://www.gnu.org/licenses/old-licenses/gpl-2.0.html</nowiki>.</code>
 
<code>#</code>
 
<code>#</code>
 
<code># CONTRIBUTION SUBMISSION POLICY:</code>
 
<code>#</code>
 
<code># (The following paragraph is not intended to limit the rights granted</code>
 
<code># to you to modify and distribute this software under the terms of</code>
 
<code># the GNU General Public License and is only of importance to you if</code>
 
<code># you choose to contribute your changes and enhancements to the</code>
 
<code># community by submitting them to Best Practical Solutions, LLC.)</code>
 
<code>#</code>
 
<code># By intentionally submitting any modifications, corrections or</code>
 
<code># derivatives to this work, or any other work intended for use with</code>
 
<code># Request Tracker, to Best Practical Solutions, LLC, you confirm that</code>
 
<code># you are the copyright holder for those contributions and you grant</code>
 
<code># Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,</code>
 
<code># royalty-free, perpetual, license to use, copy, create derivative</code>
 
<code># works based on those contributions, and sublicense and distribute</code>
 
<code># those contributions and any derivatives thereof.</code>
 
<code>#</code>
 
<code># END BPS TAGGED BLOCK <nowiki>}}}</nowiki></code>
 
<code><br>
</code>
 
<code>package RT::Action::QChange;</code>
 
<code><br>
</code>
 
<code>use strict;</code>
 
<code>use warnings;</code>
 
<code><br>
</code>
 
<code>use base qw(RT::Action::Notify);</code>
 
<code><br>
</code>
 
<code>use Email::Address;</code>
 
<code><br>
</code>
 
<code>=head1 Notify Owner or AdminCc</code>
 
<code><br>
</code>
 
<code>If the owner of this ticket is Nobody, notify the AdminCcs.  Otherwise, only notify the Owner.</code>
 
<code><br>
</code>
 
<code>=cut</code>
 
<code><br>
</code>
 
<code>sub Prepare {</code>
 
  <code>my $self = shift;</code>
 
<code><br>
</code>
 
  <code>return 1;</code>
 
<code>}</code>
 
<code><br>
</code>
 
<code>my $self;</code>
 
<code><br>
</code>
 
<code>sub Commit {</code>
 
<code><br>
</code>
 
  <code>my $self = shift;</code>
 
<code><br>
</code>
 
<code>my $argument = $self->Argument;</code>
 
    <code>unless ( $argument ) {</code>
 
        <code>$RT::Logger->error("Argument is mandatory for Test action");</code>
 
        <code>return 0;</code>
 
    <code>}</code>
 
<code><br>
</code>
 
  <code>my ($status, $msg) = $self->TicketObj->SetQueue("$argument");</code>
 
  <code>if ( not $status ) {</code>
 
    <code>RT::Logger->error("Could not reassign queue: $msg");</code>
 
    <code>return 0;</code>
 
    <code>}</code>
 
<code><br>
</code>
 
<code><br>
</code>
 
    <code>RT::Base->_ImportOverlays();</code>
 
<code><br>
</code>
 
    <code>return 1;</code>
 
<code>}</code>
 
<code><br>
</code>
 
<code>1;</code>




[[Category:Contribution]]
[[Category:Contribution]]

Revision as of 04:44, 1 November 2016

Below is a custom action module for adding RT::Action:Qchange via crontool that can be called for via a query similar to this "--action RT::Action::QChange --action-arg YOURQUEUE --template 'blank'"

Create the file in a place where RT can call it (notice not to put it at a place that will be overwritten at an RT upgrade, ex /opt/rt4/lib/RT/Action/Qchange.pm

This script was created by Andy Smith.

Code

# BEGIN BPS TAGGED BLOCK {{{

#

# COPYRIGHT:

#

# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC

#                                          

#

# (Except where explicitly superseded by other copyright notices)

#

#

# LICENSE:

#

# This work is made available to you under the terms of Version 2 of

# the GNU General Public License. A copy of that license should have

# been provided with this software, but in any event can be snarfed

# from www.gnu.org.

#

# This work is distributed in the hope that it will be useful, but

# WITHOUT ANY WARRANTY; without even the implied warranty of

# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU

# General Public License for more details.

#

# You should have received a copy of the GNU General Public License

# along with this program; if not, write to the Free Software

# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA

# 02110-1301 or visit their web page on the internet at

# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.

#

#

# CONTRIBUTION SUBMISSION POLICY:

#

# (The following paragraph is not intended to limit the rights granted

# to you to modify and distribute this software under the terms of

# the GNU General Public License and is only of importance to you if

# you choose to contribute your changes and enhancements to the

# community by submitting them to Best Practical Solutions, LLC.)

#

# By intentionally submitting any modifications, corrections or

# derivatives to this work, or any other work intended for use with

# Request Tracker, to Best Practical Solutions, LLC, you confirm that

# you are the copyright holder for those contributions and you grant

# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,

# royalty-free, perpetual, license to use, copy, create derivative

# works based on those contributions, and sublicense and distribute

# those contributions and any derivatives thereof.

#

# END BPS TAGGED BLOCK }}}


package RT::Action::QChange;


use strict;

use warnings;


use base qw(RT::Action::Notify);


use Email::Address;


=head1 Notify Owner or AdminCc


If the owner of this ticket is Nobody, notify the AdminCcs.  Otherwise, only notify the Owner.


=cut


sub Prepare {

  my $self = shift;


  return 1;

}


my $self;


sub Commit {


  my $self = shift;


my $argument = $self->Argument;

    unless ( $argument ) {

        $RT::Logger->error("Argument is mandatory for Test action");

        return 0;

    }


  my ($status, $msg) = $self->TicketObj->SetQueue("$argument");

  if ( not $status ) {

    RT::Logger->error("Could not reassign queue: $msg");

    return 0;

    }



    RT::Base->_ImportOverlays();


    return 1;

}


1;