X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FSearch%2FBulk.html;h=9f58789ab65ecc08a53f1842d8927b44ce0d728f;hp=fa20e331c81a9974e5af277e72c7c5935e4e872a;hb=86b5edc2d448cb9c8e90b76b77b21b09d69d8527;hpb=b4b0c7e72d7eaee2fbfc7022022c9698323203dd diff --git a/rt/share/html/Search/Bulk.html b/rt/share/html/Search/Bulk.html index fa20e331c..9f58789ab 100755 --- a/rt/share/html/Search/Bulk.html +++ b/rt/share/html/Search/Bulk.html @@ -1,40 +1,40 @@ %# BEGIN BPS TAGGED BLOCK {{{ -%# +%# %# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC -%# -%# +%# +%# This software is Copyright (c) 1996-2011 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 @@ -43,7 +43,7 @@ %# 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 }}} <& /Elements/Header, Title => $title &> <& /Ticket/Elements/Tabs, @@ -60,7 +60,7 @@ <& /Elements/ListActions, actions => \@results &>
-% foreach my $var qw(Query Format OrderBy Order Rows Page SavedChartSearchId) { +% foreach my $var (qw(Query Format OrderBy Order Rows Page SavedChartSearchId)) { %} <& /Elements/CollectionList, @@ -89,41 +89,49 @@ - + - + - + - + - + - + - +
<&|/l&>Make Owner: <& /Elements/SelectOwner, Name => "Owner" &> ( <&|/l&>Force change)
<& /Elements/SelectOwner, Name => "Owner", Default => $ARGS{Owner} || '' &> +( /> <&|/l&>Force change)
<&|/l&>Add Requestor:
<&|/l&>Remove Requestor:
<&|/l&>Add Cc:
<&|/l&>Remove Cc:
<&|/l&>Add AdminCc:
<&|/l&>Remove AdminCc:
- + - +% my $rel = ($ARGS{Priority} =~ s/^R//); + - + - + - + - + - + - + - +
<&|/l&>Make subject:
<&|/l&>Make priority: <& /Elements/SelectPriority, Name => "Priority" &>
<& /Elements/SelectPriority, Name => "Priority", Default => $ARGS{Priority} &> + +
<&|/l&>Make queue: <& /Elements/SelectQueue, Name => "Queue" &>
<& /Elements/SelectQueue, Name => "Queue", Default => $ARGS{Queue} &>
<&|/l&>Make Status: <& /Elements/SelectStatus, Name => "Status" &>
<& /Elements/SelectStatus, Name => "Status", Default => $ARGS{Status} &>
<&|/l&>Make date Starts: <& /Elements/SelectDate, Name => "Starts_Date", ShowTime => 0, Default => '' &>
<& /Elements/SelectDate, Name => "Starts_Date", ShowTime => 0, Default => $ARGS{Starts_Date} || '' &>
<&|/l&>Make date Started: <& /Elements/SelectDate, Name => "Started_Date", ShowTime => 0, Default => '' &>
<& /Elements/SelectDate, Name => "Started_Date", ShowTime => 0, Default => $ARGS{Started_Date} || '' &>
<&|/l&>Make date Told: <& /Elements/SelectDate, Name => "Told_Date", ShowTime => 0, Default => '' &>
<& /Elements/SelectDate, Name => "Told_Date", ShowTime => 0, Default => $ARGS{Tole_Date} || '' &>
<&|/l&>Make date Due: <& /Elements/SelectDate, Name => "Due_Date", ShowTime => 0, Default => '' &>
<& /Elements/SelectDate, Name => "Due_Date", ShowTime => 0, Default => $ARGS{Due_Date} || '' &>
<&|/l&>Make date Resolved: <& /Elements/SelectDate, Name => "Resolved_Date", ShowTime => 0, Default => '' &>
<& /Elements/SelectDate, Name => "Resolved_Date", ShowTime => 0, Default => $ARGS{Resolved_Date} || '' &>
@@ -134,17 +142,20 @@ - + % while (my $CF = $TxnCFs->Next()) { % } # end if while @@ -163,7 +174,12 @@
<&|/l&>Update Type:
<&|/l&>Subject:
<&|/l&>Subject: " />
<% $CF->Name %>: <& /Elements/EditCustomField, CustomField => $CF, - NamePrefix => "Object-RT::Transaction--CustomField-" + NamePrefix => "Object-RT::Transaction--CustomField-", + Default => $ARGS{"Object-RT::Transaction--CustomField-" . $CF->id . '-Values'} || + $ARGS{"Object-RT::Transaction--CustomField-" . $CF->id . '-Value'}, &><% $CF->FriendlyType %>
<&|/l&>Message: - <& /Elements/MessageBox, Name=>"UpdateContent"&> +%# Currently, bulk update always starts with Comment not Reply selected, so we check this unconditionally +% my $IncludeSignature = RT->Config->Get('MessageBoxIncludeSignatureOnComment'); +<& /Elements/MessageBox, Name => "UpdateContent", + $ARGS{UpdateContent} ? ( Default => $ARGS{UpdateContent}, IncludeSignature => 0 ) : + ( IncludeSignature => $IncludeSignature ), + &>
@@ -188,8 +204,13 @@ $cfs->LimitToQueue($_) for keys %$seen_queues; <% loc($cf->Name) %>
(<%$cf->FriendlyType%>) % my $rows = 5; -% my @add = (NamePrefix => 'Bulk-Add-CustomField-', CustomField => $cf, Rows => $rows, Multiple => ($cf->MaxValues ==1 ? 0 : 1) , Cols => 25); -% my @del = (NamePrefix => 'Bulk-Delete-CustomField-', CustomField => $cf, Rows => $rows, Multiple => 1, Cols => 25); +% my $cf_id = $cf->id; +% my @add = (NamePrefix => 'Bulk-Add-CustomField-', CustomField => $cf, Rows => $rows, +% Multiple => ($cf->MaxValues ==1 ? 0 : 1) , Cols => 25, +% Default => $ARGS{"Bulk-Add-CustomField-$cf_id-Values"} || $ARGS{"Bulk-Add-CustomField-$cf_id-Value"}, ); +% my @del = (NamePrefix => 'Bulk-Delete-CustomField-', CustomField => $cf, +% Rows => $rows, Multiple => 1, Cols => 25, +% Default => $ARGS{"Bulk-Delete-CustomField-$cf_id-Values"} || $ARGS{"Bulk-Delete-CustomField-$cf_id-Value"}, ); % if ($cf->Type eq 'Select') { <& /Elements/EditCustomFieldSelect, @add &> <& /Elements/EditCustomFieldSelect, @del &> @@ -213,7 +234,7 @@ $cfs->LimitToQueue($_) for keys %$seen_queues; <&|/Widgets/TitleBox, title => loc('Edit Links'), color => "#336633"&> <&|/l&>Enter tickets or URIs to link tickets to. Separate multiple entries with spaces.
-<& /Ticket/Elements/BulkLinks, Tickets => $Tickets &> +<& /Ticket/Elements/BulkLinks, Tickets => $Tickets, $ARGS{'AddMoreAttach'} ? %ARGS : () &> <& /Elements/Submit, Label => loc('Update') &> @@ -268,7 +289,7 @@ $Page ||= 1; $Format ||= RT->Config->Get('DefaultSearchResultFormat'); # inject _CHECKBOX to the first field. -$Format =~ s/'?([^']+)'?,/'___CHECKBOX__$1',/; +$Format =~ s/'?([^']+)'?,/'___CHECKBOX__$1',/; #' my $Tickets = RT::Tickets->new( $session{'CurrentUser'} ); $Tickets->FromSQL($Query); @@ -317,6 +338,13 @@ my $cf_del_keys; my $cf_add_keys; @$cf_add_keys = grep { /^Bulk-Add-CustomField/ } keys %ARGS; +if ( defined($ARGS{'Priority'}) + and ($ARGS{'Priority-Mode'} || '') eq 'relative' ) { + # magic in Ticket::SetPriority + $ARGS{'Priority'} = 'R'.$ARGS{'Priority'}; +} +delete $ARGS{'Priority-Mode'}; + unless ( $ARGS{'AddMoreAttach'} ) { # Add session attachments if any to be processed by ProcessUpdateMessage $ARGS{'UpdateAttachments'} = $session{'Attachments'} if ( $session{'Attachments'} ); @@ -343,13 +371,13 @@ unless ( $ARGS{'AddMoreAttach'} ) { my @watchresults = ProcessTicketWatchers( TicketObj => $Ticket, ARGSRef => \%ARGS ); - foreach my $type qw(MergeInto DependsOn MemberOf RefersTo) { + foreach my $type (qw(MergeInto DependsOn MemberOf RefersTo)) { $ARGS{ $Ticket->id . "-" . $type } = $ARGS{"Ticket-$type"}; $ARGS{ $type . "-" . $Ticket->id } = $ARGS{"$type-Ticket"}; } @linkresults = ProcessTicketLinks( TicketObj => $Ticket, ARGSRef => \%ARGS ); - foreach my $type qw(MergeInto DependsOn MemberOf RefersTo) { + foreach my $type (qw(MergeInto DependsOn MemberOf RefersTo)) { delete $ARGS{ $type . "-" . $Ticket->id }; delete $ARGS{ $Ticket->id . "-" . $type }; } @@ -413,13 +441,20 @@ unless ( $ARGS{'AddMoreAttach'} ) { } } } - my @tempresults = ( + my @statusresults = + ProcessTicketStatus( TicketObj => $Ticket, ARGSRef => \%ARGS ); + + my @tempresults = ( @watchresults, @basicresults, @dateresults, - @updateresults, @linkresults, @cfresults + @updateresults, @linkresults, @cfresults, + @statusresults ); @tempresults = - map { loc( "Ticket [_1]: [_2]", $Ticket->Id, $_ ) } @tempresults; + map { + $_ =~ /^Ticket \d+:/ ? $_ : + loc( "Ticket [_1]: [_2]", $Ticket->Id, $_ ) + } @tempresults; @results = ( @results, @tempresults ); }