%# BEGIN LICENSE BLOCK %# %# Copyright (c) 1996-2003 Jesse Vincent %# %# (Except where explictly superceded by other copyright notices) %# %# 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. %# %# Unless otherwise specified, all modifications, corrections or %# extensions to this work which alter its source code become the %# property of Best Practical Solutions, LLC when submitted for %# inclusion in the work. %# %# %# END LICENSE BLOCK <& /Elements/Header, Title => loc("Bulk ticket update") &> <& /Elements/Tabs, Title => loc("Bulk ticket update") &> <& /Elements/ListActions, actions => \@results &>
%foreach my $col (@cols) { % my $colalias = $col; % $colalias =~ s/(Obj\-\>|)(Name|AsString)//; %} <%PERL> my $i; $session{'tickets'}->RedoSearch(); while (my $Ticket = $session{'tickets'}->Next) { $i++; if ($i % 2) { $bgcolor = "#dddddd"; } else { $bgcolor = "#ffffff"; } %# The ticket view is controlled by config.pm, WebOptions %foreach my $col (@cols) { %} %}
<&|/l&>Update<% loc($colalias) %> 
% if ($col eq 'id') { <%$Ticket->Id()%> % } %else { <% eval "\$Ticket->$col()" %>  %}

<& /Elements/TitleBoxStart, title => loc('Update selected tickets') &>
  • <&|/l&>Make Owner <& /Elements/SelectOwner, Name => "Owner" &> ( <&|/l&>Force change)
  • <&|/l&>Add Requestor
  • <&|/l&>Remove Requestor
  • <&|/l&>Add Cc
  • <&|/l&>Remove Cc
  • <&|/l&>Add AdminCc
  • <&|/l&>Remove AdminCc
  • <&|/l&>Make subject
  • <&|/l&>Make priority
  • <&|/l&>Make queue <& /Elements/SelectQueue, Name => "Queue" &>
  • <&|/l&>Make Status <& /Elements/SelectStatus, Name => "Status" &>
  • <&|/l&>Make date Starts <& /Elements/SelectDate, Name => "Starts_Date", ShowTime => 0, Default => '' &>
  • <&|/l&>Make date Started <& /Elements/SelectDate, Name => "Started_Date", ShowTime => 0, Default => '' &>
  • <&|/l&>Make date Told <& /Elements/SelectDate, Name => "Told_Date", ShowTime => 0, Default => '' &>
  • <&|/l&>Make date Due <& /Elements/SelectDate, Name => "Due_Date", ShowTime => 0, Default => '' &>
  • <&|/l&>Make date Resolved <& /Elements/SelectDate, Name => "Resolved_Date", ShowTime => 0, Default => '' &>
<& /Elements/TitleBoxEnd&> <& /Elements/TitleBoxStart, title => loc('Add comments or replies to selected tickets') &>
<&|/l&>Update Type:
<&|/l&>Subject:
<&|/l&>Attach:
<& /Elements/MessageBox, Name=>"UpdateContent"&>
<& /Elements/TitleBoxEnd &> <& /Elements/Submit &>
<%INIT> # Iterate through the ARGS hash and remove anything with a null value. map ($ARGS{$_} =~ /^$/ && (delete $ARGS{$_}), keys %ARGS); my ($bgcolor, @results); my @cols = qw(id Status Priority Subject QueueObj->Name OwnerObj->Name RequestorAddresses DueAsString ); Abort(loc("No search to operate on.")) unless ($session{'tickets'}); my $do_comment_reply=0; # Prepare for ticket updates $ARGS{'UpdateContent'} =~ s/\r\n/\n/g; chomp ($ARGS{'UpdateContent'}) ; if ($ARGS{'UpdateContent'} && $ARGS{'UpdateContent'} ne '' && $ARGS{'UpdateContent'} ne "-- \n" . $session{'CurrentUser'}->UserObj->Signature) { $do_comment_reply=1; } #Iterate through each ticket we've been handed while (my $Ticket = $session{'tickets'}->Next) { $RT::Logger->debug( "Checking Ticket ".$Ticket->Id ."\n"); next unless ($ARGS{"UpdateTicket".$Ticket->Id}); $RT::Logger->debug ("Matched\n"); #Update the basics. my @basicresults = ProcessTicketBasics(TicketObj => $Ticket, ARGSRef => \%ARGS); my @dateresults = ProcessTicketDates(TicketObj => $Ticket, ARGSRef => \%ARGS); #Update the watchers my @watchresults = ProcessTicketWatchers(TicketObj => $Ticket, ARGSRef => \%ARGS); my @updateresults; if ($do_comment_reply) { ProcessUpdateMessage(TicketObj => $Ticket, ARGSRef => \%ARGS, Actions => \@updateresults); } my @tempresults = (@watchresults, @basicresults, @dateresults, @updateresults); @tempresults = map { loc("Ticket [_1]: [_2]",$Ticket->Id,$_) } @tempresults; @results = (@results, @tempresults); }