[SOLVED] Service als Pflichtfeld-

Hilfe zu Znuny Problemen aller Art
Locked
sysadmin
Znuny newbie
Posts: 1
Joined: 15 Oct 2013, 20:34
Znuny Version: 3.2.10
Real Name: Benjamin Odenthal

[SOLVED] Service als Pflichtfeld-

Post by sysadmin »

Hallo zusammen,

wir setzen OTRS 3.2.10 in Verbindung mit KIX4OTRS 5.1 ein.
Aktuell versuchen wir im Bereich AgentTicketPhone das Feld "Service" als Pflichfeld zu deklarieren.
Das ganze auch für den Customer Bereich.

Das ganze funktionierte auch wunderschön mit der Version OTRS 3.0.x nur jetzt wir trotz Anpassung in der DTL oder in der PM Datei
das Servicefeld als Pflichfeld verwendet.

In einem Artikel in diesem Forum wurde das bereits behandelt und der Artikel auf "Gelöst" gesetzt, jedoch klappt das bei uns nicht.
In diesem Artikel wird auf eine FAQ im https://portal.otrs.com/customer.pl verwiesen.

Ich sehe aber aktuell den Wald vor lauter Bäumen nicht mehr und erhoffe mir von Euch einen entscheidenden Hinweis.

Hier die Auszüge aus den Dateien:
/opt/otrs/Kernel/Output/HTML/Standard/AgentTicketPhone.dtl

Code: Select all

<!-- dtl:block:TicketService -->
                   <label class="Mandatory" for="ServiceID"><span class="Marker">*</span> $Text{"Service"}:</label>
                    <div class="Field">
                        $Data{"ServiceStrg"}
                        <div id="ServiceIDServerError" class="TooltipErrorMessage"><p>$Text{"Service invalid."}</p></div>
<!--dtl:js_on_document_complete-->
<script type="text/javascript">//<![CDATA[
[color=#FF0000]#    $('#ServiceID').addClass('Validate_Required');[/color]
    $('#ServiceID').bind('change', function (Event) {
        Core.AJAX.FormUpdate($('#NewPhoneTicket'), 'AJAXUpdate', 'ServiceID', ['TypeID', 'Dest', 'NewUserID', 'NewResponsibleID', 'NextStateID', 'PriorityID', 'SLAID', 'SignKeyID', 'CryptKeyID', $Data{"DynamicFieldNamesStrg"}, 'To', 'Cc', 'Bcc']);
    });
# ---
# ITSM
# ---
    $('#ServiceID').trigger('change');
# ---
//]]></script>
<!--dtl:js_on_document_complete-->
                    </div>
                    <div class="Clear"></div>
<!-- dtl:block:TicketService -->
Da noch KIX4OTRS installiert ist, haben wir die Änderungen aus Unwissenheit immer in beiden Dateien vorgenommen...
Also auch in: /opt/otrs/KIX4OTRS/Kernel/Output/HTML/Standard/AgentTicketPhone.dtl

Code: Select all

<!-- dtl:block:TicketService -->
                    <label class="Mandatory" for="ServiceID"><span class="Marker">*</span> $Text{"Service"}:</label>
                    <div class="Field">
                        $Data{"ServiceStrg"}
                        <div id="ServiceIDServerError" class="TooltipErrorMessage"><p>$Text{"Service invalid."}</p></div>
<!--dtl:js_on_document_complete-->
<script type="text/javascript">//<![CDATA[
[color=#FF0000]#    $('#ServiceID').addClass('Validate_Required');[/color]
    $('#ServiceID').bind('change', function (Event) {
        Core.AJAX.FormUpdate($('#NewPhoneTicket'), 'AJAXUpdate', 'ServiceID', ['TypeID', 'Dest', 'NewUserID', 'NewResponsibleID', 'NextStateID', 'PriorityID', 'SLAID', 'SignKeyID', 'CryptKeyID', $Data{"DynamicFieldNamesStrg"}, 'To', 'Cc', 'Bcc']);
    }).trigger('change');
//]]></script>
<!--dtl:js_on_document_complete-->
                    </div>
                    <div class="Clear"></div>
<!-- dtl:block:TicketService -->
Und der Versuch in den PM Dateien...

Code: Select all

    # build service string
    if ( $Self->{ConfigObject}->Get('Ticket::Service') ) {

        # KIX4OTRS-capeIT
        my $ListOptionJson = $Self->{LayoutObject}->AgentListOptionJSON(
            [
                {
                    Name => 'Services',
                    Data => $Param{Services},
                },
            ],
        );

        # EO KIX4OTRS-capeIT
        $Param{ServiceStrg} = $Self->{LayoutObject}->BuildSelection(

            # KIX4OTRS-capeIT
            # Data         => $Param{Services},
            Data => $ListOptionJson->{Services}->{Data},

            # EO KIX4OTRS-capeIT
            Name         => 'ServiceID',
 #           Class        => $Param{Errors}->{ServiceInvalid} || ' ',
           [color=#FF0000]Class        => 'Validate_Required' . ( $Param{Errors}->{ServiceIDInvalid} || ' ' ),[/color]
#                   Class        => 'Validate_RequiredDropDown' . ($Param{Errors}->{ServiceInvalid} || ' '),
            SelectedID   => $Param{ServiceID},
            PossibleNone => 1,
            TreeView     => $TreeView,
            Sort         => 'TreeView',

            # KIX4OTRS-capeIT
            DisabledOptions => $ListOptionJson->{Services}->{DisabledOptions} || 0,

            # EO KIX4OTRS-capeIT
            Translation => 0,
            Max         => 200,
        );
        $Self->{LayoutObject}->Block(
            Name => 'TicketService',
            Data => {%Param},
        );
und im OTRS Part....

Code: Select all

    # build service string
    if ( $Self->{ConfigObject}->Get('Ticket::Service') ) {
        $Param{ServiceStrg} = $Self->{LayoutObject}->BuildSelection(
            Data         => $Param{Services},
            Name         => 'ServiceID',
           # Class        => $Param{Errors}->{ServiceIDInvalid} || ' ',
           [color=#FF0000] Class        => 'Validate_Required' . ($Param{Errors}->{ServiceIDInvalid} || ' '),[/color]
                #       Class        => 'Validate_RequiredDropDown' . ($Param{Errors}->{ServiceInvalid} || ' '),
            SelectedID   => $Param{ServiceID},
            PossibleNone => 1,
            TreeView     => $TreeView,
            Sort         => 'TreeView',
            Translation  => 0,
                        Max          => 200,
        );
        $Self->{LayoutObject}->Block(
            Name => 'TicketService',
            Data => {%Param},
        );
Ein paar der Versuche und möglichen Try and Error Kombinationen wir Ihr seht haben wir bereits auskommentiert...

Wenn man sich den Quellcode anzeigen lässt dann steht z.B. bei der Queue welches ein "Pflichtfeld" ist
class="Validate_Required " auch bei allen anderen Pflichtfeldern, jedoch beim Service steht class=" "


NACHTRAG
Wenn KIX4OTRS Installiert ist, dann ist diese laut Config.pm include Anweisung die maßgebliche welche geändert werden muss...
./KIX4OTRSITSMIncidentProblem/Kernel/Output/HTML/Standard/AgentTicketPhone.dtl
Locked