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 -->
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 -->
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},
);
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},
);
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