Display Queue and Status of Linked Items

Here is another FYI tip and a methodology question. In the Ticket Zoom view, we quite often have Linked items (Parent tickets, Child tickets, Normal, etc). Unfortunately, the default view simply shows the ticket number of those linked objects. To get any information about those linked objects, you actually have to click on them. This is a big productivity drain for our group. In order to know what to do with a parent ticket, they need to know the status of all child tickets. So, they are forced to click into each child and back to the parent over and over. Once they finally know the status of all the child tickets, they can set the state of the parent. Needless to say, that wastes lots of time and causes the occasional accident where someone is still on a child when they change the status of what they THINK is the parent. I've solved this problem by modifying Kernel/Output/HTML/LinkObjectTicket.pm to display not just the ticket number, but also the queue and ticket status of any linked objects. File : Kernel/Output/HTML/LinkObjectTicket.pm Function : TableCreateSimple Lines : Starting at 324 Original: --------------------------------------------- # define item data my %Item = ( Type => 'Link', Content => 'T:' . $Ticket->{TicketNumber}, Title => "$TicketHook$Ticket->{TicketNumber}: $Ticket->{Title}", Link => '$Env{"Baselink"}Action=AgentTicketZoom&TicketID=' . $TicketID, Css => $Css, --------------------------------------------- New : --------------------------------------------- # define item data my %Item = ( Type => 'Link', Content => $Ticket->{TicketNumber} . ' - ' . $Ticket->{Queue} . ' : ' . $Ticket->{State};, Title => "$TicketHook$Ticket->{TicketNumber}: $Ticket->{Title}", Link => '$Env{"Baselink"}Action=AgentTicketZoom&TicketID=' . $TicketID, Css => $Css, ); --------------------------------------------- Okay, that was a lot of explanation and code. Now, I have a question. Am I going about these changes properly? When working with .dtl template files, it's easy to ensure they aren't overridden by updates / upgrades because I put them in my own template directory. However, LinkObjectTicket.pm is a core file. The next time I upgrade, those changes will get overridden. Is there any way for me to create changes like this and ensure they are blown out by the next update? Is there some way to extend each file so that I simply override the functionality similar to the OOO approach? Thanks, Justin Noel Calendee LLC http://www.calendee.com

Hi Justin, Thank you for this, it's a great addition to the interface. I hope it will make it into the official distribution of OTRS. Lars On 10/02/10 07.08, Justin Noel wrote:
Here is another FYI tip and a methodology question.
In the Ticket Zoom view, we quite often have Linked items (Parent tickets, Child tickets, Normal, etc). Unfortunately, the default view simply shows the ticket number of those linked objects. To get any information about those linked objects, you actually have to click on them.
This is a big productivity drain for our group. In order to know what to do with a parent ticket, they need to know the status of all child tickets. So, they are forced to click into each child and back to the parent over and over. Once they finally know the status of all the child tickets, they can set the state of the parent. Needless to say, that wastes lots of time and causes the occasional accident where someone is still on a child when they change the status of what they THINK is the parent.
I've solved this problem by modifying Kernel/Output/HTML/LinkObjectTicket.pm to display not just the ticket number, but also the queue and ticket status of any linked objects.
File : Kernel/Output/HTML/LinkObjectTicket.pm Function : TableCreateSimple Lines : Starting at 324 Original: --------------------------------------------- # define item data my %Item = ( Type => 'Link', Content => 'T:' . $Ticket->{TicketNumber}, Title => "$TicketHook$Ticket->{TicketNumber}: $Ticket->{Title}", Link => '$Env{"Baselink"}Action=AgentTicketZoom&TicketID=' . $TicketID, Css => $Css, ---------------------------------------------
New : --------------------------------------------- # define item data my %Item = ( Type => 'Link', Content => $Ticket->{TicketNumber} . ' - ' . $Ticket->{Queue} . ' : ' . $Ticket->{State};, Title => "$TicketHook$Ticket->{TicketNumber}: $Ticket->{Title}", Link => '$Env{"Baselink"}Action=AgentTicketZoom&TicketID=' . $TicketID, Css => $Css, ); ---------------------------------------------
Okay, that was a lot of explanation and code. Now, I have a question. Am I going about these changes properly? When working with .dtl template files, it's easy to ensure they aren't overridden by updates / upgrades because I put them in my own template directory. However, LinkObjectTicket.pm is a core file. The next time I upgrade, those changes will get overridden. Is there any way for me to create changes like this and ensure they are blown out by the next update? Is there some way to extend each file so that I simply override the functionality similar to the OOO approach?
Thanks, Justin Noel Calendee LLC http://www.calendee.com

