zus. Erklärungs-Text für Dynamic Fields

Allgemein Fragen, deutsche News, Ankündigungen & Events zu Znuny
Locked
SarahH
Znuny newbie
Posts: 32
Joined: 09 Mar 2016, 12:55
Znuny Version: 5.00.07
Real Name: Sarah

zus. Erklärungs-Text für Dynamic Fields

Post by SarahH »

Guten Morgen,

wie man merkt, beschäftige ich mich gerade sehr intensiv mit OTRS. :-)
Bei einem neuen Ticket habe ich Dynamic Fields hinzugefügt.
Ich möchte dazu nun gern einen Hinweis-Text einblenden.

---------------
Die folgenden Felder werden nur benötigt, wenn kein passender Service zur Verfügung steht:
Label Feld 1 | Feld 1
Label Feld 2 | Feld 2
---------------

Alternativ wäre es auch so möglich:
---------------
Label Feld 1 | Feld 1 | (nur benötigt, wenn kein passender Service zur Verfügung steht)
Label Feld 2 | Feld 2 | (nur benötigt, wenn kein passender Service zur Verfügung steht)
---------------

Hintergrund ist folgender:
Die Hardware unserer Kunden ist dem jeweiligen Service zugeordnet.
Wenn der Kunde nun ein Ticket zu einer Hardware eröffnen möchte, die ihm noch nicht zugeordnet ist, dann soll er in den Feldern die Seriennummer eintragen. Das Feld Seriennummer braucht er natürlich nicht, wenn er den Service bereits ausgewählt hat.

Gibt es hierzu eine Lösung oder Workaround?

Danke
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: zus. Erklärungs-Text für Dynamic Fields

Post by RStraub »

Huhu,

ich könnte dir eine Lösung anbieten die nicht ganz abbildet was du möchtest. Ist dafür relativ schnell über javascript gelöst.

Füg dir in eine angepasste Maske (z.B. AgentTicketEmail.tt) in einen beliebigen JSOnDocumentComplete Block ein:

Code: Select all

        $('#DynamicField_NameDeinesFeldes1').parent().addClass( 'Hidden' );
        $('#LabelDynamicField_NameDeinesFeldes1').parent().addClass( 'Hidden' );
        $('#DynamicField_NameDeinesFeldes2').parent().addClass( 'Hidden' );
        $('#LabelDynamicField_NameDeinesFeldes2').parent().addClass( 'Hidden' );
Damit sind die Felder erstmal nicht sichtbar in der Maske. Stell dazu sicher dass sie standardmäßig als "nicht - required" angegeben sind.

Der zweite Schritt ist dann eine Abfrage bei Änderungen der ServiceID. Such dazu diesen Teil:

Code: Select all

    $('#ServiceID').bind('change', function (Event) {
    [...]
und füg am Ende so etwas hinzu:
if ($('#ServiceID').val() == "7") {
$('#DynamicField_NameDeinesFeldes1').parent().removeClass( 'Hidden' );
$('#LabelDynamicField_NameDeinesFeldes1').parent().removeClass( 'Hidden' );
$('#DynamicField_NameDeinesFeldes1').addClass( 'Validate_Required' );
$('#LabelDynamicField_NameDeinesFeldes1').addClass( 'Validate_Required' );
}
Dann würde bei Auswahl des services mit der ID 7, die Felder angezeigt und man kann die Maske nicht abschicken bevor die nicht befüllt sind. Gibt auch eine rote Warnung.

Wäre das eine Option für dich ?
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
SarahH
Znuny newbie
Posts: 32
Joined: 09 Mar 2016, 12:55
Znuny Version: 5.00.07
Real Name: Sarah

Re: zus. Erklärungs-Text für Dynamic Fields

Post by SarahH »

Vielen Dank.
Es ist zwar nicht die Lösung, die ich mir vorgestellt hatte, aber diese gefällt mir noch besser. :)
Muss ich gleich mal testen
SarahH
Znuny newbie
Posts: 32
Joined: 09 Mar 2016, 12:55
Znuny Version: 5.00.07
Real Name: Sarah

Re: zus. Erklärungs-Text für Dynamic Fields

Post by SarahH »

Nochmals vielen Dank.
Ich habe dein Script ausprobiert.
Das funktioniert einwandfrei.
Da ich erstmal suchen musste, die Dateien liegen hier:

Code: Select all

.../otrs/Kernel/Output/HTML/Templates/Standard
Ergänzend noch folgende Info:
Der Bereich

Code: Select all

$('#ServiceID').bind('change', function (Event) {
[...]
taucht zwei mal auf:
Einmal unter:

Code: Select all

[% RenderBlockStart("TicketService") %]
und einmal unter:

Code: Select all

[% RenderBlockStart("TicketServiceMandatory") %]
Ich habe es unter dem ersten Treffer eingefügt.

Einziger "Schönheitsfehler":
Im Label taucht der Stern nicht auf. Kann man das ändern?

Ich habe probiert, das Feld als required zu definieren und dann im Code, wo das 'Hidden'-Flag gesetzt wird, das 'required'-Flag wieder zu entfernen.
Das hat aber nicht funktioniert, das Feld wird weiterhin erwartet.
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: zus. Erklärungs-Text für Dynamic Fields

Post by RStraub »

Ob und wie das am Label auch angezeigt werden kann, weiß ich nicht. Hab das selbst nur "über's Knie gebrochen" probiert.

Um die Installation sauber und upgradefest zu halten, belasse am besten das Original wo es ist, aber kopier und modifiziere dir die Datei unter:
../otrs/Custom/Kernel/Output/HTML/Templates/Standard/

Der Unterschied zwischen den Renderblöcken ist nur der, dass "TicketService" ausgeführt wird, falls der Service optional ist und "TicketServiceMandatory" falls ihr den Service als Pflichtfeld deklariert habt.
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
SarahH
Znuny newbie
Posts: 32
Joined: 09 Mar 2016, 12:55
Znuny Version: 5.00.07
Real Name: Sarah

Re: zus. Erklärungs-Text für Dynamic Fields

Post by SarahH »

Danke für die weiteren Infos.
Vielleicht hat ja noch jemand eine Idee, wie man das mit dem Sternchen machen kann.

Ansonsten:
Original-Datei wiederhergestellt, und die geänderte Datei in das von dir genannte Verzeichnis kopiert.
Funktioniert.

Ich habe noch einen else-Zweig hinzugefügt, der bei Zurück-Änderung des Services das Feld wieder auf unsichtbar setzt.
Locked