# # priority-labels-v2-rt3.2.2.patch # By Colin Henein, Parliant Corporation after Eric Berggren # Replaces numeric priorities with labels in rt3.2.2 # see http://www.parliant.com/~cmh/rt/ for details and instructions # diff -Naur rt3-dist/lib/RT/Ticket_Overlay.pm rt3/lib/RT/Ticket_Overlay.pm --- rt3-dist/lib/RT/Ticket_Overlay.pm Fri Sep 24 05:21:43 2004 +++ rt3/lib/RT/Ticket_Overlay.pm Sun Oct 3 19:50:53 2004 @@ -3987,6 +3987,56 @@ # }}} + + +=head2 PriorityAsString + + B String: Various Ticket Priorities as either a string or integer + +=cut + +sub PriorityAsString { + my $self=shift; + + unless ($self->CurrentUserHasRight('ShowTicket')) { + return undef; + } + return priorityString($self->Priority) +} +sub InitialPriorityAsString { + my $self=shift; + + unless ($self->CurrentUserHasRight('ShowTicket')) { + return undef; + } + return priorityString($self->InitialPriority) +} +sub FinalPriorityAsString { + my $self=shift; + + unless ($self->CurrentUserHasRight('ShowTicket')) { + return undef; + } + return priorityString($self->FinalPriority) +} + +sub priorityString { + my $priority=shift; + + if ( $RT::PriorityType ) { + foreach my $pridx ( @RT::PrioritySortedKeys ) { + if ( $priority >= $RT::PriorityLabels{ $pridx } ) { + return($pridx."/".$priority) if ( $RT::PriorityType != 1 ); + return($pridx); + } + } + return "unknown"; + } + return ($priority); +} + + + 1; =head1 AUTHOR diff -Naur rt3-dist/share/html/Elements/RT__Ticket/ColumnMap rt3/share/html/Elements/RT__Ticket/ColumnMap --- rt3-dist/share/html/Elements/RT__Ticket/ColumnMap Wed Sep 8 21:41:43 2004 +++ rt3/share/html/Elements/RT__Ticket/ColumnMap Sun Oct 3 20:32:09 2004 @@ -133,15 +133,15 @@ }, Priority => { attribute => 'Priority', - value => sub { return $_[0]->Priority } + value => sub { return $RT::PriorityType?$_[0]->PriorityAsString() : $_[0]->Priority } }, InitialPriority => { attribute => 'InitialPriority', - value => sub { return $_[0]->InitialPriority } + value => sub { return $RT::PriorityType?$_[0]->InitialPriorityAsString(): $_[0]->InitialPriority } }, FinalPriority => { attribute => 'FinalPriority', - value => sub { return $_[0]->FinalPriority } + value => sub { return $RT::PriorityType?$_[0]->FinalPriorityAsString():$_[0]->FinalPriority } }, EffectiveId => { attribute => 'EffectiveId', diff -Naur rt3-dist/share/html/Elements/SelectPriority rt3/share/html/Elements/SelectPriority --- rt3-dist/share/html/Elements/SelectPriority Thu Jan 1 00:00:00 1970 +++ rt3/share/html/Elements/SelectPriority Sun Oct 3 19:50:53 2004 @@ -0,0 +1,34 @@ +%# + + +<%ARGS> +$Name => undef +$Default => undef + + +<%INIT> +my($priidx,$defprilabel,$defprivalue); +foreach $priidx (@RT::PrioritySortedKeys) { + if ( $Default >= $RT::PriorityLabels{$priidx}) { + # save current equivalent priority label + $defprilabel=$priidx; + # save current priority value to prevent tickets from having + # their priorities "snap"ed to closest level + $defprivalue=$Default; + last; + } +} + + diff -Naur rt3-dist/share/html/Search/Bulk.html rt3/share/html/Search/Bulk.html --- rt3-dist/share/html/Search/Bulk.html Wed Aug 18 02:23:42 2004 +++ rt3/share/html/Search/Bulk.html Sun Oct 3 19:50:53 2004 @@ -83,7 +83,11 @@ <%$Ticket->Id()%> % } %else { -<% eval "\$Ticket->$col()" %>  +% if (($col eq "Priority") && ($RT::PriorityType)) { + <%$Ticket->PriorityAsString()%> +% } else { + <% eval "\$Ticket->$col()" %>  +% } %} %} @@ -123,7 +127,11 @@ <&|/l&>Make subject: <&|/l&>Make priority: - +% if ($RT::PriorityType) { + <& /Elements/SelectPriority, Name => 'Priority', Default => 0 &> +% } else { + +% } <&|/l&>Make queue: <& /Elements/SelectQueue, Name => "Queue" &> <&|/l&>Make Status: diff -Naur rt3-dist/share/html/Search/Elements/PickBasics rt3/share/html/Search/Elements/PickBasics --- rt3-dist/share/html/Search/Elements/PickBasics Tue Aug 31 04:22:49 2004 +++ rt3/share/html/Search/Elements/PickBasics Sun Oct 3 20:12:04 2004 @@ -83,7 +83,11 @@ <& /Elements/SelectEqualityOperator, Name => "PriorityOp" &> - +% if ($RT::PriorityType) { + <&/Elements/SelectPriority, Name=>"ValueOfPriority" &> +% } else { + +% } %} elsif ($field =~ m/Time.*/) { +%} +% if ($RT::PriorityType) { +<&|/l&>Final Priority:<&/Elements/SelectPriority, Name=>"FinalPriority", Default=> $ARGS{FinalPriority}?$ARGS{FinalPriority}:$QueueObj->FinalPriority &> +%} else { <&|/l&>Final Priority: +%} <&|/l&>Time Worked:<&|/l,''&>[_1] min <&|/l&>Time Left:<&|/l,''&>[_1] min diff -Naur rt3-dist/share/html/Ticket/Elements/EditBasics rt3/share/html/Ticket/Elements/EditBasics --- rt3-dist/share/html/Ticket/Elements/EditBasics Tue Aug 31 18:49:23 2004 +++ rt3/share/html/Ticket/Elements/EditBasics Sun Oct 3 20:42:33 2004 @@ -72,12 +72,20 @@ <&|/l&>Priority: +% if ($RT::PriorityType) { + <&/Elements/SelectPriority, Name=>"Priority", Default=>$TicketObj->Priority &> +% } else { +% } <&|/l&>Final Priority: +% if ($RT::PriorityType) { + <&/Elements/SelectPriority, Name=>"FinalPriority", Default=>$TicketObj->FinalPriority &> +% } else { +% } <& /Elements/Callback, _CallbackName => 'EndOfList', TicketObj => $TicketObj, %ARGS &> diff -Naur rt3-dist/share/html/Ticket/Elements/ShowBasics rt3/share/html/Ticket/Elements/ShowBasics --- rt3-dist/share/html/Ticket/Elements/ShowBasics Tue Aug 31 18:49:23 2004 +++ rt3/share/html/Ticket/Elements/ShowBasics Sun Oct 3 19:50:57 2004 @@ -70,7 +70,11 @@ <&|/l&>Priority: - <%$Ticket->Priority%>/<%$Ticket->FinalPriority %> +% if ($RT::PriorityType == 0) { + <%$Ticket->Priority%>/<%$Ticket->FinalPriority %> +% } else { + <%$Ticket->PriorityAsString()%>/<%$Ticket->FinalPriorityAsString()%> +% } <&|/l&>Queue: