Modified OTRS 3.1.3 for non-clickable areas in ticket/status overview

Krzysztof Hajdamowicz <[email protected]>
Newsgroups gmane.comp.otrs.devel
Message-ID <[email protected]>
Hi all,
I'm attaching a patch for OTRS 3.1.3 what fixes annoying "features" in 
OTRS 3.1.3 (it's our production version).

in index.pl?Action=AgentTicketStatusView and 
index.pl?Action=AgentTicketQueue
there are annoying things:
1) Area around checkbox is clickable and redirects to ticket page
2) Area around Ticket# is clickable and redirects to ticket page
3) From/Subject fields are too short to show Nagios e-mail subject

So we've fixed it and now:

1) Area around checkbox is
clickable and checks the checkbox
2) Area around Ticket# is clickable and selects Ticket#
3) From/Subject fields are now long enough to handle Nagios info

These changes drastically increases usability of OTRS

-- 
Cheers,
Krzysztof Hajdamowicz
System Administrator
IMAGIN IT
http://imagin.com.pl

_______________________________________________
OTRS mailing list: dev - Webpage: http://otrs.org/
Archive: http://lists.otrs.org/pipermail/dev
To unsubscribe: http://lists.otrs.org/cgi-bin/listinfo/dev
otrs_NonClickableArea.patch (text/x-patch, 4.7 KB)
--- /root/backup/otrs/Kernel/Output/HTML/Standard/AgentTicketOverviewSmall.dtl	2011-11-07 09:41:20.000000000 +0100
+++ /usr/share/otrs/Kernel/Output/HTML/Standard/AgentTicketOverviewSmall.dtl	2012-06-14 13:21:53.340016906 +0200
@@ -9,6 +9,7 @@
 # did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
 # --
 <!-- dtl:block:DocumentActionRow -->
+
 <ul class="Actions">
 <!-- dtl:block:DocumentActionRowBulk -->
     <li id="BulkAction" class="Bulk Inactive $QData{"CSS"}">
@@ -145,7 +146,7 @@
 <!-- dtl:block:Record -->
                 <tr id="TicketID_$QData{"TicketID"}" class="MasterAction">
 <!-- dtl:block:Bulk -->
-                    <td class="Checkbox Fixed NonTextContent">
+                    <td class="checkbox_td Checkbox Fixed NonTextContent">
                         <input class="Checkbox AutocompleteOff" type="checkbox" name="TicketID" value="$QData{"TicketID"}" />
                     </td>
 <!-- dtl:block:Bulk -->
@@ -158,8 +159,8 @@
 <!-- dtl:block:ContentLargeTicketGenericRowMetaImage -->
                     </td>
 <!-- dtl:block:ContentLargeTicketGenericRowMeta -->
-                    <td>
-                        <a href="$Env{"Baselink"}Action=AgentTicketZoom;TicketID=$LQData{"TicketID"}" title="$QData{"Title"}" class="MasterActionLink">$Data{"TicketNumber"}</a>
+                    <td class="ticket_td">
+                        <a id="ticket_td_$QData{"TicketID"}" href="$Env{"Baselink"}Action=AgentTicketZoom;TicketID=$LQData{"TicketID"}" title="$QData{"Title"}" class="MasterActionLink">$Data{"TicketNumber"}</a>
                     </td>
                     <td>
                         $QData{"Age"}
@@ -170,22 +171,22 @@
                     </td>
 <!-- dtl:block:RecordEscalationTime -->
                     <td>
-                        <div title="$QData{"From"}">$QData{"FromRealname","30"}</div>
+                        <div title="$QData{"From"}">$QData{"FromRealname","130"}</div>
 <!-- dtl:block:RecordLastCustomerSubject -->
-                        <div title="$QData{"Subject"}">$QData{"Subject","30"}</div>
+                        <div title="$QData{"Subject"}">$QData{"Subject","130"}</div>
 <!-- dtl:block:RecordLastCustomerSubject -->
 <!-- dtl:block:RecordTicketTitle -->
-                        <div title="$QData{"Title"}">$QData{"Title","30"}</div>
+                        <div title="$QData{"Title"}">$QData{"Title","130"}</div>
 <!-- dtl:block:RecordTicketTitle -->
                     </td>
                     <td width="8%">
-                        <div title="$Text{"$Data{"State"}"}">$Text{"$Data{"State"}","30"}</div>
+                        <div title="$Text{"$Data{"State"}"}">$Text{"$Data{"State"}","130"}</div>
                     </td>
                     <td>
-                        <div title="$Text{"$Data{"Lock"}"}">$Text{"$Data{"Lock"}","30"}</div>
+                        <div title="$Text{"$Data{"Lock"}"}">$Text{"$Data{"Lock"}","130"}</div>
                     </td>
                     <td width="10%">
-                        <div title="$QData{"Queue"}">$QData{"Queue","30"}</div>
+                        <div title="$QData{"Queue"}">$QData{"Queue","130"}</div>
                     </td>
                     <td>
                         <div title="$QData{"UserFirstname"} $QData{"UserLastname"} ($QData{"Owner"})">$QData{"UserFirstname","15"} $QData{"UserLastname","15"}</div>
@@ -269,6 +270,47 @@
     $(window).resize(function() {
         Core.UI.AdjustTableHead($('#FixedTable thead'), $('#FixedTable tbody'), 0);
     });
+
+function SelectText(element) {
+    var text = document.getElementById(element);
+    if ($.browser.msie) {
+        var range = document.body.createTextRange();
+        range.moveToElementText(text);
+        range.select();
+    } else if ($.browser.mozilla || $.browser.opera) {
+        var selection = window.getSelection();
+        var range = document.createRange();
+        range.selectNodeContents(text);
+        selection.removeAllRanges();
+        selection.addRange(range);
+    } else if ($.browser.safari) {
+        var selection = window.getSelection();
+        selection.setBaseAndExtent(text, 0, text, 1);
+    }
+}
+
+$('.checkbox_td').bind('click', function (Event) {
+	Event.preventDefault();
+	Event.stopPropagation();
+	var checkbox = $(this).find('input[type="checkbox"]');
+
+	if(checkbox.attr('checked')) {
+		checkbox.attr('checked', false);
+	}
+	else {
+		checkbox.attr('checked', true);
+	}   
+
+	return false;
+});
+
+$('.ticket_td').bind('click', function (Event) {
+    Event.preventDefault();
+    Event.stopPropagation();
+	SelectText($(this).find('a').attr('id'));
+    return false;
+});
+
 //]]></script>
 <!-- dtl:js_on_document_complete -->
 <!-- dtl:block:DocumentReadyStart -->
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.