Mittwoch, 6. März 2013

OTRS Erweiterung: Zeichenlänge der dynamischen Felder im Ticket-Zoom

Durch die Einführung der dynamischen Felder in OTRS 3.1 ist es nun ohne großen Aufwand möglich, mehrzeilige Textfelder einzubauen.

Damit diese auch in der Ticket-Ansicht entsprechend angezeigt werden, müssen sie in der SysConfig eingetragen werden.

Wenn nun aber ein längerer Text in diese Felder eingetragen wurde (wie z.B. bei den mehrzeiligen Feldern um Adressen o.ä. einzugeben), wird dieser in der Ticket-Ansicht nach 25 Zeichen abgeschnitten.

Nach kurzer Prüfung des Codes konnte ich feststellen, dass diese Werte fest eingetragen wurden.
Daher habe ich dafür einen kleinen Patch geschrieben, welcher die angezeigte Länge über die SysConfig steuerbar macht.

diff -Nur /usr/src/otrs-3.1.13/Kernel/Modules/AgentTicketZoom.pm /opt/otrs/Kernel/Modules/AgentTicketZoom.pm
--- /usr/src/otrs-3.1.13/Kernel/Modules/AgentTicketZoom.pm    2013-02-14 13:15:19.000000000 +0100
+++ /opt/otrs/Kernel/Modules/AgentTicketZoom.pm    2013-03-05 15:49:13.170970100 +0100
@@ -840,6 +840,7 @@
         FieldFilter => $Self->{DynamicFieldFilter} || {},
     );

+    my $DynamicFieldSize = $Self->{ConfigObject}->Get("Ticket::Frontend::AgentTicketZoom")->{DynamicFieldSize} || 25;
     # cycle trough the activated Dynamic Fields for ticket object
     DYNAMICFIELD:
     for my $DynamicFieldConfig ( @{$DynamicField} ) {
@@ -851,7 +852,7 @@
         my $ValueStrg = $Self->{BackendObject}->DisplayValueRender(
             DynamicFieldConfig => $DynamicFieldConfig,
             Value              => $Ticket{ 'DynamicField_' . $DynamicFieldConfig->{Name} },
-            ValueMaxChars      => 25,
+            ValueMaxChars      => $DynamicFieldSize,
             LayoutObject       => $Self->{LayoutObject},
         );
diff -Nur /usr/src/otrs-3.1.13/Kernel/Config/Files/DynamicFieldSize.xml /opt/otrs/Kernel/Config/Files/DynamicFieldSize.xml
--- /usr/src/otrs-3.1.13/Kernel/Config/Files/DynamicFieldSize.xml        1970-01-01 01:00:00.000000000 +0100
+++ /opt/otrs/Kernel/Config/Files/DynamicFieldSize.xml   2013-03-05 15:46:10.330970100 +0100
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<otrs_config version="1.0" init="Application">
+    <ConfigItem Name="Ticket::Frontend::AgentTicketZoom###DynamicFieldSize" Required="0" Valid="1">
+        <Description Translatable="1">Dynamic fields size used in AgentTicketZoom Possible settings: positive integer values.</Description>
+        <Group>Ticket</Group>
+        <SubGroup>Frontend::Agent::Ticket::ViewZoom</SubGroup>
+        <Setting>
+            <String Regex="^[0-9]{1,3}$">25</String>
+        </Setting>
+    </ConfigItem>
+</otrs_config>
+ 


Sehr einfach, aber trotzdem effektiv, da nun die maximale Länge auf z.B. 250 Zeichen gestellt werden kann.


Der vollständige Patch kann auch direkt unter http://www.ciphron.de/download/software/ heruntergeladen werden und mittels patch -p0 < file eingespielt werden. 

Keine Kommentare: