X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Fhtml%2FTicket%2FDisplay.html;h=7bdd57f93d21b9792eab7be25a149a11da75c12b;hb=24548f7cf666bac02335d0bc74f81251c7b4ab50;hp=908a7a93a869b9a31cbc58a730e3b8d19b8c8a77;hpb=9c68254528b6f2c7d8c1921b452fa56064783782;p=freeside.git diff --git a/rt/html/Ticket/Display.html b/rt/html/Ticket/Display.html index 908a7a93a..7bdd57f93 100644 --- a/rt/html/Ticket/Display.html +++ b/rt/html/Ticket/Display.html @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -22,7 +22,9 @@ %# %# You should have received a copy of the GNU General Public License %# along with this program; if not, write to the Free Software -%# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +%# 02110-1301 or visit their web page on the internet at +%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html. %# %# %# CONTRIBUTION SUBMISSION POLICY: @@ -51,13 +53,12 @@ Title => loc("#[_1]: [_2]", $TicketObj->Id, $TicketObj->Subject) &> <& /Elements/ListActions, actions => \@Actions &> - -<& /Elements/TitleBoxStart, title => loc('Ticket metadata'), contentbg => -'#ffffff' &> +<& /Elements/Callback, _CallbackName => 'BeforeShowSummary', Ticket => $TicketObj, %ARGS &> +<&| /Widgets/TitleBox, title => loc('Ticket metadata') &> <& /Ticket/Elements/ShowSummary, Ticket => $TicketObj, Attachments => $attachments &> -<& /Elements/TitleBoxEnd &> + -
+
<& /Elements/Callback, _CallbackName => 'BeforeShowHistory', Ticket => $TicketObj, %ARGS &> @@ -71,7 +72,9 @@ &> - +<& /Elements/Callback, _CallbackName => 'AfterShowHistory', Ticket => $TicketObj, +current_tab => 'Ticket/Display.html?id=' . $TicketObj->id, %ARGS &> + <%ARGS> $id => undef $Create => undef @@ -119,6 +122,10 @@ if ($ARGS{'id'} eq 'new') { } } + $m->comp('/Elements/Callback', _CallbackName => 'BeforeProcessArguments', + TicketObj => $TicketObj, Tickets => $Tickets, + ActionsRef => \@Actions, ARGSRef => \%ARGS); + if (defined $ARGS{'Action'}) { if ($ARGS{'Action'} =~ /^(Steal|Kill|Take|SetTold)$/) { my $action = $1; @@ -128,11 +135,10 @@ if ($ARGS{'id'} eq 'new') { } $ARGS{'UpdateContent'} =~ s/\r\n/\n/g if defined $ARGS{'UpdateContent'}; - if ( $ARGS{'UpdateTimeWorked'} || ( - defined $ARGS{'UpdateContent'} + if ( ( defined $ARGS{'UpdateContent'} && $ARGS{'UpdateContent'} ne '' && $ARGS{'UpdateContent'} ne "-- \n" - . $session{'CurrentUser'}->UserObj->Signature ) ) + . $session{'CurrentUser'}->UserObj->Signature ) || $session{'Attachments'} ) { $ARGS{UpdateAttachments} = $session{'Attachments'}; ProcessUpdateMessage( @@ -141,19 +147,36 @@ if ($ARGS{'id'} eq 'new') { TicketObj => $TicketObj, ); delete $session{'Attachments'}; + } elsif ( $ARGS{'UpdateTimeWorked'} ) { + # Add UpdateTimeWorked to TimeWorked (processed below with ProcessTicketBasics) + $ARGS{'TimeWorked'} = $TicketObj->TimeWorked + $ARGS{'UpdateTimeWorked'}; } #Process status updates + my @PeopleActions = ProcessTicketWatchers(ARGSRef => \%ARGS, TicketObj=>$TicketObj); my @BasicActions = ProcessTicketBasics(ARGSRef => \%ARGS, TicketObj=>$TicketObj); my @results = ProcessTicketLinks( TicketObj => $TicketObj, ARGSRef => \%ARGS); - push (@Actions, @BasicActions, @results); + push (@Actions, @PeopleActions, @BasicActions, @results); } - - $m->comp('/Elements/Callback', _CallbackName => 'BeforeDisplay', - TicketObj => \$TicketObj, Tickets => \$Tickets, ARGSRef => \%ARGS); - + TicketObj => \$TicketObj, + Tickets => \$Tickets, + Actions => \@Actions, + ARGSRef => \%ARGS, +); + +# This code does automatic redirection if any updates happen. + +if (@Actions) { + # We've done something, so we need to clear the decks to avoid + # resubmission on refresh. + # But we need to store Actions somewhere too, so we don't lose them. + $session{"Actions"} = \@Actions; + RT::Interface::Web::Redirect($RT::WebURL."Ticket/Display.html?id=".$TicketObj->id); +} else { + @Actions = @{ delete $session{"Actions"} || [] }; +} my $attachments = $m->comp('Elements/FindAttachments', Ticket => $TicketObj, Tickets => $Tickets); my $attachment_content = $m->comp('Elements/LoadTextAttachments', Ticket => $TicketObj);