Freetext abhängig von Ticket Typ anzeigen/pflicht

Hilfe zu Znuny Problemen aller Art
Locked
wonz
Znuny newbie
Posts: 60
Joined: 05 Aug 2009, 14:16
Znuny Version: 2.4.5

Freetext abhängig von Ticket Typ anzeigen/pflicht

Post by wonz »

Hallo Leute,

Setze Ubuntu 8.04 Server mit einem OTRS 2.4.2 ein.
Funktioniert soweit auch alles gut. Jetzt geht es nur noch ein wenig ans Customizing. Dafür brauche ich 2 Freitextfelder.
Ich würde gerne das Freetextfeld2 nur aktivieren und als Pflichtfeld verwenden, wenn Ticket Type = "Auftrag" ist

Zur Verständnis:

Freetextfeld2
Key=Auftragsnummer

Also: wählt der "kunde" beim Ticket erstellen den Typ "Auftrag" im DropDown aus, soll das freie Textfeld 2 erscheinen und die Eingabe der zugehörigen Auftragsnummer Pflicht sein.
Ist sowas mit Boardmitteln möglich, oder muss man selbst was basteln (Jave,Ajax, etc...)?
Und falls man was basteln muss, kann mir wer dabei helfen? :>

Besten Gruß und Dank im voraus

Fabian
Last edited by wonz on 18 Aug 2009, 15:55, edited 2 times in total.
OS: Ubuntu 9.04; OTRS v.2.4.7; DB: MYSQL
maxbacks
Znuny wizard
Posts: 326
Joined: 30 Jan 2008, 14:59
Znuny Version: 6.0.19
Real Name: Max Hendrik Backs

Freetext2 abhängig von Freetext1

Post by maxbacks »

Schau dir die ACLs mal an...

http://doc.otrs.org/2.4/en/html/c2128.html
Ticket-System
Ubuntu 18.04
OTRS 6.0.19
wonz
Znuny newbie
Posts: 60
Joined: 05 Aug 2009, 14:16
Znuny Version: 2.4.5

Freetext abhängig von Ticket Typ anzeigen/pflicht

Post by wonz »

maxbacks wrote:Schau dir die ACLs mal an...

http://doc.otrs.org/2.4/en/html/c2128.html
okay.. habe ich gemacht :> (Danke!)

Ich hab jetzt ungefähr die Vorstellung davon, dass es damit funktionieren könnte.
Aber wie genau... so ganz verständlich sind mir die ACLs/die Umsetzung nicht...
Bzw durchschaue ich die Abhängigkeiten innerhalb des OTRS (noch) nicht gut genug.

Es gibt nicht zufällig Jemand hier der das drauf hat und sich erbarmen würde, also mir so ne ACL erstellen würde?

Ich wüsste nichtmals in welche Datei die müsste..

Auch in die CustomerTicketMessage.dtl !?

Edit:
Habe gerade die "Typ" Funktion gefunden... die kann ich natürlich statt des Freetext1 benutzen,
also müsste das FreetextX Field nur erscheinen und zum Pflichtfeld werden, wenn ich einen bestimmten Tickettyp auswähle.
Habe den Threadtitel entsprechend angepasst...



Gruß

Fabian
OS: Ubuntu 9.04; OTRS v.2.4.7; DB: MYSQL
Joyner
Znuny expert
Posts: 185
Joined: 08 Feb 2008, 14:49
Znuny Version: 2.2.8
Location: Berlin

Freetext abhängig von Ticket Typ anzeigen/pflicht

Post by Joyner »

Hallo,

ACL's werden in der config.pm eingepflegt.
Je nachdem wie groß deine config.pm ist, wird es, nach und nach der Übersichtlichkeit her, besser, Abschnitte "auszulagern" nach Kernel/Config/Files/

Eine entsprechende ACL für dich könnte ungefähr so aussehen (ohne Gewähr, da mal so aus den Stehgreif)...
$Self->{TicketAcl}->{'ACL-Name'} = {
Ticket => {
Type => ['Auftrag']
},
},
Possible => {
Ticket => {
TicketFreeKey2 => ['Auftragsnummer'],
TicketFreeText2 => [''],
},
},
};

mfg
Sebastian
Produktiv: OTRS 2.4.7, CiCS 3.1.5, Eigenentwicklungen
β-Testing/Mirror: OTRS 2.4.7, ITSM 2.0.2, CiCS(::ITSM) 3.1.5 (2.1.6), Eigenentwicklungen OS: Win2003, XAMPP, Apache2.2/MySQL 5, Trac/SVN
wonz
Znuny newbie
Posts: 60
Joined: 05 Aug 2009, 14:16
Znuny Version: 2.4.5

Freetext abhängig von Ticket Typ anzeigen/pflicht

Post by wonz »

Hallo Sebastian,

danke für deine Antwort.....

Leider funktioniert deine ACL nicht (oder ich mach was falsch ^^)

