X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2Fm%2Fticket%2Freply;h=bc7f0d6d3b928bda29000db1f535b747cc40b219;hb=31f3763747b82764bb019cfab5b2a2945fc9a99d;hp=ea2a6cad4c3e40fd3c36e8ef28be15d57f02b360;hpb=fb4ab1073f0d15d660c6cdc4e07afebf68ef3924;p=freeside.git diff --git a/rt/share/html/m/ticket/reply b/rt/share/html/m/ticket/reply index ea2a6cad4..bc7f0d6d3 100644 --- a/rt/share/html/m/ticket/reply +++ b/rt/share/html/m/ticket/reply @@ -1,3 +1,50 @@ +%# BEGIN BPS TAGGED BLOCK {{{ +%# +%# COPYRIGHT: +%# +%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC +%# +%# +%# (Except where explicitly superseded by other copyright notices) +%# +%# +%# LICENSE: +%# +%# This work is made available to you under the terms of Version 2 of +%# the GNU General Public License. A copy of that license should have +%# been provided with this software, but in any event can be snarfed +%# from www.gnu.org. +%# +%# This work is distributed in the hope that it will be useful, but +%# WITHOUT ANY WARRANTY; without even the implied warranty of +%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +%# General Public License for more details. +%# +%# 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., 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: +%# +%# (The following paragraph is not intended to limit the rights granted +%# to you to modify and distribute this software under the terms of +%# the GNU General Public License and is only of importance to you if +%# you choose to contribute your changes and enhancements to the +%# community by submitting them to Best Practical Solutions, LLC.) +%# +%# By intentionally submitting any modifications, corrections or +%# derivatives to this work, or any other work intended for use with +%# Request Tracker, to Best Practical Solutions, LLC, you confirm that +%# you are the copyright holder for those contributions and you grant +%# Best Practical Solutions, LLC a nonexclusive, worldwide, irrevocable, +%# royalty-free, perpetual, license to use, copy, create derivative +%# works based on those contributions, and sublicense and distribute +%# those contributions and any derivatives thereof. +%# +%# END BPS TAGGED BLOCK }}} <&|/m/_elements/wrapper, title => loc('Update ticket #[_1]', $t->id) &> <& /m/_elements/ticket_menu, ticket => $t &> <& /Elements/ListActions, actions => \@results &> @@ -8,9 +55,13 @@ +% if ($gnupg_widget) { +<& /Elements/GnuPG/SignEncryptWidget:ShowIssues, self => $gnupg_widget &> +% } +
<&|/l&>Status:
-<& /Elements/SelectStatus, Name=>"Status", DefaultLabel => loc("[_1] (Unchanged)", loc($t->Status)), Default => $ARGS{'Status'} || ($t->Status eq $DefaultStatus ? undef : $DefaultStatus)&> +<& /Elements/SelectStatus, Name=>"Status", TicketObj => $t, DefaultLabel => loc("[_1] (Unchanged)", loc($t->Status)), Default => $ARGS{'Status'} || ($t->Status eq $DefaultStatus ? undef : $DefaultStatus)&>
<&|/l&>Owner: @@ -19,7 +70,7 @@ Name => "Owner", TicketObj => $t, QueueObj => $t->QueueObj, - DefaultLabel => loc("[_1] (Unchanged)", $t->OwnerObj->Name), + DefaultLabel => loc("[_1] (Unchanged)", $m->scomp('/Elements/ShowUser', User => $t->OwnerObj)), Default => $ARGS{'Owner'} &>
@@ -30,6 +81,7 @@ InUnits => $ARGS{'UpdateTimeWorked-TimeUnits'}||'minutes', &> +% $m->callback( %ARGS, CallbackName => 'AfterWorked', Ticket => $t );
<&|/l&>Update Type:
-
<&|/l&>Subject:
+
<&|/l&>Subject:
% $m->callback( %ARGS, CallbackName => 'AfterSubject' );
@@ -62,6 +114,32 @@ <& /Elements/MessageBox, Name=>"UpdateContent", IncludeSignature => $IncludeSignature, %ARGS &> % }
+ +% if (exists $session{'Attachments'}) { + +<%loc("Attached file") %> + +<%loc("Check box to delete")%>
+% foreach my $attach_name (keys %{$session{'Attachments'}}) { +<%$attach_name%>
+% } # end of foreach + + +% } # end of if + +
+<&|/l&>Attach file: +
+ +" /> + +
+
+ +% if ( $gnupg_widget ) { +<& /Elements/GnuPG/SignEncryptWidget, self => $gnupg_widget, QueueObj => $t->QueueObj &> +% } + <& /Elements/Submit, Label => loc('Update Ticket'), Name => 'SubmitTicket' &> @@ -113,35 +191,7 @@ $CanRespond = 1 if ( $t->CurrentUserHasRight('ReplyToTicket') or $CanComment = 1 if ( $t->CurrentUserHasRight('CommentOnTicket') or $t->CurrentUserHasRight('ModifyTicket') ); - -# {{{ deal with deleting uploaded attachments -foreach my $key (keys %ARGS) { - if ($key =~ m/^DeleteAttach-(.+)$/) { - delete $session{'Attachments'}{$1}; - } - $session{'Attachments'} = { %{$session{'Attachments'} || {}} }; -} -# }}} - -# {{{ store the uploaded attachment in session -if ($ARGS{'Attach'}) { # attachment? - my $attachment = MakeMIMEEntity( - AttachmentFieldName => 'Attach' - ); - - my $file_path = Encode::decode_utf8("$ARGS{'Attach'}"); - $session{'Attachments'} = { - %{$session{'Attachments'} || {}}, - $file_path => $attachment, - }; -} -# }}} - -# delete temporary storage entry to make WebUI clean -unless (keys %{$session{'Attachments'}} and $ARGS{'UpdateAttach'}) { - delete $session{'Attachments'}; -} -# }}} +ProcessAttachments(ARGSRef => \%ARGS); # check email addresses for RT's { @@ -159,13 +209,29 @@ unless (keys %{$session{'Attachments'}} and $ARGS{'UpdateAttach'}) { } } -if ( !$checks_failure && exists $ARGS{SubmitTicket} ) { +my $gnupg_widget = $m->comp('/Elements/GnuPG/SignEncryptWidget:new', Arguments => \%ARGS ); +$m->comp( '/Elements/GnuPG/SignEncryptWidget:Process', + self => $gnupg_widget, + TicketObj => $t, +); + +my $skip_update = 0; +$m->callback( CallbackName => 'BeforeUpdate', ARGSRef => \%ARGS, skip_update => \$skip_update, + checks_failure => $checks_failure, results => \@results, TicketObj => $t ); + +if ( !$checks_failure && !$skip_update && exists $ARGS{SubmitTicket} ) { + my $status = $m->comp('/Elements/GnuPG/SignEncryptWidget:Check', + self => $gnupg_widget, + TicketObj => $t, + ); + $checks_failure = 1 unless $status; + $m->callback( Ticket => $t, ARGSRef => \%ARGS, CallbackName => 'BeforeDisplay' ); return $m->comp('/m/ticket/show', TicketObj => $t, %ARGS); } <%ARGS> $id => undef -$Action => 'reply' +$Action => 'Respond' $DefaultStatus => undef