summaryrefslogtreecommitdiff
path: root/rt/share/html/Ticket/ModifyAll.html
diff options
context:
space:
mode:
Diffstat (limited to 'rt/share/html/Ticket/ModifyAll.html')
-rwxr-xr-xrt/share/html/Ticket/ModifyAll.html97
1 files changed, 55 insertions, 42 deletions
diff --git a/rt/share/html/Ticket/ModifyAll.html b/rt/share/html/Ticket/ModifyAll.html
index 20471ac..f0b70b5 100755
--- a/rt/share/html/Ticket/ModifyAll.html
+++ b/rt/share/html/Ticket/ModifyAll.html
@@ -55,14 +55,16 @@
% $m->callback( CallbackName => 'FormStart', ARGSRef => \%ARGS );
<input type="submit" name="SubmitTicket" value="Save Changes" style="display:none">
<input type="hidden" class="hidden" name="id" value="<%$Ticket->Id%>" />
+<input type="hidden" class="hidden" name="Token" value="<% $ARGS{'Token'} %>" />
<&| /Widgets/TitleBox, title => loc('Modify ticket # [_1]', $Ticket->Id), class=>'ticket-info-basics' &>
-<& Elements/EditBasics, TicketObj => $Ticket &>
-<& Elements/EditCustomFields, TicketObj => $Ticket &>
+<& Elements/EditBasics, TicketObj => $Ticket, defaults => \%ARGS &>
+<& /Elements/EditCustomFields, Object => $Ticket, Grouping => 'Basics' &>
</&>
% $m->callback(CallbackName => 'AfterBasics', Ticket => $Ticket);
-<br />
+
+<& /Elements/EditCustomFieldCustomGroupings, Object => $Ticket &>
<&| /Widgets/TitleBox, title => loc('Dates'), class=>'ticket-info-dates'&>
<& Elements/EditDates, TicketObj => $Ticket &>
@@ -78,7 +80,13 @@
<br />
<&| /Widgets/TitleBox, title => loc('Links'), class=>'ticket-info-links' &>
-<& /Elements/EditLinks, Object => $Ticket, Merge => 1 &>
+<& /Elements/EditLinks, Object => $Ticket &>
+</&>
+
+<br />
+
+<&| /Widgets/TitleBox, title => loc('Merge'), class=>'ticket-info-merge' &>
+<& Elements/EditMerge, Ticket => $Ticket, %ARGS &>
</&>
<br />
@@ -88,7 +96,7 @@
<tr>
<td class="label"><&|/l&>Update Type</&>:</td>
<td class="entry">
- <select name="UpdateType">
+ <select name="UpdateType" id="UpdateType">
% if ($CanComment) {
<option value="private" ><&|/l&>Comments (Not sent to requestors)</&></option>
% }
@@ -112,8 +120,9 @@
<tr>
<td class="labeltop"><&|/l&>Content</&>:</td>
- <td class="entry">
-% if ( defined $ARGS{UpdateContent} && length $ARGS{UpdateContent} ) {
+ <td class="entry messagebox-container action-<% $ARGS{UpdateType} || ($CanComment ? 'private' : 'response') %>">
+% $m->callback( %ARGS, CallbackName => 'BeforeMessageBox' );
+% if (defined $ARGS{UpdateContent} && length($ARGS{UpdateContent})) {
<& /Elements/MessageBox, Name=>"UpdateContent", Default=>$ARGS{UpdateContent}, IncludeSignature => 0 &>
% } else {
<& /Elements/MessageBox, Name=>"UpdateContent", QuoteTransaction=>$ARGS{QuoteTransaction} &>
@@ -129,6 +138,8 @@
Caption => loc("If you've updated anything above, be sure to"), color => "#333399" &>
</form>
+% $m->callback(CallbackName => 'AfterForm', ARGSRef => \%ARGS, Ticket => $Ticket);
+
<%INIT>
@@ -136,13 +147,6 @@
my $Ticket = LoadTicket($id);
my $CustomFields = $Ticket->CustomFields;
-# call this to show up hints of valid cf values.
-$m->comp(
- '/Elements/ValidateCustomFields',
- CustomFields => $CustomFields,
- ARGSRef => {},
-);
-
my $CanRespond = 0;
my $CanComment = 0;
@@ -155,47 +159,56 @@ $CanComment = 1 if ( $Ticket->CurrentUserHasRight('CommentOnTicket') or
ProcessAttachments(ARGSRef => \%ARGS);
-$m->callback( TicketObj => $Ticket, ARGSRef => \%ARGS );
my @results;
-
-unless ($OnlySearchForPeople or $OnlySearchForGroup or $ARGS{'AddMoreAttach'} ) {
- # There might be two owners.
- if ( ref ($ARGS{'Owner'} )) {
- my @owners =@{$ARGS{'Owner'}};
- delete $ARGS{'Owner'};
- foreach my $owner(@owners){
- if (defined($owner) && $owner =~ /\D/) {
- $ARGS{'Owner'} = $owner unless ($Ticket->OwnerObj->Name eq $owner);
- }
- elsif (length $owner) {
- $ARGS{'Owner'} = $owner unless ($Ticket->OwnerObj->id == $owner);
- }
- }
-
+my $skip_update = 0;
+$m->callback( TicketObj => $Ticket, ARGSRef => \%ARGS, skip_update => \$skip_update, results => \@results );
+
+{
+ my ($status, @msg) = $m->comp(
+ '/Elements/ValidateCustomFields',
+ Object => $Ticket,
+ CustomFields => $CustomFields,
+ ARGSRef => \%ARGS,
+ );
+ unless ($status) {
+ push @results, @msg;
+ $skip_update = 1;
}
+}
+
+# There might be two owners.
+if ( ref ($ARGS{'Owner'} )) {
+ my @owners =@{$ARGS{'Owner'}};
+ delete $ARGS{'Owner'};
+ foreach my $owner(@owners){
+ if (defined($owner) && $owner =~ /\D/) {
+ $ARGS{'Owner'} = $owner unless ($Ticket->OwnerObj->Name eq $owner);
+ }
+ elsif (length $owner) {
+ $ARGS{'Owner'} = $owner unless ($Ticket->OwnerObj->id == $owner);
+ }
+ }
+}
+unless ($skip_update or $OnlySearchForPeople or $OnlySearchForGroup or $ARGS{'AddMoreAttach'} ) {
push @results, ProcessTicketWatchers( TicketObj => $Ticket, ARGSRef => \%ARGS);
push @results, ProcessObjectCustomFieldUpdates( Object => $Ticket, ARGSRef => \%ARGS);
push @results, ProcessTicketDates( TicketObj => $Ticket, ARGSRef => \%ARGS);
-
- # Add session attachments if any to be processed by ProcessUpdateMessage
- $ARGS{'UpdateAttachments'} = $session{'Attachments'} if ( $session{'Attachments'} );
push @results, ProcessUpdateMessage( TicketObj => $Ticket, ARGSRef=>\%ARGS );
- # Cleanup WebUI
- delete $session{'Attachments'};
-
push @results, ProcessTicketBasics( TicketObj => $Ticket, ARGSRef => \%ARGS );
push @results, ProcessTicketLinks( TicketObj => $Ticket, ARGSRef => \%ARGS);
}
push @results, ProcessTicketStatus( TicketObj => $Ticket, ARGSRef => \%ARGS );
-$Ticket->ApplyTransactionBatch;
+ $Ticket->ApplyTransactionBatch;
-MaybeRedirectForResults(
- Actions => \@results,
- Path => "/Ticket/ModifyAll.html",
- Arguments => { id => $Ticket->id },
-);
+ MaybeRedirectForResults(
+ Actions => \@results,
+ Path => "/Ticket/ModifyAll.html",
+ Arguments => { id => $Ticket->id },
+ );
+
+}
# If they've gone and moved the ticket to somewhere they can't see, etc...
unless ($Ticket->CurrentUserHasRight('ShowTicket')) {