Auf jeden Fall ist da glaube ich ein "}," zu viel nach "Type => ['Auftrag']", oder ?? (bekam n Internal Server error...

Code: Select all

$Self->{TicketAcl}->{'ACL-Name'} = {
Ticket => {
Type => ['Auftrag']
},
},
Possible => {
Ticket => {
TicketFreeKey2 => ['Auftragsnummer'],
TicketFreeText2 => [''],
},
},
};
Wie muss ich denn das Freetextfeld unter "Customer::Ticket::ViewNew" (momentan auf "1" gesetzt) und in "Core::TicketFreeText"(momentan nur Key mit Schlüssel "Auftragsnummer" und Inhalt "Auftragsnummer" aktiviert) konfigurieren wenn ich diese ACL verwenden will?

Weiterhin verstehe ich leider die Syntax immer noch nicht so ganz..

Code: Select all

$Self->{TicketAcl}->{'ACL-Name'} = {  };
ist die ACL.. okay..
Dann müsste ja quasi ein if (Type=Auftrag) then Ticketfreekey2=Auftragsnummer irgendwo da erscheinen..
Kann man die ACL Syntax irgendwie so übersetzen ??

Code: Select all

Ticket => {
Type => ['Auftrag']
},
= IF

Code: Select all

Possible => {
Ticket => {
TicketFreeKey2 => ['Auftragsnummer'],
TicketFreeText2 => [''],
},
},
= then ?!!

Vielen Dank nochmal für eure Hilfe und Eure Geduld !
OS: Ubuntu 9.04; OTRS v.2.4.7; DB: MYSQL
wonz
Znuny newbie
Posts: 60
Joined: 05 Aug 2009, 14:16
Znuny Version: 2.4.5

Freetext abhängig von Ticket Typ anzeigen/pflicht

Post by wonz »

