Hallo,
ich würde gerne für die 2 Dynamischen Felder des EventTicket Calendar die Zeit automatisch setzen und entfernen. Soweit ich gesehen habe bietet das OTRS keine Funktion die Dynamischen Felder auf einen Variablen Wert per Generic Agent zu setzen. Ich hatte versucht die Felder per JavaScript automatisch im Warten Dialog zu setzen aber dies hat leider zu einem Fehler geführt weil JQuery erst am Ende der Seite geladen wird.
Kennt jemand eine gute Lösung für das Problem.
DynamicField anhand des Pending Reminder Wertes setzen
Re: DynamicField anhand des Pending Reminder Wertes setzen
Ich konnte das Problem nun doch per Javascript lösen.
Dazu wird die DTL Template Datei Kernel/Output/HTML/Standard/AgentTicketActionCommon.dtl nach Custom/Kernel/Output/HTML/Standard/AgentTicketActionCommon.dtl kopiert und angepasst.
Am Anfang der Datei wird der Block <!-- dtl:block:HeaderAgentTicketPending --> angepasst:
Und am Ende der Datei wird der Block <!--dtl:js_on_document_complete--> angepasst:
Die JS Funktion im oberen Block wird nur ausgegeben wenn man auf der Warten Dialog Seite ist und im 2. JS Block wird geprüft ob es die Funktion gibt und entsprechend mit jQuery auf eine Änderung der "Warten bis" Boxen gewartet.
Dazu wird die DTL Template Datei Kernel/Output/HTML/Standard/AgentTicketActionCommon.dtl nach Custom/Kernel/Output/HTML/Standard/AgentTicketActionCommon.dtl kopiert und angepasst.
Am Anfang der Datei wird der Block <!-- dtl:block:HeaderAgentTicketPending --> angepasst:
Code: Select all
<!-- dtl:block:HeaderAgentTicketPending -->
$Text{"Set Pending"}:
<script type="text/javascript">
function CopyPendingTimeToTicketCalendarBoxes() {
// get Pending Time Values
var PendingDay = $('#Day').val();
var PendingMonth = $('#Month').val()-1;
var PendingYear = $('#Year').val();
var PendingHour = $('#Hour').val();
var PendingMinute = $('#Minute').val();
// calculate time for TicketCalenderEndTime
var TicketCalendarEndTime = new Date(PendingYear, PendingMonth, PendingDay, PendingHour, PendingMinute, 0);
TicketCalendarEndTime.setMinutes(TicketCalendarEndTime.getMinutes() + 30); // add 30 minutes
// set TicketCalendarStart and EndTime and Checkboxes
$('#DynamicField_TicketCalendarStartTimeDay').val( PendingDay );
$('#DynamicField_TicketCalendarStartTimeMonth').val( PendingMonth+1 );
$('#DynamicField_TicketCalendarStartTimeYear').val( PendingYear );
$('#DynamicField_TicketCalendarStartTimeHour').val( PendingHour );
$('#DynamicField_TicketCalendarStartTimeMinute').val( PendingMinute );
$('#DynamicField_TicketCalendarEndTimeDay').val( TicketCalendarEndTime.getDate() );
$('#DynamicField_TicketCalendarEndTimeMonth').val( TicketCalendarEndTime.getMonth()+1 );
$('#DynamicField_TicketCalendarEndTimeYear').val( TicketCalendarEndTime.getFullYear() );
$('#DynamicField_TicketCalendarEndTimeHour').val( TicketCalendarEndTime.getHours() );
$('#DynamicField_TicketCalendarEndTimeMinute').val( TicketCalendarEndTime.getMinutes() );
$('#DynamicField_TicketCalendarStartTimeUsed').prop('checked', true);
$('#DynamicField_TicketCalendarEndTimeUsed').prop('checked', true);
}
</script>
<!-- dtl:block:HeaderAgentTicketPending -->
Code: Select all
<!--dtl:js_on_document_complete-->
<script type="text/javascript">//<![CDATA[
Core.Agent.TicketAction.Init();
//]]>
if ( typeof CopyPendingTimeToTicketCalendarBoxes == 'function' ) {
$('#Day').bind('change', function() { CopyPendingTimeToTicketCalendarBoxes(); } );
$('#Month').bind('change', function() { CopyPendingTimeToTicketCalendarBoxes(); } );
$('#Year').bind('change', function() { CopyPendingTimeToTicketCalendarBoxes(); } );
$('#Hour').bind('change', function() { CopyPendingTimeToTicketCalendarBoxes(); } );
$('#Minute').bind('change', function() { CopyPendingTimeToTicketCalendarBoxes(); } );
}
</script>
<!--dtl:js_on_document_complete-->