Update.html -> Display.html and notifying user, callbacks, etc

Hi,

We’re testing a migration from RT 3.8.x (with callbacks, etc) to RT 4.2.3

This thread is probably going to end up relevant to
RT-Extension-MandatoryOnTransition which does not appear to have yet
solved this issue.

I’m a little stuck here and don’t see how what I want to do will be
possible with the current RT code. I am looking for another set of eyes
on the issue if anyone is so generous.

The gist is that I am trying to get a message to the user after they
have submitted Ticket/Update.html. Specifically, they need to be
informed that their ‘resolve’ was rejected due to a Custom Field not
having an acceptable value yet.

I have no trouble doing this in Ticket/Modify.html. That works both
with my custom callback code and also completely reimplemented via the
RT-Extension-MandatoryOnTransition code (I tested that as well).

However, Ticket/Update.html redirects to Ticket/Display.html upon
submission and is therefore different.

Does anyone have any ideas? I’ve put in a couple of hours now and am
still not really sure I understand Update.html and Display.html’s
interactions with each other (and when).

For the time-being I am back to the WWW-circa-1995 behavior, in my
callback for Ticket/Update.html, of using Abort(“ERROR… hit back in
your browser to correct the issue…”)

Jeff Blaine

This thread is probably going to end up relevant to
RT-Extension-MandatoryOnTransition which does not appear to have yet
solved this issue.

I’m surprised at this statement since MandatoryOnTransition works on
Create.html and Update.html but not on Modify.html, but you claim the
problem is in Update.html.

The gist is that I am trying to get a message to the user after they
have submitted Ticket/Update.html. Specifically, they need to be
informed that their ‘resolve’ was rejected due to a Custom Field not
having an acceptable value yet.

I have no trouble doing this in Ticket/Modify.html. That works both
with my custom callback code and also completely reimplemented via the
RT-Extension-MandatoryOnTransition code (I tested that as well).

However, Ticket/Update.html redirects to Ticket/Display.html upon
submission and is therefore different.

Ticket/Update.html does not redirect to Display.html on submission.
It runs and then calls Display.html like any other mason component
call using $m->comp (equivalent to <& &>. Display.html then redirects to
itself if needed.

MandatoryOnTransaction uses Update.html/BeforeUpdate to break out of
calling Display.html if there was an error.

You would use the same callback.

If BeforeUpdate sets skip_update and pushes things into the
@$results_ref array ref then control will not be dispatched to
Display.html and instead Update.html will redisplay with a message at
the top for the user.

Simple code that demonstrates this not working, or a
MandatoryOnTransaction config where this does not work are needed to
continue this conversation.

-kevin

This thread is probably going to end up relevant to
RT-Extension-MandatoryOnTransition which does not appear to have yet
solved this issue.

I’m surprised at this statement since MandatoryOnTransition works on
Create.html and Update.html but not on Modify.html, but you claim the
problem is in Update.html.

You are correct. This was a mix-up in my head. Turns out it cost me a
lot of time (and some of yours). I apologize.

If I am able to come up with something for Modify.html, I will be
sure to feed a pull request back to the github repo for
RT-Extension-MandatoryOnTransition (not …MandatoryOnTransaction
as I previously worded it).

Ticket/Update.html does not redirect to Display.html on submission.
It runs and then calls Display.html like any other mason component
call using $m->comp (equivalent to <& &>. Display.html then redirects to
itself if needed.

MandatoryOnTransaction uses Update.html/BeforeUpdate to break out of
calling Display.html if there was an error.

You would use the same callback.

If BeforeUpdate sets skip_update and pushes things into the
@$results_ref array ref then control will not be dispatched to
Display.html and instead Update.html will redisplay with a message at
the top for the user.

Thank you. This extension and your explanation go places that the wiki
examples do not (for those who are not PERL + HTML::Mason devs).

If I am able to come up with something for Modify.html, I will be
sure to feed a pull request back to the github repo for
RT-Extension-MandatoryOnTransition (not …MandatoryOnTransaction
as I previously worded it).

Sounds good. There are a bunch of holes to close in that extension to
make it cover every place you can change statuses in RT and that would
be a great start. We hit the ‘most common’ things but document that
there are things it doesn’t do.

Thank you. This extension and your explanation go places that the wiki
examples do not (for those who are not PERL + HTML::Mason devs).

Glad it helped explain what was going on.

-kevin