Callbacks are too greedy in rt 3.2.2

I’m running RT 3.2.2 with RTIR 1.1.3. It seems like there is a
misconception in how Callbacks work in RT 3.2:
/Ticket/Display.html has the following call at the beginning of INIT
section:

$m->comp(’/Elements/Callback’, _CallbackName => ‘Initial’, TicketObj =>
$TicketObj, ARGSRef => %ARGS);

It seems like /Elements/Callback reuses Display from a module where the
Queue of the Ticket belongs. It may lead to a weird situation where you
have no way to do basic operations on a ticket once it gets to a queue
from a custom module, because default tabs are replaced with custom
ones. It means, for example, that you may not be able to move a ticket
to a different queue when mail was sent to a wrong alias.

The workaround is to remove the line above from /Ticket/Display.html.
When doing that, you will need to update RTIR_Config.pm to use
/RTIR/Display.html instead of /Ticket/Display.html manually. Similar
changes may be required for other modules (e.g.RTFM) to work.

Regards,
Przemek

[ Seeing this, I now understand your following mail, but can you give me
a concrete example of when that callback fails? As it was designed,
RTIR 1.2 depends on that callback to do the right thing with ticket
display. ]On Wed, Jan 19, 2005 at 04:15:50PM +0100, Przemek Jaroszewski wrote:

I’m running RT 3.2.2 with RTIR 1.1.3. It seems like there is a
misconception in how Callbacks work in RT 3.2:
/Ticket/Display.html has the following call at the beginning of INIT
section:

$m->comp(‘/Elements/Callback’, _CallbackName => ‘Initial’, TicketObj =>
$TicketObj, ARGSRef => %ARGS);

It seems like /Elements/Callback reuses Display from a module where the
Queue of the Ticket belongs. It may lead to a weird situation where you
have no way to do basic operations on a ticket once it gets to a queue
from a custom module, because default tabs are replaced with custom
ones. It means, for example, that you may not be able to move a ticket
to a different queue when mail was sent to a wrong alias.

The workaround is to remove the line above from /Ticket/Display.html.
When doing that, you will need to update RTIR_Config.pm to use
/RTIR/Display.html instead of /Ticket/Display.html manually. Similar
changes may be required for other modules (e.g.RTFM) to work.

Regards,
Przemek


The rt-users Archives

RT Administrator and Developer training is coming to your town soon!
(Boston, San Francisco, Austin, Sydney) Contact training@bestpractical.com
for details.

Be sure to check out the RT Wiki at http://wiki.bestpractical.com

Jesse Vincent wrote:

[ Seeing this, I now understand your following mail, but can you give me
a concrete example of when that callback fails? As it was designed,
RTIR 1.2 depends on that callback to do the right thing with ticket
display. ]

In our environment, apart from RTIR, we have a queue called “Info” where
requests for information rather than incident reports are supposed to be
handled. The problem is that if someone sends such request to rtir@…
instead of info@…, there is no way to move such ticket to the
apropriate queue since RTIR interface does not provide the ‘Basic’ tab.

The workaround I described (removing the callback and changing RTIR
search result filters to /RTIR/Display.html) fixes this but introduces a
number of smaller issues that I’m currently looking into.

A good solution would most likely be to just add ‘Basic’ (possibly a
custom one) to RTIR tabs.

Regards,
Przemek