Hi Justin,
The code looks nice, good work!
If you want to separate out changes like this, it's best to create a
package for them. This is by far the nicest method. The only drawback
for this is that if we decide to upgrade the LinkObject.pm file,
you'll also need to port the changes to your package. We do that by
tracking the original ID as well as the CVS ID for the current file in
the headers.
See for an example the file AgentTicketClose.pm in the
IncidentProblemManagement package, this replaces the original file
from OTRS with a 'customized' version for OTRS::ITSM.
http://source.otrs.org/viewvc.cgi/ITSMIncidentProblemManagement/Kernel/Modul...
Hope this helps,
((enjoy))
-
Michiel Beijen
R&D
OTRS AG
Norsk-Data-Str 1.
61352 Bad Homburg
Germany
T: +31 (0) 6457 42418
F: +49 (0) 9421 56818-18
I: http://www.otrs.com/
Business Location: Bad Homburg, Country Court: Bad Homburg, Commercial
register: 10751, Tax ID: 003 240
97505 Chairman of the Board: Burchard Steinbild, Managing Board: André
Mindermann (CEO), Martin Edenhofer
On Wed, Feb 10, 2010 at 7:08 AM, Justin Noel
Here is another FYI tip and a methodology question. In the Ticket Zoom view, we quite often have Linked items (Parent tickets, Child tickets, Normal, etc). Unfortunately, the default view simply shows the ticket number of those linked objects. To get any information about those linked objects, you actually have to click on them. This is a big productivity drain for our group. In order to know what to do with a parent ticket, they need to know the status of all child tickets. So, they are forced to click into each child and back to the parent over and over. Once they finally know the status of all the child tickets, they can set the state of the parent. Needless to say, that wastes lots of time and causes the occasional accident where someone is still on a child when they change the status of what they THINK is the parent. I've solved this problem by modifying Kernel/Output/HTML/LinkObjectTicket.pm to display not just the ticket number, but also the queue and ticket status of any linked objects. File : Kernel/Output/HTML/LinkObjectTicket.pm Function : TableCreateSimple Lines : Starting at 324 Original: --------------------------------------------- # define item data my %Item = ( Type => 'Link', Content => 'T:' . $Ticket->{TicketNumber}, Title => "$TicketHook$Ticket->{TicketNumber}: $Ticket->{Title}", Link => '$Env{"Baselink"}Action=AgentTicketZoom&TicketID=' . $TicketID, Css => $Css, --------------------------------------------- New : --------------------------------------------- # define item data my %Item = ( Type => 'Link', Content => $Ticket->{TicketNumber} . ' - ' . $Ticket->{Queue} . ' : ' . $Ticket->{State};, Title => "$TicketHook$Ticket->{TicketNumber}: $Ticket->{Title}", Link => '$Env{"Baselink"}Action=AgentTicketZoom&TicketID=' . $TicketID, Css => $Css, ); ---------------------------------------------
Okay, that was a lot of explanation and code. Now, I have a question. Am I going about these changes properly? When working with .dtl template files, it's easy to ensure they aren't overridden by updates / upgrades because I put them in my own template directory. However, LinkObjectTicket.pm is a core file. The next time I upgrade, those changes will get overridden. Is there any way for me to create changes like this and ensure they are blown out by the next update? Is there some way to extend each file so that I simply override the functionality similar to the OOO approach? Thanks, Justin Noel Calendee LLC --------------------------------------------------------------------- OTRS mailing list: otrs - Webpage: http://otrs.org/ Archive: http://lists.otrs.org/pipermail/otrs To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/otrs
NEW! ENTERPRISE SUBSCRIPTION - Get more information NOW! http://www.otrs.com/en/support/enterprise-subscription/
participants (3)
-
Justin Noel
-
Lars Jørgensen
-
Michiel Beijen