%# $Header: /home/cvs/cvsroot/freeside/rt/webrt/Search/Attic/Bulk.html,v 1.1 2002-08-12 06:17:09 ivan Exp $ %# Copyright 1996-2001 Jesse Vincent <& /Elements/Header, Title => "Bulk ticket update" &> <& /Elements/Tabs &> <& /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) { %} %}
Update<% $colalias %> 
% if ($col eq 'id') { <%$Ticket->Id()%> % } %else { <% eval "\$Ticket->$col()" %>  %}

<& /Elements/TitleBoxStart, title => 'Update selected tickets' &>
  • Make Owner <& /Elements/SelectOwner, Name => "Owner" &> ( Force change)
  • Add Requestor
  • Remove Requestor
  • Add Cc
  • Remove Cc
  • Add AdminCc
  • Remove AdminCc
  • Make subject
  • Make priority
  • Make queue <& /Elements/SelectQueue, Name => "Queue" &>
  • Make Status <& /Elements/SelectStatus, Name => "Status" &>
  • Make date Starts <& /Elements/SelectDate, Name => "Starts_Date", ShowTime => 0, Default => '' &>
  • Make date Started <& /Elements/SelectDate, Name => "Started_Date", ShowTime => 0, Default => '' &>
  • Make date Told <& /Elements/SelectDate, Name => "Told_Date", ShowTime => 0, Default => '' &>
  • Make date Due <& /Elements/SelectDate, Name => "Due_Date", ShowTime => 0, Default => '' &>
  • Make date Resolved <& /Elements/SelectDate, Name => "Resolved_Date", ShowTime => 0, Default => '' &> % while ( my $KeywordSelect = $KeywordSelects->Next ) {
  • Add <% $KeywordSelect->Name %> <& /Elements/SelectKeyword, Name => "AddToKeywordSelect".$KeywordSelect->id, KeywordObj => $KeywordSelect->KeywordObj &>
  • Remove <% $KeywordSelect->Name %> <& /Elements/SelectKeyword, Name => "DeleteFromKeywordSelect".$KeywordSelect->id, KeywordObj => $KeywordSelect->KeywordObj &> % }
<& /Elements/TitleBoxEnd&> <& /Elements/TitleBoxStart, title => 'Add comments or replies to selected tickets' &>
Update Type:
Subject:
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 RequestorsAsString DueAsString ); Abort("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; } my $KeywordSelects = new RT::KeywordSelects $session{'CurrentUser'}; foreach ( $session{'tickets'}->RestrictionValues('Queue') ) { $KeywordSelects->LimitToQueue($_); } $KeywordSelects->IncludeGlobals; #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); my @watchresults = ProcessTicketWatchers(TicketObj => $Ticket, ARGSRef => \%ARGS); my @selectresults = ProcessTicketObjectKeywords(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 { "Ticket ".$Ticket->Id. ": ".$_ } @tempresults; #Update the keyword selects #Update the watchers $RT::Logger->debug(join("\n",@tempresults)); @results = (@results, @tempresults); }