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") %]
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

Code: Select all
(*)
[...]
// Trigger on change of Ticket Type (use '#Dest' to use Queue instead)
$(document).ready ( function(){
window.alert("TEST");
[...]