I came across another scenario where I needed a new callback:
/Ticket/Display.html before the redirect (approx line 154).
Scenario: When resolving a ticket via /Ticket/Update.html, I want to
conditionally require entering a value for a custom field (eg: resolving
a ticket to add a new user and specifying their new email address). So I
have a callback (BeforeMessageBox) that adds appropriate fields for the
CFs I want filled in. This works great. However, by default
/Ticket/Display.html does not update Custom Fields - just Basics and
Links. So I’m using a new Callback (BeforeActions) to give me a chance
to save these CF’s.
Here’s another feature request: give me a standard way to see if a form
has been submitted. In other projects I’ve used a hidden field
"_form_submitted" which served this purpose. Something similar would be
useful in a lot of places IMHO.
Here’s the patch for /Tickets/Display.html
— /Ticket/Display.html.orig 2006-03-04 22:51:08.000000000 +0000
+++ /Ticket/Display.html 2006-07-31 21:15:23.000000000 +0000
@@ -146,11 +146,16 @@
push (@Actions, @BasicActions, @results);
}
+# only run as the result of a form submission (eg. from
/Ticket/Update.html)
+if ( $ARGS{“SubmitTicket”} ) {
- $m->comp(’/Elements/Callback’, _CallbackName => ‘BeforeActions’,
-
TicketObj => \$TicketObj, Tickets => \$Tickets, Actions =>
@Actions,
-
ARGSRef => \%ARGS);
+}
This code does automatic redirection if any updates happen.
It doesn’t work for the client.
if (@Actions) {
# We’ve done something, so we need to clear the decks to avoid
# resubmission on refresh.
Thanks,
Drew