请求跟踪器 - 更改队列颜色

Request Tracker - Changing Queue Color

我想在 RT 中将票 table 更改为自定义 "Queue" 颜色。我正在使用本指南作为参考:

http://requesttracker.wikia.com/wiki/ShowStatusInColor

...有效。回调中的以下代码会将所有 "Priority" 字段更新为红色:

<%INIT>
      # Set the priority color.
      sub PriorityInColor {
        my $Ticket = shift;
        my $priority = $Ticket->Priority;
        my $colors = "#FF0000";
        $priority = "<div style=\"color: $colors;\">$priority</div>";
        return \"<b>$priority</b>";
      }

      $COLUMN_MAP->{Priority}->{value} = \&PriorityInColor;
</%INIT>

<%ARGS>
    $COLUMN_MAP => undef
</%ARGS>

看起来像这样:

这也适用于除队列之外的大多数其他字段。应用于Queue时,完全没有结果:

<%INIT>
      # Set the queue color.
      sub QueueInColor {
        my $Ticket = shift;
        my $queue = $Ticket->Queue;
        my $colors = "#FF0000";
        $queue = "<div style=\"color: $colors;\">$queue</div>";
        return \"<b>$queue</b>";
      }
      $COLUMN_MAP->{Queue}->{value} = \&QueueInColor;
</%INIT>

<%ARGS>
    $COLUMN_MAP => undef
</%ARGS>

我觉得我遗漏了一些有关 Queue 的额外参数,但如果是这样的话,我终究无法理解结构。在此先感谢您的帮助!

经过反复试验,我发现了问题所在! Queue 引用队列的内部编号,QueueName 引用 table 中的实际字符串。此外,您必须通过 "QueueObj" 调用 name 才能获取 Name 属性。这是工作块:

<%INIT>
      # Set the queue color.
      sub QueueInColor {
        my $Ticket = shift;
        my $queue = $Ticket->QueueObj->Name;
        my $colors = "#FF0000";
        $queue = "<div style=\"color: $colors;\">$queue</div>";
        return \"<b>$queue</b>";
      }
      $COLUMN_MAP->{QueueName}->{value} = \&QueueInColor;
</%INIT>

<%ARGS>
        $COLUMN_MAP => undef
</%ARGS>