[Solved] Dynamische Felder mit ACL ausblenden

Hilfe zu OTRS Problemen aller Art
Post Reply
wucherpfennig
Znuny newbie
Posts: 23
Joined: 11 Apr 2017, 14:15
Znuny Version: 5.0.18

[Solved] Dynamische Felder mit ACL ausblenden

Post by wucherpfennig »

Hallo Zusammen

Wir verwenden folgende Queue Struktur:

QueueA
QueueB
QueueB1
QueueB2
QueueB21
QueueB22
QueueB3
QueueC
QueueC1
QueueC2
QueueN

Wir benötigen gewisse Felder nur für die QueueB (andere für QueueC usw.)

Wie kann ich mittels ACL (ganze) dynamische Felder für bestimmte Queues ausblenden?
Ist dies überhaupt möglich mittels ACL (UI) möglich?

Vielen Dank für euer Feedback.

Beste Grüsse

wucherpfennig
Last edited by wucherpfennig on 18 Apr 2017, 12:21, edited 1 time in total.
RStraub
Znuny guru
Posts: 2210
Joined: 13 Mar 2014, 09:16
Znuny Version: 6.0.14
Real Name: Rolf Straub

Re: Dynamische Felder mit ACL ausblenden

Post by RStraub »

Mit ACLs kannst du Werte aus den Feldern entfernen, aber nicht die Felder selbst. Dafür benötigst du JavaScript im Template (imho).
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
wucherpfennig
Znuny newbie
Posts: 23
Joined: 11 Apr 2017, 14:15
Znuny Version: 5.0.18

Re: Dynamische Felder mit ACL ausblenden

Post by wucherpfennig »

RStraub wrote:Mit ACLs kannst du Werte aus den Feldern entfernen, aber nicht die Felder selbst. Dafür benötigst du JavaScript im Template (imho).
Mensch bist du schnell ;-) Danke für das zügige Feedback.

Gibt es hierzu eine gescheite Anleitung bzw. eine best practice?

Freundliche Grüsse

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

Re: Dynamische Felder mit ACL ausblenden

Post by RStraub »

Dazu gibt's im Forum einige Beiträge, z.B.:
viewtopic.php?f=60&t=24116&p=122779&hil ... te#p122779

Zusammengefasst benötigst du ungefähr so etwas in einem angepassten Template:
1) Irgendwo im Template die Funktionen zum ausblenden und einblenden deklarieren. Zum ausblenden z.B.:

Code: Select all

<script type="text/javascript">//<![CDATA[
function hideDynFields () {
    var Fields = ['NameOfYourField1',
			  'NameOfYourField2',
              'NameOfYourField3'];
    var length = Fields.length;
    for (var i = 0; i < length; i++){
       $('#DynamicField_' + Fields[i]).parent().addClass( 'Hidden' );
       $('#LabelDynamicField_' + Fields[i]).parent().addClass( 'Hidden' );
    }
}
//]]></script>
2) Die Funktionen triggern beim Wechsel der Queue. Suche dazu den AJAX-Update Block:

Code: Select all

 $('#Dest').bind('change', function (Event) {
        Core.AJAX.FormUpdate($('#NewPhoneTicket'), 'AJAXUpdate', 'Dest', ['TypeID', 'NewUserID', 'NewResponsibleID', 'NextStateID', 'PriorityID', 'ServiceID', 'SLAID', 'SignKeyID', 'CryptKeyID', 'To', 'Cc', 'Bcc', 'StandardTemplateID' [% Data.DynamicFieldNamesStrg %]]);
und füge ein simples if-else danach hinzu:

Code: Select all

   var strDest = $('#Dest').val();
   if (strDest.match(RegExpression to match your Queue) {
      showDynFields();
   } else {
      hideDynFields();
   }
Stelle bitte sicher dass die Felder nicht mandatory sind, da sonst Server-Fehler geworfen werden. Hilft dir das weiter?
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
wucherpfennig
Znuny newbie
Posts: 23
Joined: 11 Apr 2017, 14:15
Znuny Version: 5.0.18

Re: Dynamische Felder mit ACL ausblenden

Post by wucherpfennig »

Danke für die Links. Ich dachte, wir können Coding umgehen und auf Systemmittel zurückgreifen...

Mit "Irgendwo im Template..." heisst das im Core Template oder kann ich irgendwo ein Override / Customization machen, damit ich den Core möglichst unbefleckt lasse?

Bezüglich deinem Hinweis zu Plichtfelder. Natürlich sind das im Moment noch Pflichtfelder, wäre sonst ja zu einfach :lol:.

Meine Überlegung wäre jetzt, dass wir diese als freiwillige Felder erfassen und je nach Queue usw. ein/ausblenden + zusätzlich den

Code: Select all

<input required> 
setzen. "Versteht" das OTRS oder verhält es sich da etwas krüsch?

Freundliche Grüsse

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

Re: Dynamische Felder mit ACL ausblenden

Post by RStraub »

Ob der mandatory-Wechsel so funktioniert kann ich dir nicht sagen :)

Mit irgendwo im Template meine ich die kopierte AgentTicketPhone.tt oder AgentTicketEmail.tt die du dir so anlegen solltest:

Code: Select all

cp -rp ~otrs/Kernel/Output/HTML/Template/Standard/AgentTicketPhone.tt ~otrs/Custom/Kernel/Output/HTML/Template/Standard/AgentTicketPhone.tt
Currently using: OTRS 6.0.14 -- MariaDB -- Ubuntu 16 LTS
wucherpfennig
Znuny newbie
Posts: 23
Joined: 11 Apr 2017, 14:15
Znuny Version: 5.0.18

[Solved] Dynamische Felder mit ACL ausblenden

Post by wucherpfennig »

RStraub wrote:Ob der mandatory-Wechsel so funktioniert kann ich dir nicht sagen :)

Mit irgendwo im Template meine ich die kopierte AgentTicketPhone.tt oder AgentTicketEmail.tt die du dir so anlegen solltest:

Code: Select all

cp -rp ~otrs/Kernel/Output/HTML/Template/Standard/AgentTicketPhone.tt ~otrs/Custom/Kernel/Output/HTML/Template/Standard/AgentTicketPhone.tt
Mensch Mensch... Danke für deine Hilfe!
wurzel
Znuny guru
Posts: 3230
Joined: 08 Jul 2010, 22:25
Znuny Version: x.x.x
Real Name: Florian

Re: [Solved] Dynamische Felder mit ACL ausblenden

Post by wurzel »

Hi,

you can use a addon without coding

https://www.otrs.com/otrs-business-solu ... ic-fields/

regards
Florian
OTRS 8 SILVER (Prod)
OTRS 8 auf Debian 11 (Test)
Znuny 7.x latest version testing auf Debian 11

-- Ich beantworte keine Forums-Fragen PN - No PN please

I won't answer to unfriendly users any more. A greeting and regards are just polite.
Post Reply