Dynamische Felder per Queue

Hilfe zu Znuny Problemen aller Art
Locked
fummek
Znuny newbie
Posts: 29
Joined: 30 Apr 2013, 10:26
Znuny Version: 3.3.10

Dynamische Felder per Queue

Post by fummek »

Hallo zusammen,

ich bin jetzt schon eine ganze Weile am suchen und probieren.

Ich habe ein OTRS in der Version 4.0.6 (Debian 7.9, MySQL) und möchte dort den unterschiedlichen Queues verschiedene dynamische Felder zuweisen.
Das dies nicht aus der Tasche geht habe ich bereits herausgefunden, aber leider keine funktionierende Lösung gefunden. Der erfolgsversprechendste Eintrag war dieser hier: viewtopic.php?f=60&t=24116
Funktioniert bei mir aber irgendwie nicht. Nichtmal der JavaScript-Teil wird ausgeführt. So langsam weiß ich nicht mehr was ich noch ausprobieren kann.

Bei mir sieht es wie folgt aus:

Code: Select all

## /opt/otrs/Kernel/Output/HTML/Standard/DynamicTicketType.tt 

    [% WRAPPER JSOnDocumentComplete %]
    <script type="text/javascript">


    // This map defines which dynamic fields should be displayed for each selection of Ticket Type
    //   The format is key: [field1, field2, ...] where 'key' corresponds to the SELECT OPTION value and fieldX corresponds to the dynamic field names
    //
    var field_map = {
           '1||QueueName_1': ['DynField_1', 'DynField_2'],
           '2||QueueName_2': ['DynField_3'],
    }

    // Trigger on change of Ticket Type (use '#Dest' to use Queue instead)
    $('#Dest').change(function() {

                window.alert("TEST");

           if ($(this).val() in field_map) {
                   var enabledFields = field_map[$(this).val()];
           } else {
                   var enabledFields = [];
           }

           // Find all DynamicField row DIVs
           var dyn_rows = $('div[class*=Row_DynamicField_]');
           dyn_rows.each(function() {
                   // Get the full dynamic field class name
                   var fieldName = this.className.split(' ').filter(function(v,i,a) {return (v.substring(0,17) == 'Row_DynamicField_');})[0].substring(17);

                   if (enabledFields.indexOf(fieldName) >= 0) {
                           $(this).show();
                   } else {
                           $(this).hide();
                   }
           });
    });

    // Simulate an initial change to trigger the dynamic display on page load
    $('#Dest').change();

    </script>
    [% END %]

Code: Select all

## /opt/otrs/Kernel/Output/HTML/Standard/AgentTicketFreeText.tt

# --
# AgentTicketFreeText.tt - provides HTML form for free text mask
# Copyright (C) 2001-2015 xxx, http://otrs.com/
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (AGPL). If you
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
# --

[% InsertTemplate("DynamicTicketType.tt") %]

[% InsertTemplate("AgentTicketActionCommon.tt") %]
Eigentlich soll die DynamicTicketType.tt-Datei unter /opt/otrs/Kernel/Output/Template/ liegen. Die lädt er dann aber gar nicht.

Wenn ich im Template die Funktion beim Aufrufen der Seite starten lasse (*), bekomme ich zwar das Alert mit "TEST", und alle dynamischen Felder verschwinden, aber das ist ja auch nicht Sinn der Sache :lol:

Code: Select all

(*)
   [...]
  // Trigger on change of Ticket Type (use '#Dest' to use Queue instead)
  $(document).ready ( function(){
   window.alert("TEST");
   [...]
Der letzte Beitrag in dem Thread ist vom 01.03.2016 was mich eigentlich positiv stimmt, dass ich einfach nur einen Denkfehler gemacht habe und das Script läuft.

OTRS Version: 3.3.10 (ITSM, KIX4OTRS, FAQ, MasterSlave, CustomExtensions)
OS: Debian GNU/Linux 7.9 (wheezy)
------------------------
OTRS Version: 4.0.6 (FAQ)
OS: Debian GNU/Linux 7.9 (wheezy)
Locked