ich weiss, das Problem wurde schon mehrmals in verschiedenen Varianten hier im Forum (im Englischen wie auch im Deutschen) behandelt. Ich habe mir nun einige Tage um die Ohren gehauen, um auch für mich auf eine funktionierende Lösung zu kommen. Dazu habe ich diverse Threads dazu gelesen, Code ausprobiert, umgeschrieben und so weiter. Ich komme einfach nicht weiter.
Zusätzlich bin ich ein OTRS Neuling und hatte zuvor nicht geschnallt, dass es die FreeTextFields ab der V 3.1 nicht mehr gibt und an deren Stelle die DynamicFields getreten sind. Letztendlich habe ich auch einen HowTo Thread im Englischen Forum dazu gefunden:
viewtopic.php?f=60&t=8032
Hier wird zwar bei Threadbeginn noch mit FreeTextFeldern herumgemacht....aber später im Thread hat sich dann jemand (vielen Dank dafür) dazu aufgerafft, die veränderten Bedingungen unter 3.1 aufzugreifen und den Code anzupassen.
Das ist auch alles irgendwie ganz OK erklärt, doch trotzdem funzt der Code bei mir überhaupt nicht. Mag sein, dass ich noch einen Denkfehler drin habe - daher schreibe ich jetzt mal hier. Vielleicht ist ja jemand dabei, der den Plan diesbezüglich in der Tasche hat.
Wie im Titel beschrieben geht es um die individuelle Anzeige von dynamischen Feldern je nach Qeue-Auswahl im CUSTOMER Bereich.
Version bei mir: 3.1.2
Habe zu Testzwecken 4 Hauptqeues und 1 Unterqeue:
Altglas
Kunststoff
Kunststoff::ASA
Metalle
Postmaster
Folgende Code wird im "CustomerTicketMessage.dtl" hier rein gepackt:
Code: Select all
<!--dtl:js_on_document_complete-->
<script type="text/javascript">//<![CDATA[
$('#TypeID').bind('change', function (Event) {
// make sure the ticket is not yet created on queue change
$('input#Expand').val(1);
Core.Form.Validate.DisableValidation($(this).closest('form'));
$(this).closest('form').submit();
});
----->HIER HALT KOMMT DER CODE BEI MIR REIN<-----
//]]></script>
<!--dtl:js_on_document_complete-->
Code: Select all
function nonetext() {
document.compose.Subject.value = "";
document.compose.RichText.value = "";
document.getElementById('DynamicField_Glastyp').style.display = 'none';
document.getElementById('LabelDynamicField_Glastyp').style.display = 'none';
document.getElementById('DynamicField_Kunststofftyp').style.display = 'none';
document.getElementById('LabelDynamicField_Kunststofftyp').style.display = 'none';
document.getElementById('DynamicField_Metalltyp').style.display = 'none';
document.getElementById('LabelDynamicField_Metalltyp').style.display = 'none';
}
switch ($('#Dest').val() ) {
case "1\|\|Altglas": // need to slash escape the pipes
nonetext();
document.getElementById('DynamicField_Glastyp').style.display = 'block';
document.getElementById('LabelDynamicField_Glastyp').style.display = 'block';
document.getElementById('DynamicField_Glastyp').className = 'Validate_Required';
break;
case "2\|\|Kunststoff": // need to slash escape the pipes
nonetext();
document.getElementById('DynamicField_Kunststofftyp').style.display = 'block';
document.getElementById('LabelDynamicField_Kunststofftyp').style.display = 'block';
document.getElementById('DynamicField_Kunststofftyp').className = 'Validate_Required';
break;
case "3\|\|Metalle": // need to slash escape the pipes
nonetext();
document.getElementById('DynamicField_Metalltyp').style.display = 'block';
document.getElementById('LabelDynamicField_Metalltyp').style.display = 'block';
document.getElementById('DynamicField_Metalltyp').className = 'Validate_Required';
break;
default:
nonetext();
}
Ich habe schon probiert unter SysConfig unter --TICKETS-- ---> Frontend::Customer::Ticket::ViewNew####DynamicFields die Felder einzutragen. Na OK. Dann erscheinen Sie ohnehin im Template - aber stetig. Das ist ja nicht das Ziel.
Wenn ich diesen Code zur DynamicField Anzeige aus dem Template hole:
Code: Select all
<!-- dtl:block:DynamicField -->
<div class="Row Row_DynamicField_$QData{"Name"}">
$Data{"Label"}
<div class="Field">
$Data{"Field"}
</div>
<div class="Clear"></div>
</div>
<!-- dtl:block:DynamicField -->
Code: Select all
<!-- dtl:block:DynamicField_Kunststofftyp -->
<div class="Row Row_DynamicField_$QData{"Name"}">
$Data{"Label"}
<div class="Field">
$Data{"Field"}
</div>
<div class="Clear"></div>
</div>
<!-- dtl:block:DynamicField_Kunststofftyp -->
Aber warum funzt der bei mir nicht? Ich wäre über Tipps, Lösungsvoschläge oder Hinweise sehr dankbar....
Beste Grüße aus der Eifel
