summaryrefslogtreecommitdiff
path: root/rt/html/Ticket/Elements
diff options
context:
space:
mode:
Diffstat (limited to 'rt/html/Ticket/Elements')
-rw-r--r--rt/html/Ticket/Elements/AddWatchers2
-rw-r--r--rt/html/Ticket/Elements/EditCustomField4
-rw-r--r--rt/html/Ticket/Elements/EditLinks29
-rw-r--r--rt/html/Ticket/Elements/EditPeople3
-rw-r--r--rt/html/Ticket/Elements/ShowAttachments5
-rw-r--r--rt/html/Ticket/Elements/ShowDates11
-rw-r--r--rt/html/Ticket/Elements/ShowHistory2
-rw-r--r--rt/html/Ticket/Elements/ShowMessageStanza12
-rw-r--r--rt/html/Ticket/Elements/ShowPeople6
-rw-r--r--rt/html/Ticket/Elements/ShowTransaction24
-rw-r--r--rt/html/Ticket/Elements/Tabs10
11 files changed, 68 insertions, 40 deletions
diff --git a/rt/html/Ticket/Elements/AddWatchers b/rt/html/Ticket/Elements/AddWatchers
index e9f6515..96dd38f 100644
--- a/rt/html/Ticket/Elements/AddWatchers
+++ b/rt/html/Ticket/Elements/AddWatchers
@@ -77,6 +77,7 @@ my ($msg, $Users, $Groups);
if ($UserString) {
$Users = RT::Users->new($session{'CurrentUser'});
$Users->Limit(FIELD => $UserField, VALUE => $UserString, OPERATOR => $UserOp);
+ $Users->LimitToPrivileged if $PrivilegedOnly;
}
if ($GroupString) {
@@ -94,4 +95,5 @@ $UserString => undef
$GroupField => 'Name'
$GroupOp => '='
$GroupString => undef
+$PrivilegedOnly => undef
</%ARGS>
diff --git a/rt/html/Ticket/Elements/EditCustomField b/rt/html/Ticket/Elements/EditCustomField
index 1fc7d43..1634806 100644
--- a/rt/html/Ticket/Elements/EditCustomField
+++ b/rt/html/Ticket/Elements/EditCustomField
@@ -30,6 +30,8 @@
size="<%$Cols%>"
% if ($TicketObj) {
value="<%$Values->Count ? $Values->First->Content : ''%>"
+% } elsif ($Default) {
+ value="<%$Default ? $Default : ''%>"
% }
>
% } elsif ($CustomField->Type eq 'FreeformMultiple') {
@@ -38,6 +40,8 @@
% while (my $value = $Values->Next ) {
% $content .= $value->Content;
% }
+% } elsif ($Default) {
+ value="<%$Default ? $Default : ''%>"
% }
<input type="hidden" name="<%$NamePrefix%><%$CustomField->Id%>-Values-Magic" value="1">
<textarea cols=<%$Cols%> rows=<%$Rows%> name="<%$NamePrefix%><%$CustomField->Id%>-Values"><%$content%></textarea>
diff --git a/rt/html/Ticket/Elements/EditLinks b/rt/html/Ticket/Elements/EditLinks
index 7a522dd..bdb8a6b 100644
--- a/rt/html/Ticket/Elements/EditLinks
+++ b/rt/html/Ticket/Elements/EditLinks
@@ -35,10 +35,8 @@
<td class="labeltop"><&|/l&>Depends on</&>:</td>
<td class="value">
% while (my $link = $Ticket->DependsOn->Next) {
-% my $member = $link->TargetObj;
<INPUT TYPE=CHECKBOX NAME="DeleteLink--<%$link->Type%>-<%$link->Target%>">
- <a href="<%$RT::WebPath%>/Ticket/Display.html?id=<%$member->Id%>"><%$member->Id%></a>: (<%$member->OwnerObj->Name%>) <%$member->Subject%>
- [<%$member->Status%>]<br>
+ <& ShowLink, URI => $link->TargetURI &><br>
% }
</td>
</tr>
@@ -48,8 +46,7 @@
% while (my $link = $Ticket->DependedOnBy->Next) {
% my $member = $link->BaseObj;
<INPUT TYPE=CHECKBOX NAME="DeleteLink-<%$link->Base%>-<%$link->Type%>-">
- <a href="<%$RT::WebPath%>/Ticket/Display.html?id=<%$member->Id%>"><%$member->Id%></a>: (<%$member->OwnerObj->Name%>) <%$member->Subject%>
- [<%$member->Status%>]<br>
+ <& ShowLink, URI => $link->BaseURI &><br>
% }
</td>
</tr>
@@ -57,10 +54,8 @@
<td class="labeltop"><&|/l&>Parents</&>:</td>
<td class="value">
% while (my $link = $Ticket->MemberOf->Next) {
-% my $member = $link->TargetObj;
<INPUT TYPE=CHECKBOX NAME="DeleteLink--<%$link->Type%>-<%$link->Target%>">
- <a href="<%$RT::WebPath%>/Ticket/Display.html?id=<%$member->Id%>"><%$member->Id%></a>: (<%$member->OwnerObj->Name%>) <%$member->Subject%>
- [<%$member->Status%>]<br>
+ <& ShowLink, URI => $link->TargetURI &><br>
% }
</td>
</tr>
@@ -69,9 +64,7 @@
<td class="value">
% while (my $link = $Ticket->Members->Next) {
<INPUT TYPE=CHECKBOX NAME="DeleteLink-<%$link->Base%>-<%$link->Type%>-">
-% my $member = $link->BaseObj;
- <a href="<%$RT::WebPath%>/Ticket/Display.html?id=<%$member->Id%>"><%$member->Id%></a>: (<%$member->OwnerObj->Name%>) <%$member->Subject%>
- [<%$member->Status%>]<br>
+ <& ShowLink, URI => $link->BaseURI &><br>
% }
</td>
</tr>
@@ -80,12 +73,7 @@
<td class="value">
% while (my $link = $Ticket->RefersTo->Next) {
<INPUT TYPE=CHECKBOX NAME="DeleteLink--<%$link->Type%>-<%$link->Target%>">
-% if ($link->TargetURI->IsLocal) {
-% my $member = $link->TargetObj;
- <a href="<%$RT::WebPath%>/Ticket/Display.html?id=<%$member->Id%>"><%$member->Id%></a>: (<%$member->OwnerObj->Name%>) <%$member->Subject%> [<%$member->Status%>]<br>
-% } else {
- <A HREF="<%$link->TargetURI->Resolver->HREF%>"><%$link->TargetURI->Resolver->AsString%></A><br>
-% }
+ <& ShowLink, URI => $link->TargetURI &><br>
%}
</td>
</tr>
@@ -94,12 +82,7 @@
<td class="value">
% while (my $link = $Ticket->ReferredToBy->Next) {
<INPUT TYPE=CHECKBOX NAME="DeleteLink-<%$link->Base%>-<%$link->Type%>-">
-% if ($link->BaseURI->IsLocal) {
-% my $member = $link->BaseObj;
- <a href="<%$RT::WebPath%>/Ticket/Display.html?id=<%$member->Id%>"><%$member->Id%></a>: (<%$member->OwnerObj->Name%>) <%$member->Subject%> [<%$member->Status%>]<br>
-% } else {
- <A HREF="<%$link->BaseURI->Resolver->HREF%>"><%$link->BaseURI->Resolver->AsString%></A><br>
-%}
+ <& ShowLink, URI => $link->BaseURI &><br>
% }
</td>
</tr>
diff --git a/rt/html/Ticket/Elements/EditPeople b/rt/html/Ticket/Elements/EditPeople
index 1ab8f4a..a1fc011 100644
--- a/rt/html/Ticket/Elements/EditPeople
+++ b/rt/html/Ticket/Elements/EditPeople
@@ -37,7 +37,7 @@
<& AddWatchers, Ticket => $Ticket, UserString => $UserString,
UserOp => $UserOp, UserField => $UserField,
GroupString => $GroupString, GroupOp => $GroupOp,
- GroupField => $GroupField &>
+ GroupField => $GroupField, PrivilegedOnly => $PrivilegedOnly &>
</TD><TD VALIGN=TOP>
<h3><&|/l&>Owner</&></h3>
<&|/l&>Owner</&>: <& /Elements/SelectOwner, Name => 'Owner', QueueObj => $Ticket->QueueObj, TicketObj => $Ticket, Default => $Ticket->OwnerObj->Id &>
@@ -64,5 +64,6 @@ $UserString => undef
$GroupField => undef
$GroupOp => undef
$GroupString => undef
+$PrivilegedOnly => undef
$Ticket => undef
</%ARGS>
diff --git a/rt/html/Ticket/Elements/ShowAttachments b/rt/html/Ticket/Elements/ShowAttachments
index 22b60d1..590a011 100644
--- a/rt/html/Ticket/Elements/ShowAttachments
+++ b/rt/html/Ticket/Elements/ShowAttachments
@@ -47,7 +47,7 @@ if ($size) {
</%PERL>
<li><font <%$fontsize%>>
- <A HREF="<%$RT::WebPath%>/Ticket/Attachment/<%$rev->TransactionObj->Id%>/<%$rev->Id%>/<%$rev->Filename%>"><%$rev->CreatedAsString%> (<% $size %>)</a></font></li>
+ <A HREF="<%$RT::WebPath%>/Ticket/Attachment/<%$rev->TransactionObj->Id%>/<%$rev->Id%>/<%$rev->Filename | u%>"><%$rev->CreatedAsString%> (<% $size %>)</a></font></li>
% }
% $fontsize='size="-2"';
% }
@@ -63,6 +63,9 @@ my %documents;
my $transactions = $Ticket->Transactions();
while (my $trans = $transactions->Next()) {
my $attachments = $trans->Attachments();
+ $attachments->Columns( qw( Id Filename ContentType Headers Subject Parent ContentEncoding ContentType TransactionId) );
+ $attachments->Limit(FIELD => 'Filename', OPERATOR => 'IS NOT', VALUE => 'NULL', QUOTEVALUE => 0, ENTRYAGGREGATOR => 'AND');
+ $attachments->Limit(FIELD => 'Filename', OPERATOR => '!=', VALUE => '', ENTRYAGGREGATOR => 'AND');
while (my $attach = $attachments->Next()) {
next unless ($attach->Filename());
# most recent at the top
diff --git a/rt/html/Ticket/Elements/ShowDates b/rt/html/Ticket/Elements/ShowDates
index da7f75b..b09b4bf 100644
--- a/rt/html/Ticket/Elements/ShowDates
+++ b/rt/html/Ticket/Elements/ShowDates
@@ -21,6 +21,7 @@
%#
%#
%# END LICENSE BLOCK
+
<TABLE>
<TR>
<TD class="label"><&|/l&>Created</&>:</TD>
@@ -35,7 +36,7 @@
<TD class="value"><% $Ticket->StartedObj->AsString %></TD>
</TR>
<TR>
- <TD class="label"><&|/l&>Last Contact</&>:</TD>
+ <TD class="label"><a href="Display.html?id=<%$Ticket->id%>&Action=SetTold"><&|/l&>Last Contact</&></a>:</TD>
<TD class="value"><% $Ticket->ToldObj->AsString %></TD>
</TR>
<TR>
@@ -48,9 +49,15 @@
</TR>
<TR>
<TD class="label"><&|/l&>Updated</&>:</TD>
- <TD class="value"><A HREF="#lasttrans"><% $Ticket->LastUpdated ? (loc("[_1] by [_2]", $Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name)) : loc("Never") | h %></a></TD>
+% my $UpdatedString = $Ticket->LastUpdated ? (loc("[_1] by [_2]", $Ticket->LastUpdatedAsString, $Ticket->LastUpdatedByObj->Name)) : loc("Never");
+% if ($UpdatedLink) {
+ <TD class="value"><A HREF="#lasttrans"><% $UpdatedString | h %></a></TD>
+% } else {
+ <TD class="value"><% $UpdatedString | h %></TD>
+% }
</TR>
</TABLE>
<%ARGS>
$Ticket => undef
+$UpdatedLink => 1
</%ARGS>
diff --git a/rt/html/Ticket/Elements/ShowHistory b/rt/html/Ticket/Elements/ShowHistory
index 2958f87..194be9b 100644
--- a/rt/html/Ticket/Elements/ShowHistory
+++ b/rt/html/Ticket/Elements/ShowHistory
@@ -62,7 +62,7 @@ else {
% if ($Transactions->IsLast) {
<a name="lasttrans"></a>
% }
- <& ShowTransaction, Ticket => $Ticket, Transaction => $Transaction, ShowHeaders => $ShowHeaders, Collapsed => $Collapsed, RowNum => $i, ShowTitleBarCommands => $ShowTitleBarCommands &>
+ <& ShowTransaction, Ticket => $Ticket, Transaction => $Transaction, ShowHeaders => $ShowHeaders, Collapsed => $Collapsed, RowNum => $i, ShowTitleBarCommands => $ShowTitleBarCommands, %ARGS &>
% }
</TABLE>
% if ($ShowDisplayModes or $ShowTitle) {
diff --git a/rt/html/Ticket/Elements/ShowMessageStanza b/rt/html/Ticket/Elements/ShowMessageStanza
index b099806..8e3045a 100644
--- a/rt/html/Ticket/Elements/ShowMessageStanza
+++ b/rt/html/Ticket/Elements/ShowMessageStanza
@@ -21,6 +21,8 @@
%#
%#
%# END LICENSE BLOCK
+% if (ref($Message)) {
+<font color="<%$colors[$Depth]%>">
<%perl>
foreach my $stanza (@$Message) {
if ( ref $stanza eq "ARRAY" ) {
@@ -36,8 +38,16 @@ foreach my $stanza (@$Message) {
$content =~ s/\n/<br>/gi;
</%perl>
-<font color="<%$colors[$Depth]%>"><%$content |n%><br></font>
+<%$content |n%><br>
% }
+% } # end foreach
+</font>
+% } else {
+% my $content = $Message;
+% RT::Interface::Web::EscapeUTF8(\$content);
+% $m->comp('/Elements/Callback', content => \$content, %ARGS);
+% $content =~ s/\n/<br>/gi;
+<%$content |n%><br>
% }
<%INIT>
use URI::URL;
diff --git a/rt/html/Ticket/Elements/ShowPeople b/rt/html/Ticket/Elements/ShowPeople
index 0b80269..160da70 100644
--- a/rt/html/Ticket/Elements/ShowPeople
+++ b/rt/html/Ticket/Elements/ShowPeople
@@ -27,15 +27,15 @@
<td class="value"><%$Ticket->OwnerObj->Name%></td>
</tr>
<tr>
- <td class="label"><&|/l&>Requestors</&>:</td>
+ <td class="labeltop"><&|/l&>Requestors</&>:</td>
<td class="value"><%$Ticket->RequestorAddresses%></td>
</tr>
<tr>
- <td class="label"><&|/l&>Cc</&>:</td>
+ <td class="labeltop"><&|/l&>Cc</&>:</td>
<td class="value"><%$Ticket->CcAddresses%></td>
</tr>
<tr>
- <td class="label"><&|/l&>AdminCc</&>:</td>
+ <td class="labeltop"><&|/l&>AdminCc</&>:</td>
<td class="value"><%$Ticket->AdminCcAddresses%></td>
</tr>
</table>
diff --git a/rt/html/Ticket/Elements/ShowTransaction b/rt/html/Ticket/Elements/ShowTransaction
index f2f89d3..2d710fc 100644
--- a/rt/html/Ticket/Elements/ShowTransaction
+++ b/rt/html/Ticket/Elements/ShowTransaction
@@ -38,8 +38,6 @@
unless ($Collapsed) {
$attachments->GotoFirstItem;
while (my $message=$attachments->Next) {
- #we don't want to show any empty transactions, unless they have kids
- next unless ($message->ContentLength || $message->Children->Count);
my ($headers, $quoted);
if ($ShowHeaders && ($ShowHeaders == $Ticket->Id)) {
@@ -53,11 +51,18 @@ unless ($Collapsed) {
eval {$headers =~ s/^([^:]+)(?=:)/loc($1)/em; } # we eval here to catch errors when 5.6 panics
}
# 13456 is a random # of about the biggest size we want to see inline text
- my $MAX_INLINE_BODY = 13456;
+ # It's here to catch anyone who hasn't updated RT_Config.pm since this
+ # constant was moved out there.
+ my $MAX_INLINE_BODY = $RT::MaxInlineBody || 13456;
if ($message->ContentType =~ m{^(text/plain|message|text$)}i &&
$message->ContentLength < $MAX_INLINE_BODY ) {
+ eval {
require Text::Quoted;
- $quoted = Text::Quoted::extract($message->Content);
+ $quoted = Text::Quoted::extract($message->Content);
+ };
+ if ($@) {
+ $quoted = $message->Content;
+ }
}
</%PERL>
@@ -69,7 +74,12 @@ unless ($Collapsed) {
<PRE>
<& ShowMessageHeaders, Headers => $headers, Transaction => $Transaction &>
</PRE>
+% if (!length($quoted) && $message->ContentType =~ m#^text/#) {
+<blockquote><i><&|/l&>Message body not shown because it is too large or is not plain text.</&><br>
+<&|/l&>You can access it with the Download button on the right.</&></i></blockquote>
+% } else {
<& ShowMessageStanza, Depth => 0, Message => $quoted, Transaction => $Transaction &>
+% }
</span>
</TD>
<TD VALIGN=TOP ALIGN=RIGHT>
@@ -78,7 +88,7 @@ unless ($Collapsed) {
<BR>
% }
<%PERL>
-my $size = $message->ContentLength;
+my $size = $message->ContentLength or next;
if ($size) {
if ($size > 1024) {
@@ -88,7 +98,7 @@ if ($size) {
$size = loc("[_1]b", $size);
}
</%PERL>
-<font size=-1><A HREF="<%$RT::WebPath%>/Ticket/Attachment/<%$Transaction->Id%>/<%$message->Id%>/<%$message->Filename%>"><&|/l&>Download</&> <% $message->Filename|| loc('(untitled)') %></a> <% $size %></font>
+<font size=-1><A HREF="<%$AttachPath%>/<%$Transaction->Id%>/<%$message->Id%>/<%$message->Filename | u%>"><&|/l&>Download</&> <% $message->Filename|| loc('(untitled)') %></a> <% $size %></font>
% }
</TD>
</TR>
@@ -104,6 +114,7 @@ $ShowHeaders => 0
$Collapsed => undef
$ShowTitleBarCommands => 1
$RowNum => 1
+$AttachPath => $RT::WebPath."/Ticket/Attachment"
</%ARGS>
<%INIT>
@@ -147,6 +158,7 @@ if ($Transaction->TimeTaken > 0) {
$TimeTaken = $Transaction->TimeTaken." min"
}
my $attachments = $Transaction->Attachments;
+$attachments->Columns( qw( Id Filename ContentType Headers Subject Parent ContentEncoding ContentType TransactionId) );
my $titlebar_commands='&nbsp;';
diff --git a/rt/html/Ticket/Elements/Tabs b/rt/html/Ticket/Elements/Tabs
index 81c92e8..cba45df 100644
--- a/rt/html/Ticket/Elements/Tabs
+++ b/rt/html/Ticket/Elements/Tabs
@@ -45,11 +45,17 @@ my $id = $Ticket->id();
if ( defined $session{'tickets'} ) {
+ # we have to update session data if we get new ItemMap
+ my $updatesession = 1 unless($session{'tickets'}->{'item_map'});
-my $item_map = $session{'tickets'}->ItemMap;
+ my $item_map = $session{'tickets'}->ItemMap;
- # Don't $current_toptab = display prev links if we're on the first ticket
+ if ($updatesession) {
+ $session{'i'}++;
+ $session{'tickets'}->PrepForSerialization();
+ }
+ # Don't $current_toptab = display prev links if we're on the first ticket
if ($item_map->{$Ticket->Id}->{prev}) {
$searchtabs->{'_a'} = {
class => "nav",