From: mark Date: Mon, 16 May 2011 23:28:19 +0000 (+0000) Subject: increment priority via bulk ticket update, #12901 X-Git-Tag: freeside_2_3_0~249 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=f2a797b9cc0e9a6053399356e9e8cae22e553c9c increment priority via bulk ticket update, #12901 --- diff --git a/rt/FREESIDE_MODIFIED b/rt/FREESIDE_MODIFIED index c04e5e15e..aa74d86af 100644 --- a/rt/FREESIDE_MODIFIED +++ b/rt/FREESIDE_MODIFIED @@ -35,6 +35,7 @@ lib/RT/SearchBuilder.pm #need DBIx::SearchBuilder >= 1.36 for Pg 8.1+ lib/RT/Transaction_Overlay.pm #fix transaction custom fields lib/RT/Tickets_Overlay.pm #customfield date patch #SearchCustomerFields #this-month condition lib/RT/Ticket_Overlay.pm #fix transaction custom fields +lib/RT/Ticket_Vendor.pm #bulk increment priority lib/RT/Users_Overlay.pm lib/RT/Groups_Overlay.pm lib/RT/Date.pm #this-month condition @@ -85,6 +86,7 @@ share/html/Elements/ShowLink_Checklist share/html/Elements/SelectCustomerClass #SearchCustomerFields share/html/Elements/SelectCustomerTag #SearchCustomerFields share/html/Prefs/SavedSearches.html #saved searches +share/html/Search/Bulk.html #bulk increment priority share/html/Search/Build.html share/html/Search/Results.tsv #content-type bug fix share/html/Search/Elements/BuildFormatString diff --git a/rt/lib/RT/Ticket_Vendor.pm b/rt/lib/RT/Ticket_Vendor.pm new file mode 100644 index 000000000..604a84aa2 --- /dev/null +++ b/rt/lib/RT/Ticket_Vendor.pm @@ -0,0 +1,16 @@ +package RT::Ticket; +use strict; + +sub SetPriority { + # Special case: Pass a value starting with 'R' to set priority + # relative to the current level. Used for bulk updates, though + # it can be used anywhere else too. + my $Ticket = shift; + my $value = shift; + if ( $value =~ /^R([+-]?\d+)$/ ) { + $value = $1 + ($Ticket->Priority || 0); + } + $Ticket->SUPER::SetPriority($value); +} + +1; diff --git a/rt/share/html/Search/Bulk.html b/rt/share/html/Search/Bulk.html index e2b757499..84f2c8230 100755 --- a/rt/share/html/Search/Bulk.html +++ b/rt/share/html/Search/Bulk.html @@ -111,7 +111,13 @@ <&|/l&>Make subject: <&|/l&>Make priority: - <& /Elements/SelectPriority, Name => "Priority", Default => $ARGS{Priority} &> +% my $rel = ($ARGS{Priority} =~ s/^R//); + <& /Elements/SelectPriority, Name => "Priority", Default => $ARGS{Priority} &> + + <&|/l&>Make queue: <& /Elements/SelectQueue, Name => "Queue", Default => $ARGS{Queue} &> <&|/l&>Make Status: @@ -283,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); @@ -332,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'} );