1

我想将 RT 中的工单表更改为自定义“队列”颜色。我使用本指南作为参考:

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

...这行得通。回调中的以下代码会将所有“优先级”字段更新为红色:

<%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>

我觉得我错过了队列的一些额外参数,但如果是这样的话,我一辈子都无法理解结构。提前感谢您的帮助!

4

1 回答 1

1

经过更多的尝试和错误,我发现了问题!Queue 引用队列的内部编号,QueueName 引用表中的实际字符串。此外,您必须通过“QueueObj”调用名称才能获取 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>
于 2016-03-29T17:02:56.960 回答