Files
scripts/Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminGenericAgent.tt
2024-10-14 00:08:40 +02:00

1019 lines
60 KiB
Plaintext

# --
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (GPL). If you
# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt.
# --
<!-- start form -->
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
<h1 class="InvisibleText">[% Translate("Generic Agent Job Management") | html %]</h1>
[% BreadcrumbPath = [
{
Name => Translate('Generic Agent Job Management'),
Link => Env("Action"),
},
]
%]
[% SWITCH Data.Subaction %]
[% CASE 'Update' %]
[% IF Data.Profile %]
[% USE EditJob = String(Translate("Edit Job")) %]
[% BreadcrumbPath.push({ Name => EditJob.append( ': ', Data.Profile ) }) %]
[% ELSE %]
[% BreadcrumbPath.push({ Name => Translate("Add Job"),}) %]
[% END %]
[% CASE 'Run' %]
[% USE RunJob = String(Translate("Run Job")) %]
[% BreadcrumbPath.push({ Name => RunJob.append( ': ', Data.Profile ) }) %]
[% END %]
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
<div class="SidebarColumn">
[% RenderBlockStart("ActionList") %]
<div class="WidgetSimple">
<div class="Header">
<h2>[% Translate("Actions") | html %]</h2>
</div>
<div class="Content">
<ul class="ActionList">
[% RenderBlockStart("ActionAdd") %]
<li>
<a class="CallForAction Fullsize Center" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Update"><span><i class="fa fa-plus-square"></i>[% Translate("Add Job") | html %]</span></a>
</li>
[% RenderBlockEnd("ActionAdd") %]
[% RenderBlockStart("ActionOverview") %]
<li>
<a class="CallForAction Fullsize Center" href="[% Env("Baselink") %]Action=[% Env("Action") %]"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
</li>
[% RenderBlockEnd("ActionOverview") %]
</ul>
</div>
</div>
[% RenderBlockEnd("ActionList") %]
[% RenderBlockStart("Filter") %]
<div class="WidgetSimple">
<div class="Header">
<h2><label for="FilterGenericAgentJobs">[% Translate("Filter for Jobs") | html %]</label></h2>
</div>
<div class="Content">
<input type="text" id="FilterGenericAgentJobs" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterGenericAgentJobs" value="" title="[% Translate("Filter for jobs") | html %]">
</div>
</div>
[% RenderBlockEnd("Filter") %]
</div>
<div class="ContentColumn">
[% RenderBlockStart("Overview") %]
<div class="WidgetSimple">
<div class="Header">
<h2>[% Translate("List") | html %]</h2>
</div>
<div class="Content">
<table class="DataTable" id="GenericAgentJobs">
<thead>
<tr>
<th>[% Translate("Name") | html %]</th>
<th>[% Translate("Last run") | html %]</th>
<th>[% Translate("Validity") | html %]</th>
<th>[% Translate("Delete") | html %]</th>
<th>[% Translate("Run Now!") | html %]</th>
</tr>
</thead>
<tbody>
[% RenderBlockStart("NoDataFoundMsg") %]
<tr>
<td colspan="5">
[% Translate("No data found.") | html %]
</td>
</tr>
[% RenderBlockEnd("NoDataFoundMsg") %]
[% RenderBlockStart("Row") %]
<tr [% IF Data.Valid != 1%]class="Invalid"[% END %]>
<td>
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Update;Profile=[% Data.Name | uri %]">
[% Data.Name | html %]
</a>
</td>
<td>[% Data.ScheduleLastRun | Localize("TimeLong") %]</td>
<td>[% Translate(Data.ShownValid) | html %]</td>
<td class="Center">
<a class="TrashCan" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Delete;Profile=[% Data.Name | uri %];[% Env("ChallengeTokenParam") | html %]" title="[% Translate("Delete this task") | html %]">
<i class="fa fa-trash-o"></i> [% Translate("Delete") | html %]
</a>
</td>
<td>
[% IF Data.Valid == 1 %]
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Run;Profile=[% Data.Name | uri %];[% Env("ChallengeTokenParam") | html %]">
[% Translate("Run this task") | html %]
</a>
[% END %]
</td>
</tr>
[% RenderBlockEnd("Row") %]
<tr class="FilterMessage Hidden">
<td colspan="5">[% Translate("No matches found.") | html %]</td>
</tr>
</tbody>
</table>
</div>
[% RenderBlockEnd("Overview") %]
[% RenderBlockStart("Edit") %]
<form action="[% Env("CGIHandle") %]" method="post" name="compose" class="Validate PreventMultipleSubmits">
<div class="WidgetSimple">
<div class="Header">
<h2>[% Translate("Job Settings") | html %]</h2>
</div>
<div class="Content">
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
<input type="hidden" name="Subaction" value="UpdateAction"/>
<input type="hidden" name="ScheduleLastRun" value="[% Data.ScheduleLastRun | html %]"/>
<input type="hidden" name="OldProfile" value="[% Data.Profile | html %]"/>
[% IF Data.Profile %]
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
[% END %]
<fieldset class="TableLike">
<label for="Profile" class="Mandatory"><span class="Marker">*</span> [% Translate("Job name") | html %]:</label>
<div class="Field">
<input type="text" name="Profile" id="Profile" class="Validate_Required W50pc [% Data.ProfileInvalid | html %]" value="[% Data.Profile | html %]" />
<div id="ProfileError" class="TooltipErrorMessage">
<p>[% Translate("This field is required.") | html %]</p>
</div>
[% RenderBlockStart("ProfileInvalidMsg") %]
<div id="ProfileServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
[% RenderBlockEnd("ProfileInvalidMsg") %]
[% RenderBlockStart("ProfileInvalidMsgAddError") %]
<div id="ProfileServerError" class="TooltipErrorMessage"><p>[% Translate("The name you entered already exists.") | html %]</p></div>
[% RenderBlockEnd("ProfileInvalidMsgAddError") %]
</div>
<div class="Clear"></div>
<label for="Valid">[% Translate("Validity") | html %]:</label>
<div class="Field">
[% Data.ValidOption %]
</div>
<div class="Clear"></div>
</fieldset>
</div>
</div>
<div class="WidgetSimple Collapsed">
<div class="Header">
<div class="WidgetAction Toggle">
<a href="#" title="[% Translate("Toggle this widget") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
</div>
<h2>[% Translate("Automatic Execution (Multiple Tickets)") | html %]</h2>
</div>
<div class="Content">
<fieldset class="TableLike">
<div class="Field">
<table class="DataTable VariableWidth" summary="[% Translate("Execution Schedule") | html %]">
<thead>
<tr>
<th><label for="ScheduleMinutes">[% Translate("Schedule minutes") | html %]</label></th>
<th><label for="ScheduleHours">[% Translate("Schedule hours") | html %]</label></th>
<th><label for="ScheduleDays">[% Translate("Schedule days") | html %]</label></th>
</tr>
</thead>
<tbody>
<td>
[% Data.ScheduleMinutesList %]
</td>
<td>
[% Data.ScheduleHoursList %]
</td>
<td>
[% Data.ScheduleDaysList %]
</td>
</tbody>
</table>
<p class="FieldExplanation">
[% Translate("Automatic execution values are in the system timezone.") | html %]
</p>
[% RenderBlockStart("JobScheduleWarning") %]
<p class="Error SpacingTop">
[% Translate("Currently this generic agent job will not run automatically.") | html %]
<br/>
[% Translate("To enable automatic execution select at least one value from minutes, hours and days!") | html %]
</p>
[% RenderBlockEnd("JobScheduleWarning") %]
</div>
<div class="Clear"></div>
</fieldset>
</div>
</div>
<div class="WidgetSimple SpacingTop Collapsed">
<div class="Header">
<div class="WidgetAction Toggle">
<a href="#" title="[% Translate("Toggle this widget") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
</div>
<h2>[% Translate("Event Based Execution (Single Ticket)") | html %]</h2>
</div>
<div class="Content">
<fieldset class="TableLike">
<label for="EventsTable">[% Translate("Event Triggers") | html %]:</label>
<div class="Field W50pc">
<table class="DataTable ClearNone SpacingBottomSmall" id="EventsTable" summary="[% Translate("List of all configured events") | html %]">
<thead>
<tr>
<th>[% Translate("Type") | html %]</th>
<th>[% Translate("Event") | html %]</th>
<th class="Center">[% Translate("Delete") | html %]</th>
</tr>
</thead>
<tbody>
[% RenderBlockStart("NoDataFoundMsgEvent") %]
<tr>
<td colspan="4">
[% Translate("No data found.") | html %]
</td>
</tr>
[% RenderBlockEnd("NoDataFoundMsgEvent") %]
<tr class="EventRowTemplate Hidden">
<td class="AsBlock EventType">EventType</td>
<td class="EventName" >EventName</td>
<td class="EventDelete Center">
<a id="DeleteEvent" class="TrashCan DeleteEvent" href="#" title="[% Translate("Delete this event") | html %]">
[% Translate("Delete this event") | html %]
<i class="fa fa-trash-o"></i>
</a>
<input type="hidden" name="" class="EventValue" value="" />
</td>
</tr>
[% RenderBlockStart("EventRow") %]
<tr>
<td class="AsBlock">[% Data.EventType | html %]</td>
<td>[% Data.Event | html %]</td>
<td class="Center">
<a id="DeleteEvent[% Data.Event | html %]" class="TrashCan DeleteEvent" href="#" title="[% Translate("Delete this event") | html %]">
[% Translate("Delete this event") | html %]
<i class="fa fa-trash-o"></i>
</a>
<input type="hidden" name="EventValues" class="EventValue" value="[% Data.Event | html %]" />
</td>
</tr>
[% RenderBlockEnd("EventRow") %]
</tbody>
</table>
<p class="FieldExplanation">
[% Translate("Additionally or alternatively to a periodic execution, you can define ticket events that will trigger this job.") | html %]
[% Translate("If a ticket event is fired, the ticket filter will be applied to check if the ticket matches. Only then the job is run on that ticket.") | html %]
</p>
</div>
<div class="Hidden" id="DeleteEventDialogContainer">
<div id ="DeleteEventDialog" class="InnerContent GenericInterfaceDialog">
<span class="WarningDialog ">&nbsp;</span>
<p class="Center Warning">[% Translate("Do you really want to delete this event trigger?") | html %]</p>
<div class="SpacingTop"></div>
</div>
</div>
<div class="SpacingTop"></div>
<label class="HideOnChange" for="EventType">[% Translate("Add Event Trigger") | html %]:</label>
<div class="Field HideOnChange">
[% RenderBlockStart("EventTypeStrg") %]
<span>
[% Data.EventTypeStrg %]
</span>
[% RenderBlockEnd("EventTypeStrg") %]
[% RenderBlockStart("EventAdd") %]
<span class="EventTypeName">
[% Data.EventStrg %]
</span>
[% RenderBlockEnd("EventAdd") %]
<p class="FieldExplanation">
[% Translate("To add a new event select the event object and event name") | html %].
</p>
</div>
<div class="Clear"></div>
</fieldset>
</div>
</div>
<div class="WidgetSimple SpacingTop Collapsed">
<div class="Header">
<div class="WidgetAction Toggle">
<a href="#" title="[% Translate("Toggle this widget") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
</div>
<h2>[% Translate("Select Tickets") | html %]</h2>
</div>
<div class="Content">
<fieldset class="TableLike">
<label for="TicketNumber">[% Config("Ticket::Hook") %]:</label>
<div class="Field">
<input type="text" name="TicketNumber" id="TicketNumber" size="30" value="[% Data.TicketNumber | html %]"/>
<p class="FieldExplanation">
[% Translate("(e. g. 10*5155 or 105658*)") | html %]
</p>
</div>
<div class="Clear"></div>
<label for="Title">[% Translate("Title") | html %]:</label>
<div class="Field">
<input type="text" name="Title" id="Title" class="W33pc" value="[% Data.Title | html %]"/>
</div>
<div class="Clear"></div>
<label for="CustomerID">[% Translate("Customer ID") | html %]:</label>
<div class="Field">
<input type="text" name="CustomerID" id="CustomerID" class="W33pc" value="[% Data.CustomerID | html %]"/>
<p class="FieldExplanation">
[% Translate("(e. g. 234321)") | html %]
</p>
</div>
<div class="Clear"></div>
<label for="CustomerUserLogin">[% Translate("Customer user ID") | html %]:</label>
<div class="Field">
<input type="text" name="CustomerUserLogin" id="CustomerUserLogin" class="W33pc" value="[% Data.CustomerUserLogin | html %]"/>
<p class="FieldExplanation">
[% Translate("(e. g. U5150)") | html %]
</p>
</div>
<div class="Clear"></div>
[% RenderBlockStart("TicketType") %]
<label for="TypeIDs">[% Translate("Type") | html %]:</label>
<div class="Field">
[% Data.TypesStrg %]
</div>
<div class="Clear"></div>
[% RenderBlockEnd("TicketType") %]
<label for="MIMEBase_From">[% Translate("From") | html %]:</label>
<div class="Field">
<input type="text" name="MIMEBase_From" id="MIMEBase_From" class="W30pc [% Data.MIMEBase_FromInvalid | html %]" value="[% Data.MIMEBase_From | html %]"/>
<p class="FieldExplanation">
[% Translate("Fulltext-search in article (e. g. \"Mar*in\" or \"Baue*\").") | html %]
</p>
<div id="MIMEBase_FromServerError" class="TooltipErrorMessage">
<p>[% Data.MIMEBase_FromInvalidTooltip | html %]</p>
</div>
</div>
<div class="Clear"></div>
<label for="MIMEBase_To">[% Translate("To") | html %]:</label>
<div class="Field">
<input type="text" name="MIMEBase_To" id="MIMEBase_To" class="W33pc [% Data.MIMEBase_ToInvalid | html %]" value="[% Data.MIMEBase_To | html %]"/>
<p class="FieldExplanation">
[% Translate("Fulltext-search in article (e. g. \"Mar*in\" or \"Baue*\").") | html %]
</p>
<div id="MIMEBase_ToServerError" class="TooltipErrorMessage">
<p>[% Data.MIMEBase_ToInvalidTooltip | html %]</p>
</div>
</div>
<div class="Clear"></div>
<label for="MIMEBase_Cc">[% Translate("Cc") | html %]:</label>
<div class="Field">
<input type="text" name="MIMEBase_Cc" id="MIMEBase_Cc" class="W33pc [% Data.MIMEBase_CcInvalid | html %]" value="[% Data.MIMEBase_Cc | html %]"/>
<p class="FieldExplanation">
[% Translate("Fulltext-search in article (e. g. \"Mar*in\" or \"Baue*\").") | html %]
</p>
<div id="MIMEBase_CcServerError" class="TooltipErrorMessage">
<p>[% Data.MIMEBase_CcInvalidTooltip | html %]</p>
</div>
</div>
<div class="Clear"></div>
<label for="MIMEBase_Subject">[% Translate("Subject") | html %]:</label>
<div class="Field">
<input type="text" name="MIMEBase_Subject" id="MIMEBase_Subject" class="W33pc [% Data.MIMEBase_SubjectInvalid | html %]" value="[% Data.MIMEBase_Subject | html %]"/>
<p class="FieldExplanation">
[% Translate("Fulltext-search in article (e. g. \"Mar*in\" or \"Baue*\").") | html %]
</p>
<div id="MIMEBase_SubjectServerError" class="TooltipErrorMessage">
<p>[% Data.MIMEBase_SubjectInvalidTooltip | html %]</p>
</div>
</div>
<div class="Clear"></div>
<label for="MIMEBase_Body">[% Translate("Text") | html %]:</label>
<div class="Field">
<input type="text" name="MIMEBase_Body" id="MIMEBase_Body" class="W33pc [% Data.MIMEBase_BodyInvalid | html %]" value="[% Data.MIMEBase_Body | html %]"/>
<p class="FieldExplanation">
[% Translate("Fulltext-search in article (e. g. \"Mar*in\" or \"Baue*\").") | html %]
</p>
<div id="MIMEBase_BodyServerError" class="TooltipErrorMessage">
<p>[% Data.MIMEBase_BodyInvalidTooltip | html %]</p>
</div>
</div>
<div class="Clear"></div>
[% RenderBlockStart("TicketService") %]
<label for="ServiceIDs">[% Translate("Service") | html %]:</label>
<div class="Field">
[% Data.ServicesStrg %]
</div>
<div class="Clear"></div>
<label for="SLAIDs">[% Translate("Service Level Agreement") | html %]:</label>
<div class="Field">
[% Data.SLAsStrg %]
</div>
<div class="Clear"></div>
[% RenderBlockEnd("TicketService") %]
<label for="PriorityIDs">[% Translate("Priority") | html %]:</label>
<div class="Field">
[% Data.PrioritiesStrg %]
</div>
<div class="Clear"></div>
<label for="QueueIDs">[% Translate("Queue") | html %]:</label>
<div class="Field">
[% Data.QueuesStrg %]
</div>
<div class="Clear"></div>
<label for="StateIDs">[% Translate("State") | html %]:</label>
<div class="Field">
[% Data.StatesStrg %]
</div>
<div class="Clear"></div>
<label for="OwnerIDs">[% Translate("Agent") | html %]/[% Translate("Owner") | html %]:</label>
<div class="Field">
[% Data.OwnerStrg %]
</div>
<div class="Clear"></div>
[% RenderBlockStart("TicketResponsible") %]
<label for="ResponsibleIDs">[% Translate("Agent") | html %]/[% Translate("Responsible") | html %]:</label>
<div class="Field">
[% Data.ResponsibleStrg %]
</div>
<div class="Clear"></div>
[% RenderBlockEnd("TicketResponsible") %]
<label for="LockIDs">[% Translate("Ticket lock") | html %]:</label>
<div class="Field">
[% Data.LockOption %]
</div>
<div class="Clear"></div>
[% RenderBlockStart("DynamicField") %]
<label>[% Translate("Dynamic Fields") | html %]</label>
<div class="Clear"></div>
[% RenderBlockStart("DynamicFieldElement") %]
[% Data.Label %]
<div class="Field">
[% Data.Field %]
</div>
<div class="Clear"></div>
[% RenderBlockEnd("DynamicFieldElement") %]
[% RenderBlockEnd("DynamicField") %]
<label for="TimeSearchTypeNone">[% Translate("Create times") | html %]:</label>
<div class="Field">
<input type="radio" name="TimeSearchType" id="TimeSearchTypeNone" value="" [% Data.item("TimeSearchType::None") %]/>
[% Translate("No create time settings.") | html %]
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="TimeSearchType" value="TimePoint" [% Data.item("TimeSearchType::TimePoint") %]/>
[% Translate("Ticket created") | html %] [% Data.TicketCreateTimePointStart %] [% Data.TicketCreateTimePoint %] [% Data.TicketCreateTimePointFormat %].
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="TimeSearchType" value="TimeSlot" [% Data.item("TimeSearchType::TimeSlot") %]/>
[% Translate("Ticket created between") | html %] [% Data.TicketCreateTimeStart %] [% Translate("and") | html %] [% Data.TicketCreateTimeStop %].
</div>
<div class="Clear"></div>
<label for="LastChangeTimeSearchTypeNone">[% Translate("Last changed times") | html %]:</label>
<div class="Field">
<input type="radio" name="LastChangeTimeSearchType" id="LastChangeTimeSearchTypeNone" value="" [% Data.item("LastChangeTimeSearchType::None") %]/>
[% Translate("No last changed time settings.") | html %]
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="LastChangeTimeSearchType" value="TimePoint" [% Data.item("LastChangeTimeSearchType::TimePoint") %]/>
[% Translate("Ticket last changed") | html %] [% Data.TicketLastChangeTimePointStart %] [% Data.TicketLastChangeTimePoint %] [% Data.TicketLastChangeTimePointFormat %].
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="LastChangeTimeSearchType" value="TimeSlot" [% Data.item("LastChangeTimeSearchType::TimeSlot") %]/>
[% Translate("Ticket last changed between") | html %] [% Data.TicketLastChangeTimeStart %] [% Translate("and") | html %] [% Data.TicketLastChangeTimeStop %].
</div>
<div class="Clear"></div>
<label for="ChangeTimeSearchTypeNone">[% Translate("Change times") | html %]:</label>
<div class="Field">
<input type="radio" name="ChangeTimeSearchType" id="ChangeTimeSearchTypeNone" value="" [% Data.item("ChangeTimeSearchType::None") %]/>
[% Translate("No change time settings.") | html %]
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="ChangeTimeSearchType" value="TimePoint" [% Data.item("ChangeTimeSearchType::TimePoint") %]/>
[% Translate("Ticket changed") | html %] [% Data.TicketChangeTimePointStart %] [% Data.TicketChangeTimePoint %] [% Data.TicketChangeTimePointFormat %].
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="ChangeTimeSearchType" value="TimeSlot" [% Data.item("ChangeTimeSearchType::TimeSlot") %]/>
[% Translate("Ticket changed between") | html %] [% Data.TicketChangeTimeStart %] [% Translate("and") | html %] [% Data.TicketChangeTimeStop %].
</div>
<div class="Clear"></div>
<label for="CloseTimeSearchTypeNone">[% Translate("Close times") | html %]:</label>
<div class="Field">
<input type="radio" name="CloseTimeSearchType" id="CloseTimeSearchTypeNone" value="" [% Data.item("CloseTimeSearchType::None") %]/>
[% Translate("No close time settings.") | html %]
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="CloseTimeSearchType" value="TimePoint" [% Data.item("CloseTimeSearchType::TimePoint") %]/>
[% Translate("Ticket closed") | html %] [% Data.TicketCloseTimePointStart %] [% Data.TicketCloseTimePoint %] [% Data.TicketCloseTimePointFormat %].
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="CloseTimeSearchType" value="TimeSlot" [% Data.item("CloseTimeSearchType::TimeSlot") %]/>
[% Translate("Ticket closed between") | html %] [% Data.TicketCloseTimeStart %] [% Translate("and") | html %] [% Data.TicketCloseTimeStop %].
</div>
<div class="Clear"></div>
<label for="TimePendingSearchTypeNone">[% Translate("Pending times") | html %]:</label>
<div class="Field">
<input type="radio" name="TimePendingSearchType" id="TimePendingSearchTypeNone" value="" [% Data.item("TimePendingSearchType::None") %]/>
[% Translate("No pending time settings.") | html %]
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="TimePendingSearchType" value="TimePoint" [% Data.item("TimePendingSearchType::TimePoint") %]/>
[% Translate("Ticket pending time reached") | html %] [% Data.TicketPendingTimePointStart %] [% Data.TicketPendingTimePoint %] [% Data.TicketPendingTimePointFormat %].
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="TimePendingSearchType" value="TimeSlot" [% Data.item("TimePendingSearchType::TimeSlot") %]/>
[% Translate("Ticket pending time reached between") | html %] [% Data.TicketPendingTimeStart %] [% Translate("and") | html %] [% Data.TicketPendingTimeStop %].
</div>
<div class="Clear"></div>
<label for="EscalationTimeSearchTypeNone">[% Translate("Escalation times") | html %]:</label>
<div class="Field">
<input type="radio" name="EscalationTimeSearchType" id="EscalationTimeSearchTypeNone" value="" [% Data.item("EscalationTimeSearchType::None") %]/>
[% Translate("No escalation time settings.") | html %]
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="EscalationTimeSearchType" value="TimePoint" [% Data.item("EscalationTimeSearchType::TimePoint") %]/>
[% Translate("Ticket escalation time reached") | html %] [% Data.TicketEscalationTimePointStart %] [% Data.TicketEscalationTimePoint %] [% Data.TicketEscalationTimePointFormat %].
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="EscalationTimeSearchType" value="TimeSlot" [% Data.item("EscalationTimeSearchType::TimeSlot") %]/>
[% Translate("Ticket escalation time reached between") | html %] [% Data.TicketEscalationTimeStart %] [% Translate("and") | html %] [% Data.TicketEscalationTimeStop %].
</div>
<div class="Clear"></div>
<label for="EscalationResponseTimeSearchTypeNone">[% Translate("Escalation - first response time") | html %]:</label>
<div class="Field">
<input type="radio" name="EscalationResponseTimeSearchType" id="EscalationResponseTimeSearchTypeNone" value="" [% Data.item("EscalationResponseTimeSearchType::None") %]/>
[% Translate("No escalation time settings.") | html %]
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="EscalationResponseTimeSearchType" value="TimePoint" [% Data.item("EscalationResponseTimeSearchType::TimePoint") %]/>
[% Translate("Ticket first response time reached") | html %] [% Data.TicketEscalationResponseTimePointStart %] [% Data.TicketEscalationResponseTimePoint %] [% Data.TicketEscalationResponseTimePointFormat %].
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="EscalationResponseTimeSearchType" value="TimeSlot" [% Data.item("EscalationResponseTimeSearchType::TimeSlot") %]/>
[% Translate("Ticket first response time reached between") | html %] [% Data.TicketEscalationResponseTimeStart %] [% Translate("and") | html %] [% Data.TicketEscalationResponseTimeStop %].
</div>
<div class="Clear"></div>
<label for="EscalationUpdateTimeSearchTypeNone">[% Translate("Escalation - update time") | html %]:</label>
<div class="Field">
<input type="radio" name="EscalationUpdateTimeSearchType" id="EscalationUpdateTimeSearchTypeNone" value="" [% Data.item("EscalationUpdateTimeSearchType::None") %]/>
[% Translate("No escalation time settings.") | html %]
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="EscalationUpdateTimeSearchType" value="TimePoint" [% Data.item("EscalationUpdateTimeSearchType::TimePoint") %]/>
[% Translate("Ticket update time reached") | html %] [% Data.TicketEscalationUpdateTimePointStart %] [% Data.TicketEscalationUpdateTimePoint %] [% Data.TicketEscalationUpdateTimePointFormat %].
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="EscalationUpdateTimeSearchType" value="TimeSlot" [% Data.item("EscalationUpdateTimeSearchType::TimeSlot") %]/>
[% Translate("Ticket update time reached between") | html %] [% Data.TicketEscalationUpdateTimeStart %] [% Translate("and") | html %] [% Data.TicketEscalationUpdateTimeStop %].
</div>
<div class="Clear"></div>
<label for="EscalationSolutionTimeSearchTypeNone">[% Translate("Escalation - solution time") | html %]:</label>
<div class="Field">
<input type="radio" name="EscalationSolutionTimeSearchType" id="EscalationSolutionTimeSearchTypeNone" value="" [% Data.item("EscalationSolutionTimeSearchType::None") %]/>
[% Translate("No escalation time settings.") | html %]
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="EscalationSolutionTimeSearchType" value="TimePoint" [% Data.item("EscalationSolutionTimeSearchType::TimePoint") %]/>
[% Translate("Ticket solution time reached") | html %] [% Data.TicketEscalationSolutionTimePointStart %] [% Data.TicketEscalationSolutionTimePoint %] [% Data.TicketEscalationSolutionTimePointFormat %].
</div>
<div class="Clear"></div>
<div class="Field">
<input type="radio" name="EscalationSolutionTimeSearchType" value="TimeSlot" [% Data.item("EscalationSolutionTimeSearchType::TimeSlot") %]/>
[% Translate("Ticket solution time reached between") | html %] [% Data.TicketEscalationSolutionTimeStart %] [% Translate("and") | html %] [% Data.TicketEscalationSolutionTimeStop %].
</div>
<div class="Clear"></div>
[% RenderBlockStart("SearchInArchive") %]
<label for="SearchInArchive">[% Translate("Archive search option") | html %]:</label>
<div class="Field">
[% Data.SearchInArchiveStrg %]
</div>
<div class="Clear"></div>
[% RenderBlockEnd("SearchInArchive") %]
</fieldset>
</div>
</div>
<!-- new options -->
<div class="WidgetSimple SpacingTop Collapsed">
<div class="Header">
<div class="WidgetAction Toggle">
<a href="#" title="[% Translate("Toggle this widget") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
</div>
<h2>[% Translate("Update/Add Ticket Attributes") | html %]</h2>
</div>
<div class="Content">
<fieldset class="TableLike">
[% RenderBlockStart("NewTicketService") %]
<label for="NewServiceID">[% Translate("Set new service") | html %]:</label>
<div class="Field">
[% Data.NewServicesStrg %]
</div>
<div class="Clear"></div>
<label for="NewSLAID">[% Translate("Set new Service Level Agreement") | html %]:</label>
<div class="Field">
[% Data.NewSLAsStrg %]
</div>
<div class="Clear"></div>
[% RenderBlockEnd("NewTicketService") %]
<label for="NewPriorityID">[% Translate("Set new priority") | html %]:</label>
<div class="Field">
[% Data.NewPrioritiesStrg %]
</div>
<div class="Clear"></div>
<label for="NewQueueID">[% Translate("Set new queue") | html %]:</label>
<div class="Field">
[% Data.NewQueuesStrg %]
</div>
<div class="Clear"></div>
<label for="NewStateID">[% Translate("Set new state") | html %]:</label>
<div class="Field">
[% Data.NewStatesStrg %]
</div>
<div class="Clear"></div>
<label for="NewPendingTime">[% Translate("Pending date") | html %]:</label>
<div class="Field">
<input type="text" name="NewPendingTime" id="NewPendingTime" value="[% Data.NewPendingTime | html %]" class="W10pc"/>
[% Data.NewPendingTimeTypeStrg %]
</div>
<div class="Clear"></div>
<label for="NewOwnerID">[% Translate("Set new agent") | html %]/[% Translate("new owner") | html %]:</label>
<div class="Field">
[% Data.NewOwnerStrg %]
</div>
<div class="Clear"></div>
[% RenderBlockStart("NewTicketResponsible") %]
<label for="NewResponsibleID">[% Translate("Set new agent") | html %]/[% Translate("new responsible") | html %]:</label>
<div class="Field">
[% Data.NewResponsibleStrg %]
</div>
<div class="Clear"></div>
[% RenderBlockEnd("NewTicketResponsible") %]
<label for="NewLockID">[% Translate("Set new ticket lock") | html %]:</label>
<div class="Field">
[% Data.NewLockOption %]
</div>
<div class="Clear"></div>
<label for="NewCustomerUserLogin">[% Translate("New customer user ID") | html %]:</label>
<div class="Field">
<input type="text" name="NewCustomerUserLogin" id="NewCustomerUserLogin" value="[% Data.NewCustomerUserLogin | html %]" class="W33pc"/>
</div>
<div class="Clear"></div>
<label for="NewCustomerID">[% Translate("New customer ID") | html %]:</label>
<div class="Field">
<input type="text" name="NewCustomerID" id="NewCustomerID" value="[% Data.NewCustomerID | html %]" class="W33pc"/>
</div>
<div class="Clear"></div>
<label for="NewTitle">[% Translate("New title") | html %]:</label>
<div class="Field">
<input type="text" name="NewTitle" id="NewTitle" class="W33pc" value="[% Data.NewTitle | html %]"/>
</div>
<div class="Clear"></div>
[% RenderBlockStart("NewTicketType") %]
<label for="NewTypeID">[% Translate("New type") | html %]:</label>
<div class="Field">
[% Data.NewTypesStrg %]
</div>
<div class="Clear"></div>
[% RenderBlockEnd("NewTicketType") %]
[% RenderBlockStart("NewDynamicField") %]
<label>[% Translate("New Dynamic Field Values") | html %]</label>
<div class="Clear"></div>
[% RenderBlockStart("NewDynamicFieldElement") %]
[% Data.Label %]
<div class="Field">
[% Data.Field %]
</div>
<div class="Clear"></div>
[% RenderBlockEnd("NewDynamicFieldElement") %]
[% RenderBlockEnd("NewDynamicField") %]
[% RenderBlockStart("NewArchiveFlag") %]
<label for="NewArchiveFlag">[% Translate("Archive selected tickets") | html %]:</label>
<div class="Field">
[% Data.NewArchiveFlagStrg %]
</div>
<div class="Clear"></div>
[% RenderBlockEnd("NewArchiveFlag") %]
</fieldset>
</div>
</div>
<div class="WidgetSimple SpacingTop Collapsed">
<div class="Header">
<div class="WidgetAction Toggle">
<a href="#" title="[% Translate("Toggle this widget") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
</div>
<h2>[% Translate("Add Note") | html %]</h2>
</div>
<div class="Content">
<fieldset class="TableLike">
<label for="NewNoteFrom">[% Translate("From") | html %]:</label>
<div class="Field">
<input type="text" name="NewNoteFrom" id="NewNoteFrom" value="[% Data.NewNoteFrom | html %]" class="W50pc [% Data.NewNoteFromServerError | html %]" maxlength="200"/>
<div id="NewNoteFromServerError" class="TooltipErrorMessage"><p>[% Translate("This field must have less then 200 characters.") | html %]</p></div>
</div>
<div class="Clear"></div>
<label for="NewNoteSubject">[% Translate("Subject") | html %]:</label>
<div class="Field">
<input type="text" name="NewNoteSubject" id="NewNoteSubject" value="[% Data.NewNoteSubject | html %]" size="60" [% IF Data.NewNoteSubjectServerError == 'ServerError' %]class="[% Data.NewNoteSubjectServerError | html %]"[% END %] maxlength="200"/>
<div id="NewNoteSubjectServerError" class="TooltipErrorMessage"><p>[% Translate("This field must have less then 200 characters.") | html %]</p></div>
</div>
<div class="Clear"></div>
<label for="NewNoteBody">[% Translate("Text") | html %]:</label>
<div class="Field">
<textarea name="NewNoteBody" id="NewNoteBody" class="Validate_MaxLength [% Data.NewNoteBodyServerError | html %]" rows="7" cols="60" data-maxlength="200">[% Data.NewNoteBody | html %]</textarea>
<div id="NewNoteBodyError" class="TooltipErrorMessage"><p>[% Translate("This field must have less then 200 characters.") | html %]</p></div>
<div id="NewNoteBodyServerError" class="TooltipErrorMessage"><p>[% Translate("This field must have less then 200 characters.") | html %]</p></div>
</div>
<div class="Clear"></div>
<label for="NewNoteIsVisibleForCustomer">[% Translate("Visible for customer") | html %]:</label>
<div class="Field">
<input name="NewNoteIsVisibleForCustomer" id="NewNoteIsVisibleForCustomer" type="checkbox"
[% IF Data.NewNoteIsVisibleForCustomer %] checked="checked"[% END %] />
</div>
<div class="Clear"></div>
<label for="NewNoteTimeUnits">[% Translate("Time units") | html %] [% Translate(Config("Ticket::Frontend::TimeUnits")) | html %]:</label>
<div class="Field">
<input type="text" name="NewNoteTimeUnits" id="NewNoteTimeUnits" value="[% Data.NewNoteTimeUnits | html %]" class="W20pc"/>
</div>
<div class="Clear"></div>
</fieldset>
</div>
</div>
<div class="WidgetSimple SpacingTop Collapsed">
<div class="Header">
<div class="WidgetAction Toggle">
<a href="#" title="[% Translate("Toggle this widget") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
</div>
<h2>[% Translate("Execute Ticket Commands") | html %]</h2>
</div>
<div class="Content">
<fieldset class="TableLike">
<label for="NewSendNoNotification">[% Translate("Send agent/customer notifications on changes") | html %]:</label>
<div class="Field">
[% Data.SendNoNotificationOption %]
</div>
<div class="Clear"></div>
[% IF Data.AllowCustomScriptExecution %]
<label for="NewCMD">[% Translate("CMD") | html %]:</label>
<div class="Field">
<input type="text" name="NewCMD" id="NewCMD" value="[% Data.NewCMD | html %]" size="40"/>
<p class="FieldExplanation">
([% Translate("This command will be executed. ARG[0] will be the ticket number. ARG[1] the ticket id.") | html %])
</p>
</div>
<div class="Clear"></div>
[% END %]
<label for="NewDelete">[% Translate("Delete tickets") | html %]:</label>
<div class="Field">
[% Data.DeleteOption %]
<p class="Error">
[% Translate("Warning: All affected tickets will be removed from the database and cannot be restored!") | html %]
</p>
</div>
<div class="Clear"></div>
</fieldset>
</div>
</div>
[% IF Data.AllowCustomModuleExecution %]
<div class="WidgetSimple SpacingTop Collapsed">
<div class="Header">
<div class="WidgetAction Toggle">
<a href="#" title="[% Translate("Toggle this widget") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
</div>
<h2>[% Translate("Execute Custom Module") | html %]</h2>
</div>
<div class="Content">
<fieldset class="TableLike">
<label for="NewModule">[% Translate("Module") | html %]:</label>
<div class="Field">
<input type="text" name="NewModule" id="NewModule" value="[% Data.NewModule | html %]" size="45"/>
</div>
<div class="Clear"></div>
<label for="NewParamKey1">[% Translate("Param %s key", "1") | html %]:</label>
<div class="Field">
<input type="text" name="NewParamKey1" id="NewParamKey1" value="[% Data.NewParamKey1 | html %]" class="W20pc"/>
<label for="NewParamValue1"> [% Translate("Param %s value", "1") | html %]:</label>
<input type="text" name="NewParamValue1" id="NewParamValue1" value="[% Data.NewParamValue1 | html %]" class="W20pc"/>
</div>
<div class="Clear"></div>
<label for="NewParamKey2">[% Translate("Param %s key", "2") | html %]:</label>
<div class="Field">
<input type="text" name="NewParamKey2" id="NewParamKey2" value="[% Data.NewParamKey2 | html %]" class="W20pc"/>
<label for="NewParamValue2"> [% Translate("Param %s value", "2") | html %]:</label>
<input type="text" name="NewParamValue2" id="NewParamValue2" value="[% Data.NewParamValue2 | html %]" class="W20pc"/>
</div>
<div class="Clear"></div>
<label for="NewParamKey3">[% Translate("Param %s key", "3") | html %]:</label>
<div class="Field">
<input type="text" name="NewParamKey3" id="NewParamKey3" value="[% Data.NewParamKey3 | html %]" class="W20pc"/>
<label for="NewParamValue3">[% Translate("Param %s value", "3") | html %]:</label>
<input type="text" name="NewParamValue3" id="NewParamValue3" value="[% Data.NewParamValue3 | html %]" class="W20pc"/>
</div>
<div class="Clear"></div>
<label for="NewParamKey4">[% Translate("Param %s key", "4") | html %]:</label>
<div class="Field">
<input type="text" name="NewParamKey4" id="NewParamKey4" value="[% Data.NewParamKey4 | html %]" class="W20pc"/>
<label for="NewParamValue4"> [% Translate("Param %s value", "4") | html %]:</label>
<input type="text" name="NewParamValue4" id="NewParamValue4" value="[% Data.NewParamValue4 | html %]" class="W20pc"/>
</div>
<div class="Clear"></div>
<label for="NewParamKey5">[% Translate("Param %s key", "5") | html %]:</label>
<div class="Field">
<input type="text" name="NewParamKey5" id="NewParamKey5" value="[% Data.NewParamKey5 | html %]" class="W20pc"/>
<label for="NewParamValue5"> [% Translate("Param %s value", "5") | html %]:</label>
<input type="text" name="NewParamValue5" id="NewParamValue5" value="[% Data.NewParamValue5 | html %]" class="W20pc"/>
</div>
<div class="Clear"></div>
<label for="NewParamKey6">[% Translate("Param %s key", "6") | html %]:</label>
<div class="Field">
<input type="text" name="NewParamKey6" id="NewParamKey6" value="[% Data.NewParamKey6 | html %]" class="W20pc"/>
<label for="NewParamValue6"> [% Translate("Param %s value", "6") | html %]:</label>
<input type="text" name="NewParamValue6" id="NewParamValue6" value="[% Data.NewParamValue6 | html %]" class="W20pc"/>
</div>
<div class="Clear"></div>
</fieldset>
</div>
</div>
[% END %]
<div class="WidgetSimple SpacingTop">
<div class="Header">
<h2>[% Translate("Save Changes") | html %]</h2>
</div>
<div class="Content">
<fieldset class="TableLike">
<div class="Field SpacingTop SaveButtons">
[% IF Data.Profile %]
<button class="CallForAction Primary" id="SubmitAndContinue" type="button" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
[% Translate("or") | html %]
<button class="CallForAction Primary" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save and finish") | html %]</span></button>
[% ELSE %]
<button class="CallForAction Primary" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
[% END %]
[% Translate("or") | html %]
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]"><span>[% Translate("Cancel") | html %]</span></a>
</div>
<div class="Clear"></div>
</fieldset>
</div>
</div>
</form>
[% RenderBlockEnd("Edit") %]
[% RenderBlockStart("Result") %]
<div class="WidgetSimple">
<div class="Header">
<h2>[% Translate("Results") | html %]</h2>
</div>
<div class="Content">
<p>
[% Translate("%s Tickets affected! What do you want to do?", Data.AffectedIDs) | html %]
</p>
[% RenderBlockStart("DeleteWarning") %]
<p class="Error">
[% Translate("Warning: You used the DELETE option. All deleted tickets will be lost!") | html %]
</p>
[% RenderBlockEnd("DeleteWarning") %]
[% RenderBlockStart("RunLimit") %]
<p class="Error">
[% Translate("Warning: There are %s tickets affected but only %s may be modified during one job execution!", Data.Counter, Data.RunLimit) | html %]
</p>
[% RenderBlockEnd("RunLimit") %]
<div class="SpacingTop">
<a class="CallForAction" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Update;Profile=[% Data.Name | uri %]">
<span>[% Translate("Edit Job") | html %]</span>
</a>
<a class="CallForAction" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=RunNow;Profile=[% Data.Name | uri %];[% Env("ChallengeTokenParam") | html %]">
<span>[% Translate("Run Job") | html %]</span>
</a>
[% Translate("or") | html %]
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">
[% Translate("Cancel") | html %]
</a>
</div>
</div>
</div>
[% RenderBlockStart("ResultBlock") %]
<div class="WidgetSimple SpacingTop">
<div class="Header">
<h2>[% Translate("Affected Tickets") | html %]</h2>
</div>
<div class="Content">
<table class="DataTable">
<thead>
<tr>
<th>[% Config("Ticket::Hook") %]</th>
<th>[% Translate("Age") | html %]</th>
<th>[% Translate("From") | html %] / [% Translate("Subject") | html %]</th>
<th>[% Translate("State") | html %]</th>
<th>[% Translate("Queue") | html %]</th>
<th>[% Translate("Owner") | html %]</th>
<th>[% Translate("Customer ID") | html %]</th>
</tr>
</thead>
<tbody>
[% RenderBlockStart("Ticket") %]
<tr>
<td>
<a class="AsBlock" href="[% Env("Baselink") %];Action=AgentTicketZoom;TicketID=[% Data.TicketID | uri %]">
[% Data.TicketNumber | html %]
</a>
</td>
<td>[% Data.Age | html %]</td>
<td>[% Data.From | truncate(30) | html %][% Data.Subject | truncate(30) | html %]</td>
<td>[% Translate(Data.State) | html %]</td>
<td>[% Data.Queue | truncate(30) | html %]</td>
<td>[% Data.Owner | truncate(30) | html %] ([% Data.UserFullname | html %])</td>
<td>
<a class="AsBlock" href="[% Env("Baselink") %]Action=AgentTicketCustomer;TicketID=[% Data.TicketID | uri %]">
[% Data.CustomerID | truncate(15) | html %]
</a>
</td>
</tr>
[% RenderBlockEnd("Ticket") %]
</tbody>
</table>
</div>
</div>
[% RenderBlockEnd("ResultBlock") %]
[% RenderBlockEnd("Result") %]
</div>
<div class="Clear"></div>
</div>