Nach der otrs doku ( http://docu.otrs.org/2.2/de/html/c2024.html )

kann man Type gar nicht verwenden, oder verstehe ich das falsch ??
Da steht ja "Im folgenden eine Liste aller Parameter, die für ACLs verwendet werden können: "

Code: Select all

 # current user match properties
            Ticket => {
                Queue => ['Raw'],
                State => ['new', 'open'],
                Priority => ['some priority'],
                Lock => ['lock'],
                CustomerID => ['some id'],
                CustomerUserID => ['some id'],
                TicketFreeKey1 => ['some key'],
                TicketFreeKey2 => ['some key'],
                # ...
                TicketFreeKey8 => ['some key'],
                TicketFreeText1 => ['some value'],
                TicketFreeText2 => ['some value'],
                # ...
                TicketFreeText8 => ['some value'],
            }
also müsste ich doch einen Wert einen Wert eines Freitextfeldes dafür nehmen???

Sähe dann für mich so aus:

Code: Select all

$Self->{TicketAcl}->{'ACL-Name'} = {
Ticket => {
                TicketFreeText1 => ['Auftrag'],
},
Possible => {
Ticket => {
TicketFreeKey2 => ['Auftragsnummer'],
TicketFreeText2 => [''],
},
},
};
Wäre das so richtig, oder ist das falsch ???

Gruß

Fabian
OS: Ubuntu 9.04; OTRS v.2.4.7; DB: MYSQL
wonz
Znuny newbie
Posts: 60
Joined: 05 Aug 2009, 14:16
Znuny Version: 2.4.5

Freetext abhängig von Ticket Typ anzeigen/pflicht

Post by wonz »

funktioniert leider auch nicht ...

Die Syntax durchblicke ich leider immer noch nicht so wirklich .. :(

Code: Select all

Ticket => {
TicketFreeKey2 => ['Auftragsnummer'],
}
Soll dieser Code dazu führen, dass z.B. in der CustomerTicketMessage (also wenn der Kunde ein Ticket anlegt) das Freitextfeld2 angezeigt wird???
OS: Ubuntu 9.04; OTRS v.2.4.7; DB: MYSQL
wonz
Znuny newbie
Posts: 60
Joined: 05 Aug 2009, 14:16
Znuny Version: 2.4.5

Freetext abhängig von Ticket Typ anzeigen/pflicht

Post by wonz »

Ich hab es jetzt erst einmal anders gelöst.... o_0

So sieht die CustomerTicketMessage.dtl aus:

Code: Select all

function submit_compose() {
...
    else if (document.compose.Body.value == "") {
        alert('$JSText{"A message should have a body!"}');
        document.compose.Body.focus();
        return false;
    }
    else if (document.compose.TypeID.value == "3" && document.compose.TicketFreeText2.value == "") {
        alert('Auftragsnummer erforderlich!!');
        document.compose.TypeID.focus();
        return false;
    }
...
<!-- dtl:block:FreeText -->
                <tr>
                  <td class="contentkey">$Data{"TicketFreeKeyField2"}:</td>
                  <td class="contentvalue">$Data{"TicketFreeTextField2"}</td>
                </tr>
<!-- dtl:block:FreeText -->
...
TypeID=3 bedeutet in meinem Fall, dass der Tickettyp = Auftrag ist.
2= Anfrage
1= default (wird noch deaktiviert)...

Das hab ich mit phpmyadmin in der mysql-DB nachgeschaut.... (Bei 2-3 Werten/TicketTypen kann man aber auch ausprobieren...)

Das Ganze ist jetzt allerdings nur Clientseitig. Sollte Jemand Javascript deaktiviert haben, so funktionierts net mehr.
Ist in unserem Fall zwar kein Beinbruch, aber halt n bissl dirty, wie ich finde. :?

Am schönsten wäre es natürlich noch immer, wenn man das über ACLs realisieren könnte.
Ich bin aber zu blöd um da durchzuschauen.
Falls es also Jemand mit ACLs hinbekommt, dass ein Freitextfeld nur Pflicht ist(und auch angezeigt wird), wenn ein bestimmter TicketType ausgewählt ist, wäre ich Ihm noch immer für eine Antwort dankbar, auch wenn ich mit der jetzigen Lösung erst einmal leben kann...

Gruß

Fabian
OS: Ubuntu 9.04; OTRS v.2.4.7; DB: MYSQL
ddDagobert
Znuny wizard
Posts: 350
Joined: 13 May 2009, 14:24
Znuny Version: 5.0.10

Freetext abhängig von Ticket Typ anzeigen/pflicht

Post by ddDagobert »

Joyner wrote: Eine entsprechende ACL für dich könnte ungefähr so aussehen (ohne Gewähr, da mal so aus den Stehgreif)...
$Self->{TicketAcl}->{'ACL-Name'} = {
Ticket => {
Type => ['Auftrag']
},
},
Possible => {
Ticket => {
TicketFreeKey2 => ['Auftragsnummer'],
TicketFreeText2 => [''],
},
},
};
Hinter Type => ['Auftrag'] sollte ein , stehen!

Gruß

ddDagobert
Produktiv: OTRS 5.0.10 mit ITSM + Individualpakete und Feature AddOn auf SLES 11 SP2 mit PosgtreSQL 9.3
Test: OTRS 5.0.10 mit ITSM + Individualpakete und Feature AddOn auf SLES 11 SP2 mit PosgtreSQL 9.3
Entwicklung: OTRS 5.0.10 mit ITSM + Individualpakete und Feature AddOn auf SLES 11 SP2 mit PosgtreSQL 9.3
wonz
Znuny newbie
Posts: 60
Joined: 05 Aug 2009, 14:16
Znuny Version: 2.4.5

Freetext abhängig von Ticket Typ anzeigen/pflicht

Post by wonz »

ddDagobert wrote:
Joyner wrote: Eine entsprechende ACL für dich könnte ungefähr so aussehen (ohne Gewähr, da mal so aus den Stehgreif)...
$Self->{TicketAcl}->{'ACL-Name'} = {
Ticket => {
Type => ['Auftrag']
},
},
Possible => {
Ticket => {
TicketFreeKey2 => ['Auftragsnummer'],
TicketFreeText2 => [''],
},
},
};
Hinter Type => ['Auftrag'] sollte ein , stehen!

Gruß

ddDagobert
Danke, ändert aber nichts daran, dass mit der ACL überhaupt nix passiert (zumindest nichts ersichtbares).
OS: Ubuntu 9.04; OTRS v.2.4.7; DB: MYSQL
jesc
Znuny newbie
Posts: 42
Joined: 26 Nov 2008, 11:04
Location: Stuttgart
Contact:

Freetext abhängig von Ticket Typ anzeigen/pflicht

Post by jesc »

*hm*, dummerweise habe ich gerade genau das selbe Problem. Die OTRS Version ist bei mir auch 2.4.7 - das Betriebssystem ist allerdings ein SLES11.

Wenn ich es richtig verstanden habe, dann sollte doch folgender Eintrag in der Config.pm bewirken das alle Tickets nur noch in die Queue "Postmaster" verschoben werden dürfen/können, oder?

Code: Select all

$Self->{TicketAcl}->{'ACL-Test-Name1'} = {
 Properties => {
 },
 Possible => {
 Ticket => {
  Queue => ['Postmaster'],
 },
 },
};
Es tut aber rein gar nichts. Andere Einstellungen aus der Config.pm werden hingegen einwandfrei übernommen (habe z.B. diverse FreeTextFields da drin stehen). Kann mir jemand sagen was da los ist? Ich habe bereits gesucht ob es sich um einen Bug handelt, aber im Bugtracker habe ich nichts gefunden. Muss ich irgendwo die ACLs aktivieren? Oder ist etwas am Syntax falsch?

Grüße Jens
OTRS 3.0.10, ITSM 3.0.4, MySQL 5.1.49, Debian GNU/Linux 6.0
Locked