%# Silverman's Law: %# If Murphy's Law can go wrong, it will. <& /Work/Elements/104Header, Title => 'Search', Refresh => $session{'tickets_refresh_interval'}, Method => 'Post' &> <& /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++; $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()" %>  %}

<&|/l&>Update selected tickets
<&|/l&>Make Owner<& /Elements/SelectOwner, Name => "Owner" &> ( <&|/l&>Force change) <&|/l&>Make priority
<&|/l&>Make subject <&|/l&>Make queue<& /Elements/SelectQueue, Name => "Queue" &>
<&|/l&>Add Requestor <&|/l&>Make Status<& /Elements/SelectStatus, Name => "Status" &>
<&|/l&>Remove Requestor <&|/l&>Make date Starts<& /Elements/SelectDate, Name => "Starts_Date", ShowTime => 0, Default => '' &>
<&|/l&>Add Cc <&|/l&>Make date Started<& /Elements/SelectDate, Name => "Started_Date", ShowTime => 0, Default => '' &>
<&|/l&>Remove Cc <&|/l&>Make date Told<& /Elements/SelectDate, Name => "Told_Date", ShowTime => 0, Default => '' &>
<&|/l&>Add AdminCc <&|/l&>Make date Due<& /Elements/SelectDate, Name => "Due_Date", ShowTime => 0, Default => '' &>
<&|/l&>Remove AdminCc <&|/l&>Make date Resolved<& /Elements/SelectDate, Name => "Resolved_Date", ShowTime => 0, Default => '' &>
<&|/l&>Add comments or replies to selected tickets
<&|/l&>Update Type:
<&|/l&>Subject:
<&|/l&>Attach:
<&|/l&>Comment: <& /Elements/MessageBox, Name=>"UpdateContent"&>
<&|/l&>Edit Relationships
  <&|/l&>Enter tickets or URIs to link tickets to. Seperate multiple entries with spaces.
<& BulkLinks &>
<& /Work/Elements/104Footer &> <%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 my @linkresults; 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"); my @updateresults; if ($do_comment_reply) { ProcessUpdateMessage(TicketObj => $Ticket, ARGSRef => \%ARGS, Actions => \@updateresults); } #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); #Update the links $ARGS{'id'} = $Ticket; $ARGS{$Ticket->Id.'-MergeInto'} = $ARGS{'Ticket-MergeInto'}; $ARGS{$Ticket->Id.'-DependsOn'} = $ARGS{'Ticket-DependsOn'}; $ARGS{'DependsOn-'.$Ticket->Id} = $ARGS{'DependsOn-Ticket'}; $ARGS{$Ticket->Id.'-MemberOf'} = $ARGS{'Ticket-MemberOf'}; $ARGS{'MemberOf-'.$Ticket->Id} = $ARGS{'MemberOf-Ticket'}; $ARGS{$Ticket->Id.'-RefersTo'} = $ARGS{'Ticket-RefersTo'}; $ARGS{'RefersTo-'.$Ticket->Id} = $ARGS{'RefersTo-Ticket'}; @linkresults = ProcessTicketLinks( TicketObj => $Ticket, ARGSRef => \%ARGS); delete $ARGS{'id'}; delete $ARGS{$Ticket->Id.'-MergeInto'}; delete $ARGS{$Ticket->Id.'-DependsOn'}; delete $ARGS{'DependsOn-'.$Ticket->Id}; delete $ARGS{$Ticket->Id.'-MemberOf'}; delete $ARGS{'MemberOf-'.$Ticket->Id}; delete $ARGS{$Ticket->Id.'-RefersTo'}; delete $ARGS{'RefersTo-'.$Ticket->Id}; my @tempresults = (@watchresults, @basicresults, @dateresults, @updateresults, @linkresults); @tempresults = map { loc("Ticket [_1]: [_2]",$Ticket->Id,$_) } @tempresults; @results = (@results, @tempresults); }