diff options
author | mark <mark> | 2011-05-31 23:12:38 +0000 |
---|---|---|
committer | mark <mark> | 2011-05-31 23:12:38 +0000 |
commit | 554c6cc1ad55ea6ff3907b4eb38332fbf520fdb0 (patch) | |
tree | a93e6658d73f66329e40e68ace4d8e24b5008903 /rt/share/html/Ticket | |
parent | 113d47ee6ca162ee0adb5bd2a74b59cc56b7f8a9 (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 6d4ff102f..93bca547b 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, ProcessObjectCustomFieldUpdates(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 5478c7871..d93958ffe 100755 --- a/rt/share/html/Ticket/Elements/EditCustomFields +++ b/rt/share/html/Ticket/Elements/EditCustomFields @@ -100,6 +100,11 @@ if ($TicketObj && !$OnCreate) { $m->callback( %ARGS, CallbackName => 'MassageCustomFields', CustomFields => $CustomFields ); +# 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 e7d370f56..0067debc6 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 41eda1b97..102bda805 100755 --- a/rt/share/html/Ticket/ModifyAll.html +++ b/rt/share/html/Ticket/ModifyAll.html @@ -232,6 +232,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; |