--- share/html/Elements/RT__Ticket/ColumnMap
+++ share/html/Elements/RT__Ticket/ColumnMap
@@ -158,17 +158,17 @@
},
Priority => {
attribute => 'Priority',
- value => sub { return $_[0]->Priority }
+ value => sub { return
$RT::PriorityType?$_[0]->PriorityAsString() : $_[0]->Priority }
},
InitialPriority => {
attribute => 'InitialPriority',
name => 'Initial Priority',
- value => sub { return $_[0]->InitialPriority }
+ value => sub { return
$RT::PriorityType?$_[0]->InitialPriorityAsString(): $_[0]->InitialPriority }
},
FinalPriority => {
attribute => 'FinalPriority',
name => 'Final Priority',
- value => sub { return $_[0]->FinalPriority }
+ value => sub { return
$RT::PriorityType?$_[0]->FinalPriorityAsString():$_[0]->FinalPriority }
},
EffectiveId => {
attribute => 'EffectiveId',
--- share/html/Elements/SelectPriority
+++ share/html/Elements/SelectPriority
@@ -0,0 +1,34 @@
+%#
+
+
+<%ARGS>
+$Name => undef
+$Default => undef
+
+%ARGS>
+<%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;
+ }
+}
+%INIT>
+
--- share/html/Search/Bulk.html
+++ share/html/Search/Bulk.html
@@ -100,7 +100,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&>: |
--- share/html/Search/Elements/PickBasics
+++ share/html/Search/Elements/PickBasics
@@ -151,7 +151,11 @@
<& /Elements/SelectEqualityOperator, Name => "PriorityOp" &>
|
-
+% if ($RT::PriorityType) {
+ <&/Elements/SelectPriority, Name=>"ValueOfPriority" &>
+% } else {
+
+% }
|
--- share/html/Ticket/Create.html
+++ share/html/Ticket/Create.html
@@ -177,8 +177,16 @@
title_class=> 'inverse',
color => "#993333" &>
+% if ($RT::PriorityType) {
+<&|/l&>Priority&>: | <&/Elements/SelectPriority,
name=>"InitialPriority", default=>
$ARGS{InitialPriority}?$ARGS{InitialPriority} :$QueueObj->InitialPriority
&> |
+%} else {
<&|/l&>Priority&>: | |
+%}
+% if ($RT::PriorityType) {
+<&|/l&>Final
Priority&>: | <&/Elements/SelectPriority, name=>"FinalPriority",
default=> $ARGS{FinalPriority}?$ARGS{FinalPriority}
:$QueueObj->FinalPriority &> |
+%} else {
<&|/l&>Final Priority&>: | |
+%}
<&|/l&>Time Estimated&>: |
@@ -200,7 +208,7 @@
&>
<&|/Widgets/TitleBox, title => loc("Dates"),
- title_class=> 'inverse',
+ Title_class=> 'inverse',
color => "#663366" &>
--- share/html/Ticket/Elements/EditBasics
+++ share/html/Ticket/Elements/EditBasics
@@ -85,12 +85,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 {
|
+% }
--- share/html/Ticket/Elements/ShowBasics
+++ share/html/Ticket/Elements/ShowBasics
@@ -70,7 +70,11 @@
<&|/l&>Priority&>: |
+% if ($RT::PriorityType) {
+ <%$Ticket->PriorityAsString()%>/<%$Ticket->FinalPriorityAsString()%> |
+% } else {
<%$Ticket->Priority%>/<%$Ticket->FinalPriority
%> |
+% }
<&|/l&>Queue&>: |
--- lib/RT/Ticket_Overlay.pm
+++ lib/RT/Ticket_Overlay.pm
@@ -3770,6 +3770,56 @@
"RT::Queue-RT::Ticket";
}
+
+
+=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
|