diff options
author | mark <mark> | 2011-05-31 23:30:13 +0000 |
---|---|---|
committer | mark <mark> | 2011-05-31 23:30:13 +0000 |
commit | e02e5448d8fdad322dbe5562f92d9623e5d6f0dd (patch) | |
tree | 0b7385d69d9a8bac89f8d7387387faa8eb55ac2e /rt/share/html/Ticket | |
parent | dd65ba99bb9281571f19744154a3b03bcd3f01ab (diff) |
improve mandatory fields, #9260
Diffstat (limited to 'rt/share/html/Ticket')
-rwxr-xr-x | rt/share/html/Ticket/Display.html | 16 | ||||
-rw-r--r-- | rt/share/html/Ticket/Elements/CheckMandatoryFields | 9 | ||||
-rwxr-xr-x | rt/share/html/Ticket/Elements/EditCustomFields | 5 | ||||
-rwxr-xr-x | rt/share/html/Ticket/Modify.html | 4 | ||||
-rwxr-xr-x | rt/share/html/Ticket/ModifyAll.html | 1 |
5 files changed, 22 insertions, 13 deletions
diff --git a/rt/share/html/Ticket/Display.html b/rt/share/html/Ticket/Display.html index a6850bb1e..59adbd68d 100755 --- a/rt/share/html/Ticket/Display.html +++ b/rt/share/html/Ticket/Display.html @@ -164,9 +164,12 @@ if ($ARGS{'id'} eq 'new') { push @Actions, ProcessTicketLinks( ARGSRef => \%ARGS, TicketObj => $TicketObj ); push @Actions, ProcessTicketDates( ARGSRef => \%ARGS, TicketObj => $TicketObj ); push @Actions, ProcessTicketCustomFieldUpdates(ARGSRef => \%ARGS, TicketObj => $TicketObj ); + # If this fails due to required fields being empty, it will set + # notes('RedirectToBasics'). + push @Actions, ProcessTicketStatus( ARGSRef => \%ARGS, TicketObj => $TicketObj ); - # XXX: we shouldn't block actions here if user has no right to see the ticket, - # but we should allow him to see actions he has done + # XXX: we shouldn't block actions here if user has no right to see the + # ticket, but we should allow him to see actions he has done unless ($TicketObj->CurrentUserHasRight('ShowTicket')) { Abort("No permission to view ticket"); } @@ -197,7 +200,14 @@ if (@Actions) { my $key = Digest::MD5::md5_hex( rand(1024) ); push @{ $session{"Actions"}->{$key} ||= [] }, @Actions; $session{'i'}++; - my $url = RT->Config->Get('WebURL') . "Ticket/Display.html?id=" . $TicketObj->id . "&results=" . $key; + my $url = RT->Config->Get('WebURL'); + if ( $m->notes('RedirectToBasics') ) { + $url .= 'Ticket/Modify.html'; + } + else { + $url .= 'Ticket/Display.html'; + } + $url .= '?id=' . $TicketObj->id . "&results=" . $key; $url .= '#' . $ARGS{Anchor} if $ARGS{Anchor}; RT::Interface::Web::Redirect($url); } diff --git a/rt/share/html/Ticket/Elements/CheckMandatoryFields b/rt/share/html/Ticket/Elements/CheckMandatoryFields deleted file mode 100644 index 3d0324f98..000000000 --- a/rt/share/html/Ticket/Elements/CheckMandatoryFields +++ /dev/null @@ -1,9 +0,0 @@ -<%init> - -my $TicketObj = $ARGS{'Ticket'} or return (); -my $ARGSRef = $ARGS{'ARGSRef'}; -my @fields = grep { $_->Required } - @{ $TicketObj->CustomFields->ItemsArrayRef }; -return grep { !defined($TicketObj->FirstCustomFieldValue($_->id)) } @fields; - -</%init> diff --git a/rt/share/html/Ticket/Elements/EditCustomFields b/rt/share/html/Ticket/Elements/EditCustomFields index 918f4d4f5..943170677 100755 --- a/rt/share/html/Ticket/Elements/EditCustomFields +++ b/rt/share/html/Ticket/Elements/EditCustomFields @@ -105,6 +105,11 @@ $m->callback( %ARGS, CallbackName => 'MassageCustomFields', CustomFields => $Cus my $single_column = RT->Config->Get('EditCustomFieldsSingleColumn'); +# show hints for missing required fields +foreach my $field ( $TicketObj->MissingRequiredFields ) { + $m->notes('InvalidField-' . $field->Id => 'Required to resolve'); +} + </%INIT> <%ARGS> $NamePrefix => '' diff --git a/rt/share/html/Ticket/Modify.html b/rt/share/html/Ticket/Modify.html index b80d86f68..9f1a95932 100755 --- a/rt/share/html/Ticket/Modify.html +++ b/rt/share/html/Ticket/Modify.html @@ -79,8 +79,10 @@ $m->comp( # Now let callbacks have a chance at editing %ARGS $m->callback( TicketObj => $TicketObj, CustomFields => $CustomFields, ARGSRef => \%ARGS ); -my @results = ProcessTicketBasics(TicketObj => $TicketObj, ARGSRef => \%ARGS); +my @results; +push @results, ProcessTicketBasics(TicketObj => $TicketObj, ARGSRef => \%ARGS); push @results, ProcessObjectCustomFieldUpdates(Object => $TicketObj, ARGSRef => \%ARGS); +push @results, ProcessTicketStatus(TicketObj => $TicketObj, ARGSRef => \%ARGS); $TicketObj->ApplyTransactionBatch; diff --git a/rt/share/html/Ticket/ModifyAll.html b/rt/share/html/Ticket/ModifyAll.html index 1776c40d8..cd9bb3891 100755 --- a/rt/share/html/Ticket/ModifyAll.html +++ b/rt/share/html/Ticket/ModifyAll.html @@ -236,6 +236,7 @@ unless ($OnlySearchForPeople or $OnlySearchForGroup or $ARGS{'AddMoreAttach'} ) push @results, ProcessTicketBasics( TicketObj => $Ticket, ARGSRef => \%ARGS ); push @results, ProcessTicketLinks( TicketObj => $Ticket, ARGSRef => \%ARGS); } + push @results, ProcessTicketStatus( TicketObj => $Ticket, ARGSRef => \%ARGS ); $Ticket->ApplyTransactionBatch; |