init III
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
# Common
|
||||
[% Translate("Functionality") | html %]
|
||||
138
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminACL.tt
Normal file
138
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminACL.tt
Normal file
@@ -0,0 +1,138 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("ACL Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('ACL Management'),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ACLNew" class="CallForAction Fullsize Center Create"><span><i class="fa fa-plus-square"></i>[% Translate("Create New ACL") | html %]</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ACLDeploy" class="CallForAction Fullsize Center"><span><i class="fa fa-rocket"></i>[% Translate("Deploy ACLs") | html %]</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ACLExport" class="CallForAction Fullsize Center"><span><i class="fa fa-download"></i>[% Translate("Export ACLs") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterACLs">[% Translate("Filter for ACLs") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterACLs" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterACLs" value="" title="[% Translate("Filter for ACLs") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Configuration Import") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can upload a configuration file to import ACLs to your system. The file needs to be in .yml format as exported by the ACL editor module.") | html %]
|
||||
</p>
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="ACLImport"/>
|
||||
<input type="hidden" name="FormID" value="[% Data.FormID | html %]"/>
|
||||
<input name="FileUpload" id="FileUpload" type="file" size="18" class="Fixed W100pc Validate_Required [% Data.FileUploadInvalid | html %]"/>
|
||||
<div id="FileUploadError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="FileUploadServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<fieldset class="Separated">
|
||||
<input type="checkbox" id="OverwriteExistingEntities" name="OverwriteExistingEntities" value="1" />
|
||||
<label for="OverwriteExistingEntities">[% Translate("Overwrite existing ACLs?") | html %]</label>
|
||||
</fieldset>
|
||||
<button class="CallForAction Fullsize Center" type="submit" value="[% Translate("Upload ACL configuration") | html %]">
|
||||
<span><i class="fa fa-upload"></i>[% Translate("Import ACL configuration(s)") | html %]</span>
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Description") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("To create a new ACL you can either import ACLs which were exported from another system or create a complete new one.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Changes to the ACLs here only affect the behavior of the system, if you deploy the ACL data afterwards. By deploying the ACL data, the newly made changes will be written to the configuration.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("ACLs") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="ACLNote">[% Translate("Please note: This table represents the execution order of the ACLs. If you need to change the order in which ACLs are executed, please change the names of the affected ACLs.") | html %]</p>
|
||||
<table class="DataTable" id="ACLs">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("ACL name") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th class="Center W10pc">[% Translate("Export") | html %]</th>
|
||||
<th class="Center W10pc">[% Translate("Copy") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("ACLRow") %]
|
||||
<tr [% IF Data.ValidID != "valid"%]class="Invalid"[% END %]>
|
||||
<td><a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ACLEdit;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a></td>
|
||||
<td>[% Data.Comment | html %]</td>
|
||||
<td>[% Translate(Data.ValidID) | html %]</td>
|
||||
<td class="Center"><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ACLExport;ID=[% Data.ID | uri %];[% Env("ChallengeTokenParam") | html %]"><i class="fa fa-download"></i><span class="InvisibleText">[% Translate("Export") | html %]</span></a></td>
|
||||
<td class="Center"><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ACLCopy;ID=[% Data.ID | uri %];[% Env("ChallengeTokenParam") | html %]"><i class="fa fa-copy"></i><span class="InvisibleText">[% Translate("Copy") | html %]</span></a></td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("ACLRow") %]
|
||||
[% RenderBlockStart("ACLNoDataRow") %]
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("ACLNoDataRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="5">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
264
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminACLEdit.tt
Normal file
264
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminACLEdit.tt
Normal file
@@ -0,0 +1,264 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Edit ACL %s", Data.Name) | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('ACL Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% USE EditTitle = String(Translate("Edit ACL")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Name ) }) %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Center Fullsize Back"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockStart("ACLDeleteAction") %]
|
||||
<li>
|
||||
<a href="#" id="ACLDelete" class="CallForAction Trash Center Fullsize" data-dialog-element="DeleteACLConfirmationDialog" data-dialog-title="[% Translate("Delete ACL") | html %]" data-id="[% Data.ID | html %]"><span><i class="fa fa-trash-o"></i>[% Translate("Delete Invalid ACL") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ACLDeleteAction") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Description") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
<strong>[% Translate("Match settings") | html %]</strong>: [% Translate("Set up matching criteria for this ACL. Use 'Properties' to match the current screen or 'PropertiesDatabase' to match attributes of the current ticket that are in the database.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
<strong>[% Translate("Change settings") | html %]</strong>: [% Translate("Set up what you want to change if the criteria match. Keep in mind that 'Possible' is a white list, 'PossibleNot' a black list.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Check the official %sdocumentation%s.") | html | ReplacePlaceholders('<a href="https://doc.otrs.com/doc/manual/admin/6.0/en/html/customization.html#acl" target="_blank">', '</a>') %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" id="ACLForm" class="Validate PreventMultipleSubmits">
|
||||
<div class="WidgetSimple Expanded">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("Edit ACL Information") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="ACLEditAction"/>
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
<input type="hidden" name="ConfigMatch" value="[% Data.ConfigMatch | html %]"/>
|
||||
<input type="hidden" name="ConfigChange" value="[% Data.ConfigChange | html %]"/>
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameServerError | html %]" maxlength="70"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc [% Data.CommentServerError | html %]" maxlength="70"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Description">[% Translate("Description") | html %]:</label>
|
||||
<div class="Field">
|
||||
<textarea name="Description" id="Description" class="W50pc [% Data.DescriptionServerError | html %]" rows="5" maxlength="200">[% Data.Description | html %]</textarea>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="StopAfterMatch">[% Translate("Stop after match") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="StopAfterMatch" id="StopAfterMatch" value="1" [% Data.Checked %] />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOption %]
|
||||
<div id="ValidIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header Expanded">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("Edit ACL Structure") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike ACLStructure">
|
||||
<div class="ACLFields">
|
||||
<h4>[% Translate("Match settings") | html %]</h4>
|
||||
<ul class="ACLFieldGroup" id="ACLMatch"></ul>
|
||||
[% Data.ACLKeysLevel1Match %]
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset class="TableLike ACLStructure">
|
||||
<div class="ACLFields">
|
||||
<h4>[% Translate("Change settings") | html %]</h4>
|
||||
<ul class="ACLFieldGroup" id="ACLChange"></ul>
|
||||
[% Data.ACLKeysLevel1Change %]
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<ul class="Hidden" id="TemplateLevel1">
|
||||
<li class="DataItem">
|
||||
<span class="Trigger Collapse">
|
||||
<i class="fa fa-caret-down"></i>
|
||||
<i class="fa fa-caret-right"></i>
|
||||
</span>
|
||||
<span class="Icon RemoveButton"><i class="fa fa-minus-square-o"></i></span>
|
||||
<strong></strong>
|
||||
<ul>
|
||||
<li class="Even Last">
|
||||
<span class="Icon AddButton"><i class="fa fa-plus-square-o"></i></span>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="Hidden" id="TemplateLevel2">
|
||||
<li class="DataItem">
|
||||
<span class="Trigger Collapse">
|
||||
<i class="fa fa-caret-down"></i>
|
||||
<i class="fa fa-caret-right"></i>
|
||||
</span>
|
||||
<span class="Icon RemoveButton"><i class="fa fa-minus-square-o"></i></span>
|
||||
<strong></strong>
|
||||
<ul>
|
||||
<li>
|
||||
<span class="Icon AddButton NoMargin"><i class="fa fa-plus-square-o"></i></span>
|
||||
<input type="text" class="NewDataKey" data-level="3" />
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="Hidden" id="TemplateLevel2Last">
|
||||
<li class="DataItem">
|
||||
<span class="Trigger Collapse">
|
||||
<i class="fa fa-caret-down"></i>
|
||||
<i class="fa fa-caret-right"></i>
|
||||
</span>
|
||||
<span class="Icon RemoveButton"><i class="fa fa-minus-square-o"></i></span>
|
||||
<strong></strong>
|
||||
<ul class="LastLevel">
|
||||
<li>
|
||||
[% Data.ACLKeysLevel4Prefixes %]
|
||||
<span class="Icon AddButton AddDataItem"><i class="fa fa-plus-square-o"></i></span>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="Hidden" id="TemplateLevel3">
|
||||
<li class="DataItem Editable">
|
||||
<span class="Icon RemoveButton"><i class="fa fa-minus-square-o"></i></span>
|
||||
<ul>
|
||||
<li>
|
||||
[% Data.ACLKeysLevel4Prefixes %]
|
||||
<span class="Icon AddButton AddDataItem"><i class="fa fa-plus-square-o"></i></span>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="Hidden" id="TemplateLevel4">
|
||||
<li class="DataItem Editable"><em>x</em></li>
|
||||
</ul>
|
||||
|
||||
<div class="Hidden">
|
||||
[% Data.ACLKeysLevel2Possible %]
|
||||
</div>
|
||||
<div class="Hidden">
|
||||
[% Data.ACLKeysLevel2PossibleAdd %]
|
||||
</div>
|
||||
<div class="Hidden">
|
||||
[% Data.ACLKeysLevel2PossibleNot %]
|
||||
</div>
|
||||
<div class="Hidden">
|
||||
[% Data.ACLKeysLevel2Properties %]
|
||||
</div>
|
||||
<div class="Hidden">
|
||||
[% Data.ACLKeysLevel2PropertiesDatabase %]
|
||||
</div>
|
||||
<div class="Hidden">
|
||||
[% Data.ACLKeysLevel3DynamicFields %]
|
||||
</div>
|
||||
<div class="Hidden">
|
||||
[% Data.ACLKeysLevel3Actions %]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple ScreenXL">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Save ACL") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
<div class="Field SpacingTop SaveButtons">
|
||||
<button class="Primary CallForAction" id="SubmitAndContinue" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<button class="Primary CallForAction" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save and finish") | html %]</span></button>
|
||||
[% 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>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
<div id="Dialogs" class="Hidden">
|
||||
<div id="DeleteACLConfirmationDialog">
|
||||
<p>[% Translate("Do you really want to delete this ACL?") | html %]</p>
|
||||
<p class="SpacingTop"><strong>[% Data.Name | html %]</strong></p>
|
||||
</div>
|
||||
</div>
|
||||
116
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminACLNew.tt
Normal file
116
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminACLNew.tt
Normal file
@@ -0,0 +1,116 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Create New ACL") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('ACL Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
{
|
||||
Name => Translate("Create New ACL"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center Back"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Description") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Create a new ACL by submitting the form data. After creating the ACL, you will be able to add configuration items in edit mode.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Create New ACL") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="ACLNewAction"/>
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameServerError | html %]" maxlength="70"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc [% Data.CommentServerError | html %]" maxlength="70"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Description">[% Translate("Description") | html %]:</label>
|
||||
<div class="Field">
|
||||
<textarea name="Description" id="Description" class="W50pc [% Data.DescriptionServerError | html %]" rows="5" maxlength="200">[% Data.Description | html %]</textarea>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="StopAfterMatch">[% Translate("Stop after match") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="StopAfterMatch" id="StopAfterMatch" value="1" [% Data.Checked %] />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOption %]
|
||||
<div id="ValidIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Primary CallForAction" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]"><span>[% Translate("Cancel") | html %]</span></a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,410 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
|
||||
<h1 class="InvisibleText">[% Translate("Calendar Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Calendar Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'New' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add Calendar"),}) %]
|
||||
[% CASE 'Update' %]
|
||||
[% USE EditTitle = String(Translate("Edit Calendar")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Name ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<ul class="ActionList">
|
||||
[% IF Env("Subaction") == "Overview" %]
|
||||
[% IF Data.ModulePermissions.AgentAppointmentCalendarOverview %]
|
||||
<li>
|
||||
<a id="Back" href="[% Env("Baselink") %]Action=AgentAppointmentCalendarOverview" class="CallForAction Fullsize Center" title="[% Translate("Go to overview") | html %]">
|
||||
<span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% END %]
|
||||
[% ELSIF Env("Subaction") != "" %]
|
||||
<li>
|
||||
<a id="Back" href="[% Env("Baselink") %]Action=AdminAppointmentCalendarManage" class="CallForAction Fullsize Center" title="[% Translate("Go to overview") | html %]">
|
||||
<span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% ELSE %]
|
||||
[% IF Data.ModulePermissions.AgentAppointmentCalendarOverview %]
|
||||
<li>
|
||||
<a id="Overview" href="[% Env("Baselink") %]Action=AgentAppointmentCalendarOverview" class="CallForAction Fullsize Center" title="[% Translate("Calendar Overview") | html %]">
|
||||
<span><i class="fa fa-calendar"></i>[% Translate("Calendar Overview") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% END %]
|
||||
[% END %]
|
||||
[% RenderBlockStart("MainActions") %]
|
||||
<li>
|
||||
<a id="Add" href="[% Env("Baselink") %]Action=AdminAppointmentCalendarManage;Subaction=New" class="CallForAction Fullsize Center" title="[% Translate("Add new Calendar") | html %]">
|
||||
<span><i class="fa fa-plus-square"></i>[% Translate("Add Calendar") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% IF Data.ModulePermissions.AdminAppointmentImport %]
|
||||
<li>
|
||||
[% IF Data.ValidCount %]
|
||||
<a id="ImportAppointments" href="[% Env("Baselink") %]Action=AdminAppointmentImport" class="CallForAction Fullsize Center" title="[% Translate("Import Appointments") | html %]">
|
||||
[% ELSE %]
|
||||
<a id="ImportAppointments" class="CallForAction Fullsize Center Disabled" title="[% Translate("Import Appointments") | html %]">
|
||||
[% END %]
|
||||
<span><i class="fa fa-upload"></i>[% Translate("Import Appointments") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% END %]
|
||||
[% RenderBlockEnd("MainActions") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockStart("ActionImport") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Calendar Import") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can upload a configuration file to import a calendar to your system. The file needs to be in .yml format as exported by calendar management module.") | html %]
|
||||
</p>
|
||||
<ul class="ActionList SpacingTop">
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="CalendarImport"/>
|
||||
<input type="hidden" name="FormID" value="[% Data.FormID | html %]"/>
|
||||
<input name="FileUpload" id="FileUpload" type="file" size="18" class="Fixed W100pc Validate_Required [% Data.FileUploadInvalid | html %]"/>
|
||||
<div id="FileUploadError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="FileUploadServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<fieldset class="SpacingTop">
|
||||
<input type="checkbox" id="OverwriteExistingEntitiesImport" name="OverwriteExistingEntities" value="1" checked="checked" />
|
||||
<label for="OverwriteExistingEntitiesImport">[% Translate("Overwrite existing entities") | html %]</label>
|
||||
</fieldset>
|
||||
<button class="CallForAction Fullsize Center SpacingTop" type="submit" value="[% Translate("Upload calendar configuration") | html %]">
|
||||
<span><i class="fa fa-upload"></i>[% Translate("Import Calendar") | html %]</span>
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionImport") %]
|
||||
[% RenderBlockStart("CalendarFilter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterCalendars">[% Translate("Filter for Calendars") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterCalendars" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterCalendars" value="" title="[% Translate("Filter for calendars") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("CalendarFilter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Description") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Depending on the group field, the system will allow users the access to the calendar according to their permission level.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Read only: users can see and export all appointments in the calendar.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Move into: users can modify appointments in the calendar, but without changing the calendar selection.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Create: users can create and delete appointments in the calendar.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Read/write: users can manage the calendar itself.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate(Data.Title) | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="Calendars">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Group") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
<th class="Center W10pc">[% Translate("Export") | html %]</th>
|
||||
<th class="Center W10pc">[% Translate("Download") | html %]</th>
|
||||
<th class="Center W10pc">[% Translate("URL") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("Calendar") %]
|
||||
<tr class="CalendarMasterAction [% IF Data.ValidID != 1 %]Invalid[% END %]">
|
||||
<td class="Flags Center">
|
||||
<div class="Flag Small" title="[% Data.CalendarName | html %]">
|
||||
<span class="CalendarColor" style="background-color: [% Data.Color | html %];"></span>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<a href="[% Env("Baselink") %]Action=AdminAppointmentCalendarManage;Subaction=Edit;CalendarID=[% Data.CalendarID | uri %]" class="CalendarMasterActionLink">
|
||||
[% Data.CalendarName | html %]
|
||||
</a>
|
||||
</td>
|
||||
<td>[% Data.Group | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | html %]</td>
|
||||
<td>[% Data.CreateTime | html %]</td>
|
||||
<td class="Center">
|
||||
<a class="ExportLink" href="[% Env("Baselink") %]Action=AdminAppointmentCalendarManage;Subaction=CalendarExport;CalendarID=[% Data.CalendarID | uri %]" title="[% Translate("Export calendar") | html %]">
|
||||
<i class="fa fa-download"></i>
|
||||
<span class="InvisibleText">[% Translate("Export calendar") | html %]</span>
|
||||
</a>
|
||||
</td>
|
||||
<td class="Center">
|
||||
# Use ampersands (&) instead of semicolons (;) for URL parameter delimiter. This has better compatibility with different
|
||||
# calendar implementations and will prevent them from re-encoding the query string and essentially strip the data.
|
||||
# Please see bug#12667 for more information.
|
||||
<a class="DownloadLink" href="[% Config("HttpType") %]://[% Config("FQDN") %]/[% Config("ScriptAlias") %]public.pl?Action=PublicCalendar&CalendarID=[% Data.CalendarID | uri %]&User=[% Env("UserLogin") | uri %]&Token=[% Data.AccessToken | uri %]" title="[% Translate("Download calendar") | html %]">
|
||||
<i class="fa fa-cloud-download"></i>
|
||||
<span class="InvisibleText">[% Translate("Download calendar") | html %]</span>
|
||||
</a>
|
||||
</td>
|
||||
<td class="Center">
|
||||
<button class="InlineButton CopyToClipboard" data-clipboard-text="[% Config("HttpType") %]://[% Config("FQDN") %]/[% Config("ScriptAlias") %]public.pl?Action=PublicCalendar&CalendarID=[% Data.CalendarID | uri %]&User=[% Env("UserLogin") | uri %]&Token=[% Data.AccessToken | uri %]" title="[% Translate("Copy public calendar URL") | html %]">
|
||||
<i class="fa fa-clipboard"></i>
|
||||
<span class="InvisibleText">[% Translate("Copy public calendar URL") | html %]</span>
|
||||
</button>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("Calendar") %]
|
||||
[% RenderBlockStart("CalendarNoDataRow") %]
|
||||
<tr>
|
||||
<td colspan="9">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("CalendarNoDataRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="9" style="background-color: #fff !important;">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
[% RenderBlockStart("CalendarEdit") %]
|
||||
<form action="[% Env("CGIHandle") %]" method="post" name="CalendarFrom" id="CalendarFrom" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]" />
|
||||
<input type="hidden" name="Subaction" value="[% Data.Subaction | html %]"/>
|
||||
<input type="hidden" name="CalendarID" value="[% Data.CalendarID | html %]"/>
|
||||
[% IF Data.Subaction == 'Update' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate(Data.Title) | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
<legend><span>[% Translate("Calendar") | html %]</span></legend>
|
||||
<label for="CalendarName" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Calendar name") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" id="CalendarName" name="CalendarName" value="[% Data.CalendarName | html %]"
|
||||
class="Validate_Required W50pc [% Data.CalendarNameInvalid | html %]" />
|
||||
<div id="CalendarNameError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
[% IF Data.CalendarNameExists %]
|
||||
<div id="CalendarNameServerError" class="TooltipErrorMessage"><p>[% Translate("Calendar with same name already exists.") | html %]</p></div>
|
||||
[% ELSE %]
|
||||
<div id="CalendarNameServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Color" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Color") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" id="Color" name="Color" value="[% Data.Color | html %]" class="Validate_Required W50pc" />
|
||||
<div id="ColorError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="GroupID" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Permission group") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.GroupID %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ValidID" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Validity") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidID %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple [% Data.WidgetStatus | html %]">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("Ticket Appointments") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% RenderBlockStart("TicketAppointmentRule") %]
|
||||
<fieldset id="Rule_[% Data.RuleID | html %]" class="TableLike SpacingTop">
|
||||
<legend>
|
||||
<span>
|
||||
[% Translate("Rule") | html %] <span class="RuleNumber">[% Data.RuleNumber | html %]</span>
|
||||
<a class="RemoveButton" title="[% Translate("Remove this entry") | html %]" href="#">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Remove") | html %]</span>
|
||||
</a>
|
||||
</span>
|
||||
</legend>
|
||||
<label for="StartDate_[% Data.RuleID | html %]">
|
||||
[% Translate("Start date") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.StartDateStrg %]
|
||||
</div>
|
||||
<label for="EndDate_[% Data.RuleID | html %]">
|
||||
[% Translate("End date") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.EndDateStrg %]
|
||||
</div>
|
||||
<div class="Field SpacingTop">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Use options below to narrow down for which tickets appointments will be automatically created.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<label for="QueueID_[% Data.RuleID | html %]" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Queues") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.QueueIDStrg %]
|
||||
<div id="QueueID_[% Data.RuleID | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="QueueID_[% Data.RuleID | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate("Please select a valid queue.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label for="SearchParams_[% Data.RuleID | html %]">
|
||||
[% Translate("Search attributes") | html %]:
|
||||
</label>
|
||||
<div class="Field SearchParamsContainer">
|
||||
[% Data.SearchParamsStrg %]
|
||||
<a class="AddButton" title="[% Translate("Add entry") | html %]" href="#">
|
||||
<i class="fa fa-plus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Add") | html %]</span>
|
||||
</a>
|
||||
[% RenderBlockStart("TicketAppointmentRuleSearchParam") %]
|
||||
<div class="Field SpacingTopSmall">
|
||||
<label for="SearchParam_[% Data.RuleID | html %]_[% Data.ParamName | html %]" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate(Config("AppointmentCalendar::TicketAppointmentSearchParam").${Data.ParamName}) | html %]:
|
||||
</label>
|
||||
[% IF Data.ParamStrg %]
|
||||
[% Data.ParamStrg %]
|
||||
[% ELSE %]
|
||||
<input id="SearchParam_[% Data.RuleID | html %]_[% Data.ParamName | html %]" name="SearchParam_[% Data.RuleID | html %]_[% Data.ParamName | html %]" data-param="[% Data.ParamName | html %]" type="text" class="SearchParam Validate_Required W25pc" value="[% Data.ParamValue | html %]"/>
|
||||
[% END %]
|
||||
<div id="SearchParam_[% Data.RuleID | html %]_[% Data.ParamName | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<a class="RemoveButton" title="[% Translate("Remove this entry") | html %]" href="#">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Remove") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("TicketAppointmentRuleSearchParam") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
[% RenderBlockEnd("TicketAppointmentRule") %]
|
||||
<fieldset class="TableLike SpacingTop">
|
||||
<div class="Field">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Define rules for creating automatic appointments in this calendar based on ticket data.") | html %]
|
||||
</p>
|
||||
<a id="AddRuleButton" class="CallForAction" title="[% Translate("Add entry") | html %]" href="#">
|
||||
<span>
|
||||
<i class="fa fa-plus-square"></i>
|
||||
[% Translate("Add Rule") | html %]
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Submit") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike ">
|
||||
<div class="Field">
|
||||
[% IF Data.Subaction == 'Update' %]
|
||||
<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=AdminAppointmentCalendarManage" title="[% Translate("Cancel") | html %]">
|
||||
<span>[% Translate("Cancel") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
[% RenderBlockEnd("CalendarEdit") %]
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,106 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
|
||||
<h1 class="InvisibleText">[% Translate("Appointment Import") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Calendar Management'),
|
||||
Link => 'AdminAppointmentCalendarManage',
|
||||
},
|
||||
{
|
||||
Name => Translate('Import Appointments'),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% IF Data.ModulePermissions.AdminAppointmentCalendarManage %]
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a id="Back" href="[% Env("Baselink") %]Action=AdminAppointmentCalendarManage" class="CallForAction Fullsize Center" title="[% Translate("Go back") | html %]">
|
||||
<span><i class="fa fa-caret-left"></i>[% Translate("Go back") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
[% END %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Description") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Uploaded file must be in valid iCal format (.ics).") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If desired Calendar is not listed here, please make sure that you have at least 'create' permissions.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Import Appointments") | html %]</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Import"/>
|
||||
<input type="hidden" name="FormID" value="[% Data.FormID | html %]"/>
|
||||
<fieldset class="TableLike">
|
||||
<label for="FileUpload" class="Mandatory"><span class="Marker">*</span>[% Translate("Upload") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input name="FileUpload" id="FileUpload" type="file" size="18" class="Fixed W100pc Validate_Required [% Data.FileUploadInvalid | html %]"/>
|
||||
<div id="FileUploadError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="FileUploadServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
|
||||
<label for="CalendarID" class="Mandatory"><span class="Marker">*</span>[% Translate("Calendar") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.Calendar %]
|
||||
<div id="CalendarIDError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="CalendarIDServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
|
||||
<label for="UpdateExistingAppointments">[% Translate("Update existing appointments?") | html %]</label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" value="1" name="UpdateExistingAppointments" id="UpdateExistingAppointments">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("All existing appointments in the calendar with same UniqueID will be overwritten.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Primary CallForAction" type="submit" value="[% Translate("Upload calendar") | html %]">
|
||||
<span>[% Translate("Import appointments") | html %]</span>
|
||||
</button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=AdminAppointmentCalendarManage" title="[% Translate("Cancel") | html %]">
|
||||
<span>[% Translate("Cancel") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,672 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
## nofilter(TidyAll::Plugin::OTRS::TT::ScriptUsage)
|
||||
|
||||
[% SET OTRSBusinessLabel = '<strong>OTRS Business Solution</strong>™' %]
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Appointment Notification Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Appointment Notification Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add Notification"),}) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit Notification")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Name ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Add" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add Notification") | html %]</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=NotificationExport" class="CallForAction Fullsize Center"><span><i class="fa fa-download"></i>[% Translate("Export Notifications") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterNotifications">[% Translate("Filter for Notifications") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterNotifications" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterNotifications" value="" title="[% Translate("Filter for notifications") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
|
||||
[% RenderBlockStart("ActionImport") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Configuration Import") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can upload a configuration file to import appointment notifications to your system. The file needs to be in .yml format as exported by the appointment notification module.") | html %]
|
||||
</p>
|
||||
<ul class="ActionList SpacingTop">
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="NotificationImport"/>
|
||||
<input type="hidden" name="FormID" value="[% Data.FormID | html %]"/>
|
||||
<input name="FileUpload" id="FileUpload" type="file" size="18" class="Fixed W100pc Validate_Required [% Data.FileUploadInvalid | html %]"/>
|
||||
<div id="FileUploadError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="FileUploadServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<fieldset class="Separated">
|
||||
<input type="checkbox" id="OverwriteExistingNotifications" name="OverwriteExistingNotifications" value="1" />
|
||||
<label for="OverwriteExistingNotifications">[% Translate("Overwrite existing notifications?") | html %]</label>
|
||||
</fieldset>
|
||||
|
||||
<button class="CallForAction Fullsize Center" type="submit" value="[% Translate("Upload Notification configuration") | html %]">
|
||||
<span><i class="fa fa-upload"></i>[% Translate("Import Notification configuration") | html %]</span>
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionImport") %]
|
||||
</div>
|
||||
|
||||
|
||||
<div class="ContentColumn">
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="Notifications">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="W20pc">[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
<th class="Center W10pc">[% Translate("Export") | html %]</th>
|
||||
<th class="Center W10pc">[% Translate("Copy") | html %]</th>
|
||||
<th class="Center W10pc">[% Translate("Delete") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr [% IF Data.ValidID != 1%]class="Invalid"[% END %]>
|
||||
<td><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Change;ID=[% Data.ID | uri %]">[% Translate(Data.Name) | html %]</a></td>
|
||||
<td title="[% Data.Comment | html %]">[% Data.Comment | truncate(26) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
<td class="Center"><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=NotificationExport;ID=[% Data.ID | uri %];[% Env("ChallengeTokenParam") | html %]"><i class="fa fa-download"></i><span class="InvisibleText">[% Translate("Export") | html %]</span></a></td>
|
||||
<td class="Center"><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=NotificationCopy;ID=[% Data.ID | uri %];[% Env("ChallengeTokenParam") | html %]"><i class="fa fa-copy"></i><span class="InvisibleText">[% Translate("Copy") | html %]</span></a></td>
|
||||
<td class="Center">
|
||||
<a class="TrashCan NotificationDelete" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Delete;ID=[% Data.ID | uri %];[% Env("ChallengeTokenParam") | html %]" title="[% Translate("Delete this notification") | html %]">
|
||||
<i class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="8">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
|
||||
[% RenderBlockStart("OverviewUpdate") %]
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits" name="compose" id="NotificationEvent">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
[% IF Data.Action == 'Add' %]
|
||||
<h2>[% Translate("Add Notification") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit Notification") | html %]</h2>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | uri %]Action"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label for="Name" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Name") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameServerError %]" maxlength="200"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="250"/>
|
||||
</div>
|
||||
|
||||
<label for="VisibleForAgent">[% Translate("Show in agent preferences") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.VisibleForAgentStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="VisibleForAgentTooltip">[% Translate("Agent preferences tooltip") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="VisibleForAgentTooltip" id="VisibleForAgentTooltip" class="W50pc" value="[% Data.VisibleForAgentTooltip | html %]" [% Data.VisibleForAgentTooltipReadonly %]/>
|
||||
<p class="FieldExplanation">[% Translate("This message will be shown on the agent preferences screen as a tooltip for this notification.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ValidID">[% Translate("Validity") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOption %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<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("Events") | html %]</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label for="Events" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Event") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.EventsStrg %]
|
||||
<div id="EventsError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="EventsServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<p class="FieldExplanation">[% Translate("Here you can choose which events will trigger this notification. An additional appointment filter can be applied below to only send for appointments with certain criteria.") | 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("Appointment Filter") | html %]</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
[% RenderBlockStart("OverviewUpdateType") %]
|
||||
<label for="TypeID">[% Translate("Type") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.TypesStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("OverviewUpdateType") %]
|
||||
<label for="CalendarID">[% Translate("Calendar") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.CalendarStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Title">[% Translate("Title") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Title" id="Title" class="W75pc" value="[% Data.Title | html %]"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Location">[% Translate("Location") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Location" id="Location" class="W75pc" value="[% Data.Location | html %]"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("OverviewUpdateTeam") %]
|
||||
<label for="TeamID">[% Translate("Team") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.TeamStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("OverviewUpdateTeam") %]
|
||||
|
||||
<label for="ResourceID">[% Translate("Resource") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.ResourceStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<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("Recipients") | html %]</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label for="Recipients">[% Translate("Send to") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.RecipientsStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="RecipientAgents">[% Translate("Send to these agents") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.RecipientAgentsStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="RecipientGroups">[% Translate("Send to all group members (agents only)") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.RecipientGroupsStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="RecipientRoles">[% Translate("Send to all role members") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.RecipientRolesStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SendOnOutOfOffice">[% Translate("Send on out of office") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="SendOnOutOfOffice" id="SendOnOutOfOffice" value="1" [% Data.SendOnOutOfOfficeChecked %] />
|
||||
[% Translate("Also send if the user is currently out of office.") | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="OncePerDay">[% Translate("Once per day") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="OncePerDay" id="OncePerDay" value="1" [% Data.OncePerDayChecked %] />
|
||||
[% Translate("Notify user just once per day about a single appointment using a selected transport.") | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<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("Notification Methods") | html %]</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content TransportsContent">
|
||||
<fieldset class="TableLike">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("These are the possible methods that can be used to send this notification to each of the recipients. Please select at least one method below.") | html %]
|
||||
</p>
|
||||
</fieldset>
|
||||
[% RenderBlockStart("TransportRow") %]
|
||||
<fieldset class="TableLike FixedLabel SpacingTop">
|
||||
<legend><span>[% Translate(Data.TransportName) | html %]</span></legend>
|
||||
[% RenderBlockStart("TransportRowEnabled") %]
|
||||
<label for="Transport[% Data.Transport | html %]">
|
||||
[% Translate("Enable this notification method") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="Transports" id="Transport[% Data.Transport | html %]" value="[% Data.Transport | html %]" class="Validate_OneChecked [% Data.TransportsServerError | html %]" title="[% Translate("Transport") | html %]: [% Translate(Data.Transport) | html %]" [% Data.TransportChecked %] />
|
||||
<div id="Transport[% Data.Transport | html %]Error" class="TooltipErrorMessage">
|
||||
<p>[% Translate("At least one method is needed per notification.") | html %]</p>
|
||||
</div>
|
||||
<div id="Transport[% Data.Transport | html %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("At least one method is needed per notification.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="AgentEnabledByDefault[% Data.Transport | html %]" class="AgentEnabledByDefault">
|
||||
[% Translate("Active by default in agent preferences") | html %]:
|
||||
</label>
|
||||
<div class="Field AgentEnabledByDefault">
|
||||
<input type="checkbox" name="AgentEnabledByDefault" id="AgentEnabledByDefault[% Data.Transport | html %]" value="[% Data.Transport | html %]" title="" [% Data.AgentEnabledByDefaultChecked %] />
|
||||
<p class="FieldExplanation">[% Translate("This is the default value for assigned recipient agents who didn't make a choice for this notification in their preferences yet. If the box is enabled, the notification will be sent to such agents.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% Data.SettingsString %]
|
||||
[% RenderBlockEnd("TransportRowEnabled") %]
|
||||
[% RenderBlockStart("TransportRowDisabled") %]
|
||||
<div class="Field">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This feature is currently not available.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
[% RenderBlockEnd("TransportRowDisabled") %]
|
||||
[% RenderBlockStart("TransportRowRecommendation") %]
|
||||
<div class="Field Info">
|
||||
<a href="[% Env("Baselink") %]Action=AdminOTRSBusiness" class="Button"><i class="fa fa-angle-double-up"></i> [% Translate("Upgrade to %s") | html | ReplacePlaceholders(OTRSBusinessLabel) %]</a>
|
||||
</div>
|
||||
[% RenderBlockEnd("TransportRowRecommendation") %]
|
||||
[% RenderBlockStart("TransportRowNotActive") %]
|
||||
<div class="Field Info">
|
||||
<a href="[% Env("Baselink") %]Action=AdminCloudServices" class="Button"><i class="fa fa-angle-double-up"></i> [% Translate("Please activate this transport in order to use it.") | html %]</a>
|
||||
</div>
|
||||
[% RenderBlockEnd("TransportRowNotActive") %]
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
[% RenderBlockEnd("TransportRow") %]
|
||||
[% RenderBlockStart("NoDataFoundMsgTransport") %]
|
||||
<fieldset class="TableLike SpacingTop">
|
||||
<legend><span>[% Translate("No data found") | html %]</span></legend>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("No notification method found.") | html %]
|
||||
</p>
|
||||
</fieldset>
|
||||
[% RenderBlockEnd("NoDataFoundMsgTransport") %]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<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("Notification Text") | html %]</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
<div class ="NotificationLanguageContainer">
|
||||
|
||||
[% RenderBlockStart("NotificationLanguage") %]
|
||||
<div class="NotificationLanguage">
|
||||
<div class="WidgetSimple SpacingTop [% IF !Data.Language %] Collapsed [% END %] ">
|
||||
<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 class="Title">
|
||||
[% IF Data.Language %]
|
||||
[% Translate(Data.Language) | html %]
|
||||
[% ELSE %]
|
||||
<span class="Warning">'[% Data.LanguageID | html %]' — [% Translate("This language is not present or enabled on the system. This notification text could be deleted if it is not needed anymore.") | html %]</span>
|
||||
[% END %]
|
||||
</h2>
|
||||
[% RenderBlockStart("NotificationLanguageRemoveButton") %]
|
||||
<div class="AdditionalInformation">
|
||||
<a value="Remove Language" class="RemoveButton LanguageRemove" id="[% Data.LanguageID | html %]_Language_Remove" href="" name="Data.LanguageID_Language_Remove"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove Notification Language") | html %]</span></a>
|
||||
</div>
|
||||
[% RenderBlockEnd("NotificationLanguageRemoveButton") %]
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<input type="hidden" name="LanguageID" class="LanguageID" value="[% Data.LanguageID | html %]"/>
|
||||
|
||||
<label for="[% Data.LanguageID | html %]_Subject" id="[% Data.LanguageID | html %]_Label_Subject" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Subject") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.LanguageID | html %]_Subject" id="[% Data.LanguageID | html %]_Subject" value="[% Data.Subject | html %]" class="W75pc Validate_Required [% Data.SubjectServerError | html %]" maxlength="200"/>
|
||||
<div id="[% Data.LanguageID | html %]_SubjectError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="[% Data.LanguageID | html %]_SubjectServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="[% Data.LanguageID | html %]_Body" id="[% Data.LanguageID | html %]_Label_Body" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Text") | html %]:
|
||||
</label>
|
||||
<div class="RichTextField">
|
||||
<textarea name="[% Data.LanguageID | html %]_Body" id="[% Data.LanguageID | html %]_Body" class="RichText Validate_RequiredRichText [% Data.BodyServerError | html %]" title="[% Translate("Message body") | html %]" rows="15" cols="[% Config("Ticket::Frontend::TextAreaNote") | html %]">[% Data.Body | html %]</textarea>
|
||||
|
||||
<div id="[% Data.LanguageID | html %]_BodyError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="[% Data.LanguageID | html %]_BodyServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("NotificationLanguage") %]
|
||||
|
||||
<div class="Hidden Template NotificationLanguage">
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<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 class="Title"></h2>
|
||||
<div class="AdditionalInformation">
|
||||
<a value="Remove Language" class="RemoveButton LanguageRemove" id="Template_Language_Remove" href="" name="Template_Language_Remove"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove Notification Language") | html %]</span></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
<input type="hidden" name="" class="LanguageID" value=""/>
|
||||
<label for="Template_Subject" id="Template_Label_Subject" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Subject") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Template_Subject" id="Template_Subject" value="" class="W75pc" maxlength="200"/>
|
||||
<div id="Template_SubjectError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Template_Body" id="Template_Label_Body" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Text") | html %]:
|
||||
</label>
|
||||
<div class="RichTextField">
|
||||
<textarea id="Template_Body" class="" name="Template_Body" title="[% Translate("Message body") | html %]" rows="15" cols="[% Config("Ticket::Frontend::TextAreaNote") | html %]"></textarea>
|
||||
<div id="Template_BodyError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<fieldset class="TableLike">
|
||||
<label for="Language">[% Translate("Add new notification language") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.LanguageStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
<div class="Hidden">
|
||||
[% Data.LanguageOrigStrg %]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Save Changes") | html %]</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<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("Tag Reference") | html %]</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
|
||||
<p>[% Translate("Notifications are sent to an agent.") | html %]</p>
|
||||
|
||||
<p>[% Translate("You can use the following tags") | html %]:</p>
|
||||
|
||||
<dl>
|
||||
<dt><code><OTRS_APPOINTMENT_TITLE[20]></code></dt>
|
||||
<dd>
|
||||
[% Translate("To get the first 20 character of the appointment title.") | html %]
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_APPOINTMENT_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("To get the appointment attribute") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_APPOINTMENT_APPOINTMENTID>, <OTRS_APPOINTMENT_STARTTIME>, <OTRS_APPOINTMENT_DESCRIPTION></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CALENDAR_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("To get the calendar attribute") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_CALENDAR_CALENDARID>, <OTRS_CALENDAR_CALENDARNAME>, <OTRS_CALENDAR_COLOR></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_*></code> [% Translate("or") | html %] <code><OTRS_NOTIFICATION_RECIPIENT_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Attributes of the recipient user for the notification") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_UserFullname></code> [% Translate("or") | html %] <code><OTRS_NOTIFICATION_RECIPIENT_UserFullname></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CONFIG_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Config options") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_CONFIG_HttpType></code>).
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p class="SpacingTop">
|
||||
[% Translate("Example notification") | html %]:
|
||||
</p>
|
||||
<label for="SubjectExample">[% Translate("Subject") | html %]</label>:
|
||||
<input type="text" name="SubjectExample" id="SubjectExample" value="Reminder: <OTRS_APPOINTMENT_TITLE>" size="80" maxlength="80" readonly />
|
||||
<br/>
|
||||
<label for="ResponseExample">[% Translate("Text") | html %]</label>:
|
||||
<br/>
|
||||
<textarea rows="12" cols="70" name="ResponseExample" id="ResponseExample" readonly>
|
||||
Hi <OTRS_NOTIFICATION_RECIPIENT_UserFirstname>,
|
||||
|
||||
appointment "<OTRS_APPOINTMENT_TITLE>" has reached its notification time.
|
||||
|
||||
Description: <OTRS_APPOINTMENT_DESCRIPTION>
|
||||
Location: <OTRS_APPOINTMENT_LOCATION>
|
||||
Calendar: <OTRS_CALENDAR_CALENDARNAME>
|
||||
Start date: <OTRS_APPOINTMENT_STARTTIME>
|
||||
End date: <OTRS_APPOINTMENT_ENDTIME>
|
||||
All-day: <OTRS_APPOINTMENT_ALLDAY>
|
||||
Repeat: <OTRS_APPOINTMENT_RECURRING>
|
||||
|
||||
<OTRS_CONFIG_HttpType>://<OTRS_CONFIG_FQDN>/<OTRS_CONFIG_ScriptAlias>index.pl?Action=AgentAppointmentCalendarOverview;AppointmentID=<OTRS_APPOINTMENT_APPOINTMENTID>
|
||||
|
||||
-- <OTRS_CONFIG_NotificationSenderName>
|
||||
</textarea>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewUpdate") %]
|
||||
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,51 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<label for="RecipientEmail">[% Translate("Additional recipient email addresses") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="RecipientEmail" id="RecipientEmail" class="W50pc Validate_MaxLength [% Data.RecipientEmailServerError | html %]" value="[% Data.RecipientEmail | html %]" data-maxlength="200"/>
|
||||
<div id="RecipientEmailError" class="TooltipErrorMessage"><p>[% Translate("This field must have less then 200 characters.") | html %]</p></div>
|
||||
<div id="RecipientEmailServerError" class="TooltipErrorMessage"><p>[% Translate("This field must have less then 200 characters.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="IsVisibleForCustomer">[% Translate("Article visible for customer") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="IsVisibleForCustomer" id="IsVisibleForCustomer" value="1" [% IF Data.Data.IsVisibleForCustomer %] checked="checked" [% END %]/>
|
||||
<p class="FieldExplanation">[% Translate("An article will be created if the notification is sent to the customer or an additional email address.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="TransportEmailTemplate">[% Translate("Email template") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.TransportEmailTemplateStrg %]
|
||||
<p class="FieldExplanation">[% Translate("Use this template to generate the complete email (only for HTML emails).") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="EmailSecuritySettings">[% Translate("Enable email security") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="EmailSecuritySettings" id="EmailSecuritySettings" value="1" [% Data.EmailSecuritySettings %] />
|
||||
<p class="FieldExplanation">[% Data.EmailSecurityInfo %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label for="EmailSigningCrypting">[% Translate("Email security level") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.EmailSigningCrypting %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label for="EmailMissingSigningKeys">[% Translate("If signing key/certificate is missing") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.EmailMissingSigningKeys %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label for="EmailMissingCryptingKeys">[% Translate("If encryption key/certificate is missing") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.EmailMissingCryptingKeys %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
@@ -0,0 +1,222 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Attachment Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Attachment Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add Attachment"),}) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit Attachment")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Name ) }) %]
|
||||
[% 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("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a class="CallForAction Fullsize Center" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Add">
|
||||
<span><i class="fa fa-plus-square"></i>[% Translate("Add Attachment") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterAttachments">[% Translate("Filter for Attachments") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterAttachments" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterAttachments" value="" title="[% Translate("Filter for attachments") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<table class="DataTable" id="Attachments">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Filename") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
<th>[% Translate("Delete") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="7">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr [% IF Data.ValidID != 1 %]class="Invalid"[% END %] id="AttachmentID_[% Data.ID %]">
|
||||
<td><a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a></td>
|
||||
<td title="[% Translate("Download file") | html %]: [% Data.Filename | html %]">
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Download;ID=[% Data.ID | uri %];[% Env("ChallengeTokenParam") | html %]">
|
||||
[% Data.Filename | truncate(30) | html %]
|
||||
</a>
|
||||
</td>
|
||||
<td title="[% Data.Comment | html %]">[% Data.Comment | truncate(20) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
<td class="Center">
|
||||
<a class="TrashCan AttachmentDelete" href="#" data-id="[% Data.ID %]" title="[% Translate("Delete this attachment") | html %]">
|
||||
[% Translate("Delete this attachment") | html %]
|
||||
<i class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="7">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="Hidden" id="DeleteAttachmentDialogContainer">
|
||||
<div id ="DeleteAttachmentDialog" class="InnerContent">
|
||||
<p class="Center Spacing">[% Translate("Do you really want to delete this attachment?") | html %]</p>
|
||||
<div class="SpacingTop"></div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
[% RenderBlockStart("OverviewUpdate") %]
|
||||
<div class="Header">
|
||||
[% IF Data.Action == 'Add' %]
|
||||
<h2>[% Translate("Add Attachment") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit Attachment") | html %]</h2>
|
||||
[% END %]
|
||||
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | uri %]Action"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameInvalid | html %]" maxlength="200"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% IF Data.Action == 'Add' %]
|
||||
<label class="Mandatory" for="FileUpload"><span class="Marker">*</span> [% Translate("Attachment") | html %]:</label>
|
||||
[% ELSE %]
|
||||
<label for="FileUpload">[% Translate("Attachment") | html %]:</label>
|
||||
[% END %]
|
||||
<div class="Field">
|
||||
<input name="FileUpload" id="FileUpload" type="file" class="W50pc [% Data.ValidateContent | html %] [% Data.FileUploadInvalid | html %]"/>
|
||||
<div id="FileUploadError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="FileUploadServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOption %]
|
||||
<div id="ValidIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="250"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
<div class="Field SpacingTop SaveButtons">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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 class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewUpdate") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,332 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Auto Response Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Auto Response Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add Auto Response"),}) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit Auto Response")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Name ) }) %]
|
||||
[% 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("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Add" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add Auto Response") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterAutoResponses">[% Translate("Filter for Auto Responses") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterAutoResponses" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterAutoResponses" value="" title="[% Translate("Filter for auto responses") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
</div>
|
||||
|
||||
|
||||
<div class="ContentColumn">
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="AutoResponses">
|
||||
<thead>
|
||||
|
||||
<tr>
|
||||
<th class="W33pc">[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Type") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr [% IF Data.ValidID != 1 %]class="Invalid"[% END %]>
|
||||
<td><a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Change;ID=[% Data.ID | uri %]">[% Translate(Data.Name) | html %]</a></td>
|
||||
<td>[% Translate(Data.Type) | html %]</td>
|
||||
<td title="[% Data.Comment | html %]">[% Data.Comment | truncate(20) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="6">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
[% RenderBlockStart("OverviewUpdate") %]
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
|
||||
[% IF Data.Action == 'Add' %]
|
||||
<h2>[% Translate("Add Auto Response") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit Auto Response") | html %]</h2>
|
||||
[% END %]
|
||||
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | uri %]Action"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameInvalid | html %]" maxlength="200"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="Subject"><span class="Marker">*</span> [% Translate("Subject") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Subject" id="Subject" value="[% Data.Subject | html %]" class="W50pc Validate_Required [% Data.SubjectInvalid | html %]" maxlength="250"/>
|
||||
<div id="SubjectError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="SubjectServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="RichText">[% Translate("Response") | html %]:</label>
|
||||
<div class="RichTextField">
|
||||
<textarea id="RichText" class="RichText" rows="10" cols="60" name="Response">[% Data.Response | html %]</textarea>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="TypeID"><span class="Marker">*</span> [% Translate("Type") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.TypeOption %]
|
||||
<div id="TypeIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="TypeIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="AddressID"><span class="Marker">*</span> [% Translate("Auto response from") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.SystemAddressOption %]
|
||||
<div id="AddressIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="AddressIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOption %]
|
||||
<div id="ValidIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="250"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Reference") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<p>[% Translate("You can use the following tags") | html %]:</p>
|
||||
<dl>
|
||||
|
||||
<dt><code><OTRS_CUSTOMER_SUBJECT[20]></code></dt>
|
||||
<dd>
|
||||
[% Translate("To get the first 20 character of the subject.") | html %]
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CUSTOMER_EMAIL[5]></code></dt>
|
||||
<dd>
|
||||
[% Translate("To get the first 5 lines of the email.") | html %]
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CUSTOMER_REALNAME></code></dt>
|
||||
<dd>
|
||||
[% Translate("To get the name of the ticket's customer user (if given).") | html %]
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CUSTOMER_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("To get the article attribute") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_CUSTOMER_From>, <OTRS_CUSTOMER_To>,
|
||||
<OTRS_CUSTOMER_Cc>, <OTRS_CUSTOMER_Subject>, <OTRS_CUSTOMER_Body></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CUSTOMER_DATA_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Options of the current customer user data") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_CUSTOMER_DATA_UserFirstname></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_OWNER_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Ticket owner options") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_OWNER_UserFirstname></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_RESPONSIBLE_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Ticket responsible options") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_RESPONSIBLE_UserFirstname></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CURRENT_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Options of the current user who requested this action") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_CURRENT_UserFirstname></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_TICKET_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Options of the ticket data") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_TICKET_TicketNumber>, <OTRS_TICKET_TicketID>,
|
||||
<OTRS_TICKET_Queue>, <OTRS_TICKET_State></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_TICKET_DynamicField_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Options of ticket dynamic fields internal key values") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_TICKET_DynamicField_TestField>,
|
||||
<OTRS_TICKET_DynamicField_TicketFreeText1></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_TICKET_DynamicField_*_Value></code></dt>
|
||||
<dd>
|
||||
[% Translate("Options of ticket dynamic fields display values, useful for Dropdown and Multiselect fields") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_TICKET_DynamicField_TestField_Value>,
|
||||
<OTRS_TICKET_DynamicField_TicketFreeText1_Value></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CONFIG_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Config options") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_CONFIG_HttpType></code>).
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
|
||||
<div class="SpacingTop">
|
||||
<label for="ResponseReference">
|
||||
[% Translate("Example response") | html %]:
|
||||
</label>
|
||||
</div>
|
||||
<textarea rows="5" cols="60" id="ResponseReference">
|
||||
Thanks for your email.
|
||||
|
||||
You wrote:
|
||||
<snip>
|
||||
<OTRS_CUSTOMER_EMAIL[6]>
|
||||
</snip>
|
||||
|
||||
--
|
||||
Super Support Company Inc. - Waterford Business Park
|
||||
5201 Blue Lagoon Drive - 8th Floor & 9th Floor - Miami, 33126 USA
|
||||
Email: hot@florida.com - Web: http://hot.florida.com/
|
||||
</textarea>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewUpdate") %]
|
||||
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,126 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Cloud Service Management") | html %] [% Translate("Support Data Collector") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Cloud Service Management'),
|
||||
Link => 'AdminCloudServices',
|
||||
},
|
||||
{
|
||||
Name => Translate('Support data collector'),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminCloudServices" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminSupportDataCollector" class="CallForAction Fullsize Center"><span><i class="fa fa-compass"></i>[% Translate("Support data collector") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockStart("RegisteredNotSending") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p>
|
||||
[% Translate("Currently support data is only shown in this system.") | html %]
|
||||
[% Translate("It is highly recommended to send this data to OTRS Group in order to get better support.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("RegisteredNotSending") %]
|
||||
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
[% RenderBlockStart("SendingEdit") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Configuration") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" id="FormRegistration" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="EditAction"/>
|
||||
|
||||
<fieldset class="TableLike Registration">
|
||||
<label for="SupportDataSending">[% Translate("Send support data") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="SupportDataSending" id="SupportDataSending" value="Yes" [% Data.SupportDataSendingChecked %] />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This will allow the system to send additional support data information to OTRS Group.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Primary CallForAction" type="submit" id="Submit" value="[% Translate("Update") | html %]">
|
||||
<span>[% Translate("Update") | html %]</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("SendingEdit") %]
|
||||
|
||||
|
||||
[% RenderBlockStart("NotRegistered") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header Center">
|
||||
<h2>[% Translate("System Registration") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="Center">
|
||||
[% Translate("Currently support data is only shown in this system.") | html %]
|
||||
[% Translate("It is highly recommended to send this data to OTRS Group in order to get better support.") | html %]
|
||||
<br/>
|
||||
[% Translate("To enable data sending, please register your system with OTRS Group or update your system registration information (make sure to activate the 'send support data' option.)") | html %]
|
||||
</p>
|
||||
|
||||
[% IF Config("Frontend::Module").AdminRegistration %]
|
||||
<div class="Center SpacingTop">
|
||||
<a href="[% Env("Baselink") %]Action=AdminRegistration" class="CallForAction Primary">
|
||||
<span><i class="fa fa-sign-in"></i> [% Translate("Register this System") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
[% ELSE %]
|
||||
<div class="Center SpacingTop">
|
||||
<p>
|
||||
[% Translate("System Registration is disabled for your system. Please check your configuration.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("NotRegistered") %]
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,100 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% SET OTRSBusinessLabel = '<strong>OTRS Business Solution</strong>™' %]
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Cloud Service Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Cloud Service Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% IF !Data.SystemIsRegistered %]
|
||||
<p>
|
||||
[% Translate("System registration is a service of OTRS Group, which provides a lot of advantages!") | html %]
|
||||
</p>
|
||||
<p>
|
||||
[% Translate('Please note that the use of OTRS cloud services requires the system to be registered.') | html %]
|
||||
</p>
|
||||
<p class="SpacingTop SpacingBottom">
|
||||
<a class="CallForAction Fullsize Centered" href="[% Env("Baselink") %]Action=AdminRegistration">
|
||||
<span>
|
||||
<i class="fa fa-sign-in"></i>
|
||||
[% Translate('Register this system') | html %]
|
||||
</span>
|
||||
</a>
|
||||
</p>
|
||||
[% END %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can configure available cloud services that communicate securely with %s.", "cloud.otrs.com") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Available Cloud Services") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="CloudServiceTable" summary="List of all registered CloudServices">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Description") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr class="MasterAction">
|
||||
<td class="Center">
|
||||
<span><i class="[% Data.CloudService.Icon | html %]"></i></span>
|
||||
</td>
|
||||
<td>
|
||||
[% IF Data.CloudService.IsOTRSBusiness && !Data.OTRSBusinessIsInstalled %]
|
||||
[% Data.CloudService.Name | html %]
|
||||
[% ELSE %]
|
||||
<a class="AsBlock MasterActionLink" href="[% Env("Baselink") %]Action=[% Data.CloudService.ConfigDialog | uri %];CloudServiceName=[% Data.CloudService.Name | uri %]">
|
||||
[% Data.CloudService.Name | html %]
|
||||
</a>
|
||||
[% END %]
|
||||
</td>
|
||||
<td>
|
||||
[% Translate(Data.CloudService.Description) | html %]
|
||||
[% IF Data.CloudService.IsOTRSBusiness && !Data.OTRSBusinessIsInstalled %]
|
||||
<span class="Recomendation">
|
||||
<a class="MasterActionLink Button" href="[% Env("Baselink") %]Action=AdminOTRSBusiness"><i class="fa fa-angle-double-up"></i> [% Translate("Upgrade to %s") | html | ReplacePlaceholders(OTRSBusinessLabel) %]</a>
|
||||
</span>
|
||||
[% END %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,324 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Communication Log") | html %] - [% Translate(Data.Action) | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Communication Log'),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SidebarColumn">
|
||||
|
||||
[% RenderBlockStart("TimeRange") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Time Range") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% Data.TimeRange %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Show only communication logs created in specific time range.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("TimeRange") %]
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterCommunications">[% Translate("Filter for Communications") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterCommunications" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterCommunications" value="" title="[% Translate("Filter for communications") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="FieldExplanation">
|
||||
<p>
|
||||
[% Translate("In this screen you can see an overview about incoming and outgoing communications.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="FieldExplanation">
|
||||
<p>
|
||||
[% Translate("You can change the sort and order of the columns by clicking on the column header.") | html %]
|
||||
[% Translate("If you click on the different entries, you will get redirected to a detailed screen about the message.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
[% RenderBlockStart("StatusOverview") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label>[% Translate("Status for: %s", Data.TimeRange) | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<div class="GridView">
|
||||
|
||||
<ul class="ItemListGrid WithIcons">
|
||||
<li class="[% IF Data.AccountsStatus && Data.AccountsOverview.Failed %]Failed[% ELSIF Data.AccountsStatus && Data.AccountsOverview.Warning %]Warning[% ELSIF Data.AccountsStatus %]Successful[% END %]">
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Accounts;StartTime=[% Data.StartTime | uri %]">
|
||||
<span class="Icons">
|
||||
[% IF Data.AccountsStatus && Data.AccountsOverview.Failed %]
|
||||
<i class="Icon fa fa-times"></i>
|
||||
[% ELSIF Data.AccountsStatus && Data.AccountsOverview.Warning %]
|
||||
<i class="Icon fa fa-exclamation"></i>
|
||||
[% ELSIF Data.AccountsStatus %]
|
||||
<i class="Icon fa fa-check"></i>
|
||||
[% ELSE %]
|
||||
<i class="Icon fa fa-question"></i>
|
||||
[% END %]
|
||||
</span>
|
||||
<span class="Title">
|
||||
[% IF Data.AccountsStatus && Data.AccountsOverview.Failed %]
|
||||
[% Translate("Failing accounts") | html %]
|
||||
[% ELSIF Data.AccountsStatus && Data.AccountsOverview.Warning %]
|
||||
[% Translate("Some account problems") | html %]
|
||||
[% ELSIF Data.AccountsStatus %]
|
||||
[% Translate("No account problems") | html %]
|
||||
[% ELSE %]
|
||||
[% Translate("No account activity") | html %]
|
||||
[% END %]
|
||||
</span>
|
||||
<span class="Description">
|
||||
[% IF Data.AccountsStatus && Data.AccountsOverview.Failed %]
|
||||
[% Translate("Number of accounts with problems: %s", Data.AccountsOverview.Failed + Data.AccountsOverview.Warning) | html %]
|
||||
[% ELSIF Data.AccountsStatus && Data.AccountsOverview.Warning %]
|
||||
[% Translate("Number of accounts with warnings: %s", Data.AccountsOverview.Warning) | html %]
|
||||
[% END %]
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="[% IF Data.Failed %]Failed[% ELSIF Data.Successful || Data.Processing %]Successful[% END %]">
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Filter=[% Data.StatusFilter | uri %];StartTime=[% Data.StartTime | uri %];Expand=1;">
|
||||
<span class="Icons">
|
||||
[% IF Data.Failed %]
|
||||
<i class="Icon fa fa-times"></i>
|
||||
[% ELSIF Data.Successful || Data.Processing %]
|
||||
<i class="Icon fa fa-check"></i>
|
||||
[% ELSE %]
|
||||
<i class="Icon fa fa-question"></i>
|
||||
[% END %]
|
||||
</span>
|
||||
<span class="Title">
|
||||
[% IF Data.Failed %]
|
||||
[% Translate("Failing communications") | html %]
|
||||
[% ELSIF Data.Successful || Data.Processing %]
|
||||
[% Translate("No communication problems") | html %]
|
||||
[% ELSE %]
|
||||
[% Translate("No communication logs") | html %]
|
||||
[% END %]
|
||||
</span>
|
||||
<span class="Description">
|
||||
[% IF Data.Failed %]
|
||||
[% Translate("Number of reported problems: %s", Data.Failed) | html %]
|
||||
[% END %]
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Filter=Processing;StartTime=[% Data.StartTime | uri %];Expand=1;">
|
||||
<span class="Icons">
|
||||
<i class="fa fa-exchange"></i>
|
||||
</span>
|
||||
<span class="Title">
|
||||
[% IF Data.Processing %]
|
||||
[% Translate("Open communications") | html %]
|
||||
[% ELSE %]
|
||||
[% Translate("No active communications") | html %]
|
||||
[% END %]
|
||||
</span>
|
||||
<span class="Description">
|
||||
[% IF Data.Processing %]
|
||||
[% Translate("Number of open communications: %s", Data.Processing) | html %]
|
||||
[% END %]
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Filter=All;StartTime=[% Data.StartTime | uri %];Expand=1;">
|
||||
<span class="Icons">
|
||||
<i class="fa fa-clock-o"></i>
|
||||
</span>
|
||||
<span class="Title">
|
||||
[% Translate("Average processing time") | html %]
|
||||
</span>
|
||||
<span class="Description">
|
||||
[% Data.AverageString | html %]
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("StatusOverview") %]
|
||||
|
||||
<div id="CommunicationList" class="WidgetSimple [% IF !Data.Expand %]Collapsed[% END %]">
|
||||
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("List of communications (%s)", Data.CommunicationCount) | html %]</h2>
|
||||
|
||||
[% RenderBlockStart("ContextSettings") %]
|
||||
<div class="ActionMenu">
|
||||
<div class="WidgetAction Settings">
|
||||
<a href="#" id="ShowContextSettingsDialog" title="[% Translate("Settings") | html %]">
|
||||
<i class="fa fa-cog"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="ContextSettingsDialogContainer" class="Hidden">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" id="ContextSettingsDialog">
|
||||
<input type="hidden" name="Action" value="AgentPreferences"/>
|
||||
<input type="hidden" name="Subaction" value="Update"/>
|
||||
<input type="hidden" name="Group" value="[% Data.Group | html %]"/>
|
||||
<input type="hidden" name="RedirectURL" value="[% Data.RequestedURL | html %]"/>
|
||||
<fieldset class="TableLike">
|
||||
<label for="[% Data.PreferencesKey | html %]">[% Translate("Entries per page") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.PageShownString %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("ContextSettings") %]
|
||||
|
||||
</div>
|
||||
|
||||
<div class="Content Overview">
|
||||
|
||||
<div class="ControlRow">
|
||||
|
||||
[% RenderBlockStart("CommunicationNavBarFilter") %]
|
||||
<ul class="Tabs">
|
||||
[% RenderBlockStart("CommunicationNavBarFilterItem") %]
|
||||
<li [% IF Data.Selected %] class="Active" [% END %]>
|
||||
<a name="OverviewControl" href="[% Env("Baselink") %]Action=[% Env("Action") %];Filter=[% Data.Filter | uri %];SortBy=[% Data.SortBy %];OrderBy=[% Data.OrderBy %];StartHit=1;Expand=1;StartTime=[% Data.StartTime | uri %]">[% Translate(Data.Name) | html %] ([% Data.Count %])</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("CommunicationNavBarFilterItem") %]
|
||||
</ul>
|
||||
[% RenderBlockEnd("CommunicationNavBarFilter") %]
|
||||
|
||||
</div>
|
||||
|
||||
<div class="CommunicationPagination">
|
||||
<span class="Pagination">
|
||||
[% RenderBlockStart("OverviewNavBarPageNavBar") %]
|
||||
[% Data.ResultLong %]
|
||||
[% Data.SiteNavBarLong %]
|
||||
[% RenderBlockEnd("OverviewNavBarPageNavBar") %]
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<table class="DataTable" id="CommunicationsTable">
|
||||
<thead>
|
||||
<tr>
|
||||
[% RenderBlockStart("TableHeader") %]
|
||||
<th class="DashboardHeader OverviewHeader [% Data.CSS | html %]" title="[% Translate(Data.Title) | html %]">
|
||||
<a name="OverviewControl" href="[% Env("Baselink") %]Action=[% Env("Action") %];[% Data.HeaderLink %];SortBy=[% Data.SortByName | uri %];OrderBy=[% Data.OrderBy | uri %]" title="[% Translate(Data.Title) | html %]">
|
||||
[% IF Data.HeaderName == 'Direction' %]
|
||||
<i class="fa fa-exchange"></i>
|
||||
[% ELSE %]
|
||||
[% Translate(Data.HeaderName) | html %]
|
||||
[% END %]
|
||||
</a>
|
||||
</th>
|
||||
[% RenderBlockEnd("TableHeader") %]
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoCommunicationsFound") %]
|
||||
<tr>
|
||||
<td colspan="7">
|
||||
[% Translate("No communications found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoCommunicationsFound") %]
|
||||
[% RenderBlockStart("CommunicationRow") %]
|
||||
<tr class="MasterAction [% IF Data.Status == 'Failed' %]Error[% END %]">
|
||||
<td class="Status Center" title="[% Translate(Data.Status) | html %]">
|
||||
<a class="MasterActionLink" href="[% Env("Baselink") %]Action=AdminCommunicationLog;Subaction=Zoom;CommunicationID=[% Data.CommunicationID | uri %]" title="[% Data.Name | html %]">
|
||||
[% IF Data.Status == 'Successful' %]
|
||||
<i class="fa fa-check Confirmation" aria-hidden="true"></i>
|
||||
[% ELSIF Data.Status == 'Failed' %]
|
||||
<i class="fa fa-times Error" aria-hidden="true"></i>
|
||||
[% ELSIF Data.Status == 'Warning' %]
|
||||
<i class="fa fa-exclamation Warning" aria-hidden="true"></i>
|
||||
[% ELSIF Data.Status == 'Processing' %]
|
||||
<i class="fa fa-circle-o-notch fa-spin Warning" aria-hidden="true"></i>
|
||||
[% END %]
|
||||
</a>
|
||||
</td>
|
||||
<td class="Transport">
|
||||
[% Data.Transport | html %]
|
||||
</td>
|
||||
<td class="Direction Center">
|
||||
[% IF Data.Direction == 'Incoming' %]
|
||||
<span class=" Direction Incoming" title="[% Data.Direction | html %]">
|
||||
<i class="fa fa-long-arrow-left"></i>
|
||||
</span>
|
||||
[% ELSE %]
|
||||
<span class=" Direction Outgoing" title="[% Data.Direction | html %]">
|
||||
<i class="fa fa-long-arrow-right"></i>
|
||||
</span>
|
||||
[% END %]
|
||||
</td>
|
||||
<td class="Account">
|
||||
[% Data.DisplayAccount | html %]
|
||||
</td>
|
||||
<td class="StartTime">
|
||||
[% Data.StartTime | Localize("TimeLong") %]
|
||||
</td>
|
||||
<td class="EndTime">
|
||||
[% IF Data.EndTime %]
|
||||
[% Data.EndTime | Localize("TimeLong") %]
|
||||
[% ELSE %]
|
||||
-
|
||||
[% END %]
|
||||
</td>
|
||||
<td class="Duration">
|
||||
[% IF Data.Duration.defined %]
|
||||
[% Translate("%s s", Data.Duration) | html %]
|
||||
[% ELSE %]
|
||||
-
|
||||
[% END %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("CommunicationRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="7">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,254 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Communication Log") | html %] - [% Translate("Account Status") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Communication Log'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
{
|
||||
Name => Translate('Account Status'),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SidebarColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<a id="OverviewButton" class="CallForAction Fullsize Center Back">
|
||||
<span>
|
||||
<i class="fa fa-caret-left"></i>
|
||||
[% Translate("Back to overview") | html %]
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("TimeRange") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Time Range") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% Data.TimeRange %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Show only communication logs created in specific time range.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("TimeRange") %]
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterAccounts">[% Translate("Filter for Accounts") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterAccounts" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterObjectLogEntries" value="" title="[% Translate("Filter for accounts") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterCommunicationLogList">[% Translate("Filter for Communications") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterCommunicationLogList" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterCommunications" value="" title="[% Translate("Filter for communications") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="FieldExplanation">
|
||||
<p>
|
||||
[% Translate("In this screen you can see an overview about incoming and outgoing communications.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="FieldExplanation">
|
||||
<p>
|
||||
[% Translate("You can change the sort and order of those columns by clicking on the column header.") | html %]
|
||||
[% Translate("If you click on the different entries, you will get redirected to a detailed screen about the message.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
<div id="AccountsWidget" class="WidgetSimple">
|
||||
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>
|
||||
[% Translate("Account status for: %s", Data.TimeRange) | html %]
|
||||
</h2>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
|
||||
<table class="DataTable" id="AccountsTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="Status Center Sortable InitialSorting"><a href="#">[% Translate("Status") | html %]</a></th>
|
||||
<th class="Sortable"><a href="#">[% Translate("Account") | html %]</a></th>
|
||||
<th class="Sortable"><a href="#">[% Translate("Average processing time") | html %]</a></th>
|
||||
<th class="Edit Center">[% Translate("Edit") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoAccountsFound") %]
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
[% Translate("No accounts found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoAccountsFound") %]
|
||||
[% RenderBlockStart("AccountRow") %]
|
||||
<tr id="[% Data.AccountKey %]" class="[% IF Data.AccountStatus == 'Failed' %]Error[% END %]">
|
||||
<td class="Status Center" title="[% Translate(Data.AccountStatus) | html %]">
|
||||
[% IF Data.AccountStatus == 'Success' %]
|
||||
<i class="fa fa-check Confirmation" aria-hidden="true" title="[% Data.AccountStatus %]"></i>
|
||||
[% ELSIF Data.AccountStatus == 'Warning' %]
|
||||
<i class="fa fa-exclamation Warning" aria-hidden="true" title="[% Data.AccountStatus %]"></i>
|
||||
[% ELSE %]
|
||||
<a href="[% Env("Baselink") %]Action=AdminCommunicationLog;[% Data.AccountErrorLink %]" target="_blank">
|
||||
<i class="fa fa-times Error" aria-hidden="true"></i>
|
||||
</a>
|
||||
[% END %]
|
||||
<input type="hidden" class="SortData" value="[% Data.AccountStatus | html %]" />
|
||||
</td>
|
||||
<td>
|
||||
[% Data.AccountLabel | html %]
|
||||
<input type="hidden" class="SortData" value="[% Data.AccountLabel | html %]" />
|
||||
</td>
|
||||
<td>
|
||||
<span title="[% Translate("%s s", Data.AverageSeconds) | html %]">
|
||||
[% Data.AverageString | html %]
|
||||
</span>
|
||||
<input type="hidden" class="SortData" value="[% Data.AverageSeconds | html %]" />
|
||||
</td>
|
||||
<td class="Edit Center">
|
||||
[% IF Data.AccountLink %]
|
||||
<a href="[% Env("Baselink") %][% Data.AccountLink %]" target="_blank">
|
||||
<i class="fa fa-pencil-square-o" aria-hidden="true"></i>
|
||||
</a>
|
||||
[% END %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("AccountRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="4">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="FilteredCommunicationsWidget">
|
||||
|
||||
<div id="CommunicationLogWidget" class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>
|
||||
[% Translate("Communication Log Details (%s)", Data.CommunicationLogCount) | html %]
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<span class="Pagination">
|
||||
[% RenderBlockStart("OverviewNavBarPageNavBar") %]
|
||||
[% Data.ResultLong %]
|
||||
[% Data.SiteNavBarLong %]
|
||||
[% RenderBlockEnd("OverviewNavBarPageNavBar") %]
|
||||
</span>
|
||||
|
||||
<table class="DataTable" id="CommunicationLogListTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="Status Center Sortable"><a href="#">[% Translate("Status") | html %]</a></th>
|
||||
<th class="Sortable"><a href="#">[% Translate("Transport") | html %]</a></th>
|
||||
<th class="Direction Center Sortable"><a href="#">[% Translate("Direction") | html %]</a></th>
|
||||
<th class="Sortable"><a href="#">[% Translate("Start Time") | html %]</a></th>
|
||||
<th class="Sortable"><a href="#">[% Translate("End Time") | html %]</a></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoCommunicationLogsFound") %]
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
[% Translate("No communication log entries found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoCommunicationLogsFound") %]
|
||||
[% RenderBlockStart("CommunicationLogRow") %]
|
||||
<tr class="MasterAction [% IF Data.Status == 'Failed' %]Error[% END %]">
|
||||
<td class="Status Center" title="[% Translate(Data.Status) | html %]">
|
||||
<a href="[% Env("Baselink") %]Action=AdminCommunicationLog;Subaction=Zoom;CommunicationID=[% Data.CommunicationID | uri %]" title="[% Data.Name | html %]" class="MasterActionLink">
|
||||
[% IF Data.Status == 'Successful' %]
|
||||
<i class="fa fa-check Confirmation" aria-hidden="true"></i>
|
||||
[% ELSIF Data.Status == 'Failed' %]
|
||||
<i class="fa fa-times Error" aria-hidden="true"></i>
|
||||
[% ELSIF Data.Status == 'Warning' %]
|
||||
<i class="fa fa-exclamation Warning" aria-hidden="true"></i>
|
||||
[% ELSIF Data.Status == 'Processing' %]
|
||||
<i class="fa fa-circle-o-notch fa-spin Warning" aria-hidden="true"></i>
|
||||
[% END %]
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
[% Data.Transport | html %]
|
||||
</td>
|
||||
<td class="Direction Center">
|
||||
[% IF Data.Direction == 'Incoming' %]
|
||||
<span class="Direction Incoming" title="[% Data.Direction | html %]">
|
||||
<i class="fa fa-long-arrow-left"></i>
|
||||
</span>
|
||||
[% ELSE %]
|
||||
<span class="Direction Outgoing" title="[% Data.Direction | html %]">
|
||||
<i class="fa fa-long-arrow-right"></i>
|
||||
</span>
|
||||
[% END %]
|
||||
</td>
|
||||
<td class="StartTime">
|
||||
[% Data.StartTime | Localize("TimeLong") %]
|
||||
</td>
|
||||
<td class="EndTime">
|
||||
[% Data.EndTime | Localize("TimeLong") %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("CommunicationLogRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="5">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,100 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div id="CommunicationLogWidget" class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>
|
||||
[% Translate("Communication Log Details (%s)", Data.CommunicationLogCount) | html %]
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<span class="Pagination">
|
||||
[% RenderBlockStart("OverviewNavBarPageNavBar") %]
|
||||
[% Data.ResultLong %]
|
||||
[% Data.SiteNavBarLong %]
|
||||
[% RenderBlockEnd("OverviewNavBarPageNavBar") %]
|
||||
</span>
|
||||
|
||||
<table class="DataTable" id="CommunicationLogListTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="Status Center Sortable"><a href="#">[% Translate("Status") | html %]</a></th>
|
||||
<th class="Sortable"><a href="#">[% Translate("Transport") | html %]</a></th>
|
||||
<th class="Direction Center Sortable"><a href="#"><i class="fa fa-exchange"></i></a></th>
|
||||
<th class="Sortable"><a href="#">[% Translate("Start Time") | html %]</a></th>
|
||||
<th class="Sortable"><a href="#">[% Translate("End Time") | html %]</a></th>
|
||||
<th class="Sortable"><a href="#">[% Translate("Duration") | html %]</a></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoCommunicationLogsFound") %]
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
[% Translate("No communication log entries found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoCommunicationLogsFound") %]
|
||||
[% RenderBlockStart("CommunicationLogRow") %]
|
||||
<tr class="MasterAction [% IF Data.Status == 'Failed' %]Error[% END %]">
|
||||
<td class="Status Center" title="[% Translate(Data.Status) | html %]">
|
||||
<a href="[% Env("Baselink") %]Action=AdminCommunicationLog;Subaction=Zoom;CommunicationID=[% Data.CommunicationID | uri %]" title="[% Data.Name | html %]" class="MasterActionLink">
|
||||
[% IF Data.Status == 'Successful' %]
|
||||
<i class="fa fa-check Confirmation" aria-hidden="true"></i>
|
||||
[% ELSIF Data.Status == 'Failed' %]
|
||||
<i class="fa fa-times Error" aria-hidden="true"></i>
|
||||
[% ELSIF Data.Status == 'Warning' %]
|
||||
<i class="fa fa-exclamation Warning" aria-hidden="true"></i>
|
||||
[% ELSIF Data.Status == 'Processing' %]
|
||||
<i class="fa fa-circle-o-notch fa-spin Warning" aria-hidden="true"></i>
|
||||
[% END %]
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
[% Data.Transport | html %]
|
||||
</td>
|
||||
<td class="Direction Center">
|
||||
[% IF Data.Direction == 'Incoming' %]
|
||||
<span class="Direction Incoming" title="[% Data.Direction | html %]">
|
||||
<i class="fa fa-long-arrow-left"></i>
|
||||
</span>
|
||||
[% ELSE %]
|
||||
<span class="Direction Outgoing" title="[% Data.Direction | html %]">
|
||||
<i class="fa fa-long-arrow-right"></i>
|
||||
</span>
|
||||
[% END %]
|
||||
</td>
|
||||
<td class="StartTime">
|
||||
[% Data.StartTime | Localize("TimeLong") %]
|
||||
</td>
|
||||
<td class="EndTime">
|
||||
[% IF Data.EndTime %]
|
||||
[% Data.EndTime | Localize("TimeLong") %]
|
||||
[% ELSE %]
|
||||
-
|
||||
[% END %]
|
||||
</td>
|
||||
<td class="Duration">
|
||||
[% IF Data.Duration.defined %]
|
||||
[% Translate("%s s", Data.Duration) | html %]
|
||||
[% ELSE %]
|
||||
-
|
||||
[% END %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("CommunicationLogRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="6">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,78 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>
|
||||
[% Translate("Communication Log Details (%s)", Data.ObjectLogCount) | html %]
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="ObjectLogListTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="Center Sortable InitialSorting"><a href="#">[% Translate("#") | html %]</a></th>
|
||||
<th class="Priority Center Sortable"><a href="#">[% Translate("Priority") | html %]</a></th>
|
||||
<th class="Sortable"><a href="#">[% Translate("Module") | html %]</a></th>
|
||||
<th class="Sortable"><a href="#">[% Translate("Information") | html %]</a></th>
|
||||
<th class="Sortable"><a href="#">[% Translate("Created") | html %]</a></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoObjectLogsFound") %]
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
[% Translate("No log entries found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoObjectLogsFound") %]
|
||||
[% RenderBlockStart("ObjectLogEntry") %]
|
||||
<tr class="[% IF Data.LogPriority == 'Error' %]Error[% END %]">
|
||||
<td class="Direction ObjectLogEntry">
|
||||
<input type="hidden" class="SortData" value="[% Data.LogID | html %]" />
|
||||
</td>
|
||||
<td class="Priority Center [% Data.LogPriority | html %]" title="[% Translate(Data.LogPriority) | html %]">
|
||||
[% IF Data.LogPriority == 'Trace' %]
|
||||
<i class="fa fa-list Notice" aria-hidden="true"></i>
|
||||
[% ELSIF Data.LogPriority == 'Debug' %]
|
||||
<i class="fa fa-bug Notice" aria-hidden="true"></i>
|
||||
[% ELSIF Data.LogPriority == 'Info' %]
|
||||
<i class="fa fa-info Notice" aria-hidden="true"></i>
|
||||
[% ELSIF Data.LogPriority == 'Notice' %]
|
||||
<i class="fa fa-info-circle Notice" aria-hidden="true"></i>
|
||||
[% ELSIF Data.LogPriority == 'Warn' %]
|
||||
<i class="fa fa-exclamation Warning" aria-hidden="true"></i>
|
||||
[% ELSIF Data.LogPriority == 'Error' %]
|
||||
<i class="fa fa-times Error" aria-hidden="true"></i>
|
||||
[% END %]
|
||||
<input type="hidden" class="SortData" value="[% Translate(Data.LogPriority) | html %]" />
|
||||
</td>
|
||||
<td title="[% Data.LogKey | html %]">
|
||||
[% Data.LogKey | html %]
|
||||
<input type="hidden" class="SortData" value="[% Data.LogKey | html %]" />
|
||||
</td>
|
||||
<td title="[% Data.LogValue | html %]">
|
||||
[% Data.LogValue | html %]
|
||||
<input type="hidden" class="SortData" value="[% Data.LogValue | html %]" />
|
||||
</td>
|
||||
<td title="[% Data.LogCreateTime | html %]" style="white-space: nowrap">
|
||||
[% Data.LogCreateTime | Localize("TimeLong") %]
|
||||
<input type="hidden" class="SortData" value="[% Data.LogCreateTime | html %]" />
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("ObjectLogEntry") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="5">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,200 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">
|
||||
[% Translate("Communication Log") | html %] –
|
||||
[% Data.CommunicationLog.StartTime = Data.CommunicationLog.StartTime | Localize("TimeLong") %]
|
||||
[% Translate("Detail view for %s communication started at %s", Data.CommunicationLog.Direction.lower, Data.CommunicationLog.StartTime) | html %]
|
||||
</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Communication Log'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
{
|
||||
Name => Translate("Detail view for %s communication started at %s", Data.CommunicationLog.Direction.lower, Data.CommunicationLog.StartTime),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SidebarColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<a id="OverviewButton" class="CallForAction Fullsize Center Back">
|
||||
<span>
|
||||
<i class="fa fa-caret-left"></i>
|
||||
[% Translate("Back to overview") | html %]
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterObjectLogEntries">[% Translate("Filter for Log Entries") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterObjectLogEntries" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterObjectLogEntries" value="" title="[% Translate("Filter for log entries") | html %]">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Show only entries with specific priority and higher:") | html %]
|
||||
</p>
|
||||
[% Data.PriorityFilter %]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="FieldExplanation">
|
||||
<p>
|
||||
[% Translate("In this screen you can see an overview about incoming and outgoing communications.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="FieldExplanation">
|
||||
<p>
|
||||
[% Translate("You can change the sort and order of those columns by clicking on the column header.") | html %]
|
||||
[% Translate("If you click on the different entries, you will get redirected to a detailed screen about the message.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
<div id="CommunicationObjectWidget" class="WidgetSimple">
|
||||
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>
|
||||
[% Translate("Communication Log Overview (%s)", Data.ObjectCount) | html %]
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
|
||||
<table class="DataTable" id="ObjectListTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="Status Center Sortable"><a href="#">[% Translate("Status") | html %]</a></th>
|
||||
<th class="Sortable InitialSorting"><a href="#">[% Translate("Type") | html %]</a></th>
|
||||
<th class="Direction Center Sortable" title="[% Translate("Direction") | html %]"><a href="#"><i class="fa fa-exchange"></i></a></th>
|
||||
<th class="Sortable"><a href="#">[% Translate("Account") | html %]</a></th>
|
||||
<th class="Sortable"><a href="#">[% Translate("Start Time") | html %]</a></th>
|
||||
<th class="Sortable"><a href="#">[% Translate("End Time") | html %]</a></th>
|
||||
<th class="Sortable"><a href="#">[% Translate("Duration") | html %]</a></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoCommunicationObjectsFound") %]
|
||||
<tr>
|
||||
<td colspan="7">
|
||||
[% Translate("No communication objects found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoCommunicationObjectsFound") %]
|
||||
[% RenderBlockStart("CommunicationObjectRow") %]
|
||||
<tr id="[% Data.ObjectLogID %]" class="[% IF Data.Status == 'Failed' %]Error[% END %]">
|
||||
<td class="Status Center" title="[% Translate(Data.ObjectLogStatus) | html %]">
|
||||
[% IF Data.ObjectLogStatus == 'Successful' %]
|
||||
<i class="fa fa-check Confirmation" aria-hidden="true"></i>
|
||||
[% ELSIF Data.ObjectLogStatus == 'Failed' %]
|
||||
<i class="fa fa-times Error" aria-hidden="true"></i>
|
||||
[% ELSIF Data.ObjectLogStatus == 'Processing' %]
|
||||
<i class="fa fa-circle-o-notch fa-spin Warning" aria-hidden="true"></i>
|
||||
[% END %]
|
||||
<input type="hidden" class="SortData" value="[% Data.ObjectLogStatus | html %]" />
|
||||
</td>
|
||||
<td>
|
||||
[% Data.ObjectLogType | html %]
|
||||
<input type="hidden" class="SortData" value="[% Data.ObjectLogType | html %]" />
|
||||
</td>
|
||||
<td class="Direction">
|
||||
[% IF Data.Direction == 'Incoming' %]
|
||||
<span class="Direction Incoming" title="[% Data.Direction | html %]">
|
||||
<i class="fa fa-long-arrow-left"></i>
|
||||
</span>
|
||||
[% ELSE %]
|
||||
<span class="Direction Outgoing" title="[% Data.Direction | html %]">
|
||||
<i class="fa fa-long-arrow-right"></i>
|
||||
</span>
|
||||
[% END %]
|
||||
</td>
|
||||
<td>
|
||||
[% IF Data.AccountLabel %]
|
||||
[% Data.AccountLabel | html %]
|
||||
[% ELSIF Data.AccountType %]
|
||||
[% Data.AccountType %]
|
||||
[% ELSE %]
|
||||
-
|
||||
[% END %]
|
||||
<input type="hidden" class="SortData" value="[% Data.AccountType | html %]" />
|
||||
</td>
|
||||
<td class="StartTime">
|
||||
[% Data.ObjectLogStartTime | Localize("TimeLong") %]
|
||||
<input type="hidden" class="SortData" value="[% Data.ObjectLogStartTime | html %]" />
|
||||
</td>
|
||||
<td class="EndTime">
|
||||
[% IF Data.ObjectLogEndTime %]
|
||||
[% Data.ObjectLogEndTime | Localize("TimeLong") %]
|
||||
[% ELSE %]
|
||||
-
|
||||
[% END %]
|
||||
<input type="hidden" class="SortData" value="[% Data.ObjectLogEndTime | html %]" />
|
||||
</td>
|
||||
<td class="Duration">
|
||||
[% IF Data.ObjectLogDuration.defined %]
|
||||
[% Translate("%s s", Data.ObjectLogDuration) | html %]
|
||||
[% ELSE %]
|
||||
-
|
||||
[% END %]
|
||||
<input type="hidden" class="SortData" value="[% Data.ObjectLogDuration | html %]" />
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("CommunicationObjectRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="7">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="ObjectLogWidget">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>
|
||||
[% Translate("Communication Log Details") | html %]
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<p>[% Translate("Please select an entry from the list.") | html %]</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,239 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Customer Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Customer Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate('Add Customer'),}) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit Customer")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.CustomerCompanyName ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionSearch") %]
|
||||
<li>
|
||||
<form class="SearchBox" action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value=""/>
|
||||
<input type="hidden" name="Nav" value="[% Data.Nav | html %]"/>
|
||||
<input type="text" name="Search" value="[% Data.Search | html %]" id="Search" title="[% Translate("Search") | html %]"/>
|
||||
<button type="submit" value="[% Translate("Search") | html %]" title="[% Translate("Search") | html %]"><i class="fa fa-search"></i></button>
|
||||
</form>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Wildcards like '*' are allowed.") | html %]
|
||||
</p>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionSearch") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Add"/>
|
||||
<input type="hidden" name="Nav" value="[% Data.Nav | html %]"/>
|
||||
|
||||
<button class="CallForAction Fullsize Center" type="submit"><span><i class="fa fa-plus-square"></i>[% Translate("Add Customer") | html %]</span></button>
|
||||
<br/>
|
||||
<label class="InvisibleText" for="Source">[% Translate("Select") | html %]</label>
|
||||
[% Data.SourceOption %]
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("OverviewHeader") %]
|
||||
<div class="Header">
|
||||
<h2>
|
||||
[% IF Data.ListAll && Data.Limit && Data.ListAll > Data.Limit %]
|
||||
[% Translate("List (only %s shown - more available)", Data.SearchListSize) | html %]
|
||||
[% ELSE %]
|
||||
([% Data.ListAll | html %] [% Translate("total") | html %])
|
||||
[% END %]
|
||||
</h2>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewHeader") %]
|
||||
[% RenderBlockStart("NoSearchTerms") %]
|
||||
<div class="Content">
|
||||
<p>[% Translate("Please enter a search term to look for customers.") | html %]</p>
|
||||
</div>
|
||||
[% RenderBlockEnd("NoSearchTerms") %]
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="Content">
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="W5pc">[% Translate("Customer ID") | html %]</th>
|
||||
<th class="W20pc">[% Translate("Name") | html %]</th>
|
||||
<th class="W25pc">[% Translate("Comment") | html %]</th>
|
||||
[% RenderBlockStart("LocalDB") %]
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
[% RenderBlockEnd("LocalDB") %]
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr class="MasterAction[% IF Data.ValidID && Data.ValidID != 1 %] Invalid[% END %]">
|
||||
<td><a class="AsBlock MasterActionLink" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Change;CustomerID=[% Data.CustomerID | uri %];Nav=[% Data.Nav | uri %]">[% Data.CustomerID | truncate(20) | html %]</a></td>
|
||||
<td>[% Data.CustomerCompanyName | html %]</td>
|
||||
<td title="[% Data.CustomerCompanyComment | html %]">[% Data.CustomerCompanyComment | truncate(26) | html %]</td>
|
||||
[% RenderBlockStart("LocalDBRow") %]
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
[% RenderBlockEnd("LocalDBRow") %]
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
|
||||
[% RenderBlockStart("OverviewUpdate") %]
|
||||
<div class="Header">
|
||||
[% IF Data.Action == 'Add' %]
|
||||
<h2>[% Translate("Add Customer") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit Customer") | html %]</h2>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% IF Config(Data.Source).ReadOnly == 1 %]
|
||||
<div class="WidgetMessage Top Warning">
|
||||
<p><strong>[% Translate("Please note") | html %]</strong>: [% Translate("This customer backend is read only!") | html %]</p>
|
||||
</div>
|
||||
[% END %]
|
||||
<form action="[% Env("CGIHandle") %]" id="edit" class="Validate PreventMultipleSubmits" method="post">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | html %]Action"/>
|
||||
<input type="hidden" name="Nav" value="[% Data.Nav | html %]"/>
|
||||
<input type="hidden" name="CustomerCompanyID" value="[% Data.CustomerCompanyID | html %]"/>
|
||||
<input type="hidden" name="Source" value="[% Data.Source | html %]"/>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike">
|
||||
[% RenderBlockStart("PreferencesGeneric") %]
|
||||
[% RenderBlockStart("PreferencesGenericInputHidden") %]
|
||||
<input type="hidden" name="[% Data.Name | html %]" value="[% Data.Value | html %]"/>
|
||||
[% RenderBlockEnd("PreferencesGenericInputHidden") %]
|
||||
[% RenderBlockStart("PreferencesGenericInput") %]
|
||||
<label for="[% Data.Name | html %]" [% Data.MandatoryClass %]>
|
||||
[% Data.StarLabel %]
|
||||
[% Translate(Data.Item) | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.Value | html %]" class="W50pc [% Data.RequiredClass %] [% Data.InvalidField %] [% Data.Action | html %]" maxlength="200" [% Data.ReadOnlyType %]/>
|
||||
[% RenderBlockStart("PreferencesGenericInputRequired") %]
|
||||
<div id="[% Data.Name | html %]Error" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="[% Data.Name | html %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
[% RenderBlockEnd("PreferencesGenericInputRequired") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("PreferencesGenericInput") %]
|
||||
[% RenderBlockStart("PreferencesGenericOption") %]
|
||||
<label for="[% Data.Name | html %]" [% Data.MandatoryClass %]>
|
||||
[% Data.StarLabel %]
|
||||
[% Translate(Data.Item) | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.Option %]
|
||||
[% RenderBlockStart("PreferencesGenericOptionRequired") %]
|
||||
<div id="[% Data.Name | html %]Error" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="[% Data.Name | html %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
[% RenderBlockEnd("PreferencesGenericOptionRequired") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockEnd("PreferencesGenericOption") %]
|
||||
|
||||
[% RenderBlockStart("DynamicField") %]
|
||||
<div class="Row Row_DynamicField_[% Data.Name | html %]">
|
||||
[% Data.Label %]
|
||||
<div class="Field">
|
||||
[% Data.Field %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("DynamicField") %]
|
||||
|
||||
[% RenderBlockEnd("PreferencesGeneric") %]
|
||||
[% IF Config(Data.Source).ReadOnly != 1 %]
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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") %];Nav=[% Data.Nav | uri %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% END %]
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewUpdate") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,313 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Manage Customer-Group Relations") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Manage Customer-Group Relations'),
|
||||
Link => Data.OverviewLink,
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% IF Data.Type %]
|
||||
[% USE EditTitle = String(Translate(Data.BreadcrumbTitle)) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( " '", Data.Name, "'" ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
|
||||
[% RenderBlockStart("Disabled") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Notice") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="Action" value="AdminSystemConfiguration"/>
|
||||
<input type="hidden" name="Subaction" value="View"/>
|
||||
<input type="hidden" name="Setting" value="CustomerGroupSupport"/>
|
||||
<h3><span class="Warning">[% Translate("This feature is disabled!") | html %]<span></h3>
|
||||
<fieldset>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Just use this feature if you want to define group permissions for customers.") | html %]
|
||||
</p>
|
||||
<div class="Field SpacingTop">
|
||||
<button class="CallForAction Fullsize Center" type="submit" value="[% Translate("Enable it here!") | html %]">
|
||||
<span><i class="fa fa-unlock-alt"></i> [% Translate("Enable it here!") | html %]</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Disabled") %]
|
||||
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];CustomerSearch=[% Data.CustomerSearch | uri %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("Search") %]
|
||||
<li>
|
||||
<form class="SearchBox" action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]" />
|
||||
<input type="text" name="CustomerSearch" id="CustomerSearch" value="[% Data.CustomerSearch | html %]" title="[% Translate("Search") | html %]" />
|
||||
[% RenderBlockStart("SearchChangeGroup") %]
|
||||
<input type="hidden" name="Subaction" value="[% Data.Subaction | html %]" />
|
||||
<input type="hidden" name="ID" value="[% Data.GroupID | html %]" />
|
||||
[% RenderBlockEnd("SearchChangeGroup") %]
|
||||
<button class="Primary" type="submit" value="[% Translate("Search") | html %]" title="[% Translate("Search") | html %]"><span><i class="fa fa-search"></i></span></button>
|
||||
<p class="FieldExplanation">
|
||||
<label for="CustomerSearch">
|
||||
[% Translate("Wildcards like '*' are allowed.") | html %]
|
||||
</label>
|
||||
</p>
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockEnd("Search") %]
|
||||
[% RenderBlockStart("AlwaysGroupsConfig") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminSystemConfiguration;Subaction=View;Setting=CustomerGroupCompanyAlwaysGroups" class="CallForAction Fullsize Center"><span><i class="fa fa-edit"></i>[% Translate("Edit Customer Default Groups") | html %]</span></a>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("These groups are automatically assigned to all customers.") | html %]
|
||||
[% Translate("You can manage these groups via the configuration setting \"CustomerGroupCompanyAlwaysGroups\".") | html %]
|
||||
</p>
|
||||
</li>
|
||||
|
||||
[% RenderBlockEnd("AlwaysGroupsConfig") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterGroups">[% Translate("Filter for Groups") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul>
|
||||
<li>
|
||||
<form action="">
|
||||
<fieldset>
|
||||
<input type="text" id="FilterGroups" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterGroups" value="" title="[% Translate("Filter for Groups") | html %]" />
|
||||
</fieldset>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
[% RenderBlockStart("Note") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Select the customer:group permissions.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If nothing is selected, then there are no permissions in this group (tickets will not be available for the customer).") | html %]
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Note") %]
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("Result") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Search Results") | html %]:</h2>
|
||||
</div>
|
||||
<div class="Content LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="Customers">
|
||||
<li class="Header">[% Translate("Customers") | html %]
|
||||
[% RenderBlockStart("ResultCustomerCount") %]
|
||||
([% Data.CustomerCount | html %])
|
||||
[% RenderBlockEnd("ResultCustomerCount") %]
|
||||
[% RenderBlockStart("ResultCustomerCountLimit") %]
|
||||
(<span class='Error'>[% Data.CustomerCount | html %]</span>)
|
||||
[% RenderBlockEnd("ResultCustomerCountLimit") %]
|
||||
</li>
|
||||
<li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li>
|
||||
[% RenderBlockStart("NoDataFoundMsgCustomer") %]
|
||||
<li>[% Translate("No data found.") | html %]</li>
|
||||
[% RenderBlockEnd("NoDataFoundMsgCustomer") %]
|
||||
[% RenderBlockStart("List1n") %]
|
||||
<li><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=[% Data.Subaction | uri %];ID=[% Data.ID | uri %];CustomerSearch=[% Data.CustomerSearch | uri %]" class="AsBlock">[% Data.Name | html %]</a></li>
|
||||
[% RenderBlockEnd("List1n") %]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="Group">
|
||||
<li class="Header">[% Translate("Groups") | html %]</li>
|
||||
<li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li>
|
||||
[% RenderBlockStart("NoDataFoundMsgGroup") %]
|
||||
<li>[% Translate("No data found.") | html %]</li>
|
||||
[% RenderBlockEnd("NoDataFoundMsgGroup") %]
|
||||
[% RenderBlockStart("Listn1") %]
|
||||
<li><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=[% Data.Subaction | uri %];ID=[% Data.ID | uri %];CustomerSearch=[% Data.CustomerSearch | uri %]" class="AsBlock">[% Data.Name | html %]</a></li>
|
||||
[% RenderBlockEnd("Listn1") %]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Result") %]
|
||||
|
||||
[% RenderBlockStart("Change") %]
|
||||
<div class="Header">
|
||||
<h2>
|
||||
[% RenderBlockStart("ChangeHeadingGroup") %]
|
||||
[% Translate("Change Group Relations for Customer") | html %]
|
||||
[% RenderBlockEnd("ChangeHeadingGroup") %]
|
||||
[% RenderBlockStart("ChangeHeadingCustomer") %]
|
||||
[% Translate("Change Customer Relations for Group") | html %]
|
||||
[% RenderBlockEnd("ChangeHeadingCustomer") %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Data.ActionHome | uri %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a>
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content ">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" name="matrix">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Change[% Data.Type | html %]"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
<input type="hidden" name="CustomerSearch" value="[% Data.CustomerSearch | html %]" />
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<table class="DataTable VariableWidth" id="[% Data.VisibleNeType | html %]">
|
||||
<thead>
|
||||
<tr>
|
||||
<th rowspan="2">[% Translate(Data.VisibleNeType) | html %]
|
||||
[% RenderBlockStart("ChangeItemCount") %]
|
||||
([% Data.ItemCount | html %])
|
||||
[% RenderBlockEnd("ChangeItemCount") %]
|
||||
[% RenderBlockStart("ChangeItemCountLimit") %]
|
||||
(<Span class="Error">[% Data.ItemCount | html %]</span>)
|
||||
[% RenderBlockEnd("ChangeItemCountLimit") %]
|
||||
</th>
|
||||
[% RenderBlockStart("ChangeHeaderContextName") %]
|
||||
<th colspan="[% Data.Count | html %]" class="Center">[% Translate(Data.Name) | html %]</th>
|
||||
[% RenderBlockEnd("ChangeHeaderContextName") %]
|
||||
</tr>
|
||||
<tr>
|
||||
[% RenderBlockStart("ChangeHeader") %]
|
||||
<th class="[% Data.Mark | html %]">
|
||||
<input type="checkbox" name="[% Data.Context | html %]_[% Data.Type | html %]" id="SelectAll[% Data.Context | html %]_[% Data.Type | html %]" title="[% Translate("Toggle %s Permission for all", Translate(Data.Type)) | html %]" value="" />
|
||||
[% Translate(Data.Type) | html %]
|
||||
</th>
|
||||
[% RenderBlockEnd("ChangeHeader") %]
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsgList") %]
|
||||
<tr>
|
||||
<td colspan="[% Data.ColSpan | html %]">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsgList") %]
|
||||
[% RenderBlockStart("ChangeRow") %]
|
||||
<tr>
|
||||
<td><a href="[% Env("Baselink") %]Action=[% Data.ActionHome | uri %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a></td>
|
||||
[% RenderBlockStart("ChangeRowItem") %]
|
||||
<td class="[% Data.Mark | html %]">
|
||||
<input type="checkbox" name="[% Data.Context | html %]_[% Data.Type | html %]" title="[% Translate("Toggle %s permission for %s", Translate(Data.Type), Data.Name) | html %]" value="[% Data.ID | html %]" [% Data.Selected %]/>
|
||||
</td>
|
||||
[% RenderBlockEnd("ChangeRowItem") %]
|
||||
</tr>
|
||||
[% RenderBlockEnd("ChangeRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="3">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="Field SpacingTop">
|
||||
<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>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("Change") %]
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("AlwaysGroups") %]
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Customer Default Groups:") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="AlwaysGroups">
|
||||
<li class="Header">[% Translate("Groups") | html %]</li>
|
||||
[% RenderBlockStart("AlwaysGroupsList") %]
|
||||
<li>[% Data.Name | html %]</li>
|
||||
[% RenderBlockEnd("AlwaysGroupsList") %]
|
||||
</ul>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("No changes can be made to these groups.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("AlwaysGroups") %]
|
||||
|
||||
[% RenderBlockStart("Reference") %]
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Reference") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<dl>
|
||||
[% FOREACH Context IN Data.Contexts %]
|
||||
<dt>[% Translate(Data.ContextLookup.$Context.Name) | html %]</dt>
|
||||
<dd>
|
||||
[% Translate(Data.ContextLookup.$Context.Description) | html %]
|
||||
</dd>
|
||||
|
||||
[% END %]
|
||||
<dt>[% Translate("ro") | html %]</dt>
|
||||
<dd>
|
||||
[% Translate("Read only access to the ticket in this group/queue.") | html %]
|
||||
</dd>
|
||||
|
||||
<dt>[% Translate("rw") | html %]</dt>
|
||||
<dd>
|
||||
[% Translate("Full read and write access to the tickets in this group/queue.") | html %]
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Reference") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,404 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Customer User Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Customer User Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate('Add Customer User'),}) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit Customer User")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.ID ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Nav=[% Data.Nav | uri %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Search;Search=[% Data.Search | uri %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Back to search results") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionSearch") %]
|
||||
<li>
|
||||
<form class="SearchBox" action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Search"/>
|
||||
<input type="hidden" name="Nav" value="[% Data.Nav | html %]"/>
|
||||
<input type="text" name="Search" value="[% Data.Search | html %]" id="Search" title="[% Translate("Search") | html %]"/>
|
||||
<button type="submit" value="[% Translate("Search") | html %]" title="[% Translate("Search") | html %]"><i class="fa fa-search"></i></button>
|
||||
</form>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Wildcards like '*' are allowed.") | html %]
|
||||
</p>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionSearch") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Add"/>
|
||||
<input type="hidden" name="Nav" value="[% Data.Nav | html %]"/>
|
||||
|
||||
<button class="CallForAction Fullsize Center" type="submit"><span><i class="fa fa-plus-square"></i> [% Translate("Add Customer User") | html %]</span></button>
|
||||
<br/>
|
||||
<label class="InvisibleText" for="Source">[% Translate("Select") | html %]</label>
|
||||
[% Data.SourceOption %]
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p>
|
||||
[% Translate("Customer user are needed to have a customer history and to login via customer panel.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("OverviewHeader") %]
|
||||
<div class="Header">
|
||||
<h2>
|
||||
[% IF Data.ListAll && Data.Limit && Data.ListAll > Data.Limit %]
|
||||
[% Translate("List (only %s shown - more available)", Data.SearchListSize) | html %]
|
||||
[% ELSE %]
|
||||
[% Translate("List (%s total)", Data.ListAll) | html %]
|
||||
[% END %]
|
||||
</h2>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewHeader") %]
|
||||
[% RenderBlockStart("NoSearchTerms") %]
|
||||
<div class="Content">
|
||||
<p>[% Translate("Please enter a search term to look for customers.") | html %]</p>
|
||||
</div>
|
||||
[% RenderBlockEnd("NoSearchTerms") %]
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="Content ">
|
||||
<table class="DataTable" id="CustomerTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Username") | html %]</th>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Email") | html %]</th>
|
||||
<th>[% Translate("Customer ID") | html %]</th>
|
||||
<th>[% Translate("Last Login") | html %]</th>
|
||||
[% RenderBlockStart("OverviewResultSwitchToCustomer") %]
|
||||
<th>[% Translate("Login as") | html %]</th>
|
||||
[% RenderBlockEnd("OverviewResultSwitchToCustomer") %]
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="[% Data.ColSpan | html %]">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr [% IF Data.ValidID && Data.ValidID != 1 %]class="Invalid"[% END %]>
|
||||
[% RenderBlockStart("OverviewResultRowLink") %]
|
||||
<td><a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Change;ID=[% Data.CustomerKey | uri %];Search=[% Data.Search | uri %];Nav=[% Data.Nav | uri %]">[% Data.UserLogin | html %]</a></td>
|
||||
[% RenderBlockEnd("OverviewResultRowLink") %]
|
||||
[% RenderBlockStart("OverviewResultRowLinkNone") %]
|
||||
<td><a class="AsBlock" href="#">[% Data.UserLogin | html %]</a></td>
|
||||
[% RenderBlockEnd("OverviewResultRowLinkNone") %]
|
||||
<td>[% Data.UserFullname | html %]</td>
|
||||
<td>[% Data.UserEmail | html %]</td>
|
||||
<td>[% Data.UserCustomerID | html %]</td>
|
||||
<td>[% Data.UserLastLoginTimestamp | Localize("TimeShort") %]</td>
|
||||
[% RenderBlockStart("OverviewResultRowSwitchToCustomer") %]
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Switch;ID=[% Data.UserLogin | uri %];[% Env("ChallengeTokenParam") | html %]" target="_blank">[% Translate("Switch to customer") | html %]</a>
|
||||
</td>
|
||||
[% RenderBlockEnd("OverviewResultRowSwitchToCustomer") %]
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
|
||||
[% RenderBlockStart("OverviewUpdate") %]
|
||||
<div class="Header">
|
||||
[% IF Data.Action == 'Add' %]
|
||||
<h2>[% Translate("Add Customer User") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit Customer User") | html %]</h2>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% IF Config(Data.Source).ReadOnly == 1 || Config(Data.Source).Module.match('LDAP') %]
|
||||
<div class="WidgetMessage Top Warning">
|
||||
<p><strong>[% Translate("Please note") | html %]</strong>: [% Translate("This customer backend is read only, but the customer user preferences can be changed!") | html %]</p>
|
||||
</div>
|
||||
[% END %]
|
||||
<form action="[% Env("CGIHandle") %]" enctype="multipart/form-data" method="post" name="compose" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | html %]Action"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
<input type="hidden" name="Source" value="[% Data.Source | html %]"/>
|
||||
<input type="hidden" name="Nav" value="[% Data.Nav | html %]"/>
|
||||
<input type="hidden" name="Search" value="[% Data.Search | html %]"/>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike">
|
||||
[% RenderBlockStart("PreferencesGeneric") %]
|
||||
[% RenderBlockStart("PreferencesGenericInputHidden") %]
|
||||
<div class="Field">
|
||||
<input type="hidden" name="[% Data.Name | html %]" value="[% Data.Value | html %]"[% IF ReadOnly %] readonly="readonly"[% END %]/>
|
||||
</div>
|
||||
[% RenderBlockEnd("PreferencesGenericInputHidden") %]
|
||||
[% RenderBlockStart("PreferencesGenericInput") %]
|
||||
<label class="[% Data.RequiredLabelClass | html %]" for="[% Data.Name | html %]"><span class="Marker">[% Data.RequiredLabelCharacter | html %]</span> [% Translate(Data.Item) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="[% IF Data.RequiredClass.match('Validate_Email') %]email[% ELSE %]text[% END %]" id="[% Data.Name | html %]" name="[% Data.Name | html %]" class="W50pc [% Data.RequiredClass | html %] [% Data.InvalidField | html %]" value="[% Data.Value | html %]"[% IF Data.ReadOnly %] readonly="readonly"[% END %]/>
|
||||
[% RenderBlockStart("PreferencesGenericErrorMsg") %]
|
||||
<div id="[% Data.Name | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
[% RenderBlockEnd("PreferencesGenericErrorMsg") %]
|
||||
[% RenderBlockStart("PreferencesUserEmailErrorMsg") %]
|
||||
<div id="[% Data.Name | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required and needs to be a valid email address.") | html %]</p></div>
|
||||
[% RenderBlockEnd("PreferencesUserEmailErrorMsg") %]
|
||||
[% RenderBlockStart("PreferencesGenericServerErrorMsg") %]
|
||||
<div id="[% Data.Name | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
[% RenderBlockEnd("PreferencesGenericServerErrorMsg") %]
|
||||
[% RenderBlockStart("PreferencesUserEmailInvalidConfigServerErrorMsg") %]
|
||||
<div id="[% Data.Name | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate("This email address is not allowed due to the system configuration.") | html %]</p></div>
|
||||
[% RenderBlockEnd("PreferencesUserEmailInvalidConfigServerErrorMsg") %]
|
||||
[% RenderBlockStart("PreferencesUserEmailInvalidMXServerErrorMsg") %]
|
||||
<div id="[% Data.Name | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate("This email address failed MX check.") | html %]</p></div>
|
||||
[% RenderBlockEnd("PreferencesUserEmailInvalidMXServerErrorMsg") %]
|
||||
[% RenderBlockStart("PreferencesUserEmailInvalidDNSServerErrorMsg") %]
|
||||
<div id="[% Data.Name | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate("DNS problem, please check your configuration and the error log.") | html %]</p></div>
|
||||
[% RenderBlockEnd("PreferencesUserEmailInvalidDNSServerErrorMsg") %]
|
||||
[% RenderBlockStart("PreferencesUserEmailInvalidSyntaxServerErrorMsg") %]
|
||||
<div id="[% Data.Name | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate("The syntax of this email address is incorrect.") | html %]</p></div>
|
||||
[% RenderBlockEnd("PreferencesUserEmailInvalidSyntaxServerErrorMsg") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("PreferencesGenericInput") %]
|
||||
[% RenderBlockStart("PreferencesGenericPassword") %]
|
||||
<label class="[% Data.RequiredLabelClass | html %]" for="[% Data.Name | html %]"><span class="Marker">[% Data.RequiredLabelCharacter | html %]</span> [% Translate(Data.Item) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="password" id="[% Data.Name | html %]" name="[% Data.Name | html %]" class="W50pc [% Data.RequiredClass | html %] [% Data.InvalidField | html %]" value="" maxlength="100" [% IF Data.ReadOnly %] readonly="readonly"[% END %]/>
|
||||
<div id="[% Data.Name | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="[% Data.Name | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("PreferencesGenericPassword") %]
|
||||
[% RenderBlockStart("PreferencesGenericOption") %]
|
||||
<label class="[% Data.RequiredLabelClass | html %]" for="[% Data.Name | html %]"><span class="Marker">[% Data.RequiredLabelCharacter | html %]</span> [% Translate(Data.Item) | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.Option %]
|
||||
<div id="[% Data.Name | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="[% Data.Name | html %]ServerError" class="TooltipErrorMessage">
|
||||
[% IF Data.Name == 'UserCustomerID' %]
|
||||
<p>[% Translate("This CustomerID is invalid.") | html %]</p>
|
||||
[% ELSE %]
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
[% END %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("PreferencesGenericOption") %]
|
||||
[% RenderBlockEnd("PreferencesGeneric") %]
|
||||
[% RenderBlockStart("Item") %]
|
||||
[% RenderBlockStart("InputKey") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="[% Data.Name | html %]"type="text" name="[% Data.Name | html %]" class="W50pc" value="[% Data.SelectedID | html %]"/>
|
||||
<div class="FieldExplanation"> [% Translate(Data.Key) | html %] </div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("InputKey") %]
|
||||
[% RenderBlockStart("Input") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="[% Data.Name | html %]" type="text" name="[% Data.Name | html %]" class="W50pc" value="[% Data.SelectedID | html %]"/>
|
||||
<div class="FieldExplanation">[% Translate(Data.Desc) | html %][% Translate(Data.Key) | html %]</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Input") %]
|
||||
[% RenderBlockStart("Option") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.Option %]
|
||||
<div class="FieldExplanation">[% Translate(Data.Desc) | html %][% Translate(Data.Key) | html %]</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Option") %]
|
||||
[% RenderBlockStart("Upload") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="[% Data.Name | html %]" name="[% Data.Name | html %]" type="file"/>
|
||||
<div class="FieldExplanation">[% Translate(Data.Desc) | html %][% Translate(Data.Key) | html %]</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Upload") %]
|
||||
[% RenderBlockStart("Password") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="[% Data.Name | html %]" type="password" name="[% Data.Name | html %]" class="W50pc" value="[% Data.SelectedID | html %]" autocomplete="off" />
|
||||
<div>[% Translate(Data.Key) | html %]</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Password") %]
|
||||
[% RenderBlockStart("DynamicField") %]
|
||||
<div class="Row Row_DynamicField_[% Data.Name | html %]">
|
||||
[% Data.Label %]
|
||||
<div class="Field">
|
||||
[% Data.Field %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("DynamicField") %]
|
||||
[% RenderBlockEnd("Item") %]
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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") %];Nav=[% Data.Nav | uri %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewUpdate") %]
|
||||
</div>
|
||||
[% RenderBlockStart("EffectivePermissions") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Effective Permissions for Customer User") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<dl>
|
||||
<dt>[% Translate("Group Permissions") | html %]</dt>
|
||||
<dd>
|
||||
<table class="DataTable VariableWidth SpacingTopSmall" id="GroupPermissionsTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Group") | html %]</th>
|
||||
[% RenderBlockStart("HeaderGroupPermissionType") %]
|
||||
<th class="Center">[% Translate(Data.Type) | html %]</th>
|
||||
[% RenderBlockEnd("HeaderGroupPermissionType") %]
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoGroupPermissionsFoundMsg") %]
|
||||
<tr>
|
||||
<td>
|
||||
[% Translate("This customer user has no group permissions.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoGroupPermissionsFoundMsg") %]
|
||||
[% RenderBlockStart("GroupPermissionTableRow") %]
|
||||
<tr>
|
||||
<td><a href="[% Env("Baselink") %]Action=AdminGroup;Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a></td>
|
||||
[% RenderBlockStart("GroupPermissionMark") %]
|
||||
[% RenderBlockStart("GroupPermissionMarkOn") %]
|
||||
<td class="Center [% Data.Highlight | html %]"><i class="fa fa-check" style="color: green;" /></td>
|
||||
[% RenderBlockEnd("GroupPermissionMarkOn") %]
|
||||
[% RenderBlockStart("GroupPermissionMarkOff") %]
|
||||
<td class="Center [% Data.Highlight | html %]"><i class="fa fa-times" style="color: lightgray;" /></td>
|
||||
[% RenderBlockEnd("GroupPermissionMarkOff") %]
|
||||
[% RenderBlockEnd("GroupPermissionMark") %]
|
||||
</tr>
|
||||
[% RenderBlockEnd("GroupPermissionTableRow") %]
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Table above shows effective group permissions for the customer user. The matrix takes into account all inherited permissions (e.g. via customer groups). Note: The table does not consider changes made to this form without submitting it.") | html %]
|
||||
</p>
|
||||
</dd>
|
||||
<dt>[% Translate("Customer Access") | html %]</dt>
|
||||
<dd>
|
||||
<table class="DataTable VariableWidth SpacingTopSmall" id="CustomerPermissionsTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Customer") | html %]</th>
|
||||
[% RenderBlockStart("HeaderCustomerAccessContext") %]
|
||||
<th class="Center">[% Translate(Data.Name) | html %]</th>
|
||||
[% RenderBlockEnd("HeaderCustomerAccessContext") %]
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoCustomerAccessFoundMsg") %]
|
||||
<tr>
|
||||
<td>
|
||||
[% Translate("This customer user has no customer access.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoCustomerAccessFoundMsg") %]
|
||||
[% RenderBlockStart("CustomerAccessTableRow") %]
|
||||
<tr>
|
||||
<td><a href="[% Env("Baselink") %]Action=AdminCustomerCompany;Subaction=Change;CustomerID=[% Data.ID | uri %]">[% Data.Name | html %]</a></td>
|
||||
[% RenderBlockStart("CustomerAccessMark") %]
|
||||
[% RenderBlockStart("CustomerAccessMarkOn") %]
|
||||
<td class="Center"><i class="fa fa-check" style="color: green;" /></td>
|
||||
[% RenderBlockEnd("CustomerAccessMarkOn") %]
|
||||
[% RenderBlockStart("CustomerAccessMarkOff") %]
|
||||
<td class="Center"><i class="fa fa-times" style="color: lightgray;" /></td>
|
||||
[% RenderBlockEnd("CustomerAccessMarkOff") %]
|
||||
[% RenderBlockEnd("CustomerAccessMark") %]
|
||||
</tr>
|
||||
[% RenderBlockEnd("CustomerAccessTableRow") %]
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Table above shows granted customer access for the customer user by permission context. The matrix takes into account all inherited access (e.g. via customer groups). Note: The table does not consider changes made to this form without submitting it.") | html %]
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("EffectivePermissions") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,199 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Manage Customer User-Customer Relations") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Manage Customer User-Customer Relations'),
|
||||
Link => Data.OverviewLink,
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% IF Data.Type %]
|
||||
[% USE EditTitle = String(Translate(Data.BreadcrumbTitle)) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( " '", Data.Name, "'" ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Search=[% Data.Search | uri %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("Search") %]
|
||||
<li>
|
||||
<form class="SearchBox" action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]" />
|
||||
<input type="text" name="Search" id="Search" value="[% Data.Search | html %]" title="[% Translate("Search") | html %]" />
|
||||
[% RenderBlockStart("SearchChange") %]
|
||||
<input type="hidden" name="Subaction" value="[% Data.Subaction | html %]" />
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]" />
|
||||
[% RenderBlockEnd("SearchChange") %]
|
||||
<button class="Primary" type="submit" value="[% Translate("Search") | html %]" title="[% Translate("Search") | html %]"><span><i class="fa fa-search"></i></span></button>
|
||||
<p class="FieldExplanation">
|
||||
<label for="Search">
|
||||
[% Translate("Wildcards like '*' are allowed.") | html %]
|
||||
</label>
|
||||
</p>
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockEnd("Search") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
[% RenderBlockStart("Note") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Select the customer user:customer relations.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Note") %]
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("Result") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Search Results") | html %]:</h2>
|
||||
</div>
|
||||
<div class="Content LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="CustomerUsers">
|
||||
<li class="Header">[% Translate("Customer Users") | html %]
|
||||
[% RenderBlockStart("ResultCustomerUserCount") %]
|
||||
([% Data.CustomerUserCount | html %])
|
||||
[% RenderBlockEnd("ResultCustomerUserCount") %]
|
||||
[% RenderBlockStart("ResultCustomerUserCountLimit") %]
|
||||
(<span class='Error'>[% Data.CustomerUserCount | html %]</span>)
|
||||
[% RenderBlockEnd("ResultCustomerUserCountLimit") %]
|
||||
</li>
|
||||
<li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li>
|
||||
[% RenderBlockStart("NoDataFoundMsgCustomerUser") %]
|
||||
<li>[% Translate("No data found.") | html %]</li>
|
||||
[% RenderBlockEnd("NoDataFoundMsgCustomerUser") %]
|
||||
[% RenderBlockStart("List1n") %]
|
||||
<li><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=[% Data.Subaction | uri %];ID=[% Data.ID | uri %]" class="AsBlock">[% Data.Name | html %]</a></li>
|
||||
[% RenderBlockEnd("List1n") %]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="Customers">
|
||||
<li class="Header">[% Translate("Customers") | html %]
|
||||
[% RenderBlockStart("ResultCustomerCount") %]
|
||||
([% Data.CustomerCount | html %])
|
||||
[% RenderBlockEnd("ResultCustomerCount") %]
|
||||
[% RenderBlockStart("ResultCustomerCountLimit") %]
|
||||
(<span class='Error'>[% Data.CustomerCount | html %]</span>)
|
||||
[% RenderBlockEnd("ResultCustomerCountLimit") %]
|
||||
</li>
|
||||
<li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li>
|
||||
[% RenderBlockStart("NoDataFoundMsgCustomer") %]
|
||||
<li>[% Translate("No data found.") | html %]</li>
|
||||
[% RenderBlockEnd("NoDataFoundMsgCustomer") %]
|
||||
[% RenderBlockStart("Listn1") %]
|
||||
<li><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=[% Data.Subaction | uri %];ID=[% Data.ID | uri %]" class="AsBlock">[% Data.Name | html %]</a></li>
|
||||
[% RenderBlockEnd("Listn1") %]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Result") %]
|
||||
|
||||
[% RenderBlockStart("Change") %]
|
||||
<div class="Header">
|
||||
<h2>
|
||||
[% RenderBlockStart("ChangeHeadingCustomerUser") %]
|
||||
[% Translate("Change Customer Relations for Customer User") | html %]
|
||||
[% RenderBlockEnd("ChangeHeadingCustomerUser") %]
|
||||
[% RenderBlockStart("ChangeHeadingCustomer") %]
|
||||
[% Translate("Change Customer User Relations for Customer") | html %]
|
||||
[% RenderBlockEnd("ChangeHeadingCustomer") %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Data.ActionHome | uri %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a>
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content ">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" name="matrix">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Change[% Data.Type | html %]"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
<input type="hidden" name="Search" value="[% Data.Search | html %]" />
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<table class="DataTable VariableWidth" id="[% Data.VisibleNeType | html %]">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate(Data.VisibleNeType) | html %]
|
||||
[% RenderBlockStart("ChangeItemCount") %]
|
||||
([% Data.ItemCount | html %])
|
||||
[% RenderBlockEnd("ChangeItemCount") %]
|
||||
[% RenderBlockStart("ChangeItemCountLimit") %]
|
||||
(<Span class="Error">[% Data.ItemCount | html %]</span>)
|
||||
[% RenderBlockEnd("ChangeItemCountLimit") %]
|
||||
</th>
|
||||
[% RenderBlockStart("ChangeHeader") %]
|
||||
<th class="Center [% Data.Mark | html %]">
|
||||
<input type="checkbox" id="SelectAllItemsSelected" name="ItemsSelected" title="[% Translate("Toggle active state for all") | html %]" value="" />
|
||||
[% Translate("Active") | html %]
|
||||
</th>
|
||||
[% RenderBlockEnd("ChangeHeader") %]
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsgList") %]
|
||||
<tr>
|
||||
<td colspan="[% Data.ColSpan | html %]">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsgList") %]
|
||||
[% RenderBlockStart("ChangeRow") %]
|
||||
<tr>
|
||||
<td><a href="[% Env("Baselink") %]Action=[% Data.ActionHome | uri %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a></td>
|
||||
<td class="[% Data.Mark | html %]">
|
||||
<input type="checkbox" name="ItemsSelected" title="[% Translate("Toggle active state for %s", Data.Name) | html %]" value="[% Data.ID | html %]" [% Data.Selected %]/>
|
||||
<input type="hidden" name="ItemsAll" value="[% Data.ID | html %]"/>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("ChangeRow") %]
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="Field SpacingTop">
|
||||
<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>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("Change") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,297 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
|
||||
<h1 class="InvisibleText">[% Translate("Manage Customer User-Group Relations") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Manage Customer User-Group Relations'),
|
||||
Link => Data.OverviewLink,
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% IF Data.Type %]
|
||||
[% USE EditTitle = String(Translate(Data.BreadcrumbTitle)) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( " '", Data.Name, "'" ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
|
||||
[% RenderBlockStart("Disabled") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Notice") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="Action" value="AdminSystemConfiguration"/>
|
||||
<input type="hidden" name="Subaction" value="View"/>
|
||||
<input type="hidden" name="Setting" value="CustomerGroupSupport"/>
|
||||
<h3><span class="Warning">[% Translate("This feature is disabled!") | html %]<span></h3>
|
||||
<fieldset>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Just use this feature if you want to define group permissions for customer users.") | html %]
|
||||
</p>
|
||||
<div class="Field SpacingTop">
|
||||
<button class="CallForAction Fullsize Center" type="submit" value="[% Translate("Enable it here!") | html %]">
|
||||
<span><i class="fa fa-unlock-alt"></i> [% Translate("Enable it here!") | html %]</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Disabled") %]
|
||||
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];CustomerUserSearch=[% Data.CustomerUserSearch | uri %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("Search") %]
|
||||
<li>
|
||||
<form class="SearchBox" action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]" />
|
||||
<input type="text" name="CustomerUserSearch" id="CustomerUserSearch" value="[% Data.CustomerUserSearch | html %]" title="[% Translate("Search") | html %]" />
|
||||
[% RenderBlockStart("SearchChangeGroup") %]
|
||||
<input type="hidden" name="Subaction" value="[% Data.Subaction | html %]" />
|
||||
<input type="hidden" name="ID" value="[% Data.GroupID | html %]" />
|
||||
[% RenderBlockEnd("SearchChangeGroup") %]
|
||||
<button class="Primary" type="submit" value="[% Translate("Search") | html %]" title="[% Translate("Search") | html %]"><span><i class="fa fa-search"></i></span></button>
|
||||
<p class="FieldExplanation">
|
||||
<label for="CustomerUserSearch">
|
||||
[% Translate("Wildcards like '*' are allowed.") | html %]
|
||||
</label>
|
||||
</p>
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockEnd("Search") %]
|
||||
[% RenderBlockStart("AlwaysGroupsConfig") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminSystemConfiguration;Subaction=View;Setting=CustomerGroupAlwaysGroups" class="CallForAction Fullsize Center"><span><i class="fa fa-edit"></i>[% Translate("Edit Customer User Default Groups") | html %]</span></a>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("These groups are automatically assigned to all customer users.") | html %]
|
||||
[% Translate("You can manage these groups via the configuration setting \"CustomerGroupAlwaysGroups\".") | html %]
|
||||
</p>
|
||||
</li>
|
||||
|
||||
[% RenderBlockEnd("AlwaysGroupsConfig") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterGroups">[% Translate("Filter for Groups") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul>
|
||||
<li>
|
||||
<form action="">
|
||||
<fieldset>
|
||||
<input type="text" id="FilterGroups" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterGroups" value="" title="[% Translate("Filter for groups") | html %]" />
|
||||
</fieldset>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
[% RenderBlockStart("Note") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Select the customer user - group permissions.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If nothing is selected, then there are no permissions in this group (tickets will not be available for the customer user).") | html %]
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Note") %]
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("Result") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Search Results") | html %]:</h2>
|
||||
</div>
|
||||
<div class="Content LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="Customers">
|
||||
<li class="Header">[% Translate("Customer Users") | html %]
|
||||
[% RenderBlockStart("ResultCustomerUserCount") %]
|
||||
([% Data.CustomerUserCount | html %])
|
||||
[% RenderBlockEnd("ResultCustomerUserCount") %]
|
||||
[% RenderBlockStart("ResultCustomerUserCountLimit") %]
|
||||
(<span class='Error'>[% Data.CustomerUserCount | html %]</span>)
|
||||
[% RenderBlockEnd("ResultCustomerUserCountLimit") %]
|
||||
</li>
|
||||
<li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li>
|
||||
[% RenderBlockStart("NoDataFoundMsgCustomer") %]
|
||||
<li>[% Translate("No data found.") | html %]</li>
|
||||
[% RenderBlockEnd("NoDataFoundMsgCustomer") %]
|
||||
[% RenderBlockStart("List1n") %]
|
||||
<li><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=[% Data.Subaction | uri %];ID=[% Data.ID | uri %];CustomerUserSearch=[% Data.CustomerUserSearch | uri %]" class="AsBlock">[% Data.Name | html %]</a></li>
|
||||
[% RenderBlockEnd("List1n") %]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="Group">
|
||||
<li class="Header">[% Translate("Groups") | html %]</li>
|
||||
<li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li>
|
||||
[% RenderBlockStart("NoDataFoundMsgGroup") %]
|
||||
<li>[% Translate("No data found.") | html %]</li>
|
||||
[% RenderBlockEnd("NoDataFoundMsgGroup") %]
|
||||
[% RenderBlockStart("Listn1") %]
|
||||
<li><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=[% Data.Subaction | uri %];ID=[% Data.ID | uri %];CustomerUserSearch=[% Data.CustomerUserSearch | uri %]" class="AsBlock">[% Data.Name | html %]</a></li>
|
||||
[% RenderBlockEnd("Listn1") %]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Result") %]
|
||||
|
||||
[% RenderBlockStart("Change") %]
|
||||
<div class="Header">
|
||||
<h2>
|
||||
[% Translate(Data.BreadcrumbTitle) | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Data.ActionHome | uri %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a>
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content ">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" name="matrix">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Change[% Data.Type | html %]"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
<input type="hidden" name="CustomerUserSearch" value="[% Data.CustomerUserSearch | html %]" />
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<table class="DataTable VariableWidth" id="[% Data.VisibleNeType | html %]">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate(Data.VisibleNeType) | html %]
|
||||
[% RenderBlockStart("ChangeItemCount") %]
|
||||
([% Data.ItemCount | html %])
|
||||
[% RenderBlockEnd("ChangeItemCount") %]
|
||||
[% RenderBlockStart("ChangeItemCountLimit") %]
|
||||
(<Span class="Error">[% Data.ItemCount | html %]</span>)
|
||||
[% RenderBlockEnd("ChangeItemCountLimit") %]
|
||||
</th>
|
||||
[% RenderBlockStart("ChangeHeader") %]
|
||||
<th class="Center [% Data.Mark | html %]">
|
||||
<input type="checkbox" name="[% Data.Type | html %]" id="SelectAll[% Data.Type | html %]" title="[% Translate("Toggle %s Permission for all", Translate(Data.Type)) | html %]" value="" />
|
||||
[% Translate(Data.Type) | html %]
|
||||
</th>
|
||||
[% RenderBlockEnd("ChangeHeader") %]
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsgList") %]
|
||||
<tr>
|
||||
<td colspan="[% Data.ColSpan | html %]">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsgList") %]
|
||||
[% RenderBlockStart("ChangeRow") %]
|
||||
<tr>
|
||||
<td><a href="[% Env("Baselink") %]Action=Admin[% Data.NeType | uri %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a></td>
|
||||
[% RenderBlockStart("ChangeRowItem") %]
|
||||
<td class="[% Data.Mark | html %]">
|
||||
<input type="checkbox" name="[% Data.Type | html %]" title="[% Translate("Toggle %s permission for %s", Translate(Data.Type), Data.Name) | html %]" value="[% Data.ID | html %]" [% Data.Selected %]/>
|
||||
</td>
|
||||
[% RenderBlockEnd("ChangeRowItem") %]
|
||||
</tr>
|
||||
[% RenderBlockEnd("ChangeRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="3">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="Field SpacingTop">
|
||||
<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>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("Change") %]
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("AlwaysGroups") %]
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Customer User Default Groups:") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="AlwaysGroups">
|
||||
<li class="Header">[% Translate("Groups") | html %]</li>
|
||||
[% RenderBlockStart("AlwaysGroupsList") %]
|
||||
<li>[% Data.Name | html %]</li>
|
||||
[% RenderBlockEnd("AlwaysGroupsList") %]
|
||||
</ul>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("No changes can be made to these groups.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("AlwaysGroups") %]
|
||||
|
||||
[% RenderBlockStart("Reference") %]
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Reference") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<dl>
|
||||
<dt>[% Translate("ro") | html %]</dt>
|
||||
<dd>
|
||||
[% Translate("Read only access to the ticket in this group/queue.") | html %]
|
||||
</dd>
|
||||
|
||||
<dt>[% Translate("rw") | html %]</dt>
|
||||
<dd>
|
||||
[% Translate("Full read and write access to the tickets in this group/queue.") | html %]
|
||||
</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Reference") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,211 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
|
||||
<h1 class="InvisibleText">[% Translate("Manage Customer User-Service Relations") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Manage Customer User-Service Relations'),
|
||||
Link => Data.OverviewLink,
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% IF Data.Type %]
|
||||
[% USE EditTitle = String(Translate(Data.BreadcrumbTitle)) %]
|
||||
[% IF Data.Name %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append(" '", Data.Name, "'") }) %]
|
||||
[% ELSE %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append("") }) %]
|
||||
[% END %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];CustomerUserSearch=[% Data.CustomerUserSearch | uri %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
|
||||
[% RenderBlockStart("Search") %]
|
||||
<li>
|
||||
<form class="SearchBox" action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]" />
|
||||
<input type="text" name="CustomerUserSearch" id="CustomerUserSearch" value="[% Data.CustomerUserSearch | html %]" title="[% Translate("Search") | html %]" />
|
||||
[% RenderBlockStart("SearchAllocateService") %]
|
||||
<input type="hidden" name="Subaction" value="[% Data.Subaction | html %]" />
|
||||
<input type="hidden" name="ServiceID" value="[% Data.ServiceID | html %]" />
|
||||
[% RenderBlockEnd("SearchAllocateService") %]
|
||||
<button class="Primary" type="submit" value="[% Translate("Search") | html %]" title="[% Translate("Search") | html %]"><span><i class="fa fa-search"></i></span></button>
|
||||
<p class="FieldExplanation">
|
||||
<label for="CustomerUserSearch">
|
||||
[% Translate("Wildcards like '*' are allowed.") | html %]
|
||||
</label>
|
||||
</p>
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockEnd("Search") %]
|
||||
[% RenderBlockStart("Default") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=AllocateCustomerUser" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-edit"></i> [% Translate("Edit default services") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("Default") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterServices">[% Translate("Filter for Services") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul>
|
||||
<li>
|
||||
<form action="">
|
||||
<fieldset>
|
||||
<input type="text" placeholder="[% Translate("Just start typing to filter...") | html %]" id="FilterServices" class="FilterBox" name="FilterServices" value="" title="[% Translate("Filter for services") | html %]" />
|
||||
</fieldset>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("Result") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Search Results") | html %]:</h2>
|
||||
</div>
|
||||
<div class="Content LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="Customers">
|
||||
<li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li>
|
||||
<li class="Header">[% Translate("Customer Users") | html %]
|
||||
[% RenderBlockStart("ResultCustomerUserCount") %]
|
||||
([% Data.CustomerUserCount | html %])
|
||||
[% RenderBlockEnd("ResultCustomerUserCount") %]
|
||||
[% RenderBlockStart("ResultCustomerUserCountLimit") %]
|
||||
(<span class='Error'>[% Data.CustomerUserCount | html %]</span>)
|
||||
[% RenderBlockEnd("ResultCustomerUserCountLimit") %]
|
||||
</li>
|
||||
[% RenderBlockStart("ResultUserRow") %]
|
||||
<li><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=AllocateCustomerUser;CustomerUserLogin=[% Data.ID | uri %];CustomerUserSearch=[% Data.CustomerUserSearch | uri %];ServiceSearch=[% Data.ServiceSearch | uri %]" class="AsBlock">[% Data.Name | html %]</a></li>
|
||||
[% RenderBlockEnd("ResultUserRow") %]
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<li>[% Translate("No data found.") | html %]</li>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="Service">
|
||||
<li class="Header">[% Translate("Services") | html %]
|
||||
</li>
|
||||
<li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li>
|
||||
[% RenderBlockStart("NoServiceFoundMsg") %]
|
||||
<li>[% Translate("No data found.") | html %]</li>
|
||||
[% RenderBlockEnd("NoServiceFoundMsg") %]
|
||||
[% RenderBlockStart("ResultServiceRow") %]
|
||||
<li class="OneRow"><a title="[% Data.Name | html %]" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=AllocateService;ServiceID=[% Data.ID | uri %];CustomerUserSearch=[% Data.CustomerUserSearch | uri %]" class="AsBlock">[% Data.Name | html %]</a></li>
|
||||
[% RenderBlockEnd("ResultServiceRow") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Result") %]
|
||||
|
||||
[% RenderBlockStart("AllocateItem") %]
|
||||
<div class="Header">
|
||||
<h2>
|
||||
[% Translate(Data.BreadcrumbTitle) | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Data.ActionHome | uri %];Subaction=[% Data.SubactionHeader | uri %];[% Data.IDHeaderStrg | uri %]=[% Data.ID | uri %]">[% Data.Name | html %]</a>
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content LayoutGrid ColumnsWithSpacing">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" name="matrix">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Allocate[% Data.Type | html %]Save"/>
|
||||
<input type="hidden" name="CustomerUserSearch" value="[% Data.CustomerUserSearch | html %]"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
[% IF Data.Subaction == 'AllocateService' OR Data.Subaction == 'AllocateCustomerUser' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<table class="DataTable VariableWidth" id="[% Data.NeType | html %]">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate(Data.VisibleNeType) | html %]
|
||||
[% RenderBlockStart("AllocateItemCount") %]
|
||||
([% Data.ItemCount | html %])
|
||||
[% RenderBlockEnd("AllocateItemCount") %]
|
||||
[% RenderBlockStart("AllocateItemCountLimit") %]
|
||||
(<span class="Error">[% Data.ItemCount | html %]</span>)
|
||||
[% RenderBlockEnd("AllocateItemCountLimit") %]
|
||||
</th>
|
||||
<th>
|
||||
<input type="checkbox" id="SelectAllItemsSelected" name="ItemsSelected" title="[% Translate("Toggle active state for all") | html %]" value="" />
|
||||
[% Translate("Active") | html %]
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsgList") %]
|
||||
<tr>
|
||||
<td colspan="[% Data.ColSpan | html %]">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsgList") %]
|
||||
[% RenderBlockStart("AllocateItemRow") %]
|
||||
<tr>
|
||||
<td><a href="[% Env("Baselink") %]Action=[% Data.ActionNeHome | uri %];Subaction=[% Data.SubactionRow | uri %];[% Data.IDRowStrg | uri %]=[% Data.ID | uri %]">[% Data.Name | html %]</a></td>
|
||||
<td>
|
||||
<input type="checkbox" name="ItemsSelected" title="[% Translate("Toggle active state for %s", Data.Name) | html %]" value="[% Data.ID | html %]" [% Data.Checked | html %]/>
|
||||
<input type="hidden" name="ItemsAll" value="[% Data.ID | html %]"/>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("AllocateItemRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="3">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Subaction == 'AllocateService' OR Data.Subaction == 'AllocateCustomerUser' %]
|
||||
<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") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("AllocateItem") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,205 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[%
|
||||
SET OTRSBusinessLabel = '<strong><a href="#" class="OTRSBusinessRequired">OTRS Business Solution</a></strong>™';
|
||||
%]
|
||||
|
||||
|
||||
[% RenderBlockStart("Main") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Dynamic Fields Management") | html %] - [% Translate(Data.Action) | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Dynamic Fields Management'),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionAddDynamicField") %]
|
||||
<li>
|
||||
<h4><label for="[% Data.SelectName | html %]">[% Translate( Data.ObjectTypeName ) | html %]</label></h4>
|
||||
[% Data.AddDynamicFieldStrg %]
|
||||
<div class="FieldExplanation">
|
||||
<p>[% Translate("Add new field for object") | html %]: [% Translate(Data.ObjectType) | html %]</p>
|
||||
</div>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAddDynamicField") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterDynamicFields">[% Translate("Filter for Dynamic Fields") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterDynamicFields" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterDynamicFields" value="" title="[% Translate("Filter for dynamic fields") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[% IF !Data.OTRSBusinessIsInstalled %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("More Business Fields") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="FieldExplanation">
|
||||
<p>
|
||||
[% Translate("Would you like to benefit from additional dynamic field types for businesses? Upgrade to %s to get access to the following field types:") | html | ReplacePlaceholders(OTRSBusinessLabel) %]
|
||||
</p>
|
||||
<dl>
|
||||
<dt>[% Translate('Database') | html %]</dt>
|
||||
<dd>[% Translate('Use external databases as configurable data sources for this dynamic field.') | html %]</dd>
|
||||
|
||||
<dt>[% Translate('Web service') | html %]</dt>
|
||||
<dd>[% Translate('External web services can be configured as data sources for this dynamic field.') | html %]</dd>
|
||||
|
||||
<dt>[% Translate('Contact with data') | html %]</dt>
|
||||
<dd>[% Translate('This feature allows to add (multiple) contacts with data to tickets.') | html %]</dd>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% END %]
|
||||
|
||||
|
||||
[% RenderBlockStart("Hint") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="FieldExplanation">
|
||||
<p>
|
||||
[% Translate("To add a new field, select the field type from one of the object's list, the object defines the boundary of the field and it can't be changed after the field creation.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Hint") %]
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Dynamic Fields List") | html %]</h2>
|
||||
|
||||
[% RenderBlockStart("ContextSettings") %]
|
||||
<ul class="ContextFunctions">
|
||||
<li class="ContextSettings">
|
||||
<a href="#" id="ShowContextSettingsDialog" title="[% Translate("Settings") | html %]">
|
||||
<i class="fa fa-cog"></i>
|
||||
<span>[% Translate("Settings") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div id="ContextSettingsDialogContainer" class="Hidden">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" id="ContextSettingsDialog">
|
||||
<input type="hidden" name="Action" value="AgentPreferences"/>
|
||||
<input type="hidden" name="Subaction" value="Update"/>
|
||||
<input type="hidden" name="Group" value="[% Data.Group | html %]"/>
|
||||
<input type="hidden" name="RedirectURL" value="[% Data.RequestedURL | html %]"/>
|
||||
<fieldset class="TableLike">
|
||||
<label for="[% Data.PreferencesKey | html %]">[% Translate("Dynamic fields per page") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.PageShownString %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("ContextSettings") %]
|
||||
|
||||
</div>
|
||||
<div class="DynamicFieldsPagination">
|
||||
<span class="Pagination">
|
||||
[% RenderBlockStart("OverviewNavBarPageNavBar") %]
|
||||
[% Data.ResultLong %]
|
||||
[% Data.SiteNavBarLong %]
|
||||
[% RenderBlockEnd("OverviewNavBarPageNavBar") %]
|
||||
</span>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="DynamicFieldsContent">
|
||||
<table class="DataTable" id="DynamicFieldsTable" summary="List of all registered Dynamic Fields">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Label") | html %]</th>
|
||||
<th>[% Translate("Order") | html %]</th>
|
||||
<th>[% Translate("Type") | html %]</th>
|
||||
<th>[% Translate("Object") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Delete") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFound") %]
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFound") %]
|
||||
[% RenderBlockStart("DynamicFieldsRow") %]
|
||||
<tr class="MasterAction[% IF Data.ValidID != 1%] Invalid[% END %]" id="DynamicFieldID_[% Data.ID | html %]">
|
||||
<td>
|
||||
<a href="[% Env("Baselink") %]Action=[% Data.ConfigDialog | uri %];Subaction=Change;ObjectType=[% Data.ObjectType | uri %];FieldType=[% Data.FieldType | uri %];ID=[% Data.ID | uri %]" title="[% Data.Name | html %]" class="MasterActionLink">[% Data.Name %]</a>
|
||||
</td>
|
||||
<td>
|
||||
<div>[% Translate(Data.Label) | html %]</div>
|
||||
</td>
|
||||
<td>
|
||||
<div>[% Data.FieldOrder %]</div>
|
||||
</td>
|
||||
<td>
|
||||
<div>[% Translate(Data.FieldTypeName) | html %]</div>
|
||||
</td>
|
||||
<td>
|
||||
<div>[% Translate(Data.ObjectTypeName) | html %]</div>
|
||||
</td>
|
||||
<td>
|
||||
<div>[% Translate(Data.Valid) | html %]</div>
|
||||
</td>
|
||||
<td class="Center">
|
||||
[% RenderBlockStart("DeleteLink") %]
|
||||
<a class="TrashCan DynamicFieldDelete" href="#" data-query-string="Action=AdminDynamicField;Subaction=DynamicFieldDelete;ID=[% Data.ID | uri %];[% Env("ChallengeTokenParam") | html %]" title="[% Translate("Delete this field") | html %]">[% Translate("Delete this field") | html %]
|
||||
<i class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
[% RenderBlockEnd("DeleteLink") %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("DynamicFieldsRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="7">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockStart("MaxFieldOrder") %]
|
||||
<input id="MaxFieldOrder" type="hidden" name="MaxFieldOrder" value="[% Data.MaxFieldOrder | html %]"/>
|
||||
[% RenderBlockEnd("MaxFieldOrder") %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Main") %]
|
||||
@@ -0,0 +1,197 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">
|
||||
[% Translate("Dynamic Fields") | html %] - [% Translate(Data.ObjectTypeName) | html %]:
|
||||
[% USE Title = String(Data.BreadcrumbText) %]
|
||||
[% Title | html %]
|
||||
</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Dynamic Fields Management'),
|
||||
Link => 'AdminDynamicField',
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% USE BreadcrumbName = String(Translate(Data.ObjectTypeName)) %]
|
||||
|
||||
[% SWITCH Data.Mode %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => BreadcrumbName.append( ': ', Title ) }) %]
|
||||
[% CASE 'Change' %]
|
||||
[% BreadcrumbPath.push({ Name => BreadcrumbName.append( ': ', Title, ' - ', Data.Name ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminDynamicField" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go back to overview") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<form id="EntityUpdate" action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="AdminDynamicFieldCheckbox">
|
||||
<input type="hidden" name="Subaction" value="[% Data.Mode | html %]Action">
|
||||
<input type="hidden" name="ObjectType" value="[% Data.ObjectType | html %]">
|
||||
<input type="hidden" name="FieldType" value="[% Data.FieldType | html %]">
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("General") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Name" class="W50pc [% Data.NameServerError | html %] [% Data.ShowWarning | html %] Validate_Alphanumeric" type="text" maxlength="200" value="[% Data.Name | html %]" name="Name" [% Data.ReadonlyInternalField | html %]>
|
||||
<div id="NameError" class="TooltipErrorMessage"><p>[% Translate("This field is required, and the value should be alphabetic and numeric characters only.") | html %]</p></div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage"><p>[% Translate(Data.NameServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("Must be unique and only accept alphabetic and numeric characters.") | html %]</p>
|
||||
<p class="Warning Hidden">[% Translate("Changing this value will require manual changes in the system.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="Label"><span class="Marker">*</span> [% Translate("Label") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Label" class="W50pc [% Data.LabelServerError | html %] Validate_Required" type="text" maxlength="200" value="[% Data.Label | html %]" name="Label">
|
||||
<div id="LabelError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="LabelServerError" class="TooltipErrorMessage"><p>[% Translate(Data.LabelServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("This is the name to be shown on the screens where the field is active.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="FieldOrder"><span class="Marker">*</span> [% Translate("Field order") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DynamicFieldOrderStrg %]
|
||||
<div id="FieldOrderError" class="TooltipErrorMessage"><p>[% Translate("This field is required and must be numeric.") | html %]</p></div>
|
||||
<div id="FieldOrderServerError" class="TooltipErrorMessage"><p>[% Translate(Data.FieldOrderServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("This is the order in which this field will be shown on the screens where is active.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<fieldset class="TableLike">
|
||||
<label for="ValidID">[% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidityStrg %]
|
||||
<div id="ValidIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>
|
||||
[% RenderBlockStart("RequiredValidOptionServerError") %]
|
||||
[% Translate("This field is required.") | html %]
|
||||
[% RenderBlockEnd("RequiredValidOptionServerError") %]
|
||||
[% RenderBlockStart("InSettingValidOptionServerError") %]
|
||||
[% Translate("Is not possible to invalidate this entry, all config settings have to be changed beforehand.") | html %]
|
||||
[% RenderBlockEnd("InSettingValidOptionServerError") %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="FieldTypeName">[% Translate("Field type") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="FieldTypeName" readonly class="W50pc" type="text" maxlength="200" value="[% Translate(Data.FieldTypeName) | html %]" name="FieldTypeName">
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="ObjectTypeName">[% Translate("Object type") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="ObjectTypeName" readonly class="W50pc" type="text" maxlength="200" value="[% Translate(Data.ObjectTypeName) | html %]" name="ObjectTypeName">
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("InternalField") %]
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="InternalField">[% Translate("Internal field") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="InternalField" readonly class="W50pc" type="text" maxlength="1" value="[% Data.InternalField | html %]" name="InternalField">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This field is protected and can't be deleted.") | html %]
|
||||
</p>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("InternalField") %]
|
||||
</fieldset>
|
||||
[% RenderBlockStart("DynamicFieldInSysConfig") %]
|
||||
<input type="hidden" name="OldName" id="OldName" value="[% Data.OldName | html %]"/>
|
||||
<input type="hidden" name="UpdateEntity" id="UpdateEntity" value=""/>
|
||||
<div id="EntityInSetting" class="Hidden">
|
||||
<div class="TextDialog">
|
||||
<h1>[% Translate("This dynamic field is used in the following config settings:") | html %]</h1>
|
||||
<ul>
|
||||
[% RenderBlockStart("DynamicFieldInSysConfigRow") %]
|
||||
<li class="InSysConfigSetting">[% Data.SettingName %]</li>
|
||||
[% RenderBlockEnd("DynamicFieldInSysConfigRow") %]
|
||||
</ul>
|
||||
<p class="FieldExplanation"></p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("DynamicFieldInSysConfig") %]
|
||||
[% RenderBlockStart("DynamicFieldInSysConfigDirty") %]
|
||||
<input type="hidden" name="SysConfigDirty" id="SysConfigDirty" value="1"/>
|
||||
[% RenderBlockEnd("DynamicFieldInSysConfigDirty") %]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate(Data.FieldTypeName) | html %] [% Translate("Field Settings") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<fieldset class="TableLike">
|
||||
<label for="DefaultValue">[% Translate("Default value") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DefaultValueStrg %]
|
||||
<p class="FieldExplanation">[% Translate("This is the default value for this field.") | html %]</p>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<fieldset class="TableLike">
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Mode == 'Change' %]
|
||||
<button class="Primary CallForAction" id="SubmitAndContinue" type="button" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<button class="Primary CallForAction" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save and finish") | html %]</span></button>
|
||||
[% ELSE %]
|
||||
<button class="Primary CallForAction" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% END %]
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=AdminDynamicField">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,257 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">
|
||||
[% Translate("Dynamic Fields") | html %] - [% Translate(Data.ObjectTypeName) | html %]:
|
||||
[% USE Title = String(Data.BreadcrumbText) %]
|
||||
[% Title | html %]
|
||||
</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Dynamic Fields Management'),
|
||||
Link => 'AdminDynamicField',
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% USE BreadcrumbName = String(Translate(Data.ObjectTypeName)) %]
|
||||
|
||||
[% SWITCH Data.Mode %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => BreadcrumbName.append( ': ', Title ) }) %]
|
||||
[% CASE 'Change' %]
|
||||
[% BreadcrumbPath.push({ Name => BreadcrumbName.append( ': ', Title, ' - ', Data.Name ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminDynamicField" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go back to overview") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<form id="EntityUpdate" action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="AdminDynamicFieldDateTime">
|
||||
<input type="hidden" name="Subaction" value="[% Data.Mode | html %]Action">
|
||||
<input type="hidden" name="ObjectType" value="[% Data.ObjectType | html %]">
|
||||
<input type="hidden" name="FieldType" value="[% Data.FieldType | html %]">
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("General") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Name" class="W50pc [% Data.NameServerError | html %] [% Data.ShowWarning | html %] Validate_Alphanumeric" type="text" maxlength="200" value="[% Data.Name | html %]" name="Name" [% Data.ReadonlyInternalField | html %]>
|
||||
<div id="NameError" class="TooltipErrorMessage"><p>[% Translate("This field is required, and the value should be alphabetic and numeric characters only.") | html %]</p></div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage"><p>[% Translate(Data.NameServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("Must be unique and only accept alphabetic and numeric characters.") | html %]</p>
|
||||
<p class="Warning Hidden">[% Translate("Changing this value will require manual changes in the system.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="Label"><span class="Marker">*</span> [% Translate("Label") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Label" class="W50pc [% Data.LabelServerError | html %] Validate_Required" type="text" maxlength="200" value="[% Data.Label | html %]" name="Label"/>
|
||||
<div id="LabelError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="LabelServerError" class="TooltipErrorMessage"><p>[% Translate(Data.LabelServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("This is the name to be shown on the screens where the field is active.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="FieldOrder"><span class="Marker">*</span> [% Translate("Field order") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DynamicFieldOrderStrg %]
|
||||
<div id="FieldOrderError" class="TooltipErrorMessage"><p>[% Translate("This field is required and must be numeric.") | html %]</p></div>
|
||||
<div id="FieldOrderServerError" class="TooltipErrorMessage"><p>[% Translate(Data.FieldOrderServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("This is the order in which this field will be shown on the screens where is active.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<fieldset class="TableLike">
|
||||
<label for="ValidID">[% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidityStrg %]
|
||||
<div id="ValidIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>
|
||||
[% RenderBlockStart("RequiredValidOptionServerError") %]
|
||||
[% Translate("This field is required.") | html %]
|
||||
[% RenderBlockEnd("RequiredValidOptionServerError") %]
|
||||
[% RenderBlockStart("InSettingValidOptionServerError") %]
|
||||
[% Translate("Is not possible to invalidate this entry, all config settings have to be changed beforehand.") | html %]
|
||||
[% RenderBlockEnd("InSettingValidOptionServerError") %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="FieldTypeName">[% Translate("Field type") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="FieldTypeName" readonly class="W50pc" type="text" maxlength="200" value="[% Translate(Data.FieldTypeName) | html %]" name="FieldTypeName"/>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="ObjectTypeName">[% Translate("Object type") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="ObjectTypeName" readonly class="W50pc" type="text" maxlength="200" value="[% Translate(Data.ObjectTypeName) | html %]" name="ObjectTypeName"/>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("InternalField") %]
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="InternalField">[% Translate("Internal field") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="InternalField" readonly class="W50pc" type="text" maxlength="1" value="[% Data.InternalField | html %]" name="InternalField"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This field is protected and can't be deleted.") | html %]
|
||||
</p>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("InternalField") %]
|
||||
</fieldset>
|
||||
[% RenderBlockStart("DynamicFieldInSysConfig") %]
|
||||
<input type="hidden" name="OldName" id="OldName" value="[% Data.OldName | html %]"/>
|
||||
<input type="hidden" name="UpdateEntity" id="UpdateEntity" value=""/>
|
||||
<div id="EntityInSetting" class="Hidden">
|
||||
<div class="TextDialog">
|
||||
<h1>[% Translate("This dynamic field is used in the following config settings:") | html %]</h1>
|
||||
<ul>
|
||||
[% RenderBlockStart("DynamicFieldInSysConfigRow") %]
|
||||
<li class="InSysConfigSetting">[% Data.SettingName %]</li>
|
||||
[% RenderBlockEnd("DynamicFieldInSysConfigRow") %]
|
||||
</ul>
|
||||
<p class="FieldExplanation"></p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("DynamicFieldInSysConfig") %]
|
||||
[% RenderBlockStart("DynamicFieldInSysConfigDirty") %]
|
||||
<input type="hidden" name="SysConfigDirty" id="SysConfigDirty" value="1"/>
|
||||
[% RenderBlockEnd("DynamicFieldInSysConfigDirty") %]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate(Data.FieldTypeName) | html %] [% Translate("Field Settings") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<fieldset class="TableLike">
|
||||
<label for="DefaultValue">[% Translate("Default date difference") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="DefaultValue" class="W50pc Validate_PositiveNegativeNumbers [% Data.DefaultValueServerError | html %]" type="text" maxlength="200" value="[% Data.DefaultValue | html %]" name="DefaultValue"/>
|
||||
<div id="DefaultValueError" class="TooltipErrorMessage"><p>[% Translate("This field must be numeric.") | html %]</p></div>
|
||||
<div id="DefaultValueServerError" class="TooltipErrorMessage"><p>[% Translate("This field must be numeric.") | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("The difference from NOW (in seconds) to calculate the field default value (e.g. 3600 or -60).") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="YearsPeriod">[% Translate("Define years period") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.YearsPeriodStrg %]
|
||||
<p class="FieldExplanation">[% Translate("Activate this feature to define a fixed range of years (in the future and in the past) to be displayed on the year part of the field.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<fieldset id="YearsPeriodOption" class="TableLike [% Data.ClassYearsPeriod | html %]">
|
||||
<label for="YearsInPast">[% Translate("Years in the past") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="YearsInPast" class="W50pc Validate_PositiveNegativeNumbers [% Data.YearsInPastServerError | html %]" type="text" maxlength="200" value="[% Data.YearsInPast | html %]" name="YearsInPast"/>
|
||||
<p class="FieldExplanation">[% Translate("Years in the past to display (default: 5 years).") | html %]</p>
|
||||
<div id="YearsInPastError" class="TooltipErrorMessage"><p>[% Translate("This field must be numeric.") | html %]</p></div>
|
||||
<div id="YearsInPastServerError" class="TooltipErrorMessage"><p>[% Translate("This field must be numeric.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="YearsInFuture">[% Translate("Years in the future") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="YearsInFuture" class="W50pc Validate_PositiveNegativeNumbers [% Data.YearsInFutureServerError | html %]" type="text" maxlength="200" value="[% Data.YearsInFuture | html %]" name="YearsInFuture"/>
|
||||
<div id="YearsInFutureError" class="TooltipErrorMessage"><p>[% Translate("This field must be numeric.") | html %]</p></div>
|
||||
<div id="YearsInFutureServerError" class="TooltipErrorMessage"><p>[% Translate("This field must be numeric.") | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("Years in the future to display (default: 5 years).") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
<label for="Link">[% Translate("Show link") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Link" class="W50pc" type="text" maxlength="500" value="[% Data.Link | html %]" name="Link"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can specify an optional HTTP link for the field value in Overviews and Zoom screens.") | html %]
|
||||
<br/>
|
||||
[% Translate("If special characters (&, @, :, /, etc.) should not be encoded, use 'url' instead of 'uri' filter.") | html %]
|
||||
<br/>
|
||||
[% Translate("Example") | html %]: http://some.example.com/handle?query=<span>[</span>% Data.Field1 | uri %<span>]</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Link">[% Translate("Link for preview") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="LinkPreview" class="W50pc" type="text" maxlength="500" value="[% Data.LinkPreview | html %]" name="LinkPreview"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If filled in, this URL will be used for a preview which is shown when this link is hovered in ticket zoom. Please note that for this to work, the regular URL field above needs to be filled in, too.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="DateRestriction">[% Translate("Restrict entering of dates") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DateRestrictionStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can restrict the entering of dates of tickets.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<fieldset class="TableLike">
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Mode == 'Change' %]
|
||||
<button class="Primary CallForAction" id="SubmitAndContinue" type="button" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<button class="Primary CallForAction" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save and finish") | html %]</span></button>
|
||||
[% ELSE %]
|
||||
<button class="Primary CallForAction" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% END %]
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=AdminDynamicField">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,289 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">
|
||||
[% Translate("Dynamic Fields") | html %] - [% Translate(Data.ObjectTypeName) | html %]:
|
||||
[% USE Title = String(Data.BreadcrumbText) %]
|
||||
[% Title | html %]
|
||||
</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Dynamic Fields Management'),
|
||||
Link => 'AdminDynamicField',
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% USE BreadcrumbName = String(Translate(Data.ObjectTypeName)) %]
|
||||
|
||||
[% SWITCH Data.Mode %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => BreadcrumbName.append( ': ', Title ) }) %]
|
||||
[% CASE 'Change' %]
|
||||
[% BreadcrumbPath.push({ Name => BreadcrumbName.append( ': ', Title, ' - ', Data.Name ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminDynamicField" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go back to overview") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<form id="EntityUpdate" action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="AdminDynamicFieldDropdown" />
|
||||
<input type="hidden" name="Subaction" value="[% Data.Mode | html %]Action" />
|
||||
<input type="hidden" name="ObjectType" value="[% Data.ObjectType | html %]" />
|
||||
<input type="hidden" name="FieldType" value="[% Data.FieldType | html %]" />
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]" />
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("General") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Name" class="W50pc [% Data.NameServerError | html %] [% Data.ShowWarning | html %] Validate_Alphanumeric" type="text" maxlength="200" value="[% Data.Name | html %]" name="Name" [% Data.ReadonlyInternalField | html %] />
|
||||
<div id="NameError" class="TooltipErrorMessage"><p>[% Translate("This field is required, and the value should be alphabetic and numeric characters only.") | html %]</p></div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage"><p>[% Translate(Data.NameServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("Must be unique and only accept alphabetic and numeric characters.") | html %]</p>
|
||||
<p class="Warning Hidden">[% Translate("Changing this value will require manual changes in the system.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="Label"><span class="Marker">*</span> [% Translate("Label") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Label" class="W50pc [% Data.LabelServerError | html %] Validate_Required" type="text" maxlength="200" value="[% Data.Label | html %]" name="Label"/>
|
||||
<div id="LabelError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="LabelServerError" class="TooltipErrorMessage"><p>[% Translate(Data.LabelServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("This is the name to be shown on the screens where the field is active.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="FieldOrder"><span class="Marker">*</span> [% Translate("Field order") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DynamicFieldOrderStrg %]
|
||||
<div id="FieldOrderError" class="TooltipErrorMessage"><p>[% Translate("This field is required and must be numeric.") | html %]</p></div>
|
||||
<div id="FieldOrderServerError" class="TooltipErrorMessage"><p>[% Translate(Data.FieldOrderServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("This is the order in which this field will be shown on the screens where is active.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<fieldset class="TableLike">
|
||||
<label for="ValidID">[% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidityStrg %]
|
||||
<div id="ValidIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>
|
||||
[% RenderBlockStart("RequiredValidOptionServerError") %]
|
||||
[% Translate("This field is required.") | html %]
|
||||
[% RenderBlockEnd("RequiredValidOptionServerError") %]
|
||||
[% RenderBlockStart("InSettingValidOptionServerError") %]
|
||||
[% Translate("Is not possible to invalidate this entry, all config settings have to be changed beforehand.") | html %]
|
||||
[% RenderBlockEnd("InSettingValidOptionServerError") %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="FieldTypeName">[% Translate("Field type") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="FieldTypeName" readonly class="W50pc" type="text" maxlength="200" value="[% Translate(Data.FieldTypeName) | html %]" name="FieldTypeName"/>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="ObjectTypeName">[% Translate("Object type") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="ObjectTypeName" readonly class="W50pc" type="text" maxlength="200" value="[% Translate(Data.ObjectTypeName) | html %]" name="ObjectTypeName"/>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("InternalField") %]
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="InternalField">[% Translate("Internal field") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="InternalField" readonly class="W50pc" type="text" maxlength="1" value="[% Data.InternalField | html %]" name="InternalField"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This field is protected and can't be deleted.") | html %]
|
||||
</p>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("InternalField") %]
|
||||
</fieldset>
|
||||
[% RenderBlockStart("DynamicFieldInSysConfig") %]
|
||||
<input type="hidden" name="OldName" id="OldName" value="[% Data.OldName | html %]"/>
|
||||
<input type="hidden" name="UpdateEntity" id="UpdateEntity" value=""/>
|
||||
<div id="EntityInSetting" class="Hidden">
|
||||
<div class="TextDialog">
|
||||
<h1>[% Translate("This dynamic field is used in the following config settings:") | html %]</h1>
|
||||
<ul>
|
||||
[% RenderBlockStart("DynamicFieldInSysConfigRow") %]
|
||||
<li class="InSysConfigSetting">[% Data.SettingName %]</li>
|
||||
[% RenderBlockEnd("DynamicFieldInSysConfigRow") %]
|
||||
</ul>
|
||||
<p class="FieldExplanation"></p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("DynamicFieldInSysConfig") %]
|
||||
[% RenderBlockStart("DynamicFieldInSysConfigDirty") %]
|
||||
<input type="hidden" name="SysConfigDirty" id="SysConfigDirty" value="1"/>
|
||||
[% RenderBlockEnd("DynamicFieldInSysConfigDirty") %]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate(Data.FieldTypeName) | html %] [% Translate("Field Settings") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<fieldset class="TableLike">
|
||||
<label>[% Translate("Possible values") | html %]:</label>
|
||||
<div class="Field ValueInsert">
|
||||
<input type="hidden" name="ValueCounter" value="[% Data.ValueCounter | html %]" id="ValueCounter" class="ValueCounter" />
|
||||
[% RenderBlockStart("ValueRow") %]
|
||||
<div class="ValueRow">
|
||||
<label class="Mandatory" for="Key_[% Data.ValueCounter | html %]"><span class="Marker">*</span>[% Translate("Key") | html %]:</label>
|
||||
<input name="Key_[% Data.ValueCounter | html %]" id="Key_[% Data.ValueCounter | html %]" class="DefaultValueKeyItem Validate_Required W20pc [% Data.KeyError | html %]" type="text" maxlength="100" value="[% Data.Key | html %]"/>
|
||||
<div id="Key_[% Data.ValueCounter | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="Key_[% Data.ValueCounter | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate(Data.KeyErrorStrg) | html %]</p></div>
|
||||
|
||||
<label class="Mandatory" for="Value_[% Data.ValueCounter | html %]"><span class="Marker">*</span>[% Translate("Value") | html %]:</label>
|
||||
<input name="Value_[% Data.ValueCounter | html %]" id="Value_[% Data.ValueCounter | html %]" class="DefaultValueItem Validate_Required W20pc [% Data.ValueError | html %]" type="text" maxlength="100" value="[% Data.Value | html %]"/>
|
||||
<div id="Value_[% Data.ValueCounter | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="Value_[% Data.ValueCounter | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
|
||||
<a href="#" id="RemoveValue_[% Data.ValueCounter | html %]" class="RemoveButton ValueRemove"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove value") | html %]</span></a>
|
||||
<div class="SpacingTopMini" ></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ValueRow") %]
|
||||
[% RenderBlockStart("ValueTemplate") %]
|
||||
<div class="ValueTemplate Hidden">
|
||||
<label class="Mandatory" for="Key"><span class="Marker">*</span>[% Translate("Key") | html %]:</label>
|
||||
<input name="Key_[% Data.ValueCounter | html %]" id="Key" class="DefaultValueKeyItem W20pc" type="text" maxlength="100" value="[% Data.Key | html %]"/>
|
||||
<div id="KeyError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="KeyServerError" class="TooltipErrorMessage"><p>[% Translate(Data.KeyErrorStrg) | html %]</p></div>
|
||||
|
||||
<label class="Mandatory" for="Value"><span class="Marker">*</span>[% Translate("Value") | html %]:</label>
|
||||
<input name="Value_[% Data.ValueCounter | html %]" id="Value" class="DefaultValueItem W20pc" type="text" maxlength="100" value="[% Data.Value | html %]"/>
|
||||
<div id="ValueError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="ValueServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
|
||||
<a href="#" id="RemoveValue_[% Data.ValueCounter | html %]" class="RemoveButton ValueRemove"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove value") | html %]</span></a>
|
||||
</div>
|
||||
[% RenderBlockEnd("ValueTemplate") %]
|
||||
<input type="hidden" name="DeletedValue" value="[% Data.DeletedString | html %]" id="DeletedValue" class="DeletedValue" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="AddValue">[% Translate("Add value") | html %]:</label>
|
||||
<div class="Field">
|
||||
<a href="#" id="AddValue" class="AddButton"><i class="fa fa-plus-square-o"></i><span class="InvisibleText">[% Translate("Add Value") | html %]</span></a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="DefaultValue">[% Translate("Default value") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DefaultValueStrg %]
|
||||
<p class="FieldExplanation">[% Translate("This is the default value for this field.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="PossibleNone">[% Translate("Add empty value") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.PossibleNoneStrg %]
|
||||
<p class="FieldExplanation">[% Translate("Activate this option to create an empty selectable value.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="TreeView">[% Translate("Tree View") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.TreeViewStrg %]
|
||||
<p class="FieldExplanation">[% Translate("Activate this option to display values as a tree.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="TranslatableValues">[% Translate("Translatable values") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.TranslatableValuesStrg %]
|
||||
<p class="FieldExplanation">[% Translate("If you activate this option the values will be translated to the user defined language.") | html %]</p>
|
||||
<p class="FieldExplanation"><strong>[% Translate("Note") | html %]: </strong>[% Translate("You need to add the translations manually into the language translation files.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label for="Link">[% Translate("Show link") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Link" class="W50pc" type="text" maxlength="500" value="[% Data.Link | html %]" name="Link"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can specify an optional HTTP link for the field value in Overviews and Zoom screens.") | html %]
|
||||
<br/>
|
||||
[% Translate("If special characters (&, @, :, /, etc.) should not be encoded, use 'url' instead of 'uri' filter.") | html %]
|
||||
<br/>
|
||||
[% Translate("Example") | html %]: http://some.example.com/handle?query=<span>[</span>% Data.Field1 | uri %<span>]</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Link">[% Translate("Link for preview") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="LinkPreview" class="W50pc" type="text" maxlength="500" value="[% Data.LinkPreview | html %]" name="LinkPreview"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If filled in, this URL will be used for a preview which is shown when this link is hovered in ticket zoom. Please note that for this to work, the regular URL field above needs to be filled in, too.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<fieldset class="TableLike">
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Mode == 'Change' %]
|
||||
<button class="Primary CallForAction" id="SubmitAndContinue" type="button" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<button class="Primary CallForAction" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save and finish") | html %]</span></button>
|
||||
[% ELSE %]
|
||||
<button class="Primary CallForAction" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% END %]
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=AdminDynamicField">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,122 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1>[% Translate("Dynamic Fields") | html %] - [% Translate(Data.ObjectTypeName) | html %]: [% Translate(Data.Mode) | html %] [% Translate(Data.FieldTypeName) | html %] [% Translate("Field") | html %]</h1>
|
||||
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminDynamicField" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go back to overview") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="AdminDynamicFieldMasterSlave" />
|
||||
<input type="hidden" name="Subaction" value="[% Data.Mode | html %]Action" />
|
||||
<input type="hidden" name="ObjectType" value="[% Data.ObjectType | html %]" />
|
||||
<input type="hidden" name="FieldType" value="[% Data.FieldType | html %]" />
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]" />
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("General") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Name" class="W50pc [% Data.NameServerError | html %] [% Data.ShowWarning | html %] Validate_Alphanumeric" type="text" maxlength="200" value="[% Data.Name | html %]" name="Name" [% Data.ReadonlyInternalField | html %] />
|
||||
<div id="NameError" class="TooltipErrorMessage"><p>[% Translate("This field is required, and the value should be alphabetic and numeric characters only.") | html %]</p></div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage"><p>[% Translate(Data.NameServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("Must be unique and only accept alphabetic and numeric characters.") | html %]</p>
|
||||
<p class="Warning Hidden">[% Translate("Changing this value will require manual changes in the system.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="Label"><span class="Marker">*</span> [% Translate("Label") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Label" class="W50pc [% Data.LabelServerError | html %] Validate_Required" type="text" maxlength="200" value="[% Data.Label | html %]" name="Label"/>
|
||||
<div id="LabelError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="LabelServerError" class="TooltipErrorMessage"><p>[% Translate(Data.LabelServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("This is the name to be shown on the screens where the field is active.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="FieldOrder"><span class="Marker">*</span> [% Translate("Field order") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DynamicFieldOrderStrg %]
|
||||
<div id="FieldOrderError" class="TooltipErrorMessage"><p>[% Translate("This field is required and must be numeric.") | html %]</p></div>
|
||||
<div id="FieldOrderServerError" class="TooltipErrorMessage"><p>[% Translate(Data.FieldOrderServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("This is the order in which this field will be shown on the screens where is active.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<fieldset class="TableLike">
|
||||
<label for="ValidID">[% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidityStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="FieldTypeName">[% Translate("Field type") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="FieldTypeName" readonly class="W50pc" type="text" maxlength="200" value="[% Translate(Data.FieldTypeName) | html %]" name="FieldTypeName"/>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="ObjectTypeName">[% Translate("Object type") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="ObjectTypeName" readonly class="W50pc" type="text" maxlength="200" value="[% Translate(Data.ObjectTypeName) | html %]" name="ObjectTypeName"/>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("InternalField") %]
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="InternalField">[% Translate("Internal field") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="InternalField" readonly class="W50pc" type="text" maxlength="1" value="[% Data.InternalField | html %]" name="InternalField"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This field is protected and can't be deleted.") | html %]
|
||||
</p>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("InternalField") %]
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<fieldset class="TableLike">
|
||||
<div class="Field SpacingTop">
|
||||
<button type="submit" class="Primary CallForAction" value="[% Translate("Submit") | html %]"><span>[% Translate("Submit") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=AdminDynamicField">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,268 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">
|
||||
[% Translate("Dynamic Fields") | html %] - [% Translate(Data.ObjectTypeName) | html %]:
|
||||
[% USE Title = String(Data.BreadcrumbText) %]
|
||||
[% Title | html %]
|
||||
</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Dynamic Fields Management'),
|
||||
Link => 'AdminDynamicField',
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% USE BreadcrumbName = String(Translate(Data.ObjectTypeName)) %]
|
||||
|
||||
[% SWITCH Data.Mode %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => BreadcrumbName.append( ': ', Title ) }) %]
|
||||
[% CASE 'Change' %]
|
||||
[% BreadcrumbPath.push({ Name => BreadcrumbName.append( ': ', Title, ' - ', Data.Name ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminDynamicField" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go back to overview") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<form id="EntityUpdate" action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="AdminDynamicFieldMultiselect" />
|
||||
<input type="hidden" name="Subaction" value="[% Data.Mode | html %]Action" />
|
||||
<input type="hidden" name="ObjectType" value="[% Data.ObjectType | html %]" />
|
||||
<input type="hidden" name="FieldType" value="[% Data.FieldType | html %]" />
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]" />
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("General") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Name" class="W50pc [% Data.NameServerError | html %] [% Data.ShowWarning | html %] Validate_Alphanumeric" type="text" maxlength="200" value="[% Data.Name | html %]" name="Name" [% Data.ReadonlyInternalField | html %] />
|
||||
<div id="NameError" class="TooltipErrorMessage"><p>[% Translate("This field is required, and the value should be alphabetic and numeric characters only.") | html %]</p></div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage"><p>[% Translate(Data.NameServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("Must be unique and only accept alphabetic and numeric characters.") | html %]</p>
|
||||
<p class="Warning Hidden">[% Translate("Changing this value will require manual changes in the system.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="Label"><span class="Marker">*</span> [% Translate("Label") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Label" class="W50pc [% Data.LabelServerError | html %] Validate_Required" type="text" maxlength="200" value="[% Data.Label | html %]" name="Label"/>
|
||||
<div id="LabelError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="LabelServerError" class="TooltipErrorMessage"><p>[% Translate(Data.LabelServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("This is the name to be shown on the screens where the field is active.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="FieldOrder"><span class="Marker">*</span> [% Translate("Field order") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DynamicFieldOrderStrg %]
|
||||
<div id="FieldOrderError" class="TooltipErrorMessage"><p>[% Translate("This field is required and must be numeric.") | html %]</p></div>
|
||||
<div id="FieldOrderServerError" class="TooltipErrorMessage"><p>[% Translate(Data.FieldOrderServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("This is the order in which this field will be shown on the screens where is active.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<fieldset class="TableLike">
|
||||
<label for="ValidID">[% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidityStrg %]
|
||||
<div id="ValidIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>
|
||||
[% RenderBlockStart("RequiredValidOptionServerError") %]
|
||||
[% Translate("This field is required.") | html %]
|
||||
[% RenderBlockEnd("RequiredValidOptionServerError") %]
|
||||
[% RenderBlockStart("InSettingValidOptionServerError") %]
|
||||
[% Translate("Is not possible to invalidate this entry, all config settings have to be changed beforehand.") | html %]
|
||||
[% RenderBlockEnd("InSettingValidOptionServerError") %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="FieldTypeName">[% Translate("Field type") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="FieldTypeName" readonly class="W50pc" type="text" maxlength="200" value="[% Translate(Data.FieldTypeName) | html %]" name="FieldTypeName"/>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="ObjectTypeName">[% Translate("Object type") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="ObjectTypeName" readonly class="W50pc" type="text" maxlength="200" value="[% Translate(Data.ObjectTypeName) | html %]" name="ObjectTypeName"/>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("InternalField") %]
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="InternalField">[% Translate("Internal field") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="InternalField" readonly class="W50pc" type="text" maxlength="1" value="[% Data.InternalField | html %]" name="InternalField"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This field is protected and can't be deleted.") | html %]
|
||||
</p>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("InternalField") %]
|
||||
</fieldset>
|
||||
[% RenderBlockStart("DynamicFieldInSysConfig") %]
|
||||
<input type="hidden" name="OldName" id="OldName" value="[% Data.OldName | html %]"/>
|
||||
<input type="hidden" name="UpdateEntity" id="UpdateEntity" value=""/>
|
||||
<div id="EntityInSetting" class="Hidden">
|
||||
<div class="TextDialog">
|
||||
<h1>[% Translate("This dynamic field is used in the following config settings:") | html %]</h1>
|
||||
<ul>
|
||||
[% RenderBlockStart("DynamicFieldInSysConfigRow") %]
|
||||
<li class="InSysConfigSetting">[% Data.SettingName %]</li>
|
||||
[% RenderBlockEnd("DynamicFieldInSysConfigRow") %]
|
||||
</ul>
|
||||
<p class="FieldExplanation"></p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("DynamicFieldInSysConfig") %]
|
||||
[% RenderBlockStart("DynamicFieldInSysConfigDirty") %]
|
||||
<input type="hidden" name="SysConfigDirty" id="SysConfigDirty" value="1"/>
|
||||
[% RenderBlockEnd("DynamicFieldInSysConfigDirty") %]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate(Data.FieldTypeName) | html %] [% Translate("Field Settings") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<fieldset class="TableLike">
|
||||
<label>[% Translate("Possible values") | html %]:</label>
|
||||
<div class="Field ValueInsert">
|
||||
<input type="hidden" name="ValueCounter" value="[% Data.ValueCounter | html %]" id="ValueCounter" class="ValueCounter" />
|
||||
[% RenderBlockStart("ValueRow") %]
|
||||
<div class="ValueRow">
|
||||
<label class="Mandatory" for="Key_[% Data.ValueCounter | html %]"><span class="Marker">*</span>[% Translate("Key") | html %]:</label>
|
||||
<input name="Key_[% Data.ValueCounter | html %]" id="Key_[% Data.ValueCounter | html %]" class="DefaultValueKeyItem Validate_Required W20pc [% Data.KeyError | html %]" type="text" maxlength="100" value="[% Data.Key | html %]"/>
|
||||
<div id="Key_[% Data.ValueCounter | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="Key_[% Data.ValueCounter | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate(Data.KeyErrorStrg) | html %]</p></div>
|
||||
|
||||
<label class="Mandatory" for="Value_[% Data.ValueCounter | html %]"><span class="Marker">*</span>[% Translate("Value") | html %]:</label>
|
||||
<input name="Value_[% Data.ValueCounter | html %]" id="Value_[% Data.ValueCounter | html %]" class="DefaultValueItem Validate_Required W20pc [% Data.ValueError | html %]" type="text" maxlength="100" value="[% Data.Value | html %]"/>
|
||||
<div id="Value_[% Data.ValueCounter | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="Value_[% Data.ValueCounter | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
|
||||
<a href="#" id="RemoveValue_[% Data.ValueCounter | html %]" class="RemoveButton ValueRemove"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove value") | html %]</span></a>
|
||||
<div class="SpacingTopMini" ></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ValueRow") %]
|
||||
[% RenderBlockStart("ValueTemplate") %]
|
||||
<div class="ValueTemplate Hidden">
|
||||
<label class="Mandatory" for="Key"><span class="Marker">*</span>[% Translate("Key") | html %]:</label>
|
||||
<input name="Key_[% Data.ValueCounter | html %]" id="Key" class="DefaultValueKeyItem W20pc" type="text" maxlength="100" value="[% Data.Key | html %]"/>
|
||||
<div id="KeyError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="KeyServerError" class="TooltipErrorMessage"><p>[% Translate(Data.KeyErrorStrg) | html %]</p></div>
|
||||
|
||||
<label class="Mandatory" for="Value"><span class="Marker">*</span>[% Translate("Value") | html %]:</label>
|
||||
<input name="Value_[% Data.ValueCounter | html %]" id="Value" class="DefaultValueItem W20pc" type="text" maxlength="100" value="[% Data.Value | html %]"/>
|
||||
<div id="ValueError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="ValueServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
|
||||
<a href="#" id="RemoveValue_[% Data.ValueCounter | html %]" class="RemoveButton ValueRemove"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove value") | html %]</span></a>
|
||||
<div class="SpacingTopMini" ></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ValueTemplate") %]
|
||||
<input type="hidden" name="DeletedValue" value="[% Data.DeletedString | html %]" id="DeletedValue" class="DeletedValue" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="AddValue">[% Translate("Add value") | html %]:</label>
|
||||
<div class="Field">
|
||||
<a href="#" id="AddValue" class="AddButton"><i class="fa fa-plus-square-o"></i><span class="InvisibleText">[% Translate("Add Value") | html %]</span></a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="DefaultValue">[% Translate("Default value") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DefaultValueStrg %]
|
||||
<p class="FieldExplanation">[% Translate("This is the default value for this field.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="PossibleNone">[% Translate("Add empty value") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.PossibleNoneStrg %]
|
||||
<p class="FieldExplanation">[% Translate("Activate this option to create an empty selectable value.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="TreeView">[% Translate("Tree View") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.TreeViewStrg %]
|
||||
<p class="FieldExplanation">[% Translate("Activate this option to display values as a tree.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="TranslatableValues">[% Translate("Translatable values") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.TranslatableValuesStrg %]
|
||||
<p class="FieldExplanation">[% Translate("If you activate this option the values will be translated to the user defined language.") | html %]</p>
|
||||
<p class="FieldExplanation"><strong>[% Translate("Note") | html %]: </strong>[% Translate("You need to add the translations manually into the language translation files.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<fieldset class="TableLike">
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Mode == 'Change' %]
|
||||
<button class="Primary CallForAction" id="SubmitAndContinue" type="button" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<button class="Primary CallForAction" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save and finish") | html %]</span></button>
|
||||
[% ELSE %]
|
||||
<button class="Primary CallForAction" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% END %]
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=AdminDynamicField">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,310 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">
|
||||
[% Translate("Dynamic Fields") | html %] - [% Translate(Data.ObjectTypeName) | html %]:
|
||||
[% USE Title = String(Data.BreadcrumbText) %]
|
||||
[% Title | html %]
|
||||
</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Dynamic Fields Management'),
|
||||
Link => 'AdminDynamicField',
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% USE BreadcrumbName = String(Translate(Data.ObjectTypeName)) %]
|
||||
|
||||
[% SWITCH Data.Mode %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => BreadcrumbName.append( ': ', Title ) }) %]
|
||||
[% CASE 'Change' %]
|
||||
[% BreadcrumbPath.push({ Name => BreadcrumbName.append( ': ', Title, ' - ', Data.Name ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminDynamicField" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go back to overview") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<form id="EntityUpdate" action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="AdminDynamicFieldText">
|
||||
<input type="hidden" name="Subaction" value="[% Data.Mode | html %]Action">
|
||||
<input type="hidden" name="ObjectType" value="[% Data.ObjectType | html %]">
|
||||
<input type="hidden" name="FieldType" value="[% Data.FieldType | html %]">
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("General") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Name" class="W50pc [% Data.NameServerError | html %] [% Data.ShowWarning | html %] Validate_Alphanumeric" type="text" maxlength="200" value="[% Data.Name | html %]" name="Name" [% Data.ReadonlyInternalField | html %]>
|
||||
<div id="NameError" class="TooltipErrorMessage"><p>[% Translate("This field is required, and the value should be alphabetic and numeric characters only.") | html %]</p></div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage"><p>[% Translate(Data.NameServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("Must be unique and only accept alphabetic and numeric characters.") | html %]</p>
|
||||
<p class="Warning Hidden">[% Translate("Changing this value will require manual changes in the system.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="Label"><span class="Marker">*</span> [% Translate("Label") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Label" class="W50pc [% Data.LabelServerError | html %] Validate_Required" type="text" maxlength="200" value="[% Data.Label | html %]" name="Label"/>
|
||||
<div id="LabelError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="LabelServerError" class="TooltipErrorMessage"><p>[% Translate(Data.LabelServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("This is the name to be shown on the screens where the field is active.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="FieldOrder"><span class="Marker">*</span> [% Translate("Field order") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DynamicFieldOrderStrg %]
|
||||
<div id="FieldOrderError" class="TooltipErrorMessage"><p>[% Translate("This field is required and must be numeric.") | html %]</p></div>
|
||||
<div id="FieldOrderServerError" class="TooltipErrorMessage"><p>[% Translate(Data.FieldOrderServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("This is the order in which this field will be shown on the screens where is active.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<fieldset class="TableLike">
|
||||
<label for="ValidID">[% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidityStrg %]
|
||||
<div id="ValidIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>
|
||||
[% RenderBlockStart("RequiredValidOptionServerError") %]
|
||||
[% Translate("This field is required.") | html %]
|
||||
[% RenderBlockEnd("RequiredValidOptionServerError") %]
|
||||
[% RenderBlockStart("InSettingValidOptionServerError") %]
|
||||
[% Translate("Is not possible to invalidate this entry, all config settings have to be changed beforehand.") | html %]
|
||||
[% RenderBlockEnd("InSettingValidOptionServerError") %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="FieldTypeName">[% Translate("Field type") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="FieldTypeName" readonly class="W50pc" type="text" maxlength="200" value="[% Translate(Data.FieldTypeName) | html %]" name="FieldTypeName"/>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="ObjectTypeName">[% Translate("Object type") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="ObjectTypeName" readonly class="W50pc" type="text" maxlength="200" value="[% Translate(Data.ObjectTypeName) | html %]" name="ObjectTypeName"/>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("InternalField") %]
|
||||
<div class="SpacingTop"></div>
|
||||
<label for="InternalField">[% Translate("Internal field") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="InternalField" readonly class="W50pc" type="text" maxlength="1" value="[% Data.InternalField | html %]" name="InternalField"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This field is protected and can't be deleted.") | html %]
|
||||
</p>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("InternalField") %]
|
||||
</fieldset>
|
||||
[% RenderBlockStart("DynamicFieldInSysConfig") %]
|
||||
<input type="hidden" name="OldName" id="OldName" value="[% Data.OldName | html %]"/>
|
||||
<input type="hidden" name="UpdateEntity" id="UpdateEntity" value=""/>
|
||||
<div id="EntityInSetting" class="Hidden">
|
||||
<div class="TextDialog">
|
||||
<h1>[% Translate("This dynamic field is used in the following config settings:") | html %]</h1>
|
||||
<ul>
|
||||
[% RenderBlockStart("DynamicFieldInSysConfigRow") %]
|
||||
<li class="InSysConfigSetting">[% Data.SettingName %]</li>
|
||||
[% RenderBlockEnd("DynamicFieldInSysConfigRow") %]
|
||||
</ul>
|
||||
<p class="FieldExplanation"></p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("DynamicFieldInSysConfig") %]
|
||||
[% RenderBlockStart("DynamicFieldInSysConfigDirty") %]
|
||||
<input type="hidden" name="SysConfigDirty" id="SysConfigDirty" value="1"/>
|
||||
[% RenderBlockEnd("DynamicFieldInSysConfigDirty") %]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate(Data.FieldTypeName) | html %] [% Translate("Field Settings") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<fieldset class="TableLike">
|
||||
[% RenderBlockStart("ColsRowsValues") %]
|
||||
<label for="Rows">[% Translate("Number of rows") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Rows" class="W25pc Validate_Number [% Data.RowsServerError %]" type="text" maxlength="3" value="[% Data.Rows | html %]" name="Rows"/>
|
||||
<div id="RowsError" class="TooltipErrorMessage"><p>[% Translate("This field must be numeric.") | html %]</p></div>
|
||||
<div id="RowsServerError" class="TooltipErrorMessage"><p>[% Translate(Data.RowsServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("Specify the height (in lines) for this field in the edit mode.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label for="Cols">[% Translate("Number of cols") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Cols" class="W25pc Validate_Number [% Data.ColsServerError %]" type="text" maxlength="3" value="[% Data.Cols | html %]" name="Cols"/>
|
||||
<div id="ColsError" class="TooltipErrorMessage"><p>[% Translate("This field must be numeric.") | html %]</p></div>
|
||||
<div id="ColsServerError" class="TooltipErrorMessage"><p>[% Translate(Data.ColsServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("Specify the width (in characters) for this field in the edit mode.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("ColsRowsValues") %]
|
||||
|
||||
|
||||
<label for="DefaultValue">[% Translate("Default value") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% RenderBlockStart("DefaultValueText") %]
|
||||
<input id="DefaultValue" class="W50pc" type="text" maxlength="200" value="[% Data.DefaultValue | html %]" name="DefaultValue"/>
|
||||
[% RenderBlockEnd("DefaultValueText") %]
|
||||
[% RenderBlockStart("DefaultValueTextArea") %]
|
||||
<textarea id="DefaultValue" class="W50pc" rows="10" cols="60" name="DefaultValue">[% Data.DefaultValue | html %]</textarea>
|
||||
[% RenderBlockEnd("DefaultValueTextArea") %]
|
||||
<p class="FieldExplanation">[% Translate("This is the default value for this field.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockStart("Link") %]
|
||||
<label for="Link">[% Translate("Show link") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Link" class="W50pc" type="text" maxlength="500" value="[% Data.Link | html %]" name="Link"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can specify an optional HTTP link for the field value in Overviews and Zoom screens.") | html %]
|
||||
<br/>
|
||||
[% Translate("If special characters (&, @, :, /, etc.) should not be encoded, use 'url' instead of 'uri' filter.") | html %]
|
||||
<br/>
|
||||
[% Translate("Example") | html %]: http://some.example.com/handle?query=<span>[</span>% Data.Field1 | uri %<span>]</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Link">[% Translate("Link for preview") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="LinkPreview" class="W50pc" type="text" maxlength="500" value="[% Data.LinkPreview | html %]" name="LinkPreview"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If filled in, this URL will be used for a preview which is shown when this link is hovered in ticket zoom. Please note that for this to work, the regular URL field above needs to be filled in, too.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockEnd("Link") %]
|
||||
|
||||
<label for="RegEx">[% Translate("Check RegEx") | html %]:</label>
|
||||
<div class="Field RegExInsert">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can specify a regular expression to check the value. The regex will be executed with the modifiers xms.") | html %]
|
||||
<br/>
|
||||
[% Translate("Example") | html %]: ^[0-9]$
|
||||
</p>
|
||||
<input type="hidden" name="RegExCounter" value="[% Data.RegExCounter | html %]" id="RegExCounter" class="RegExCounter">
|
||||
<div class="Spacing"></div>
|
||||
|
||||
[% RenderBlockStart("RegExRow") %]
|
||||
<fieldset id="RegExRow_[% Data.EntryCounter | html %]" class="TableLike SpacingTop RegExRow W50pc">
|
||||
<label class="Mandatory" for="RegEx_[% Data.EntryCounter | html %]"><span class="Marker">*</span>[% Translate("RegEx") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="RegEx_[% Data.EntryCounter | html %]" class="W80pc [% Data.RegExServerError | html %] Validate_Required" type="text" maxlength="500" value="[% Data.RegEx | html %]" name="RegEx_[% Data.EntryCounter | html %]" />
|
||||
<div id="RegEx_[% Data.EntryCounter | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="RegEx_[% Data.EntryCounter | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate("Invalid RegEx") | html %]: [% Data.RegExServerErrorMessage | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label class="Mandatory" for="CustomerRegExErrorMessage_[% Data.EntryCounter | html %]"><span class="Marker">*</span>[% Translate("Error Message") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="CustomerRegExErrorMessage_[% Data.EntryCounter | html %]" class="W80pc [% Data.CustomerRegExErrorMessageServerError | html %] Validate_Required" type="text" maxlength="500" value="[% Data.CustomerRegExErrorMessage | html %]" name="CustomerRegExErrorMessage_[% Data.EntryCounter | html %]" />
|
||||
<div id="CustomerRegExErrorMessage_[% Data.EntryCounter | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="CustomerRegExErrorMessage_[% Data.EntryCounter | html %]ServerError" class="TooltipErrorMessage"><p>[% Data.CustomerRegExErrorMessageServerErrorMessage | Translate | html %]</p></div>
|
||||
<a id="RemoveRegEx_[% Data.EntryCounter | html %]" class="RemoveRegEx RemoveButton" href="#">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
[% RenderBlockEnd("RegExRow") %]
|
||||
</div>
|
||||
|
||||
<fieldset class="RegExTemplate Hidden TableLike SpacingTop">
|
||||
<label class="Mandatory W50pc" for="RegEx"><span class="Marker">*</span>[% Translate("RegEx") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="RegEx" class="W80pc" type="text" maxlength="500" value="" name="RegEx" />
|
||||
<div id="RegExError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="RegExServerError" class="TooltipErrorMessage"><p>[% Data.RegExServerErrorMessage | Translate | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label class="Mandatory" for="CustomerRegExErrorMessage"><span class="Marker">*</span>[% Translate("Error Message") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="CustomerRegExErrorMessage" class="W80pc" type="text" maxlength="500" value="" name="CustomerRegExErrorMessage" />
|
||||
<div id="CustomerRegExErrorMessageError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="CustomerRegExErrorMessageServerError" class="TooltipErrorMessage"><p>[% Data.CustomerRegExErrorMessageServerErrorMessage | Translate | html %]</p></div>
|
||||
<a id="RemoveRegEx" class="RemoveRegEx RemoveButton" href="#">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="AddRegEx">[% Translate("Add RegEx") | html %]:</label>
|
||||
<div class="Field">
|
||||
<a id="AddRegEx" href="#" class="AddButton">
|
||||
<i class="fa fa-plus-square-o"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<fieldset class="TableLike">
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Mode == 'Change' %]
|
||||
<button class="Primary CallForAction" id="SubmitAndContinue" type="button" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<button class="Primary CallForAction" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save and finish") | html %]</span></button>
|
||||
[% ELSE %]
|
||||
<button class="Primary CallForAction" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% END %]
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=AdminDynamicField">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
139
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminEmail.tt
Normal file
139
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminEmail.tt
Normal file
@@ -0,0 +1,139 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Admin Message") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Admin Message'),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("With this module, administrators can send messages to agents, group or role members.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Create Administrative Message") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
[% RenderBlockStart("Sent") %]
|
||||
<p>
|
||||
[% Translate("Your message was sent to") | html %]: [% Data.Bcc | html %]
|
||||
</p>
|
||||
[% RenderBlockEnd("Sent") %]
|
||||
|
||||
[% RenderBlockStart("Form") %]
|
||||
<form action="[% Env("CGIHandle") %]" method="post" name="compose" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Send"/>
|
||||
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="From"><span class="Marker">*</span> [% Translate("From") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="From" id="From" value="[% Config("AdminEmail") %]" class="W75pc Validate_Required [% Data.FromInvalid | html %]"/>
|
||||
<div id="FromError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="FromServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="UserIDs">[% Translate("Send message to users") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.UserOption %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="GroupIDs">[% Translate("Send message to group members") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.GroupOption %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="GroupPermissionRO">[% Translate("Group members need to have permission") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="radio" name="GroupPermission" id="GroupPermissionRO" value="ro" checked="checked"/>
|
||||
<label for="GroupPermissionRO">[% Translate("ro") | html %]</label>
|
||||
<br/>
|
||||
<input type="radio" name="GroupPermission" id="GroupPermissionRW" value="rw"/>
|
||||
<label for="GroupPermissionRW">[% Translate("rw") | html %]</label>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("RoleRecipients") %]
|
||||
<label for="RoleIDs">[% Translate("Send message to role members") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.RoleOption %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("RoleRecipients") %]
|
||||
|
||||
[% RenderBlockStart("CustomerUserGroups") %]
|
||||
<label for="NotifyCustomerUsers">[% Translate("Also send to customers in groups") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="NotifyCustomerUsers" id="NotifyCustomerUsers" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("CustomerUserGroups") %]
|
||||
|
||||
<label class="Mandatory" for="Subject"><span class="Marker">*</span> [% Translate("Subject") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Subject" id="Subject" class="W75pc Validate_Required [% Data.SubjectInvalid | html %]" value="[% Data.Subject | html %]" />
|
||||
<div id="SubjectError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="SubjectServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<label class="Mandatory" for="RichText"><span class="Marker">*</span> [% Translate("Body") | html %]:</label>
|
||||
<div class="RichTextField">
|
||||
<textarea id="RichText" class="W100pc RichText Validate_RequiredRichText [% Data.RichTextInvalid | html %]" name="Body" rows="16" cols="78">[% Data.Body | html %]</textarea>
|
||||
<div id="RichTextError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="RichTextServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Primary CallForAction" id="submitRichText" type="submit" value="[% Translate("Send") | html %]"><span>[% Translate("Send") | html %]</span></button>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
[% RenderBlockEnd("Form") %]
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,298 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1>[% Translate("General Catalog Management") | html %]</h1>
|
||||
|
||||
[% USE ItemsTitle = String(Translate("Items in Class")) %]
|
||||
[% USE EditTitle = String(Translate("Edit Item")) %]
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('General Catalog Management'),
|
||||
Link => 'AdminGeneralCatalog',
|
||||
},
|
||||
];
|
||||
|
||||
IF Data.Class && Data.Class == 'NEW';
|
||||
|
||||
BreadcrumbPath.push({
|
||||
Name => Translate('Add Class'),
|
||||
});
|
||||
|
||||
ELSIF Data.Class;
|
||||
|
||||
ClassURI = Data.Class;
|
||||
|
||||
BreadcrumbPath.push({
|
||||
Name => ItemsTitle.append( ': ', Data.Class ),
|
||||
Link => 'AdminGeneralCatalog;Subaction=ItemList;Class=' _ ClassURI,
|
||||
});
|
||||
|
||||
IF Data.Subaction && Data.Subaction == 'ItemEdit';
|
||||
BreadcrumbPath.push({
|
||||
Name => Data.ItemEdit ? EditTitle.append( ': ', Data.ItemName ) : Translate('Add Item'),
|
||||
});
|
||||
|
||||
END;
|
||||
|
||||
END;
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class='Content'>
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionAddItem") %]
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="get">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="ItemEdit"/>
|
||||
<input type="hidden" name="Class" value="[% Data.Class | html %]"/>
|
||||
<input type="hidden" name="ItemID" value="NEW"/>
|
||||
<button class="CallForAction Fullsize Center Create" type="submit" value="[% Translate("Add") | html %]">
|
||||
<span><i class="fa fa-plus-square"></i>[% Translate("Add Catalog Item") | html %]</span>
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAddItem") %]
|
||||
[% RenderBlockStart("ActionAddClass") %]
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="get">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="ItemEdit"/>
|
||||
<input type="hidden" name="ItemID" value="NEW"/>
|
||||
<input type="hidden" name="Class" value="NEW"/>
|
||||
<button class="CallForAction Fullsize Center Create" type="submit" value="[% Translate("Add") | html %]">
|
||||
<span><i class="fa fa-plus-square"></i>[% Translate("Add Catalog Class") | html %]</span>
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAddClass") %]
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("OverviewClass") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Catalog Class") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("OverviewClassList") %]
|
||||
<tr>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ItemList;Class=[% Data.Class | uri %]">[% Data.Class | html %]</a>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewClassList") %]
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td>
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewClass") %]
|
||||
|
||||
[% RenderBlockStart("OverviewItem") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="W60pc">[% Translate("Name") | html %]</th>
|
||||
<th class="Center">[% Translate("Validity") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("OverviewItemList") %]
|
||||
<tr [% IF Data.ValidID != 1%]class="Invalid"[% END %]>
|
||||
<td>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ItemEdit;ItemID=[% Data.ItemID | uri %]">[% Data.Name | html %]</a>
|
||||
</td>
|
||||
<td class="Center">[% Translate(Data.Valid) | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewItemList") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewItem") %]
|
||||
|
||||
[% RenderBlockStart("ItemEdit") %]
|
||||
<div class="Header">
|
||||
<h2>[%-
|
||||
IF Data.Class && Data.Class == 'NEW';
|
||||
Translate("Add Catalog Class") | html;
|
||||
ELSIF Data.ItemEdit;
|
||||
Translate("Edit Catalog Item") | html;
|
||||
ELSE;
|
||||
Translate("Add Catalog Item") | html;
|
||||
END;
|
||||
%]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" method="get" class="Validate">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="ItemSave"/>
|
||||
<input type="hidden" name="ItemID" value="[% Data.ItemID | html %]"/>
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<fieldset class="TableLike">
|
||||
[% RenderBlockStart("ItemEditClassAdd") %]
|
||||
<label class="Mandatory" for="ClassDsc"><span class="Marker">*</span>[% Translate("Catalog Class") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Class" id="ClassDsc" value="[% Data.Name | html %]" class="W50pc Validate_Required" maxlength="100" />
|
||||
<div id="ClassDscError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="ClassDscServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("ItemEditClassAdd") %]
|
||||
[% RenderBlockStart("ItemEditClassExist") %]
|
||||
<label>[% Translate("Catalog Class") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.Class | html %]
|
||||
<input type="hidden" name="Class" value="[% Data.Class | html %]">
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("ItemEditClassExist") %]
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span>[% Translate("Name") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required" maxlength="100"/>
|
||||
<div id="NameError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockStart("InputKey") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.SelectedID | html %]" class="W50pc" maxlength="100"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("InputKey") %]
|
||||
[% RenderBlockStart("Input") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]:<br/>
|
||||
[% IF (Data.Desc) %]
|
||||
<em>([% Translate(Data.Desc) | html %])</em>
|
||||
[% END %]
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.SelectedID | html %]" class="W50pc"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Input") %]
|
||||
[% RenderBlockStart("TextArea") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]:<br/>
|
||||
[% IF (Data.Desc) %]
|
||||
<em>([% Translate(Data.Desc) | html %])</em>
|
||||
[% END %]
|
||||
</label>
|
||||
<div class="Field">
|
||||
<textarea name="[% Data.Name | html %]" id="[% Data.Name | html %]" rows="[% Data.Rows | html %]" cols="[% Data.Cols | html %]">[% Data.SelectedID | html %]</textarea>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("TextArea") %]
|
||||
[% RenderBlockStart("Option") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:<br/>
|
||||
[% IF (Data.Desc) %]
|
||||
<em>([% Translate(Data.Desc) | html %])</em>
|
||||
[% END %]
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.Option %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Option") %]
|
||||
[% RenderBlockStart("Upload") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]: </label>
|
||||
<div class="Field">
|
||||
<input name="[% Data.Name | html %]" id="[% Data.Name | html %]" type="file" size="30" class="fixed"/><br/>
|
||||
<a href="">[% Data.Filename | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Upload") %]
|
||||
[% RenderBlockStart("Password") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="password" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="" class="W50pc"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Password") %]
|
||||
[% RenderBlockStart("ColorPicker") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]:<br/>
|
||||
[% IF (Data.Desc) %]
|
||||
<em>([% Translate(Data.Desc) | html %])</em>
|
||||
[% END %]
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.SelectedID | html %]" class="W50pc JSColorPicker {pickerBorderColor:'#BBB #BBB #BBB #BBB', pickerInsetColor:'#BBB #BBB #BBB #BBB'}"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("ColorPicker") %]
|
||||
<label for="ValidID">[% Translate("Validity") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="200"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
[% IF (Data.Class && Data.Class == 'NEW') || Data.ItemID == 'NEW' %]
|
||||
<button name="Submit" class="CallForAction Primary" id="Submit" type="submit" value="Submit"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
[% ELSE %]
|
||||
<button name="SubmitAndContinue" class="CallForAction Primary" id="SubmitAndContinue" type="button" value="Submit"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<button name="Submit" class="CallForAction Primary" id="Submit" type="submit" value="Submit"><span>[% Translate("Save and finish") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ItemList;Class=[% Data.Class %]">[% Translate("Cancel") | html %]</a>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("ItemEdit") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
1018
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminGenericAgent.tt
Normal file
1018
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminGenericAgent.tt
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,141 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst AdminGenericInterfaceDebugger">
|
||||
<h1 class="InvisibleText">[% Translate("GenericInterface Web Service Management") | html %]</h1>
|
||||
|
||||
[% USE BreadcrumbLink = String("AdminGenericInterfaceWebservice") %]
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate( 'Web Service Management' ),
|
||||
Link => BreadcrumbLink,
|
||||
},
|
||||
{
|
||||
Name => Data.WebserviceName,
|
||||
Link => BreadcrumbLink.copy.append( ";Subaction=Change;WebserviceID=", Data.WebserviceID ),
|
||||
},
|
||||
{
|
||||
Name => Translate('Debugger'),
|
||||
}
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i> [% Translate("Go back to web service") | html %]</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<button class="CallForAction Fullsize Center" type="button" id="DeleteButton"><span><i class="fa fa-trash-o"></i> [% Translate("Clear") | html %]</span></button>
|
||||
<div class="Hidden" id="DeleteDialogContainer">
|
||||
<span class="WarningDialog "> </span>
|
||||
<p id="DeleteDialog" class="Center Warning">
|
||||
[% Translate("Do you really want to clear the debug log of this web service?") | html %]
|
||||
</p>
|
||||
<div class="SpacingTop"></div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
<div class="WidgetSimple RequestListWidget">
|
||||
<div class="Header">
|
||||
<h2>
|
||||
[% Translate("Request List") | html %]
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<div class="ListContainer" style="max-height: 220px;"><!-- needed for CSS to limit table height -->
|
||||
<table class="DataTable" id="RequestList" summary="List of web service communications recorded by the debugger with the applied filter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Type") | html %]</th>
|
||||
<th>[% Translate("Time") | html %]</th>
|
||||
<th>[% Translate("Communication ID") | html %]</th>
|
||||
<th>[% Translate("Remote IP") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="4">[% Translate("Loading") | html %]...</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p class="FieldExplanation">[% Translate("Select a single request to see its details.") | html %]</p>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<fieldset class="TableLike">
|
||||
<label for="FilterType">[% Translate("Filter by type") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.FilterTypeStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Filter from") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.FilterFromStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Filter to") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.FilterToStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="FilterRemoteIP">[% Translate("Filter by remote IP") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="w50pc" id="FilterRemoteIP" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="FilterLimit">[% Translate("Limit") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.FilterLimitStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="FilterSort">[% Translate("Order") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.FilterSortStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field">
|
||||
<button type="button" id="FilterRefresh" class="CallForAction" value="[% Translate("Refresh") | html %]"><span><i class="fa fa-refresh"></i> [% Translate("Refresh") | html %]</span></button>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple Hidden" id="CommunicationDetails">
|
||||
<div class="Header"></div>
|
||||
<div class="Content"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,268 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate( "GenericInterface Web Service Management" ) | html %]</h1>
|
||||
|
||||
[% USE WebserviceLink = String("AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=") %]
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate( 'Web Service Management' ),
|
||||
Link => BreadcrumbLink,
|
||||
},
|
||||
{
|
||||
Name => Data.WebserviceName,
|
||||
Link => WebserviceLink.append( Data.WebserviceID ),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'Add' %]
|
||||
[% USE AddTitle = String(Translate("Add ErrorHandling")) %]
|
||||
[% BreadcrumbPath.push({ Name => AddTitle.append( ': ', Data.ErrorHandlingType ), }) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit ErrorHandling")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.ErrorHandlingType ), }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i> [% Translate("Go back to web service") | html %]</span></a>
|
||||
</li>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<li>
|
||||
<button class="CallForAction Fullsize Center" type="button" id="DeleteButton"><span> <i class="fa fa-trash-o"></i> [% Translate("Delete") | html %]</span></button>
|
||||
<div class="Hidden" id="DeleteDialogContainer">
|
||||
<span class="WarningDialog "> </span>
|
||||
<p id="DeleteDialog" class="Center Warning">
|
||||
[% Translate("Do you really want to delete this error handling module?") | html %]
|
||||
</p>
|
||||
<p class="Center Warning">
|
||||
[% Translate("All configuration data will be lost.") | html %]
|
||||
</p>
|
||||
<div class="SpacingTop"></div>
|
||||
</div>
|
||||
</li>
|
||||
[% END %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" class="Validate" method="post">
|
||||
<input type="hidden" name="Action" value="AdminGenericInterfaceErrorHandlingDefault" />
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | html %]Action" />
|
||||
<input type="hidden" id="WebserviceID" name="WebserviceID" value="[% Data.WebserviceID | html %]" />
|
||||
<input type="hidden" name="CommunicationType" value="[% Data.CommunicationType | html %]" />
|
||||
<input type="hidden" name="ErrorHandlingType" value="[% Data.ErrorHandlingType | html %]" />
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
|
||||
<!-- General options -->
|
||||
<div class="WidgetSimple Expanded">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("General options") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<fieldset class="TableLike">
|
||||
<label for="ErrorHandling" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Name") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc Validate_Required [% Data.ErrorHandlingServerError | html %]" maxlength="200" id="ErrorHandling" name="ErrorHandling" value="[% Data.ErrorHandling | html %]" />
|
||||
<input type="hidden" name="OldErrorHandling" value="[% Data.OldErrorHandling | html %]" />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The name can be used to distinguish different error handling configurations.") | html %]
|
||||
</p>
|
||||
<div id="ErrorHandlingError" class="TooltipErrorMessage">
|
||||
[% Translate("Please provide a unique name for this web service.") | html %]
|
||||
</div>
|
||||
<div id="ErrorHandlingServerError" class="TooltipErrorMessage">
|
||||
[% Translate("The name you entered already exists.") | html %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Description">
|
||||
[% Translate("Description") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc" maxlength="200" id="Description" name="Description" value="[% Data.Description | html %]" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ErrorHandlingTypeDisplay">[% Translate("Error handling module backend") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" readonly="readonly" class="W50pc" id="ErrorHandlingTypeDisplay" value="[% Data.ErrorHandlingType | html %]" />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This OTRS error handling backend module will be called internally to process the error handling mechanism.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Processing options -->
|
||||
<div class="WidgetSimple Expanded">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("Processing options") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<div class="Field">
|
||||
[% Translate("Configure filters to control error handling module execution.") | html %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Only requests matching all configured filters (if any) will trigger module execution.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("OperationFilter") %]
|
||||
<label for="OperationFilter">
|
||||
[% Translate("Operation filter") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.OperationFilterStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Only execute error handling module for selected operations.") | html %]<br/>
|
||||
[% Translate("Note: Operation is undetermined for errors occuring while receiving incoming request data. Filters involving this error stage should not use operation filter.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("OperationFilter") %]
|
||||
[% RenderBlockStart("InvokerFilter") %]
|
||||
<label for="InvokerFilter">
|
||||
[% Translate("Invoker filter") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.InvokerFilterStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Only execute error handling module for selected invokers.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("InvokerFilter") %]
|
||||
|
||||
<label for="ErrorMessageContentFilter">
|
||||
[% Translate("Error message content filter") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc [% Data.ErrorMessageContentFilterServerError | html %]" maxlength="200" id="ErrorMessageContentFilter" name="ErrorMessageContentFilter" value="[% Data.ErrorMessageContentFilter | html %]" />
|
||||
<input type="hidden" id="ErrorMessageContentFilter" name="ErrorMessageContentFilter" value="[% Data.ErrorMessageContentFilter | html %]" />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Enter a regular expression to restrict which error messages should cause error handling module execution.") | html %]<br/>
|
||||
[% Translate("Error message subject and data (as seen in the debugger error entry) will considered for a match.") | html %]<br/>
|
||||
[% Translate("Example: Enter '^.*401 Unauthorized.*\$' to handle only authentication related errors.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ErrorStageFilter">
|
||||
[% Translate("Error stage filter") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.ErrorStageFilterStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Only execute error handling module on errors that occur during specific processing stages.") | html %]<br/>
|
||||
[% Translate("Example: Handle only errors where mapping for outgoing data could not be applied.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ErrorCode">
|
||||
[% Translate("Error code") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc" maxlength="200" id="ErrorCode" name="ErrorCode" value="[% Data.ErrorCode | html %]" />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("An error identifier for this error handling module.") | html %]<br/>
|
||||
[% Translate("This identifier will be available in XSLT-Mapping and shown in debugger output.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ErrorMessage">
|
||||
[% Translate("Error message") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc" maxlength="200" id="ErrorMessage" name="ErrorMessage" value="[% Data.ErrorMessage | html %]" />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("An error explanation for this error handling module.") | html %]<br/>
|
||||
[% Translate("This message will be available in XSLT-Mapping and shown in debugger output.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="StopAfterMatch">
|
||||
[% Translate("Stop after match") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.StopAfterMatchStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Define if processing should be stopped after module was executed, skipping all remaining modules or only those of the same backend.") | html %]<br/>
|
||||
[% Translate("Default behavior is to resume, processing the next module.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Submit options -->
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Submit") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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=AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %]"><span>[% Translate("Cancel") | html %]</span></a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,396 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate( "GenericInterface Web Service Management" ) | html %]</h1>
|
||||
|
||||
[% USE WebserviceLink = String("AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=") %]
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate( 'Web Service Management' ),
|
||||
Link => BreadcrumbLink,
|
||||
},
|
||||
{
|
||||
Name => Data.WebserviceName,
|
||||
Link => WebserviceLink.append( Data.WebserviceID ),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'Add' %]
|
||||
[% USE AddTitle = String(Translate("Add ErrorHandling")) %]
|
||||
[% BreadcrumbPath.push({ Name => AddTitle.append( ': ', Data.ErrorHandlingType ), }) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit ErrorHandling")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.ErrorHandlingType ), }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i> [% Translate("Go back to web service") | html %]</span></a>
|
||||
</li>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<li>
|
||||
<button class="CallForAction Fullsize Center" type="button" id="DeleteButton"><span> <i class="fa fa-trash-o"></i> [% Translate("Delete") | html %]</span></button>
|
||||
<div class="Hidden" id="DeleteDialogContainer">
|
||||
<span class="WarningDialog "> </span>
|
||||
<p id="DeleteDialog" class="Center Warning">
|
||||
[% Translate("Do you really want to delete this error handling module?") | html %]
|
||||
</p>
|
||||
<p class="Center Warning">
|
||||
[% Translate("All configuration data will be lost.") | html %]
|
||||
</p>
|
||||
<div class="SpacingTop"></div>
|
||||
</div>
|
||||
</li>
|
||||
[% END %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This module allows to configure scheduled retries for failed requests.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Default behavior of GenericInterface web services is to send each request exactly once and not to reschedule after errors.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If more than one module capable of scheduling a retry is executed for an individual request, the module executed last is authoritative and determines if a retry is scheduled.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" class="Validate" method="post">
|
||||
<input type="hidden" name="Action" value="AdminGenericInterfaceErrorHandlingRequestRetry" />
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | html %]Action" />
|
||||
<input type="hidden" id="WebserviceID" name="WebserviceID" value="[% Data.WebserviceID | html %]" />
|
||||
<input type="hidden" name="CommunicationType" value="[% Data.CommunicationType | html %]" />
|
||||
<input type="hidden" name="ErrorHandlingType" value="[% Data.ErrorHandlingType | html %]" />
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
|
||||
<!-- General options -->
|
||||
<div class="WidgetSimple Expanded">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("General options") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<fieldset class="TableLike">
|
||||
<label for="ErrorHandling" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Name") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc Validate_Required [% Data.ErrorHandlingServerError | html %]" maxlength="200" id="ErrorHandling" name="ErrorHandling" value="[% Data.ErrorHandling | html %]" />
|
||||
<input type="hidden" name="OldErrorHandling" value="[% Data.OldErrorHandling | html %]" />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The name can be used to distinguish different error handling configurations.") | html %]
|
||||
</p>
|
||||
<div id="ErrorHandlingError" class="TooltipErrorMessage">
|
||||
[% Translate("Please provide a unique name for this web service.") | html %]
|
||||
</div>
|
||||
<div id="ErrorHandlingServerError" class="TooltipErrorMessage">
|
||||
[% Translate("The name you entered already exists.") | html %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Description">
|
||||
[% Translate("Description") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc" maxlength="200" id="Description" name="Description" value="[% Data.Description | html %]" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ErrorHandlingTypeDisplay">[% Translate("Error handling module backend") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" readonly="readonly" class="W50pc" id="ErrorHandlingTypeDisplay" value="[% Data.ErrorHandlingType | html %]" />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This OTRS error handling backend module will be called internally to process the error handling mechanism.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Processing options -->
|
||||
<div class="WidgetSimple Expanded">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("Processing options") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<div class="Field">
|
||||
[% Translate("Configure filters to control error handling module execution.") | html %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Only requests matching all configured filters (if any) will trigger module execution.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("OperationFilter") %]
|
||||
<label for="OperationFilter">
|
||||
[% Translate("Operation filter") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.OperationFilterStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Only execute error handling module for selected operations.") | html %]<br/>
|
||||
[% Translate("Note: Operation is undetermined for errors occuring while receiving incoming request data. Filters involving this error stage should not use operation filter.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("OperationFilter") %]
|
||||
[% RenderBlockStart("InvokerFilter") %]
|
||||
<label for="InvokerFilter">
|
||||
[% Translate("Invoker filter") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.InvokerFilterStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Only execute error handling module for selected invokers.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("InvokerFilter") %]
|
||||
|
||||
<label for="ErrorMessageContentFilter">
|
||||
[% Translate("Error message content filter") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc [% Data.ErrorMessageContentFilterServerError | html %]" maxlength="200" id="ErrorMessageContentFilter" name="ErrorMessageContentFilter" value="[% Data.ErrorMessageContentFilter | html %]" />
|
||||
<input type="hidden" id="ErrorMessageContentFilter" name="ErrorMessageContentFilter" value="[% Data.ErrorMessageContentFilter | html %]" />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Enter a regular expression to restrict which error messages should cause error handling module execution.") | html %]<br/>
|
||||
[% Translate("Error message subject and data (as seen in the debugger error entry) will considered for a match.") | html %]<br/>
|
||||
[% Translate("Example: Enter '^.*401 Unauthorized.*\$' to handle only authentication related errors.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ErrorStageFilter">
|
||||
[% Translate("Error stage filter") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.ErrorStageFilterStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Only execute error handling module on errors that occur during specific processing stages.") | html %]<br/>
|
||||
[% Translate("Example: Handle only errors where mapping for outgoing data could not be applied.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ErrorCode">
|
||||
[% Translate("Error code") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc" maxlength="200" id="ErrorCode" name="ErrorCode" value="[% Data.ErrorCode | html %]" />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("An error identifier for this error handling module.") | html %]<br/>
|
||||
[% Translate("This identifier will be available in XSLT-Mapping and shown in debugger output.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ErrorMessage">
|
||||
[% Translate("Error message") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc" maxlength="200" id="ErrorMessage" name="ErrorMessage" value="[% Data.ErrorMessage | html %]" />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("An error explanation for this error handling module.") | html %]<br/>
|
||||
[% Translate("This message will be available in XSLT-Mapping and shown in debugger output.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="StopAfterMatch">
|
||||
[% Translate("Stop after match") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.StopAfterMatchStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Define if processing should be stopped after module was executed, skipping all remaining modules or only those of the same backend.") | html %]<br/>
|
||||
[% Translate("Default behavior is to resume, processing the next module.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Request retry specific options -->
|
||||
<div class="WidgetSimple Expanded">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("Request retry options") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<div class="Field">
|
||||
[% Translate("Retry options are applied when requests cause error handling module execution (based on processing options).") | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ScheduleRetry" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Schedule retry") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.ScheduleRetryStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Should requests causing an error be triggered again at a later time?") | html %]
|
||||
</p>
|
||||
<div id="ScheduleRetryError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div id="ScheduleRetryFields" class="[% Data.ScheduleRetryFieldsHidden | html %]">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label for="RetryIntervalStart" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Initial retry interval") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.RetryIntervalStartStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Interval after which to trigger the first retry.") | html %]<br />
|
||||
[% Translate("Note: This and all further retry intervals are based on the error handling module execution time for the initial request.") | html %]
|
||||
</p>
|
||||
<div id="RetryIntervalStartError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="RetryIntervalFactor" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Factor for further retries") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.RetryIntervalFactorStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If a request returns an error even after a first retry, define if subsequent retries are triggered using the same interval or in increasing intervals.") | html %]<br />
|
||||
[% Translate("Example: If a request is initially triggered at 10:00 with initial interval at '1 minute' and retry factor at '2', retries would be triggered at 10:01 (1 minute), 10:03 (2*1=2 minutes), 10:07 (2*2=4 minutes), 10:15 (2*4=8 minutes), ...") | html %]
|
||||
</p>
|
||||
<div id="RetryIntervalFactorError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="RetryIntervalMax" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Maximum retry interval") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.RetryIntervalMaxStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If a retry interval factor of '1.5' or '2' is selected, undesirably long intervals can be prevented by defining the largest interval allowed.") | html %]<br />
|
||||
[% Translate("Intervals calculated to exceed the maximum retry interval will then automatically be shortened accordingly.") | html %]<br />
|
||||
[% Translate("Example: If a request is initially triggered at 10:00 with initial interval at '1 minute', retry factor at '2' and maximum interval at '5 minutes', retries would be triggered at 10:01 (1 minute), 10:03 (2 minutes), 10:07 (4 minutes), 10:12 (8=>5 minutes), 10:17, ...") | html %]<br />
|
||||
</p>
|
||||
<div id="RetryIntervalMaxError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="RetryCountMax">
|
||||
[% Translate("Maximum retry count") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc Validate_Number [% Data.RetryCountMaxServerError | html %]" maxlength="200" id="RetryCountMax" name="RetryCountMax" value="[% Data.RetryCountMax | html %]" />
|
||||
<input type="hidden" id="RetryCountMax" name="RetryCountMax" value="[% Data.RetryCountMax | html %]" />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Maximum number of retries before a failing request is discarded, not counting the initial request.") | html %]<br />
|
||||
[% Translate("Example: If a request is initially triggered at 10:00 with initial interval at '1 minute', retry factor at '2' and maximum retry count at '2', retries would be triggered at 10:01 and 10:02 only.") | html %]<br />
|
||||
[% Translate("Note: Maximum retry count might not be reached if a maximum retry period is configured as well and reached earlier.") | html %]
|
||||
</p>
|
||||
<div id="RetryCountMaxServerError" class="TooltipErrorMessage"><p>[% Translate("This field must be empty or contain a positive number.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="RetryPeriodMax">
|
||||
[% Translate("Maximum retry period") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.RetryPeriodMaxStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Maximum period of time for retries of failing requests before they are discarded (based on the error handling module execution time for the initial request).") | html %]<br />
|
||||
[% Translate("Retries that would normally be triggered after maximum period is elapsed (according to retry interval calculation) will automatically be triggered at maximum period exactly.") | html %]<br />
|
||||
[% Translate("Example: If a request is initially triggered at 10:00 with initial interval at '1 minute', retry factor at '2' and maximum retry period at '30 minutes', retries would be triggered at 10:01, 10:03, 10:07, 10:15 and finally at 10:31=>10:30.") | html %]<br />
|
||||
[% Translate("Note: Maximum retry period might not be reached if a maximum retry count is configured as well and reached earlier.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Submit options -->
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Submit") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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=AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %]"><span>[% Translate("Cancel") | html %]</span></a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,239 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst AdminGenericInterfaceInvokerDefault">
|
||||
<h1 class="InvisibleText">[% Translate("GenericInterface Web Service Management") | html %]</h1>
|
||||
|
||||
[% USE BreadcrumbLink = String("AdminGenericInterfaceWebservice") %]
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate( 'Web Service Management' ),
|
||||
Link => BreadcrumbLink,
|
||||
},
|
||||
{
|
||||
Name => Data.WebserviceName,
|
||||
Link => BreadcrumbLink.copy.append( ";Subaction=Change;WebserviceID=", Data.WebserviceID ),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Mode %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add Invoker"),}) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit Invoker")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Invoker ), }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i> [% Translate("Go back to web service") | html %]</span></a>
|
||||
</li>
|
||||
[% IF Data.Mode == 'Change' %]
|
||||
<li>
|
||||
<button class="CallForAction Fullsize Center" type="button" id="DeleteButton"><span> <i class="fa fa-trash-o"></i> [% Translate("Delete") | html %]</span></button>
|
||||
<div class="Hidden" id="DeleteDialogContainer">
|
||||
<span class="WarningDialog "> </span>
|
||||
<p id="DeleteDialog" class="Center Warning">
|
||||
[% Translate("Do you really want to delete this invoker?") | html %]
|
||||
</p>
|
||||
<p class="Center Warning">
|
||||
[% Translate("All configuration data will be lost.") | html %]
|
||||
</p>
|
||||
<div class="SpacingTop"></div>
|
||||
</div>
|
||||
</li>
|
||||
[% END %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Invoker Details") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" class="Validate" method="post">
|
||||
<input type="hidden" name="Action" value="AdminGenericInterfaceInvokerDefault" />
|
||||
<input type="hidden" name="Subaction" value="[% Data.Mode | html %]Action" />
|
||||
<input type="hidden" name="WebserviceID" value="[% Data.WebserviceID | html %]" id="WebserviceID" />
|
||||
<input type="hidden" name="InvokerType" value="[% Data.InvokerType | html %]" />
|
||||
[% IF Data.Mode == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
|
||||
<fieldset class="TableLike">
|
||||
<label for="Invoker" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Name") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc RegisterChange Validate_Required [% Data.InvokerServerError | html %]" maxlength="200" id="Invoker" name="Invoker" value="[% Data.NewInvoker | html %]" />
|
||||
<input type="hidden" id="OldInvoker" name="OldInvoker" value="[% Data.Invoker | html %]" />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The name is typically used to call up an operation of a remote web service.") | html %]
|
||||
</p>
|
||||
<div id="InvokerError" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %] [% Translate("Please provide a unique name for this web service.") | html %]
|
||||
</div>
|
||||
<div id="InvokerServerError" class="TooltipErrorMessage">
|
||||
[% Translate("The name you entered already exists.") | html %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Description">
|
||||
[% Translate("Description") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc RegisterChange" maxlength="200" id="Description" name="Description" value="[% Data.Description | html %]" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="InvokerTypeDisplay">[% Translate("Invoker backend") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" readonly="readonly" class="W50pc" id="InvokerTypeDisplay" value="[% Data.InvokerType | html %]" />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This OTRS invoker backend module will be called to prepare the data to be sent to the remote system, and to process its response data.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="MappingOutbound">[% Translate("Mapping for outgoing request data") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.MappingOutboundStrg %]
|
||||
[% RenderBlockStart("MappingOutboundConfigureButton") %]
|
||||
<input type="hidden" id="MappingOutboundConfigDialog" value="[% Data.MappingOutboundConfigDialog | html %]" />
|
||||
<button type="button" class="HideOnChange CallForAction InLine" id="MappingOutboundConfigureButton" value="[% Translate("Configure") | html %]"><span>[% Translate("Configure") | html %]</span></button>
|
||||
[% RenderBlockEnd("MappingOutboundConfigureButton") %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The data from the invoker of OTRS will be processed by this mapping, to transform it to the kind of data the remote system expects.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="MappingInbound">[% Translate("Mapping for incoming response data") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.MappingInboundStrg %]
|
||||
[% RenderBlockStart("MappingInboundConfigureButton") %]
|
||||
<input type="hidden" id="MappingInboundConfigDialog" value="[% Data.MappingInboundConfigDialog | html %]" />
|
||||
<button type="button" class="HideOnChange CallForAction InLine" id="MappingInboundConfigureButton" value="[% Translate("Configure") | html %]"><span>[% Translate("Configure") | html %]</span></button>
|
||||
[% RenderBlockEnd("MappingInboundConfigureButton") %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The response data will be processed by this mapping, to transform it to the kind of data the invoker of OTRS expects.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% IF Data.Mode == 'Change' %]
|
||||
<label for="EventsTable">[% Translate("Event Triggers") | html %]:</label>
|
||||
<div class="Field W50pc">
|
||||
<table class="DataTable W50pc" id="EventsTable" summary="List of all configured events">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="Center">[% Translate("Event") | html %]</th>
|
||||
<th class="Center">[% Translate("Asynchronous") | html %]</th>
|
||||
<th class="Center">[% Translate("Condition") | html %]</th>
|
||||
<th class="Center">[% Translate("Edit") | html %]</th>
|
||||
<th class="Center">[% Translate("Delete") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
|
||||
[% RenderBlockStart("EventRow") %]
|
||||
<tr>
|
||||
<td class="AsBlock">[% Data.Event | html %]</td>
|
||||
<td class="Center">[% Translate(Data.Asynchronous) | html %]</td>
|
||||
<td class="Center">[% Translate(Data.Condition) | html %]</td>
|
||||
<td class="Center">
|
||||
<a class="Pencil EditEvent HideOnChange" href="[% Env("Baselink") %]Action=AdminGenericInterfaceInvokerEvent;Subaction=Change;WebserviceID=[% Data.WebserviceID | html %];Invoker=[% Data.Invoker | html %];Event=[% Data.Event | html %]" title="[% Translate("Edit this event") | html %]">
|
||||
[% Translate("Edit this event") | html %]
|
||||
<i class="fa fa-edit"></i>
|
||||
</a>
|
||||
<td class="Center">
|
||||
<a id="DeleteEvent[% Data.Event | html %]" class="TrashCan DeleteEvent HideOnChange" href="#" title="[% Translate("Delete this event") | html %]">
|
||||
[% Translate("Delete this event") | html %]
|
||||
<i class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("EventRow") %]
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This invoker will be triggered by the configured events.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="Hidden" id="DeleteEventDialogContainer">
|
||||
<div id ="DeleteEventDialog" class="InnerContent GenericInterfaceDialog">
|
||||
<span class="WarningDialog "> </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 for="EventType">[% Translate("Add Event Trigger") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.EventTypeStrg %]
|
||||
[% RenderBlockStart("EventAdd") %]
|
||||
[% Data.EventStrg %]
|
||||
[% RenderBlockEnd("EventAdd") %]
|
||||
<input type="checkbox" id="Asynchronous" checked="checked" class="GenericInterfaceSpacing" name="Asynchronous"/><label for="Asynchronous">[% Translate("Asynchronous") | html %]</label>
|
||||
<button type="button" id="AddEvent" class="Add GenericInterfaceSpacing HideOnChange" name="AddEvent" value="[% Translate("Add Event") | html %]">[% Translate("Add Event") | html %]</button>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("To add a new event select the event object and event name and click on the \"+\" button") | html %].
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Asynchronous event triggers are handled by the OTRS Scheduler Daemon in background (recommended).") | html %]
|
||||
<br/>
|
||||
[% Translate("Synchronous event triggers would be processed directly during the web request.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% END %]
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Mode == 'Change' %]
|
||||
<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=AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %]"><span>[% Translate("Cancel") | html %]</span></a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,345 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst AdminGenericInterfaceInvokerEvent">
|
||||
<h1 class="InvisibleText">[% Translate("GenericInterface Invoker Event Settings for Web Service %s", Data.WebserviceName) | html %]</h1>
|
||||
|
||||
[% USE WebserviceLink = String("AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=") %]
|
||||
[% USE InvokerName = String( 'Invoker' ) %]
|
||||
[% USE InvokerLink = String( Data.InvokerTypeFrontendModule ) %]
|
||||
[% USE EventName = String( 'Event' ) %]
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate( 'Web Service Management' ),
|
||||
Link => 'AdminGenericInterfaceWebservice',
|
||||
},
|
||||
{
|
||||
Name => Data.WebserviceName,
|
||||
Link => WebserviceLink.append( Data.WebserviceID ),
|
||||
},
|
||||
{
|
||||
Name => InvokerName.append( ': ', Data.Invoker ),
|
||||
Link => InvokerLink.copy.append(';Subaction=Change;Invoker=', Data.Invoker, ';WebserviceID=', Data.WebserviceID),
|
||||
}
|
||||
{
|
||||
Name => EventName.append( ': ',Data.Event ),
|
||||
}
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Data.InvokerTypeFrontendModule | uri %];Subaction=Change;Invoker=[% Data.Invoker | uri %];WebserviceID=[% Data.WebserviceID | uri %]" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-caret-left"></i> [% Translate("Go back to") | html %] [% Data.LowerCaseActionType | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<button id="DeleteButton" class="CallForAction Fullsize Center" type="button"><span><i class="fa fa-trash-o"></i> [% Translate("Delete all conditions") | html %]</span></button>
|
||||
<div class="Hidden" id="DeleteDialogContainer">
|
||||
<div id ="DeleteDialog" class="InnerContent GenericInterfaceDialog">
|
||||
<span class="WarningDialog "> </span>
|
||||
<p class="Center Warning">[% Translate("Do you really want to delete all the conditions for this event?") | html %]</p>
|
||||
<div class="SpacingTop"></div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
<form id='EventForm' action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | html %]Action"/>
|
||||
<input type="hidden" name="WebserviceID" value="[% Data.WebserviceID | html %]" id="WebserviceID"/>
|
||||
<input type="hidden" name="Invoker" value="[% Data.Invoker | html %]" />
|
||||
<input type="hidden" name="InvokerType" value="[% Data.InvokerType | html %]" />
|
||||
<input type="hidden" name="Event" value="[% Data.Event | html %]" />
|
||||
<input type="hidden" name="EventType" value="[% Data.EventType | html %]" />
|
||||
<input type="hidden" name="ConditionConfig" value=""/>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("General Settings") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike FixedLabel" id="GeneralEventSettings">
|
||||
<label for="Event">[% Translate("Event") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" readonly="readonly" name="Event" class="Validate_Required W50pc" value="[% Translate( Data.Event ) | html %]" id="Event" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label for="EventType">[% Translate("Event type") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" readonly="readonly" name="EventType" class="Validate_Required W50pc" value="[% Translate( Data.EventType ) | html %]" id="EventType" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Asynchronous">[% Translate("Asynchronous") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="Asynchronous" id="Asynchronous" value="1" [% IF Data.Asynchronous %]checked="checked"[% END %]>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple Expanded">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate(Data.EventType) | html %] [% Translate("Event") | html %] [% Translate("Conditions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content LayoutGrid">
|
||||
<fieldset class="TableLike FixedLabel" id="PresentConditionsContainer">
|
||||
<div class="SpacingBottom">
|
||||
<p>
|
||||
[% Translate("Conditions can only operate on non-empty fields.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<label for="OverallConditionLinking">[% Translate("Type of Linking between Conditions") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.OverallConditionLinking %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockStart("ConditionItemEditRow") %]
|
||||
<div class="WidgetSimple ParentWidget" id="Condition[[% Data.Index | html %]]">
|
||||
<div class="Header">
|
||||
<h2 for="Condition[[% Data.Index | html %]]">[% Translate("Condition") | html %] [% Data.Index | html %]</h2>
|
||||
<div class="AdditionalInformation">
|
||||
<a class="RemoveButton" href="#" name="ConditionRemove[[% Data.Index | html %]]" title="[% Translate("Remove this Condition") | html %]">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Remove this Condition") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
<div class="Field ConditionField">
|
||||
<div class="Condition">
|
||||
<fieldset class="TableLike FixedLabelSmall">
|
||||
<label for="ConditionLinking[[% Data.Index | html %]]">[% Translate("Type of Linking") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ConditionLinking %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<div class="WidgetSimple FieldWidget">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Fields") | html %]</h2>
|
||||
<div class="AdditionalInformation">
|
||||
<a class="AddButton ConditionFieldAdd" href="#" title="[% Translate("Add a new Field") | html %]">
|
||||
<i class="fa fa-plus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Add a new Field") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% RenderBlockStart("ConditionItemEditRowField") %]
|
||||
<fieldset>
|
||||
<label for="ConditionFieldName[[% Data.Index | html %]][[% Data.FieldIndex | html %]]">[% Translate("Name") | html %]:</label>
|
||||
<input type="text" name="ConditionFieldName[[% Data.Index | html %]][[% Data.FieldIndex | html %]]" class="W20pc Validate_Required Validate_NotEqual Validate_NotEqual_ConditionFieldName" value="[% Data.FieldIndex | html %]" id="ConditionFieldName[[% Data.Index | html %]][[% Data.FieldIndex | html %]]" />
|
||||
<label for="ConditionFieldType[[% Data.Index | html %]][[% Data.FieldIndex | html %]]">[% Translate("Type") | html %]:</label>
|
||||
[% Data.ConditionFieldType %]
|
||||
<label for="ConditionFieldValue[[% Data.Index | html %]][[% Data.FieldIndex | html %]]">[% Translate("Value") | html %]:</label>
|
||||
<input type="text" name="ConditionFieldValue[[% Data.Index | html %]][[% Data.FieldIndex | html %]]" class="W20pc Validate_Required" value="[% Data.Match | html %]" id="ConditionFieldValue[[% Data.Index | html %]][[% Data.FieldIndex | html %]]" />
|
||||
<a href="#" class="RemoveButton" type="button" name="ConditionFieldRemove[[% Data.Index | html %]][[% Data.FieldIndex | html %]]" title="[% Translate("Remove this Field") | html %]">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Remove this Field") | html %]</span>
|
||||
</a>
|
||||
<div id="ConditionFieldName[[% Data.Index | html %]][[% Data.FieldIndex | html %]]Error" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %] [% Translate("And can't be repeated on the same condition.") | html %]
|
||||
</div>
|
||||
<div id="ConditionFieldValue[[% Data.Index | html %]][[% Data.FieldIndex | html %]]Error" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %]
|
||||
</div>
|
||||
</fieldset>
|
||||
[% RenderBlockEnd("ConditionItemEditRowField") %]
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ConditionItemEditRow") %]
|
||||
|
||||
[% RenderBlockStart("ConditionItemInitRow") %]
|
||||
<div class="WidgetSimple ParentWidget" id="Condition[1]">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Condition") | html %] 1</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="Field ConditionField">
|
||||
<div class="Condition">
|
||||
<fieldset class="TableLike FixedLabelSmall">
|
||||
<label for="ConditionLinking[1]">[% Translate("Type of Linking") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ConditionLinking %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="WidgetSimple FieldWidget">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Fields") | html %]</h2>
|
||||
<div class="AdditionalInformation">
|
||||
<a class="ConditionFieldAdd AddButton" href="#" title="[% Translate("Add a new Field") | html %]">
|
||||
<i class="fa fa-plus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Add a new Field") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset>
|
||||
<label for="ConditionFieldName[1][1]">[% Translate("Name") | html %]:</label>
|
||||
<input type="text" name="ConditionFieldName[1][1]" class="W20pc Validate_Required Validate_NotEqual Validate_NotEqual_ConditionFieldName" id="ConditionFieldName[1][1]" />
|
||||
<label for="ConditionFieldType[1][1]">[% Translate("Type") | html %]:</label>
|
||||
[% Data.ConditionFieldType %]
|
||||
<label for="ConditionFieldValue[1][1]">[% Translate("Value") | html %]:</label>
|
||||
<input type="text" name="ConditionFieldValue[1][1]" class="W20pc Validate_Required" id="ConditionFieldValue[1][1]" />
|
||||
<a href="#" class="RemoveButton" type="button" name="ConditionFieldRemove[1][1]" title="[% Translate("Remove this Field") | html %]">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Remove this Field") | html %]</span>
|
||||
</a>
|
||||
|
||||
<div id="ConditionFieldName[1][1]Error" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %] [% Translate("And can't be repeated on the same condition.") | html %]
|
||||
</div>
|
||||
<div id="ConditionFieldValue[1][1]Error" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %]
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ConditionItemInitRow") %]
|
||||
<button type="button" id="ConditionAdd" class="CallForAction"><span>[% Translate("Add New Condition") | html %]</span></button>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Invisible submit button to allow form submit on pressing enter/return without javascript -->
|
||||
<input type="image" width="0" height="0" style="display: none;" />
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Save") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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=[% Data.InvokerTypeFrontendModule | uri %];Subaction=Change;Invoker=[% Data.Invoker | uri %];WebserviceID=[% Data.WebserviceID | uri %]"><span>[% Translate("Cancel") | html %]</span></a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</form>
|
||||
<div id="ConditionContainer" style="display:none;">
|
||||
<div class="WidgetSimple ParentWidget" id="Condition[_INDEX_]">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Condition") | html %] _INDEX_</h2>
|
||||
<div class="AdditionalInformation">
|
||||
<a href="#" name="ConditionRemove[_INDEX_]" class="RemoveButton" title="[% Translate("Remove this Condition") | html %]">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Remove this Condition") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="Field ConditionField">
|
||||
<div class="Condition">
|
||||
<fieldset class="TableLike FixedLabelSmall">
|
||||
<label for="ConditionLinking[_INDEX_]">[% Translate("Type of Linking") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.FreshConditionLinking %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="WidgetSimple FieldWidget">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Fields") | html %]</h2>
|
||||
<div class="AdditionalInformation">
|
||||
<a class="ConditionFieldAdd AddButton" href="#" title="[% Translate("Add a new Field") | html %]">
|
||||
<i class="fa fa-plus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Add a new Field") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset>
|
||||
<label for="ConditionFieldName[_INDEX_][1]">[% Translate("Name") | html %]:</label>
|
||||
<input type="text" name="ConditionFieldName[_INDEX_][1]" class="W20pc Validate_Required Validate_NotEqual Validate_NotEqual_ConditionFieldName" id="ConditionFieldName[_INDEX_][1]" />
|
||||
<label for="ConditionFieldType[_INDEX_][1]">[% Translate("Type") | html %]:</label>
|
||||
[% Data.FreshConditionFieldType %]
|
||||
<label for="ConditionFieldValue[_INDEX_][1]">[% Translate("Value") | html %]:</label>
|
||||
<input type="text" name="ConditionFieldValue[_INDEX_][1]" class="W20pc Validate_Required" id="ConditionFieldValue[_INDEX_][1]" />
|
||||
<a href="#" class="RemoveButton" type="button" name="ConditionFieldRemove[_INDEX_][1]" title="[% Translate("Remove this Field") | html %]">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Remove this Field") | html %]</span>
|
||||
</a>
|
||||
<div id="ConditionFieldName[_INDEX_][1]Error" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %] [% Translate("And can't be repeated on the same condition.") | html %]
|
||||
</div>
|
||||
<div id="ConditionFieldValue[_INDEX_][1]Error" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %]
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ConditionFieldContainer" style="display:none;">
|
||||
<fieldset>
|
||||
<label for="ConditionFieldName[_INDEX_][_FIELDINDEX_]">[% Translate("Name") | html %]:</label>
|
||||
<input type="text" name="ConditionFieldName[_INDEX_][_FIELDINDEX_]" class="W20pc Validate_Required Validate_NotEqual Validate_NotEqual_ConditionFieldName" id="ConditionFieldName[_INDEX_][_FIELDINDEX_]" />
|
||||
<label for="ConditionFieldType[_INDEX_][_FIELDINDEX_]">[% Translate("Type") | html %]:</label>
|
||||
[% Data.FreshConditionFieldType %]
|
||||
<label for="ConditionFieldValue[_INDEX_][_FIELDINDEX_]">[% Translate("Value") | html %]:</label>
|
||||
<input type="text" name="ConditionFieldValue[_INDEX_][_FIELDINDEX_]" class="W20pc Validate_Required" id="ConditionFieldValue[_INDEX_][_FIELDINDEX_]" />
|
||||
<a href="#" class="RemoveButton" type="button" name="ConditionFieldRemove[_INDEX_][_FIELDINDEX_]" title="[% Translate("Remove this Field") | html %]">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Remove this Field") | html %]</span>
|
||||
</a>
|
||||
<div id="ConditionFieldName[_INDEX_][_FIELDINDEX_]Error" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %] [% Translate("And can't be repeated on the same condition.") | html %]
|
||||
</div>
|
||||
<div id="ConditionFieldValue[_INDEX_][_FIELDINDEX_]Error" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %]
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,288 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst AdminGenericInterfaceMappingSimple">
|
||||
<h1 class="InvisibleText">[% Translate("GenericInterface Web Service Management") | html %]</h1>
|
||||
|
||||
[% USE WebserviceLink = String( "AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=" ) %]
|
||||
[% USE ActionName = String( Data.ActionType ) %]
|
||||
[% USE ActionLink = String( Data.ActionFrontendModule ) %]
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate( 'Web Service Management' ),
|
||||
Link => 'AdminGenericInterfaceWebservice',
|
||||
},
|
||||
{
|
||||
Name => Data.WebserviceName,
|
||||
Link => WebserviceLink.append( Data.WebserviceID ),
|
||||
},
|
||||
{
|
||||
Name => ActionName.append( ': ', Data.Action ),
|
||||
Link => ActionLink.append( ';Subaction=Change;', Data.ActionType, '=', Data.Action, ';WebserviceID=', Data.WebserviceID ),
|
||||
},
|
||||
{
|
||||
Name => Data.MappingDirection,
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Data.ActionFrontendModule | uri %];Subaction=Change;[% Data.ActionType | uri %]=[% Data.Action | uri %];WebserviceID=[% Data.WebserviceID | uri %]" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-caret-left"></i> [% Translate("Go back to") | html %] [% Data.LowerCaseActionType | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Mapping Simple") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Subaction | html %]Action"/>
|
||||
<input type="hidden" name="WebserviceID" value="[% Data.WebserviceID | html %]" id="WebserviceID"/>
|
||||
<input type="hidden" name="CommunicationType" value="[% Data.CommunicationType | html %]" />
|
||||
<input type="hidden" name="Operation" value="[% Data.Operation | html %]" />
|
||||
<input type="hidden" name="Invoker" value="[% Data.Invoker | html %]" />
|
||||
<input type="hidden" name="Direction" value="[% Data.Direction | html %]"/>
|
||||
[% RenderBlockStart("KeyCounter") %]
|
||||
<input type="hidden" name="KeyCounter" id="KeyCounter" value="[% Data.KeyIndex | html %]" />
|
||||
[% RenderBlockEnd("KeyCounter") %]
|
||||
[% IF Data.Subaction == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike SpacingTop">
|
||||
<label for="DefaultKeyType">[% Translate("Default rule for unmapped keys") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DefaultKeyTypeStrg %]
|
||||
<div id="DefaultKeyTypeError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="DefaultKeyTypeServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<input id="DefaultKeyMapTo" name="DefaultKeyMapTo" class="W25pc DefaultKeyType [% Data.DefaultKeyMapToHidden | html %] [% Data.DefaultKeyMapToError | html %]" type="text" maxlength="100" value="[% Data.DefaultKeyMapTo | html %]"/>
|
||||
<div id="DefaultKeyMapToError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="DefaultKeyMapToServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<p class="FieldExplanation">[% Translate("This rule will apply for all keys with no mapping rule.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="DefaultKeyType">[% Translate("Default rule for unmapped values") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DefaultValueTypeStrg %]
|
||||
<div id="DefaultKeyValueTypeError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="DefaultValueTypeServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<input id="DefaultValueMapTo"name="DefaultValueMapTo" class="W25pc DefaultValueType [% Data.DefaultValueMapToHidden | html %] [% Data.DefaultValueMapToError | html %]" type="text" maxlength="100" value="[% Data.DefaultValueMapTo | html %]"/>
|
||||
<div id="DefaultValueMapToError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="DefaultValueMapToServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<p class="FieldExplanation">[% Translate("This rule will apply for all values with no mapping rule.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="AddKeyMapping">[% Translate("New key map") | html %]:</label>
|
||||
<div class="Field">
|
||||
<div class="NewRule">
|
||||
<a href="" id="AddKeyMapping" class="AddButton" value="[% Translate("Add key mapping") | html %]"><i class="fa fa-plus-square-o"></i><span class="InvisibleText">[% Translate("Add key mapping") | html %]</span></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear Spacing"></div>
|
||||
</fieldset>
|
||||
<div class="Content Spacing" id="KeyInsert">
|
||||
|
||||
[% RenderBlockStart("KeyTemplate") %]
|
||||
<div class="WidgetSimple Expanded WidgetKey [% Data.Classes | html %]">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h3 class="Title">[% Translate("Mapping for Key ") | html %] [% Data.KeyMapNew | html %]</h3>
|
||||
<div class="AdditionalInformation">
|
||||
<a href="" id="RemoveKeyMapping[% Data.KeyIndex | html %]" class="RemoveButton KeyMapRemove" value="[% Translate("Remove key mapping") | html %]"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove key mapping") | html %]</span></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<fieldset class="TableLike FixedLabelSmall">
|
||||
<label>[% Translate("Key mapping") | html %]:</label>
|
||||
<div class="Spacing"></div>
|
||||
<div class="Field KeyTemplateHeader">
|
||||
<label for="KeyName[% Data.KeyIndex | html %]" class="Mandatory KeyName[% Data.KeyIndex | html %]Label"><span class="Marker">*</span>[% Translate("Map key") | html %]:</label>
|
||||
<input name="KeyName[% Data.KeyIndex | html %]" id="KeyName[% Data.KeyIndex | html %]" class="W20pc Validate_Required [% Data.KeyNameError | html %]" type="text" maxlength="100" value="[% Data.KeyName | html %]"/>
|
||||
<div id="KeyName[% Data.KeyIndex | html %]Error" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="KeyName[% Data.KeyIndex | html %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
|
||||
<label for="KeyMapTypeStrg[% Data.KeyIndex | html %]" class="KeyMapTypeStrg[% Data.KeyIndex | html %]Label">[% Translate("matching the") | html %]:</label>
|
||||
[% Data.KeyMapTypeStrg %]
|
||||
<div id="KeyMapTypeStrg[% Data.KeyIndex | html %]Error" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="KeyMapTypeStrg[% Data.KeyIndex | html %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
|
||||
<label for="KeyMapNew[% Data.KeyIndex | html %]" class="Mandatory KeyMapNew[% Data.KeyIndex | html %]Label"><span class="Marker">*</span>[% Translate("to new key") | html %]:</label>
|
||||
<input name="KeyMapNew[% Data.KeyIndex | html %]" id="KeyMapNew[% Data.KeyIndex | html %]" class="W20pc Validate_Required NewValue [% Data.KeyMapNewError | html %]" type="text" maxlength="100" value="[% Data.KeyMapNew | html %]"/>
|
||||
<div id="KeyMapNew[% Data.KeyIndex | html %]Error" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="KeyMapNew[% Data.KeyIndex | html %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<input type="hidden" name="KeyIndex[% Data.KeyIndex | html %]" id="KeyIndex[% Data.KeyIndex | html %]" value="[% Data.KeyIndex | html %]" class="KeyIndex" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Value mapping") | html %]:</label>
|
||||
<div class="Field ValueInsert">
|
||||
[% RenderBlockStart("ValueTemplateRowIndex") %]
|
||||
<input type="hidden" name="ValueCounter[% Data.KeyIndex | html %]" value="[% Data.ValueIndex | html %]" id="ValueCounter[% Data.KeyIndex | html %]" class="ValueCounter" />
|
||||
[% RenderBlockEnd("ValueTemplateRowIndex") %]
|
||||
<div class="Spacing"></div>
|
||||
[% RenderBlockStart("ValueTemplateRow") %]
|
||||
<div class="ValueTemplateRow SpacingTopSmall">
|
||||
<label class="Mandatory" for="ValueName[% Data.KeyIndex | html %]_[% Data.ValueIndex | html %]"><span class="Marker">*</span>[% Translate("Map value") | html %]:</label>
|
||||
<input name="ValueName[% Data.KeyIndex | html %]_[% Data.ValueIndex | html %]" id="ValueName[% Data.KeyIndex | html %]_[% Data.ValueIndex | html %]" class="W20pc Validate_Required [% Data.ValueNameError | html %]" type="text" maxlength="100" value="[% Data.ValueName | html %]"/>
|
||||
<div id="ValueName[% Data.KeyIndex | html %]_[% Data.ValueIndex | html %]Error" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValueName[% Data.KeyIndex | html %]_[% Data.ValueIndex | html %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
|
||||
<label for="ValueMapTypeStrg[% Data.KeyIndex | html %]_[% Data.ValueIndex | html %]">[% Translate("matching the") | html %]:</label>
|
||||
[% Data.ValueMapTypeStrg %]
|
||||
<div id="ValueMapTypeStrg[% Data.KeyIndex | html %]_[% Data.ValueIndex | html %]Error" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValueMapTypeStrg[% Data.KeyIndex | html %]_[% Data.ValueIndex | html %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
|
||||
<label class="Mandatory" for="ValueMapNew[% Data.KeyIndex | html %]_[% Data.ValueIndex | html %]"><span class="Marker">*</span>[% Translate("to new value") | html %]:</label>
|
||||
<input name="ValueMapNew[% Data.KeyIndex | html %]_[% Data.ValueIndex | html %]" id="ValueMapNew[% Data.KeyIndex | html %]_[% Data.ValueIndex | html %]" class="W20pc Validate_Required [% Data.ValueMapNewError | html %]" type="text" maxlength="100" value="[% Data.ValueMapNew | html %]"/>
|
||||
<div id="ValueMapNew[% Data.KeyIndex | html %]_[% Data.ValueIndex | html %]Error" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValueMapNew[% Data.KeyIndex | html %]_[% Data.ValueIndex | html %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<a href="" id="RemoveValueMapping[% Data.KeyIndex | html %]_[% Data.ValueIndex | html %]" class="RemoveButton ValueRemove" value="[% Translate("Remove value mapping") | html %]"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove value mapping") | html %]</span></a>
|
||||
</div>
|
||||
[% RenderBlockEnd("ValueTemplateRow") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<fieldset class="TableLike SpacingTop">
|
||||
<label for="AddValueMapping[% Data.KeyIndex | html %]" class="AddValueMapping">[% Translate("New value map") | html %]:</label>
|
||||
<div class="Field">
|
||||
<div class="NewValueMap">
|
||||
<a href="" id="AddValueMapping[% Data.KeyIndex | html %]" class="AddButton ValueAdd" value="[% Translate("Add value mapping") | html %]"><i class="fa fa-plus-square-o"></i><span class="InvisibleText">[% Translate("Add value mapping") | html %]</span></a>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("KeyTemplate") %]
|
||||
|
||||
[% RenderBlockStart("ValueTemplate") %]
|
||||
<div class="ValueTemplateRow ValueTemplate SpacingTopSmall Hidden">
|
||||
<label for="ValueName" class="Mandatory ValueNameLabel"><span class="Marker">*</span>[% Translate("Map value") | html %]:</label>
|
||||
<input name="ValueName" id="ValueName" class="W20pc" type="text" maxlength="100" value=""/>
|
||||
<div id="ValueNameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValueNameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
|
||||
<label for="ValueMapTypeStrg" class="ValueMapTypeStrgLabel">[% Translate("matching the") | html %]:</label>
|
||||
[% Data.ValueMapTypeStrg %]
|
||||
<div id="ValueMapTypeStrgError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValueMapTypeStrgServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
|
||||
<label for="ValueMapNew" class="Mandatory ValueMapNewLabel"><span class="Marker">*</span>[% Translate("to new value") | html %]:</label>
|
||||
<input name="ValueMapNew" id="ValueMapNew" class="W20pc" type="text" maxlength="100" value=""/>
|
||||
<div id="ValueMapNewError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValueMapNewServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<a href="#" id="RemoveValueMapping" class="RemoveButton ValueRemove" value="[% Translate("Remove value mapping") | html %]"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove value mapping") | html %]</span></a>
|
||||
</div>
|
||||
[% RenderBlockEnd("ValueTemplate") %]
|
||||
|
||||
</div>
|
||||
<fieldset class="TableLike">
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Subaction == 'Change' %]
|
||||
<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=[% Data.ActionFrontendModule | uri %];Subaction=Change;[% Data.ActionType | uri %]=[% Data.Action | uri %];WebserviceID=[% Data.WebserviceID | uri %]"><span>[% Translate("Cancel") | html %]</span></a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
<div class="Clear"></div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="Hidden" id="DeleteDialogContainer">
|
||||
<span class="WarningDialog "> </span>
|
||||
<p id="DeleteDialog" class="Center Warning">
|
||||
[% Translate("Do you really want to delete this key mapping?") | html %]
|
||||
</p>
|
||||
<div class="SpacingTop"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,319 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst AdminGenericInterfaceMappingXSLT">
|
||||
<h1 class="InvisibleText">[% Translate( "GenericInterface Web Service Management" ) | html %]</h1>
|
||||
|
||||
[% USE WebserviceLink = String( "AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=" ) %]
|
||||
[% USE ActionName = String( Data.ActionType ) %]
|
||||
[% USE ActionLink = String( Data.ActionFrontendModule ) %]
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate( 'Web Service Management' ),
|
||||
Link => 'AdminGenericInterfaceWebservice',
|
||||
},
|
||||
{
|
||||
Name => Data.WebserviceName,
|
||||
Link => WebserviceLink.append( Data.WebserviceID ),
|
||||
},
|
||||
{
|
||||
Name => ActionName.append( ': ', Data.Action ),
|
||||
Link => ActionLink.append( ';Subaction=Change;', Data.ActionType, '=', Data.Action, ';WebserviceID=', Data.WebserviceID ),
|
||||
},
|
||||
{
|
||||
Name => Data.MappingDirection,
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Data.ActionFrontendModule | uri %];Subaction=Change;[% Data.ActionType | uri %]=[% Data.Action | uri %];WebserviceID=[% Data.WebserviceID | uri %]" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-caret-left"></i> [% Translate("Go back to") | html %] [% Data.LowerCaseActionType | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple Tabs StickyElement">
|
||||
<div class="Header">
|
||||
<a href="#General" class="Active">[% Translate("General Shortcuts") | html %]</a>
|
||||
<a href="#MacOS">[% Translate("MacOS Shortcuts") | html %]</a>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div data-id="General" class="Active">
|
||||
<ul class="ShortCuts">
|
||||
<li>
|
||||
<em>
|
||||
<span>Ctrl</span><span>K</span>
|
||||
</em>
|
||||
<em>[% Translate("Comment code") | html %]</em>
|
||||
</li>
|
||||
<li>
|
||||
<em>
|
||||
<span>Ctrl</span><span>Shift</span><span>K</span>
|
||||
</em>
|
||||
<em>[% Translate("Uncomment code") | html %]</em>
|
||||
</li>
|
||||
<li>
|
||||
<em>
|
||||
<span>Ctrl</span><span>Alt</span><span>K</span>
|
||||
</em>
|
||||
<em>[% Translate("Auto format code") | html %]</em>
|
||||
</li>
|
||||
<li>
|
||||
<em>
|
||||
<span>Ctrl</span><span>Q</span>
|
||||
</em>
|
||||
<em>[% Translate("Expand/Collapse code block") | html %]</em>
|
||||
</li>
|
||||
<li>
|
||||
<em>
|
||||
<span>Ctrl</span><span>F</span>
|
||||
</em>
|
||||
<em>[% Translate("Find") | html %]</em>
|
||||
</li>
|
||||
<li>
|
||||
<em>
|
||||
<span>Ctrl</span><span>G</span>
|
||||
</em>
|
||||
<em>[% Translate("Find next") | html %]</em>
|
||||
</li>
|
||||
<li>
|
||||
<em>
|
||||
<span>Ctrl</span><span>Shift</span><span>G</span>
|
||||
</em>
|
||||
<em>[% Translate("Find previous") | html %]</em>
|
||||
</li>
|
||||
<li>
|
||||
<em>
|
||||
<span>Ctrl</span><span>Shift</span><span>F</span>
|
||||
</em>
|
||||
<em>[% Translate("Find and replace") | html %]</em>
|
||||
</li>
|
||||
<li>
|
||||
<em>
|
||||
<span>Ctrl</span><span>Shift</span><span>R</span>
|
||||
</em>
|
||||
<em>[% Translate("Find and replace all") | html %]</em>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div data-id="MacOS">
|
||||
<ul class="ShortCuts">
|
||||
<li>
|
||||
<em>
|
||||
<span>Cmd</span><span>K</span>
|
||||
</em>
|
||||
<em>[% Translate("Comment code") | html %]</em>
|
||||
</li>
|
||||
<li>
|
||||
<em>
|
||||
<span>Cmd</span><span>Shift</span><span>K</span>
|
||||
</em>
|
||||
<em>[% Translate("Uncomment code") | html %]</em>
|
||||
</li>
|
||||
<li>
|
||||
<em>
|
||||
<span>Cmd</span><span>Alt</span><span>K</span>
|
||||
</em>
|
||||
<em>[% Translate("Auto format code") | html %]</em>
|
||||
</li>
|
||||
<li>
|
||||
<em>
|
||||
<span>Cmd</span><span>F</span>
|
||||
</em>
|
||||
<em>[% Translate("Find") | html %]</em>
|
||||
</li>
|
||||
<li>
|
||||
<em>
|
||||
<span>Cmd</span><span>G</span>
|
||||
</em>
|
||||
<em>[% Translate("Find next") | html %]</em>
|
||||
</li>
|
||||
<li>
|
||||
<em>
|
||||
<span>Cmd</span><span>Shift</span><span>G</span>
|
||||
</em>
|
||||
<em>[% Translate("Find previous") | html %]</em>
|
||||
</li>
|
||||
<li>
|
||||
<em>
|
||||
<span>Cmd</span><span>Shift</span><span>F</span>
|
||||
</em>
|
||||
<em>[% Translate("Find and replace") | html %]</em>
|
||||
</li>
|
||||
<li>
|
||||
<em>
|
||||
<span>Cmd</span><span>Shift</span><span>R</span>
|
||||
</em>
|
||||
<em>[% Translate("Find and replace all") | html %]</em>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits" id="XSLTConfig">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Subaction | html %]Action"/>
|
||||
<input type="hidden" name="WebserviceID" value="[% Data.WebserviceID | html %]" id="WebserviceID"/>
|
||||
<input type="hidden" name="CommunicationType" value="[% Data.CommunicationType | html %]" />
|
||||
<input type="hidden" name="Operation" value="[% Data.Operation | html %]" />
|
||||
<input type="hidden" name="Invoker" value="[% Data.Invoker | html %]" />
|
||||
<input type="hidden" name="Direction" value="[% Data.Direction | html %]"/>
|
||||
[% IF Data.Subaction == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
[% RenderBlockStart("ConfigBlock") %]
|
||||
|
||||
[% RenderBlockStart("ConfigBlockTemplate") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("XSLT Mapping") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike FixedLabel">
|
||||
<label class="Mandatory" for="Template"><span class="Marker">*</span>[% Translate("XSLT stylesheet") | html %]:</label>
|
||||
<div class="Field">
|
||||
<textarea id="Template" name="Template" rows="20" cols="80" class="RichText Validate_Required [% Data.TemplateError | html %]">[% Data.Template | html %]</textarea>
|
||||
<div id="TemplateServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("The entered data is not a valid XSLT style sheet.") | html %]</p>
|
||||
</div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can add or modify your XSLT mapping code.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The editing field allows you to use different functions like automatic formatting, window resize as well as tag- and bracket-completion.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"/>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="TableLike FixedLabel">
|
||||
<label for="DataInclude">[% Translate("Data includes") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DataIncludeSelect %]
|
||||
<p class="FieldExplanation">[% Translate("Select one or more sets of data that were created at earlier request/response stages to be included in mappable data.") | html %]</p>
|
||||
<p class="FieldExplanation">[% Translate("These sets will appear in the data structure at '/DataInclude/<DataSetName>' (see debugger output of actual requests for details).") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"/>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ConfigBlockTemplate") %]
|
||||
|
||||
[% RenderBlockStart("ConfigBlockRegExFilter") %]
|
||||
<div class="WidgetSimple [% Data.Collapsed | html %]" id="WidgetRegExFilters[% Data.Type | html %]">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
[% IF Data.Type == 'Pre' %]
|
||||
<h2>[% Translate("Data key regex filters (before mapping)") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Data key regex filters (after mapping)") | html %]</h2>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike FixedLabel">
|
||||
<label for="Filter">[% Translate("Regular expressions") | html %]:</label>
|
||||
<div class="Field [% Data.Type | html %]ValueInsert">
|
||||
<input type="hidden" name="[% Data.Type | html %]ValueCounter" value="[% Data.ValueCounter | html %]" id="[% Data.Type | html %]ValueCounter" class="ValueCounter" />
|
||||
[% RenderBlockStart("ValueRow") %]
|
||||
<div class="ValueRow">
|
||||
<label class="Mandatory" for="[% Data.Type | html %]Key_[% Data.ValueCounter | html %]"><span class="Marker">*</span>[% Translate("Search") | html %]:</label>
|
||||
<input name="[% Data.Type | html %]Key_[% Data.ValueCounter | html %]" id="[% Data.Type | html %]Key_[% Data.ValueCounter | html %]" class="Validate_Required W20pc [% Data.KeyError | html %]" type="text" maxlength="100" value="[% Data.Key | html %]"/>
|
||||
<div id="[% Data.Type | html %]Key_[% Data.ValueCounter | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="[% Data.Type | html %]Key_[% Data.ValueCounter | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate(Data.KeyErrorStrg) | html %]</p></div>
|
||||
|
||||
<label for="[% Data.Type | html %]Value_[% Data.ValueCounter | html %]">[% Translate("Replace") | html %]:</label>
|
||||
<input name="[% Data.Type | html %]Value_[% Data.ValueCounter | html %]" id="[% Data.Type | html %]Value_[% Data.ValueCounter | html %]" class="W20pc" type="text" maxlength="100" value="[% Data.Value | html %]"/>
|
||||
|
||||
<a href="#" id="[% Data.Type | html %]RemoveValue_[% Data.ValueCounter | html %]" class="RemoveButton ValueRemove"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove regex") | html %]</span></a>
|
||||
<div class="SpacingTopMini" ></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ValueRow") %]
|
||||
[% RenderBlockStart("ValueTemplate") %]
|
||||
<div class="[% Data.Type | html %]ValueTemplate Hidden">
|
||||
<label class="Mandatory" for="[% Data.Type | html %]Key"><span class="Marker">*</span>[% Translate("Search") | html %]:</label>
|
||||
<input name="[% Data.Type | html %]Key_[% Data.ValueCounter | html %]" id="[% Data.Type | html %]Key" class="KeyTemplate W20pc" type="text" maxlength="100" value="[% Data.Key | html %]"/>
|
||||
<div id="[% Data.Type | html %]KeyError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="[% Data.Type | html %]KeyServerError" class="TooltipErrorMessage"><p>[% Translate(Data.KeyErrorStrg) | html %]</p></div>
|
||||
|
||||
<label for="[% Data.Type | html %]Value">[% Translate("Replace") | html %]:</label>
|
||||
<input name="[% Data.Type | html %]Value_[% Data.ValueCounter | html %]" id="[% Data.Type | html %]Value" class="W20pc" type="text" maxlength="100" value="[% Data.Value | html %]"/>
|
||||
|
||||
<a href="#" id="[% Data.Type | html %]RemoveValue_[% Data.ValueCounter | html %]" class="RemoveButton ValueRemove"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove regex") | html %]</span></a>
|
||||
</div>
|
||||
[% RenderBlockEnd("ValueTemplate") %]
|
||||
<input type="hidden" name="[% Data.Type | html %]DeletedValue" value="[% Data.DeletedString | html %]" id="[% Data.Type | html %]DeletedValue" class="[% Data.Type | html %]DeletedValue" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="[% Data.Type | html %]AddValue">[% Translate("Add regex") | html %]:</label>
|
||||
<div class="Field">
|
||||
<a href="#" id="[% Data.Type | html %]AddValue" class="AddButton"><i class="fa fa-plus-square-o"></i><span class="InvisibleText">[% Translate("Add regex") | html %]</span></a>
|
||||
<p class="FieldExplanation">[% Translate("These filters can be used to transform keys using regular expressions.") | html %]</p>
|
||||
<p class="FieldExplanation">[% Translate("The data structure will be traversed recursively and all configured regexes will be applied to all keys.") | html %]</p>
|
||||
<p class="FieldExplanation">[% Translate("Use cases are e.g. removing key prefixes that are undesired or correcting keys that are invalid as XML element names.") | html %]</p>
|
||||
<p class="FieldExplanation">[% Translate("Example 1: Search = '^jira:' / Replace = '' turns 'jira:element' into 'element'.") | html %]</p>
|
||||
<p class="FieldExplanation">[% Translate("Example 2: Search = '^' / Replace = '_' turns '16x16' into '_16x16'.") | html %]</p>
|
||||
<p class="FieldExplanation">[% Translate("Example 3: Search = '^(?<number>\d+) (?<text>.+?)\$' / Replace = '_\$+{text}_\$+{number}' turns '16 elementname' into '_elementname_16'.") | html %]</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("For information about regular expressions in Perl please see here:") | html %]
|
||||
<a href="https://perldoc.perl.org/perlretut.html" target="_blank">[% Translate("Perl regular expressions tutorial") | html %]</a>
|
||||
</p>
|
||||
<p class="FieldExplanation">[% Translate("If modifiers are desired they have to be specified within the regexes themselves.") | html %]</p>
|
||||
[% IF Data.Type == 'Pre' %]
|
||||
<p class="FieldExplanation">[% Translate("Regular expressions defined here will be applied before the XSLT mapping.") | html %]</p>
|
||||
[% ELSE %]
|
||||
<p class="FieldExplanation">[% Translate("Regular expressions defined here will be applied after the XSLT mapping.") | html %]</p>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ConfigBlockRegExFilter") %]
|
||||
|
||||
[% RenderBlockEnd("ConfigBlock") %]
|
||||
|
||||
<fieldset class="TableLike">
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Subaction == 'Change' %]
|
||||
<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=[% Data.ActionFrontendModule | uri %];Subaction=Change;[% Data.ActionType | uri %]=[% Data.Action | uri %];WebserviceID=[% Data.WebserviceID | uri %]"><span>[% Translate("Cancel") | html %]</span></a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -0,0 +1,173 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst AdminGenericInterfaceOperationDefault">
|
||||
<h1 class="InvisibleText">[% Translate("GenericInterface Web Service Management") | html %]</h1>
|
||||
|
||||
[% USE BreadcrumbLink = String("AdminGenericInterfaceWebservice") %]
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate( 'Web Service Management' ),
|
||||
Link => BreadcrumbLink,
|
||||
},
|
||||
{
|
||||
Name => Data.WebserviceName,
|
||||
Link => BreadcrumbLink.copy.append( ";Subaction=Change;WebserviceID=", Data.WebserviceID ),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Mode %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add Operation"),}) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit Operation")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Operation ), }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i> [% Translate("Go back to web service") | html %]</span></a>
|
||||
</li>
|
||||
[% IF Data.Mode == 'Change' %]
|
||||
<li>
|
||||
<button class="CallForAction Fullsize Center" type="button" id="DeleteButton"><span><i class="fa fa-trash-o"></i> [% Translate("Delete") | html %]</span></button>
|
||||
<div class="Hidden" id="DeleteDialogContainer">
|
||||
<span class="WarningDialog "> </span>
|
||||
<p id="DeleteDialog" class="Center Warning">
|
||||
[% Translate("Do you really want to delete this operation?") | html %]
|
||||
</p>
|
||||
<p class="Center Warning">
|
||||
[% Translate("All configuration data will be lost.") | html %]
|
||||
</p>
|
||||
<div class="SpacingTop"></div>
|
||||
</div>
|
||||
</li>
|
||||
[% END %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Operation Details") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" class="Validate" method="post">
|
||||
<input type="hidden" name="Action" value="AdminGenericInterfaceOperationDefault" />
|
||||
<input type="hidden" name="Subaction" value="[% Data.Mode | html %]Action" />
|
||||
<input type="hidden" name="WebserviceID" value="[% Data.WebserviceID | html %]" id="WebserviceID" />
|
||||
<input type="hidden" name="OperationType" value="[% Data.OperationType | html %]" />
|
||||
[% IF Data.Mode == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
|
||||
<fieldset class="TableLike">
|
||||
<label for="Operation" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Name") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc RegisterChange Validate_Required [% Data.OperationServerError | html %]" maxlength="200" id="Operation" name="Operation" value="[% Data.NewOperation | html %]" />
|
||||
<input type="hidden" id="OldOperation" name="OldOperation" value="[% Data.Operation | html %]" />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The name is typically used to call up this web service operation from a remote system.") | html %]
|
||||
</p>
|
||||
<div id="OperationError" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %] [% Translate("Please provide a unique name for this web service.") | html %]
|
||||
</div>
|
||||
<div id="OperationServerError" class="TooltipErrorMessage">
|
||||
[% Translate("The name you entered already exists.") | html %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Description">
|
||||
[% Translate("Description") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc RegisterChange" maxlength="200" id="Description" name="Description" value="[% Data.Description | html %]" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="OperationTypeDisplay">[% Translate("Operation backend") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" readonly="readonly" class="W50pc" id="OperationTypeDisplay" value="[% Data.OperationType | html %]" />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This OTRS operation backend module will be called internally to process the request, generating data for the response.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="MappingInbound">[% Translate("Mapping for incoming request data") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.MappingInboundStrg %]
|
||||
[% RenderBlockStart("MappingInboundConfigureButton") %]
|
||||
<input type="hidden" id="MappingInboundConfigDialog" value="[% Data.MappingInboundConfigDialog | html %]" />
|
||||
<button type="button" class="HideOnChange CallForAction Inline" id="MappingInboundConfigureButton" value="[% Translate("Configure") | html %]"><span>[% Translate("Configure") | html %]</span></button>
|
||||
[% RenderBlockEnd("MappingInboundConfigureButton") %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The request data will be processed by this mapping, to transform it to the kind of data OTRS expects.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="MappingOutbound">[% Translate("Mapping for outgoing response data") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.MappingOutboundStrg %]
|
||||
[% RenderBlockStart("MappingOutboundConfigureButton") %]
|
||||
<input type="hidden" id="MappingOutboundConfigDialog" value="[% Data.MappingOutboundConfigDialog | html %]" />
|
||||
<button type="button" class="HideOnChange CallForAction Inline" id="MappingOutboundConfigureButton" value="[% Translate("Configure") | html %]"><span>[% Translate("Configure") | html %]</span></button>
|
||||
[% RenderBlockEnd("MappingOutboundConfigureButton") %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The response data will be processed by this mapping, to transform it to the kind of data the remote system expects.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% IF Data.OperationType == 'Ticket::TicketCreate' || Data.OperationType == 'Ticket::TicketUpdate' %]
|
||||
<label for="IncludeTicketData">[% Translate("Include Ticket Data") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.IncludeTicketDataStrg %]
|
||||
<p class="FieldExplanation">[% Translate("Include ticket data in response.") | html %]</p>
|
||||
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% END %]
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Mode == 'Change' %]
|
||||
<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=AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %]"><span>[% Translate("Cancel") | html %]</span></a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,394 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst AdminGenericInterfaceTransportHTTPREST">
|
||||
<h1 class="InvisibleText">[% Translate( "GenericInterface Web Service Management" ) | html %]</h1>
|
||||
|
||||
[% USE BreadcrumbLink = String( "AdminGenericInterfaceWebservice" ) %]
|
||||
[% USE HTTPRESTName = String( Data.CommunicationType ) %]
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate( 'Web Service Management' ),
|
||||
Link => BreadcrumbLink,
|
||||
},
|
||||
{
|
||||
Name => Data.WebserviceName,
|
||||
Link => BreadcrumbLink.copy.append( ";Subaction=", Data.Action, ";WebserviceID=", Data.WebserviceID ),
|
||||
},
|
||||
{
|
||||
Name => HTTPRESTName.append( " Transport ", Data.Type ),
|
||||
}
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i> [% Translate("Go back to web service") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Network Transport") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<h3>[% Translate("Properties") | html %]</h3>
|
||||
<form id="TransportConfigForm" action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | html %]Action"/>
|
||||
<input type="hidden" name="WebserviceID" value="[% Data.WebserviceID | html %]" id="WebserviceID"/>
|
||||
<input type="hidden" name="CommunicationType" value="[% Data.CommunicationType | html %]" id="CommunicationType"/>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<div class="LayoutGrid ColumnsWithSpacing">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label>[% Translate("Type") | html %]:</label>
|
||||
<div class="Field">[% Data.Type | html %]</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% IF Data.CommunicationType == 'Provider' %]
|
||||
|
||||
[% RenderBlockStart("RouteOperationMapping") %]
|
||||
<label class="Mandatory" for="RouteOperationMapping[% Data.Operation | html %]"><span class="Marker">*</span>[% Translate("Route mapping for Operation") | html %] '[% Data.Operation | html %]':</label>
|
||||
<div class="Field">
|
||||
<input id="RouteOperationMapping[% Data.Operation | html %]" class="W50pc Validate_Required [% Data.ServerError | html %]" type="text" maxlength="250" value="[% Data.Route | html %]" name="RouteOperationMapping[% Data.Operation | html %]"/>
|
||||
<div id="RouteOperationMapping[% Data.Operation | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="RouteOperationMapping[% Data.Operation | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate(Data.ServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Define the route that should get mapped to this operation. Variables marked by a ':' will get mapped to the entered name and passed along with the others to the mapping. (e.g. /Ticket/:TicketID).") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<label for="RequestMethod[% Data.Operation | html %]">[% Translate("Valid request methods for Operation") | html %] '[% Data.Operation | html %]':</label>
|
||||
<div class="Field">
|
||||
[% Data.RequestMethodStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Limit this Operation to specific request methods. If no method is selected all requests will be accepted.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("RouteOperationMapping") %]
|
||||
|
||||
<label class="Mandatory" for="MaxLength"><span class="Marker">*</span>[% Translate("Maximum message length") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="MaxLength" class="W25pc Validate_Required Validate_Number [% Data.MaxLengthServerError | html %]" type="text" maxlength="10" value="[% Data.MaxLength | html %]" name="MaxLength"/>
|
||||
<div id="MaxLengthError" class="TooltipErrorMessage"><p>[% Translate("This field should be an integer number.") | html %]</p></div>
|
||||
<div id="MaxLengthServerError" class="TooltipErrorMessage"><p>[% Translate(Data.MaxLengthServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can specify the maximum size (in bytes) of REST messages that OTRS will process.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="KeepAlive"><span class="Marker">*</span>[% Translate("Send Keep-Alive") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.KeepAliveStrg %]
|
||||
<div id="KeepAliveError" class="TooltipErrorMessage"><p>[% Translate("This field should be an integer number.") | html %]</p></div>
|
||||
<div id="KeepAliveServerError" class="TooltipErrorMessage"><p>[% Translate(Data.MaxLengthServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This configuration defines if incoming connections should get closed or kept alive.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% END %]
|
||||
|
||||
[% RenderBlockStart("AdditionalHeaders") %]
|
||||
<label>[% Translate("Additional response headers") | html %]:</label>
|
||||
<div class="Field ValueInsert">
|
||||
|
||||
<input type="hidden" name="ValueCounter" value="[% Data.ValueCounter | html %]" id="ValueCounter" class="ValueCounter" />
|
||||
[% RenderBlockStart("ValueRow") %]
|
||||
<div class="ValueRow">
|
||||
<input name="Key_[% Data.ValueCounter | html %]" id="Key_[% Data.ValueCounter | html %]" class="DefaultValueKeyItem Validate_Required W20pc [% Data.KeyError | html %]" type="text" maxlength="150" value="[% Data.Key | html %]" style="width:250px"/>
|
||||
<div id="Key_[% Data.ValueCounter | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="Key_[% Data.ValueCounter | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate(Data.KeyErrorStrg) | html %]</p></div>
|
||||
|
||||
<label class="Mandatory" for="Value_[% Data.ValueCounter | html %]"><span class="Marker">*</span>[% Translate("Value") | html %]:</label>
|
||||
<input name="Value_[% Data.ValueCounter | html %]" id="Value_[% Data.ValueCounter | html %]" class="DefaultValueItem Validate_Required W20pc [% Data.ValueError | html %]" type="text" maxlength="150" value="[% Data.Value | html %]"/>
|
||||
<div id="Value_[% Data.ValueCounter | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="Value_[% Data.ValueCounter | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
|
||||
<a href="#" id="RemoveValue_[% Data.ValueCounter | html %]" class="RemoveButton ValueRemove"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove value") | html %]</span></a>
|
||||
<div class="SpacingTopMini" ></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ValueRow") %]
|
||||
<div class="Field">
|
||||
<a href="#" id="AddValue" class="CallForAction AddButton Inline"><span><i class="fa fa-plus-square-o"> </i>[% Translate("Add response header") | html %]</span></a>
|
||||
</div>
|
||||
[% RenderBlockStart("ValueTemplate") %]
|
||||
<div class="ValueTemplate Hidden">
|
||||
<input name="Key_[% Data.ValueCounter | html %]" id="Key" class="DefaultValueKeyItem W20pc" type="text" maxlength="150" value="[% Data.Key | html %]" style="width:250px"/>
|
||||
<div id="KeyError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="KeyServerError" class="TooltipErrorMessage"><p>[% Translate(Data.KeyErrorStrg) | html %]</p></div>
|
||||
|
||||
<label class="Mandatory" for="Value"><span class="Marker">*</span>[% Translate("Value") | html %]:</label>
|
||||
<input name="Value_[% Data.ValueCounter | html %]" id="Value" class="DefaultValueItem W20pc" type="text" maxlength="150" value="[% Data.Value | html %]"/>
|
||||
<div id="ValueError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="ValueServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
|
||||
<a href="#" id="RemoveValue_[% Data.ValueCounter | html %]" class="RemoveButton ValueRemove"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove value") | html %]</span></a>
|
||||
<div class="SpacingTopMini" ></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ValueTemplate") %]
|
||||
|
||||
<input type="hidden" name="DeletedValue" value="[% Data.DeletedString | html %]" id="DeletedValue" class="DeletedValue" />
|
||||
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("AdditionalHeaders") %]
|
||||
|
||||
# requester specific configuration
|
||||
[% IF Data.CommunicationType == 'Requester' %]
|
||||
<label class="Mandatory" for="Host"><span class="Marker">*</span>[% Translate("Endpoint") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Host" class="W50pc [% Data.HostServerError | html %] Validate_Required" type="text" maxlength="250" value="[% Data.Host | html %]" name="Host"/>
|
||||
<div id="HostError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="HostServerError" class="TooltipErrorMessage"><p>[% Translate(Data.HostServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("URI to indicate specific location for accessing a web service.") | html %]
|
||||
<br/>
|
||||
[% Translate("e.g https://www.otrs.com:10745/api/v1.0 (without trailing backslash)") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="Timeout">
|
||||
<span class="Marker">*</span> [% Translate("Timeout") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.TimeoutStrg %]
|
||||
<div id="TimeoutError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="TimeoutServerError" class="TooltipErrorMessage"><p>[% Translate(Data.TimeoutServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Timeout value for requests.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="AuthType">[% Translate("Authentication") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.AuthenticationStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("An optional authentication mechanism to access the remote system.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="BasicAuthField [% Data.BasicAuthHidden | html %]">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label class="Mandatory" for="BasicAuthUser"><span class="Marker">*</span> [% Translate("BasicAuth User") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="BasicAuthUser" class="W50pc [% Data.BasicAuthUserValidateRequired | html %] [% Data.BasicAuthUserServerError | html %]" type="text" maxlength="250" value="[% Data.BasicAuthUser | html %]" name="BasicAuthUser"/>
|
||||
<div id="BasicAuthUserError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="BasicAuthUserServerError" class="TooltipErrorMessage"><p>[% Translate(Data.BasicAuthUserServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The user name to be used to access the remote system.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="BasicAuthPassword"><span class="Marker">*</span>[% Translate("BasicAuth Password") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="BasicAuthPassword" class="W50pc [% Data.BasicAuthPasswordValidateRequired | html %] [% Data.BasicAuthPasswordServerError | html %]" type="password" maxlength="250" value="[% Data.BasicAuthPassword | html %]" name="BasicAuthPassword"/>
|
||||
<div id="BasicAuthPasswordError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="BasicAuthPasswordServerError" class="TooltipErrorMessage"><p>[% Translate(Data.BasicAuthPasswordServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The password for the privileged user.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<label class="Mandatory" for="UseProxy"><span class="Marker">*</span>[% Translate("Use Proxy Options") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.UseProxyStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Show or hide Proxy options to connect to the remote system.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="ProxyField [% Data.ProxyHidden | html %]">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label for="ProxyHost">[% Translate("Proxy Server") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="ProxyHost" class="W50pc" type="text" maxlength="250" value="[% Data.ProxyHost | html %]" name="ProxyHost"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("URI of a proxy server to be used (if needed).") | html %]
|
||||
<br/>
|
||||
[% Translate("e.g. http://proxy_hostname:8080") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label for="ProxyUser">[% Translate("Proxy User") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="ProxyUser" class="W50pc" type="text" maxlength="250" value="[% Data.ProxyUser | html %]" name="ProxyUser"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The user name to be used to access the proxy server.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ProxyPassword">[% Translate("Proxy Password") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="ProxyPassword" class="W50pc" type="password" maxlength="250" value="[% Data.ProxyPassword | html %]" name="ProxyPassword"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The password for the proxy user.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label class="Mandatory" for="ProxyExclude"><span class="Marker">*</span>[% Translate("Skip Proxy") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ProxyExcludeStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Skip proxy servers that might be configured globally?") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<label class="Mandatory" for="UseSSL"><span class="Marker">*</span>[% Translate("Use SSL Options") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.UseSSLStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Show or hide SSL options to connect to the remote system.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="SSLField [% Data.SSLHidden | html %]">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label for="SSLCertificate">[% Translate("Client Certificate") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="SSLCertificate" class="W50pc [% Data.SSLCertificateServerError | html %]" type="text" maxlength="250" value="[% Data.SSLCertificate | html %]" name="SSLCertificate"/>
|
||||
<div id="SSLCertificateServerError" class="TooltipErrorMessage"><p>[% Translate(Data.SSLCertificateServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The full path and name of the SSL client certificate file (must be in PEM, DER or PKCS#12 format).") | html %]
|
||||
<br/>
|
||||
[% Translate("e.g. /opt/otrs/var/certificates/SOAP/certificate.pem") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SSLKey">[% Translate("Client Certificate Key") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="SSLKey" class="W50pc [% Data.SSLKeyServerError | html %]" type="text" maxlength="250" value="[% Data.SSLKey | html %]" name="SSLKey"/>
|
||||
<div id="SSLKeyServerError" class="TooltipErrorMessage"><p>[% Translate(Data.SSLKeyServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The full path and name of the SSL client certificate key file (if not already included in certificate file).") | html %]
|
||||
<br/>
|
||||
[% Translate("e.g. /opt/otrs/var/certificates/SOAP/key.pem") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SSLPassword">[% Translate("Client Certificate Key Password") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="SSLPassword" class="W50pc" type="password" maxlength="250" value="[% Data.SSLPassword | html %]" name="SSLPassword"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The password to open the SSL certificate if the key is encrypted.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SSLCAFile">[% Translate("Certification Authority (CA) Certificate") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="SSLCAFile" class="W50pc [% Data.SSLCAFileServerError | html %]" type="text" maxlength="250" value="[% Data.SSLCAFile | html %]" name="SSLCAFile"/>
|
||||
<div id="SSLCAFileServerError" class="TooltipErrorMessage"><p>[% Translate(Data.SSLCAFileServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The full path and name of the certification authority certificate file that validates SSL certificate.") | html %]
|
||||
<br/>
|
||||
[% Translate("e.g. /opt/otrs/var/certificates/SOAP/CA/ca.pem") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SSLCADir">[% Translate("Certification Authority (CA) Directory") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="SSLCADir" class="W50pc [% Data.SSLCADirServerError | html %]" type="text" maxlength="250" value="[% Data.SSLCADir | html %]" name="SSLCADir"/>
|
||||
<div id="SSLCADirServerError" class="TooltipErrorMessage"><p>[% Translate(Data.SSLCADirServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The full path of the certification authority directory where the CA certificates are stored in the file system.") | html %]
|
||||
<br/>
|
||||
[% Translate("e.g. /opt/otrs/var/certificates/SOAP/CA") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("InvokerControllerMapping") %]
|
||||
<label class="Mandatory" for="InvokerControllerMapping[% Data.Invoker | html %]"><span class="Marker">*</span>[% Translate("Controller mapping for Invoker") | html %] '[% Data.Invoker | html %]':</label>
|
||||
<div class="Field">
|
||||
<input id="InvokerControllerMapping[% Data.Invoker | html %]" class="W50pc Validate_Required [% Data.ServerError | html %]" type="text" maxlength="250" value="[% Data.Controller | html %]" name="InvokerControllerMapping[% Data.Invoker | html %]"/>
|
||||
<div id="InvokerControllerMapping[% Data.Invoker | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="InvokerControllerMapping[% Data.Invoker | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate(Data.ServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The controller that the invoker should send requests to. Variables marked by a ':' will get replaced by the data value and passed along with the request. (e.g. /Ticket/:TicketID?UserLogin=:UserLogin&Password=:Password).") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<label for="Command[% Data.Invoker | html %]">[% Translate("Valid request command for Invoker") | html %] '[% Data.Invoker | html %]':</label>
|
||||
<div class="Field">
|
||||
[% Data.CommandStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("A specific HTTP command to use for the requests with this Invoker (optional).") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("InvokerControllerMapping") %]
|
||||
|
||||
<label for="DefaultCommand">[% Translate("Default command") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DefaultCommandStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The default HTTP command to use for the requests.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% END %]
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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=AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %]"><span>[% Translate("Cancel") | html %]</span></a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,522 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst AdminGenericInterfaceTransportHTTPSOAP">
|
||||
<h1 class="InvisibleText">[% Translate( "GenericInterface Web Service Management" ) | html %]</h1>
|
||||
|
||||
[% USE BreadcrumbLink = String( "AdminGenericInterfaceWebservice" ) %]
|
||||
[% USE HTTPSOAPName = String( Data.CommunicationType ) %]
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate( 'Web Service Management' ),
|
||||
Link => BreadcrumbLink,
|
||||
},
|
||||
{
|
||||
Name => Data.WebserviceName,
|
||||
Link => BreadcrumbLink.copy.append( ";Subaction=", Data.Action, ";WebserviceID=", Data.WebserviceID ),
|
||||
},
|
||||
{
|
||||
Name => HTTPSOAPName.append( " Transport ", Data.Type ),
|
||||
}
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i> [% Translate("Go back to web service") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Network Transport") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<h3>[% Translate("Properties") | html %]</h3>
|
||||
<form id="TransportConfigForm" action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | html %]Action"/>
|
||||
<input type="hidden" name="WebserviceID" value="[% Data.WebserviceID | html %]" id="WebserviceID"/>
|
||||
<input type="hidden" name="CommunicationType" value="[% Data.CommunicationType | html %]" id="CommunicationType"/>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<div class="LayoutGrid ColumnsWithSpacing">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label>[% Translate("Type") | html %]:</label>
|
||||
<div class="Field">[% Data.Type | html %]</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% IF Data.CommunicationType == 'Requester' %]
|
||||
<label class="Mandatory" for="Endpoint">
|
||||
<span class="Marker">*</span> [% Translate("Endpoint") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input id="Endpoint" class="W50pc Validate_Required [% Data.EndpointServerError | html %]" type="text" maxlength="250" value="[% Data.Endpoint | html %]" name="Endpoint"/>
|
||||
<div id="EndpointError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="EndpointServerError" class="TooltipErrorMessage"><p>[% Translate(Data.EndpointServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("URI to indicate specific location for accessing a web service.") | html %]
|
||||
<br/>
|
||||
[% Translate("e.g. https://local.otrs.com:8000/Webservice/Example") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="Timeout">
|
||||
<span class="Marker">*</span> [% Translate("Timeout") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.TimeoutStrg %]
|
||||
<div id="TimeoutError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="TimeoutServerError" class="TooltipErrorMessage"><p>[% Translate(Data.TimeoutServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Timeout value for requests.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% END %]
|
||||
|
||||
<label class="Mandatory" for="SOAPAction"><span class="Marker">*</span>[% Translate("Set SOAPAction") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.SOAPActionStrg %]
|
||||
<div id="SOAPActionError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="SOAPActionServerError" class="TooltipErrorMessage"><p>[% Translate(Data.SOAPActionServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% IF Data.CommunicationType == 'Requester' %]
|
||||
[% Translate("Set to \"Yes\" in order to send a filled SOAPAction header.") | html %]
|
||||
<br/>
|
||||
[% Translate("Set to \"No\" in order to send an empty SOAPAction header.") | html %]
|
||||
[% ELSE %]
|
||||
[% Translate("Set to \"Yes\" in order to check the received SOAPAction header (if not empty).") | html %]
|
||||
<br/>
|
||||
[% Translate("Set to \"No\" in order to ignore the received SOAPAction header.") | html %]
|
||||
[% END %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="SOAPActionSchemeField [% Data.SOAPActionSchemeHidden | html %]">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label class="Mandatory" for="SOAPActionScheme"><span class="Marker">*</span>[% Translate("SOAPAction scheme") | html %]:</label>
|
||||
<div class="Field ">
|
||||
[% Data.SOAPActionSchemeStrg %]
|
||||
<div id="SOAPActionSchemeError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="SOAPActionSchemeServerError" class="TooltipErrorMessage"><p>[% Translate(Data.SOAPActionSchemeServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Select how SOAPAction should be constructed.") | html %]
|
||||
<br/>
|
||||
[% IF Data.CommunicationType == 'Requester' %]
|
||||
[% Translate("Some web services require a specific construction.") | html %]
|
||||
[% ELSE %]
|
||||
[% Translate("Some web services send a specific construction.") | html %]
|
||||
[% END %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="SOAPActionSeparatorField [% Data.SOAPActionSeparatorHidden | html %]">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label class="Mandatory" for="SOAPActionSeparator"><span class="Marker">*</span>[% Translate("SOAPAction separator") | html %]:</label>
|
||||
<div class="Field ">
|
||||
[% Data.SOAPActionSeparatorStrg %]
|
||||
<div id="SOAPActionSeparatorError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="SOAPActionSeparatorServerError" class="TooltipErrorMessage"><p>[% Translate(Data.SOAPActionSeparatorServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Character to use as separator between name space and SOAP operation.") | html %]
|
||||
<br/>
|
||||
[% Translate("Usually .Net web services use \"/\" as separator.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<div class="SOAPActionFreeTextField [% Data.SOAPActionFreeTextHidden | html %]">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label class="Mandatory" for="SOAPActionFreeText"><span class="Marker">*</span>[% Translate("SOAPAction free text") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="SOAPActionFreeText" class="W50pc [% Data.SOAPActionFreeTextServerError | html %] [% Data.SOAPActionFreeTextMandatory | html %]" type="text" maxlength="250" value="[% Data.SOAPActionFreeText | html %]" name="SOAPActionFreeText"/>
|
||||
<div id="SOAPActionFreeTextError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="SOAPActionFreeTextServerError" class="TooltipErrorMessage"><p>[% Translate(Data.SOAPActionFreeTextServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Text to be used to as SOAPAction.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<label class="Mandatory" for="NameSpace"><span class="Marker">*</span>[% Translate("Namespace") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="NameSpace" class="W50pc [% Data.NameSpaceServerError | html %] Validate_Required" type="text" maxlength="250" value="[% Data.NameSpace | html %]" name="NameSpace"/>
|
||||
<div id="NameSpaceError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="NameSpaceServerError" class="TooltipErrorMessage"><p>[% Translate(Data.NameSpaceServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("URI to give SOAP methods a context, reducing ambiguities.") | html %]
|
||||
<br/>
|
||||
[% Translate("e.g urn:otrs-com:soap:functions or http://www.otrs.com/GenericInterface/actions") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="RequestNameScheme"><span class="Marker">*</span>[% Translate("Request name scheme") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.RequestNameSchemeStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Select how SOAP request function wrapper should be constructed.") | html %]
|
||||
<br />
|
||||
[% Translate("'FunctionName' is used as example for actual invoker/operation name.") | html %]
|
||||
<br />
|
||||
[% Translate("'FreeText' is used as example for actual configured value.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="RequestNameFreeTextField [% Data.RequestNameFreeTextHidden | html %]">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label class="Mandatory" for="RequestNameFreeText"><span class="Marker">*</span>[% Translate("Request name free text") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="RequestNameFreeText" class="W50pc [% Data.RequestNameFreeTextServerError | html %] [% Data.RequestNameFreeTextMandatory | html %]" type="text" maxlength="250" value="[% Data.RequestNameFreeText | html %]" name="RequestNameFreeText"/>
|
||||
<div id="RequestNameFreeTextError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="RequestNameFreeTextServerError" class="TooltipErrorMessage"><p>[% Translate(Data.RequestNameFreeTextServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Text to be used to as function wrapper name suffix or replacement.") | html %]
|
||||
<br />
|
||||
[% Translate("Please consider XML element naming restrictions (e.g. don't use '<' and '&').") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<label class="Mandatory" for="ResponseNameScheme"><span class="Marker">*</span>[% Translate("Response name scheme") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ResponseNameSchemeStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Select how SOAP response function wrapper should be constructed.") | html %]
|
||||
<br />
|
||||
[% Translate("'FunctionName' is used as example for actual invoker/operation name.") | html %]
|
||||
<br />
|
||||
[% Translate("'FreeText' is used as example for actual configured value.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="ResponseNameFreeTextField [% Data.ResponseNameFreeTextHidden | html %]">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label class="Mandatory" for="ResponseNameFreeText"><span class="Marker">*</span>[% Translate("Response name free text") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="ResponseNameFreeText" class="W50pc [% Data.ResponseNameFreeTextServerError | html %] [% Data.ResponseNameFreeTextMandatory | html %]" type="text" maxlength="250" value="[% Data.ResponseNameFreeText | html %]" name="ResponseNameFreeText"/>
|
||||
<div id="ResponseNameFreeTextError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="ResponseNameFreeTextServerError" class="TooltipErrorMessage"><p>[% Translate(Data.ResponseNameFreeTextServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Text to be used to as function wrapper name suffix or replacement.") | html %]
|
||||
<br />
|
||||
[% Translate("Please consider XML element naming restrictions (e.g. don't use '<' and '&').") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("AdditionalHeaders") %]
|
||||
<label>[% Translate("Additional response headers") | html %]:</label>
|
||||
<div class="Field ValueInsert">
|
||||
<input type="hidden" name="ValueCounter" value="[% Data.ValueCounter | html %]" id="ValueCounter" class="ValueCounter" />
|
||||
[% RenderBlockStart("ValueRow") %]
|
||||
<div class="ValueRow">
|
||||
<input name="Key_[% Data.ValueCounter | html %]" id="Key_[% Data.ValueCounter | html %]" class="DefaultValueKeyItem Validate_Required W20pc [% Data.KeyError | html %]" type="text" maxlength="150" value="[% Data.Key | html %]" style="width:250px"/>
|
||||
<div id="Key_[% Data.ValueCounter | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="Key_[% Data.ValueCounter | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate(Data.KeyErrorStrg) | html %]</p></div>
|
||||
|
||||
<label class="Mandatory" for="Value_[% Data.ValueCounter | html %]"><span class="Marker">*</span>[% Translate("Value") | html %]:</label>
|
||||
<input name="Value_[% Data.ValueCounter | html %]" id="Value_[% Data.ValueCounter | html %]" class="DefaultValueItem Validate_Required W20pc [% Data.ValueError | html %]" type="text" maxlength="150" value="[% Data.Value | html %]"/>
|
||||
<div id="Value_[% Data.ValueCounter | html %]Error" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="Value_[% Data.ValueCounter | html %]ServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
|
||||
<a href="#" id="RemoveValue_[% Data.ValueCounter | html %]" class="RemoveButton ValueRemove"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove value") | html %]</span></a>
|
||||
<div class="SpacingTopMini" ></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ValueRow") %]
|
||||
<div class="Field">
|
||||
<a href="#" id="AddValue" class="CallForAction AddButton Inline"><span><i class="fa fa-plus-square-o"> </i>[% Translate("Add response header") | html %]</span></a>
|
||||
</div>
|
||||
[% RenderBlockStart("ValueTemplate") %]
|
||||
<div class="ValueTemplate Hidden">
|
||||
<input name="Key_[% Data.ValueCounter | html %]" id="Key" class="DefaultValueKeyItem W20pc" type="text" maxlength="150" value="[% Data.Key | html %]" style="width:250px"/>
|
||||
<div id="KeyError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="KeyServerError" class="TooltipErrorMessage"><p>[% Translate(Data.KeyErrorStrg) | html %]</p></div>
|
||||
|
||||
<label class="Mandatory" for="Value"><span class="Marker">*</span>[% Translate("Value") | html %]:</label>
|
||||
<input name="Value_[% Data.ValueCounter | html %]" id="Value" class="DefaultValueItem W20pc" type="text" maxlength="150" value="[% Data.Value | html %]"/>
|
||||
<div id="ValueError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="ValueServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
|
||||
<a href="#" id="RemoveValue_[% Data.ValueCounter | html %]" class="RemoveButton ValueRemove"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove value") | html %]</span></a>
|
||||
<div class="SpacingTopMini" ></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ValueTemplate") %]
|
||||
|
||||
<input type="hidden" name="DeletedValue" value="[% Data.DeletedString | html %]" id="DeletedValue" class="DeletedValue" />
|
||||
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("AdditionalHeaders") %]
|
||||
|
||||
# provider specific configuration
|
||||
[% IF Data.CommunicationType == 'Provider' %]
|
||||
|
||||
<label class="Mandatory" for="MaxLength"><span class="Marker">*</span>[% Translate("Maximum message length") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="MaxLength" class="W25pc Validate_Required Validate_Number [% Data.MaxLengthServerError | html %]" type="text" maxlength="10" value="[% Data.MaxLength | html %]" name="MaxLength"/>
|
||||
<div id="MaxLengthError" class="TooltipErrorMessage"><p>[% Translate("This field should be an integer number.") | html %]</p></div>
|
||||
<div id="MaxLengthServerError" class="TooltipErrorMessage"><p>[% Translate(Data.MaxLengthServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can specify the maximum size (in bytes) of SOAP messages that OTRS will process.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
# requester specific configuration
|
||||
[% ELSE %]
|
||||
|
||||
<label for="Encoding">[% Translate("Encoding") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Encoding" class="W50pc" type="text" maxlength="250" value="[% Data.Encoding | html %]" name="Encoding"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The character encoding for the SOAP message contents.") | html %]
|
||||
<br/>
|
||||
[% Translate("e.g utf-8, latin1, iso-8859-1, cp1250, Etc.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="AuthType">[% Translate("Authentication") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.AuthenticationStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("An optional authentication mechanism to access the remote system.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="BasicAuthField [% Data.BasicAuthHidden | html %]">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label class="Mandatory" for="BasicAuthUser"><span class="Marker">*</span> [% Translate("BasicAuth User") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="BasicAuthUser" class="W50pc [% Data.BasicAuthUserValidateRequired | html %] [% Data.BasicAuthUserServerError | html %]" type="text" maxlength="250" value="[% Data.BasicAuthUser | html %]" name="BasicAuthUser"/>
|
||||
<div id="BasicAuthUserError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="BasicAuthUserServerError" class="TooltipErrorMessage"><p>[% Translate(Data.BasicAuthUserServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The user name to be used to access the remote system.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="BasicAuthPassword"><span class="Marker">*</span>[% Translate("BasicAuth Password") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="BasicAuthPassword" class="W50pc [% Data.BasicAuthPasswordValidateRequired | html %] [% Data.BasicAuthPasswordServerError | html %]" type="password" maxlength="250" value="[% Data.BasicAuthPassword | html %]" name="BasicAuthPassword"/>
|
||||
<div id="BasicAuthPasswordError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="BasicAuthPasswordServerError" class="TooltipErrorMessage"><p>[% Translate(Data.BasicAuthPasswordServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The password for the privileged user.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<label class="Mandatory" for="UseProxy"><span class="Marker">*</span>[% Translate("Use Proxy Options") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.UseProxyStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Show or hide Proxy options to connect to the remote system.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="ProxyField [% Data.ProxyHidden | html %]">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label for="ProxyHost">[% Translate("Proxy Server") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="ProxyHost" class="W50pc" type="text" maxlength="250" value="[% Data.ProxyHost | html %]" name="ProxyHost"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("URI of a proxy server to be used (if needed).") | html %]
|
||||
<br/>
|
||||
[% Translate("e.g. http://proxy_hostname:8080") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label for="ProxyUser">[% Translate("Proxy User") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="ProxyUser" class="W50pc" type="text" maxlength="250" value="[% Data.ProxyUser | html %]" name="ProxyUser"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The user name to be used to access the proxy server.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ProxyPassword">[% Translate("Proxy Password") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="ProxyPassword" class="W50pc" type="password" maxlength="250" value="[% Data.ProxyPassword | html %]" name="ProxyPassword"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The password for the proxy user.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label class="Mandatory" for="ProxyExclude"><span class="Marker">*</span>[% Translate("Skip Proxy") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ProxyExcludeStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Skip proxy servers that might be configured globally?") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
<label class="Mandatory" for="UseSSL"><span class="Marker">*</span>[% Translate("Use SSL Options") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.UseSSLStrg %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Show or hide SSL options to connect to the remote system.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="SSLField [% Data.SSLHidden | html %]">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label for="SSLCertificate">[% Translate("Client Certificate") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="SSLCertificate" class="W50pc [% Data.SSLCertificateServerError | html %]" type="text" maxlength="250" value="[% Data.SSLCertificate | html %]" name="SSLCertificate"/>
|
||||
<div id="SSLCertificateServerError" class="TooltipErrorMessage"><p>[% Translate(Data.SSLCertificateServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The full path and name of the SSL client certificate file (must be in PEM, DER or PKCS#12 format).") | html %]
|
||||
<br/>
|
||||
[% Translate("e.g. /opt/otrs/var/certificates/SOAP/certificate.pem") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SSLKey">[% Translate("Client Certificate Key") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="SSLKey" class="W50pc [% Data.SSLKeyServerError | html %]" type="text" maxlength="250" value="[% Data.SSLKey | html %]" name="SSLKey"/>
|
||||
<div id="SSLKeyServerError" class="TooltipErrorMessage"><p>[% Translate(Data.SSLKeyServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The full path and name of the SSL client certificate key file (if not already included in certificate file).") | html %]
|
||||
<br/>
|
||||
[% Translate("e.g. /opt/otrs/var/certificates/SOAP/key.pem") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SSLPassword">[% Translate("Client Certificate Key Password") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="SSLPassword" class="W50pc" type="password" maxlength="250" value="[% Data.SSLPassword | html %]" name="SSLPassword"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The password to open the SSL certificate if the key is encrypted.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SSLCAFile">[% Translate("Certification Authority (CA) Certificate") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="SSLCAFile" class="W50pc [% Data.SSLCAFileServerError | html %]" type="text" maxlength="250" value="[% Data.SSLCAFile | html %]" name="SSLCAFile"/>
|
||||
<div id="SSLCAFileServerError" class="TooltipErrorMessage"><p>[% Translate(Data.SSLCAFileServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The full path and name of the certification authority certificate file that validates SSL certificate.") | html %]
|
||||
<br/>
|
||||
[% Translate("e.g. /opt/otrs/var/certificates/SOAP/CA/ca.pem") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SSLCADir">[% Translate("Certification Authority (CA) Directory") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="SSLCADir" class="W50pc [% Data.SSLCADirServerError | html %]" type="text" maxlength="250" value="[% Data.SSLCADir | html %]" name="SSLCADir"/>
|
||||
<div id="SSLCADirServerError" class="TooltipErrorMessage"><p>[% Translate(Data.SSLCADirServerErrorMessage) | html %]</p></div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The full path of the certification authority directory where the CA certificates are stored in the file system.") | html %]
|
||||
<br/>
|
||||
[% Translate("e.g. /opt/otrs/var/certificates/SOAP/CA") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
[% END %]
|
||||
|
||||
<label for="Sort">[% Translate("Sort options") | html %]:</label>
|
||||
<div class="Field">
|
||||
<ul class="SortableList">
|
||||
<li class="ElementTemplate">
|
||||
<span><i class="fa fa-ellipsis-v"></i><input type="text" class="Element" class="Element" value="ElementName" /><strong>x</strong><span class="Icon Add"><i class="fa fa-plus-square-o"></i></span></span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="AddElement">
|
||||
[% Translate("Add new first level element") | html %]:
|
||||
<input type="text" name="Element" title="[% Translate("Element") | html %]" />
|
||||
<button class="CallForAction"><span>[% Translate("Add") | html %]</span></button>
|
||||
</div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Outbound sort order for xml fields (structure starting below function name wrapper) - see documentation for SOAP transport.") | html %]
|
||||
</p>
|
||||
<input type="hidden" name="Sort" id="Sort" value="" />
|
||||
</div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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=AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %]"><span>[% Translate("Cancel") | html %]</span></a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,522 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[%
|
||||
SET OTRSBusinessLabel = '<strong>OTRS Business Solution</strong>™';
|
||||
SET OTRSBusinessLinkLabelWithContractLevel = '<strong><a href="#" class="OTRSBusinessRequired">OTRS Business Solution™ PROFESSIONAL/ENTERPRISE</a></strong>';
|
||||
%]
|
||||
|
||||
[% RenderBlockStart("Main") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Web Service Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Web Service Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add Web Service"),}) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit Web Service")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.WebserviceData.Name ), }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Nav=[% Data.Nav | uri %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Add"/>
|
||||
<input type="hidden" name="Nav" value="[% Data.Nav | html %]"/>
|
||||
|
||||
<button class="CallForAction Fullsize Center" type="submit"><span><i class="fa fa-plus-square"></i>[% Translate("Add Web Service") | html %]</span></button>
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
[% RenderBlockStart("ActionClone") %]
|
||||
<li>
|
||||
<button id="CloneButton" class="CallForAction Fullsize Center HideActionOnChange" type="submit"><span><i class="fa fa-copy"></i> [% Translate("Clone Web Service") | html %]</span></button>
|
||||
<div class="Hidden" id="CloneDialogContainer">
|
||||
<div id="CloneDialog" class="InnerContent GenericInterfaceDialog">
|
||||
<form id="CloneForm" action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" name="CloneForm" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Clone"/>
|
||||
<input type="hidden" name="WebserviceID" value="[% Data.WebserviceID | html %]"/>
|
||||
<fieldset class="TableLike">
|
||||
<div class="SpacingTop"></div>
|
||||
<label class="Mandatory" for="CloneName"><span class="Marker">*</span>[% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="CloneName" class="CloneName W75pc Validate_Required" type="text" maxlength="250" value="" name="CloneName"/>
|
||||
<div id="CloneNameError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div class="FieldExplanation">[% Translate("The name must be unique.") | html %]</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
<div class="ContentFooter Center">
|
||||
<button class="Primary CallForAction" type="button" id="CloneButtonAction" value="[% Translate("Clone") | html %]"><span>[% Translate("Clone") | html %]</span></button>
|
||||
<button class="CallForAction" type="button" id="CancelCloneButtonAction" value="[% Translate("Cancel") | html %]"><span>[% Translate("Cancel") | html %]</span></button>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionClone") %]
|
||||
[% RenderBlockStart("ActionExport") %]
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Export"/>
|
||||
<input type="hidden" name="WebserviceID" value="[% Data.WebserviceID | html %]"/>
|
||||
<input type="hidden" name="Nav" value="[% Data.Nav | html %]"/>
|
||||
|
||||
<button class="CallForAction Fullsize Center HideActionOnChange" type="submit"><span><i class="fa fa-download"></i> [% Translate("Export Web Service") | html %]</span></button>
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionExport") %]
|
||||
[% RenderBlockStart("ActionImport") %]
|
||||
<li>
|
||||
<button id="ImportButton" class="CallForAction Fullsize Center" type="button"><span><i class="fa fa-upload"></i> [% Translate("Import web service") | html %]</span></button>
|
||||
<div class="Hidden" id="ImportDialogContainer">
|
||||
<div id="ImportDialog" class="InnerContent GenericInterfaceDialog">
|
||||
<form id="ImportForm" action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" name="ImportForm" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Import"/>
|
||||
<fieldset class="TableLike">
|
||||
<div class="SpacingTop"></div>
|
||||
<label class="Mandatory" for="ConfigFile"><span class="Marker">*</span>[% Translate("Configuration File") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="ConfigFile" class="Validate_Required" type="file" maxlength="250" value="" name="ConfigFile"/>
|
||||
<div id="ConfigFileError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div class="FieldExplanation">[% Translate("The file must be a valid web service configuration YAML file.") | html %]</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="WebserviceName">[% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="WebserviceName" class="W100pc" type="text" maxlength="250" value="" name="WebserviceName" />
|
||||
<div class="FieldExplanation">[% Translate("Here you can specify a name for the webservice. If this field is empty, the name of the configuration file is used as name.") | html %]</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
<div class="ContentFooter Center">
|
||||
<button class="Primary CallForAction" type="submit" id="ImportButtonAction" value="[% Translate("Import") | html %]"><span>[% Translate("Import") | html %]</span></button>
|
||||
<button class="CallForAction" type="button" id="CancelImportButtonAction" value="[% Translate("Cancel") | html %]"><span>[% Translate("Cancel") | html %]</span></button>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionImport") %]
|
||||
[% RenderBlockStart("ActionHistory") %]
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="AdminGenericInterfaceWebserviceHistory"/>
|
||||
<input type="hidden" name="WebserviceID" value="[% Data.WebserviceID | html %]"/>
|
||||
<input type="hidden" name="Nav" value="[% Data.Nav | html %]"/>
|
||||
|
||||
<button class="CallForAction Fullsize Center HideActionOnChange" type="submit"><span><i class="fa fa-clock-o"></i> [% Translate("Configuration History") | html %]</span></button>
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionHistory") %]
|
||||
[% RenderBlockStart("ActionDelete") %]
|
||||
<li>
|
||||
<button id="DeleteButton" class="CallForAction Fullsize Center" type="button"><span><i class="fa fa-trash-o"></i> [% Translate("Delete web service") | html %]</span></button>
|
||||
<div class="Hidden" id="DeleteDialogContainer">
|
||||
<div id ="DeleteDialog" class="InnerContent GenericInterfaceDialog">
|
||||
<span class="WarningDialog "> </span>
|
||||
<p class="Center Warning">[% Translate("Do you really want to delete this web service?") | html %]</p>
|
||||
<div class="SpacingTop"></div>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionDelete") %]
|
||||
[% RenderBlockStart("ActionDebugger") %]
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="AdminGenericInterfaceDebugger"/>
|
||||
<input type="hidden" name="WebserviceID" value="[% Data.WebserviceID | html %]"/>
|
||||
<input type="hidden" name="Nav" value="[% Data.Nav | html %]"/>
|
||||
|
||||
<button class="CallForAction Fullsize Center HideActionOnChange" type="submit"><span><i class="fa fa-bug"></i> [% Translate("Debugger") | html %]</span></button>
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionDebugger") %]
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
[% RenderBlockStart("ExampleWebServices") %]
|
||||
<div class="WidgetSimple" id="ExampleWebServices">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Ready2Adopt Web Services") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% IF Data.ExampleWebServiceList %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can activate Ready2Adopt web services showcasing our best practices that are a part of %s.") | html | ReplacePlaceholders(OTRSBusinessLabel) %]
|
||||
[% Translate("Please note that these web services may depend on other modules only available with certain %s contract levels (there will be a notification with further details when importing).") | html | ReplacePlaceholders(OTRSBusinessLabel) %]
|
||||
</p>
|
||||
<ul class="ActionList SpacingTop">
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Import"/>
|
||||
[% Data.ExampleWebServiceList %]
|
||||
<div id="ExampleWebServiceError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="ExampleWebServiceServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
|
||||
<button class="CallForAction Fullsize Center SpacingTop" type="submit" value="[% Translate("Import Ready2Adopt web service") | html %]">
|
||||
<span><i class="fa fa-upload"></i>[% Translate("Import Ready2Adopt web service") | html %]</span>
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
[% ELSE %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Would you like to benefit from web services created by experts? Upgrade to %s to import some sophisticated Ready2Adopt web services.") | html | ReplacePlaceholders(OTRSBusinessLinkLabelWithContractLevel) %]
|
||||
</p>
|
||||
[% END %]
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ExampleWebServices") %]
|
||||
[% RenderBlockStart("Hint") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("After you save the configuration you will be redirected again to the edit screen.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If you want to return to overview please click the \"Go to overview\" button.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Hint") %]
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
[% RenderBlockStart("OverviewHeader") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewHeader") %]
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="Content ">
|
||||
<table class="DataTable" id="WebserviceTable" summary="List of all registered Webservices">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Description") | html %]</th>
|
||||
<th>[% Translate("Remote system") | html %]</th>
|
||||
<th>[% Translate("Provider transport") | html %]</th>
|
||||
<th>[% Translate("Requester transport") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr [% IF Data.Valid != "valid"%]class="Invalid"[% END %]>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Change;WebserviceID=[% Data.ID | uri %];Nav=[% Data.Nav | uri %]">[% Data.Name | html %]</a>
|
||||
</td>
|
||||
<td>[% Translate(Data.Description) | html %]</td>
|
||||
<td>[% Translate(Data.RemoteSystem) | html %]</td>
|
||||
<td>[% Translate(Data.ProviderTransport) | html %]</td>
|
||||
<td>[% Translate(Data.RequesterTransport) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
[% RenderBlockStart("Details") %]
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | html %]Action"/>
|
||||
<input type="hidden" name="WebserviceID" value="[% Data.WebserviceID | html %]" id="WebserviceID"/>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("General") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Name" class="W50pc [% Data.NameServerError | html %] Validate_Required HideTrigger" type="text" maxlength="250" value="[% Data.Name | html %]" name="Name"/>
|
||||
<div id="NameError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage"><p>[% Translate(Data.NameServerErrorMessage) | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Description">[% Translate("Description") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Description" class="W50pc HideTrigger" type="text" maxlength="250" value="[% Data.Description | html %]" name="Description"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="RemoteSystem">[% Translate("Remote system") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="RemoteSystem" class="W50pc HideTrigger" type="text" maxlength="250" value="[% Data.RemoteSystem | html %]" name="RemoteSystem"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<fieldset class="TableLike">
|
||||
<label for="DebugThreshold">[% Translate("Debug threshold") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DebugThresholdStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ValidID">[% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidtyStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockStart("DetailsCommunicationType") %]
|
||||
<div class="WidgetSimple Expanded">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h3>[% Translate(Data.Title) | html %]</h3>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% RenderBlockStart("DetailsCommunicationTypeExplanationProvider") %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("In provider mode, OTRS offers web services which are used by remote systems.") | html %]
|
||||
</p>
|
||||
[% RenderBlockEnd("DetailsCommunicationTypeExplanationProvider") %]
|
||||
[% RenderBlockStart("DetailsCommunicationTypeExplanationRequester") %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("In requester mode, OTRS uses web services of remote systems.") | html %]
|
||||
</p>
|
||||
[% RenderBlockEnd("DetailsCommunicationTypeExplanationRequester") %]
|
||||
<h4 class="SpacingTop SpacingBottom">[% Translate("Settings") | html %]</h4>
|
||||
<fieldset class="TableLike">
|
||||
<label for="[% Data.CommunicationType | html %]TransportList">[% Translate("Network transport") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.TransportsStrg %]
|
||||
[% RenderBlockStart("DetailsTransportPropertiesButton") %]
|
||||
<button type="button" id="[% Data.CommunicationType | html %]TransportProperties" class="HideOnChange CallForAction Inline" value="Configure"><span>[% Translate("Configure") | html %]</span></button>
|
||||
[% RenderBlockEnd("DetailsTransportPropertiesButton") %]
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<h4 class="SpacingTop SpacingBottom">[% Translate("Error Handling Modules") | html %]</h4>
|
||||
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Error handling modules are used to react in case of errors during the communication. Those modules are executed in a specific order, which can be changed by drag and drop.") | html %]
|
||||
</p>
|
||||
|
||||
<table class="DataTable ErrorHandlingPriority" id="[% Data.ActionsTitle | html %]Table" data-query-string="Action=AdminGenericInterfaceErrorHandlingDefault;Subaction=PriorityAction;CommunicationType=[% Data.CommunicationType | uri %];WebserviceID=[% Data.WebserviceID | uri %];[% Env('ChallengeTokenParam') | html %]">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="10px">[% Translate("#") | html %]</th>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Description") | html %]</th>
|
||||
<th>[% Translate("Backend") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("ErrorHandlingRow") %]
|
||||
<tr id="[% Data.ErrorHandling | html %]">
|
||||
<td></td>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Data.Dialog | uri %];CommunicationType=[% Data.CommunicationType | uri %];ErrorHandling=[% Data.ErrorHandling | uri %];Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %];ErrorHandlingType=[% Data.ErrorHandlingType | uri %]">
|
||||
[% Data.ErrorHandling | html %]
|
||||
</a>
|
||||
</td>
|
||||
<td>[% Data.Description | html %]</td>
|
||||
<td>[% Data.ErrorHandlingType | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("ErrorHandlingRow") %]
|
||||
[% RenderBlockStart("ErrorHandlingRowNoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td></td>
|
||||
<td colspan="4">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("ErrorHandlingRowNoDataFoundMsg") %]
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<fieldset class="TableLike HideOnChange SpacingTop">
|
||||
<label for="[% Data.CommunicationType | html %]ErrorHandling">[% Translate("Add error handling module") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ErrorHandlingStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
|
||||
<h4 class="SpacingTop SpacingBottom">[% Translate(Data.ActionsTitle) | html %]</h4>
|
||||
|
||||
[% RenderBlockStart("DetailsCommunicationTypeActionsExplanationProvider") %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Operations are individual system functions which remote systems can request.") | html %]
|
||||
</p>
|
||||
[% RenderBlockEnd("DetailsCommunicationTypeActionsExplanationProvider") %]
|
||||
[% RenderBlockStart("DetailsCommunicationTypeActionsExplanationRequester") %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Invokers prepare data for a request to a remote web service, and process its response data.") | html %]
|
||||
</p>
|
||||
[% RenderBlockEnd("DetailsCommunicationTypeActionsExplanationRequester") %]
|
||||
|
||||
<table class="DataTable" id="[% Data.ActionsTitle | html %]Table" summary="list of [% Data.ActionsTitle | html %]">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Description") | html %]</th>
|
||||
<th>[% Translate("Controller") | html %]</th>
|
||||
<th>[% Translate("Inbound mapping") | html %]</th>
|
||||
<th>[% Translate("Outbound mapping") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("DetailsActionsRow") %]
|
||||
<tr>
|
||||
<td>
|
||||
[% RenderBlockStart("DetailsActionsRowLink") %]
|
||||
<a class="AsBlock HideLinkOnChange" href="[% Env("Baselink") %]Action=[% Data.Module | uri %];[% Data.ActionType | uri %]=[% Data.Name | uri %];Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %];Nav=[% Data.Nav | uri %]">
|
||||
[% Data.Name | html %]
|
||||
</a>
|
||||
[% RenderBlockEnd("DetailsActionsRowLink") %]
|
||||
[% RenderBlockStart("DetailsActionsRowDelete") %]
|
||||
<a id="Delete[% Data.ActionType | html %][% Data.Name | html %]" class="TrashCan Delete[% Data.ActionType | html %]" href="#" title="[% Translate("Delete this action") | html %]">
|
||||
[% Translate("Delete this action") | html %]
|
||||
<i class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
<span>
|
||||
[% Data.Name | html %]
|
||||
</span>
|
||||
[% RenderBlockEnd("DetailsActionsRowDelete") %]
|
||||
</td>
|
||||
<td>[% Translate(Data.Description) | html %]</td>
|
||||
<td class="[% Data.ControllerClass | html %]">[% Data.Controller | html %]</td>
|
||||
<td>[% Translate(Data.MappingInbound) | html %]</td>
|
||||
<td>[% Translate(Data.MappingOutbound) | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("DetailsActionsRow") %]
|
||||
[% RenderBlockStart("DetailsActionsNoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("DetailsActionsNoDataFoundMsg") %]
|
||||
</tbody>
|
||||
</table>
|
||||
[% RenderBlockStart("DetailsActionsNoControllerFoundMsg") %]
|
||||
<div class="SpacingTop"></div>
|
||||
<p class="Error">
|
||||
[% Translate("At least one %s has a controller that is either not active or not present, please check the controller registration or delete the %s", Data.ActionType, Data.ActionType) | html %]
|
||||
</p>
|
||||
[% RenderBlockEnd("DetailsActionsNoControllerFoundMsg") %]
|
||||
<div class="SpacingTop"></div>
|
||||
<fieldset class="TableLike HideOnChange">
|
||||
<label for="[% Data.ActionType | html %]List">[% Translate("Add") | html %] [% Translate(Data.ActionType) | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ControllersStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockEnd("DetailsCommunicationType") %]
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Save") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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>
|
||||
|
||||
<div class="Hidden" id="DeleteOperationDialogContainer">
|
||||
<div id ="DeleteOperationDialog" class="InnerContent GenericInterfaceDialog">
|
||||
<span class="WarningDialog "> </span>
|
||||
<p class="Center Warning">[% Translate("Do you really want to delete this operation?") | html %]</p>
|
||||
<div class="SpacingTop"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="Hidden" id="DeleteInvokerDialogContainer">
|
||||
<div id ="DeleteInvokerDialog" class="InnerContent GenericInterfaceDialog">
|
||||
<span class="WarningDialog "> </span>
|
||||
<p class="Center Warning">[% Translate("Do you really want to delete this invoker?") | html %]</p>
|
||||
<div class="SpacingTop"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockEnd("Details") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Main") %]
|
||||
@@ -0,0 +1,126 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst AdminGenericInterfaceWebserviceHistory">
|
||||
<h1 class="InvisibleText">[% Translate("GenericInterface Web Service Management") | html %]</h1>
|
||||
|
||||
[% USE WebserviceLink = String('AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=') %]
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Web Service Management'),
|
||||
Link => 'AdminGenericInterfaceWebservice',
|
||||
},
|
||||
{
|
||||
Name => Data.WebserviceName,
|
||||
Link => WebserviceLink.append( Data.WebserviceID ),
|
||||
},
|
||||
{
|
||||
Name => Translate('History'),
|
||||
}
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %]" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-caret-left"></i> [% Translate("Go back to Web Service") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can view older versions of the current web service's configuration, export or even restore them.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
<div class="WidgetSimple WebserviceListWidget">
|
||||
<div class="Header">
|
||||
<h2>
|
||||
[% Translate("Configuration History List") | html %]
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="ColumnsWithSpacing">
|
||||
<div class="W75pc">
|
||||
<div id="WebserviceListContainer" class="ListContainer">
|
||||
<table class="DataTable" id="WebserviceList">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Version") | html %]</th>
|
||||
<th>[% Translate("Create time") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="3">[% Translate("Loading") | html %]...</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p class="FieldExplanation">[% Translate("Select a single configuration version to see its details.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple Hidden" id="WebserviceHistoryDetails">
|
||||
<div class="ControlRow"></div>
|
||||
<div class="LightRow Bottom">
|
||||
<ul class="Actions">
|
||||
<li id="ExportButton">
|
||||
<span>[% Translate("Export web service configuration") | html %]</span>
|
||||
</li>
|
||||
<li id="RollbackButton">
|
||||
<span>[% Translate("Restore web service configuration") | html %]</span>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="ClearLeft"></div>
|
||||
</div>
|
||||
<div class="Content ConfigCode">
|
||||
<pre></pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="Hidden" id="RollbackDialogContainer">
|
||||
<p id="RollbackDialog" class="Warning">
|
||||
[% Translate("Do you really want to restore this version of the web service configuration?") | html %]
|
||||
<br/>
|
||||
[% Translate("Your current web service configuration will be overwritten.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Hidden">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" id="ActionForm">
|
||||
<input type="hidden" value="AdminGenericInterfaceWebserviceHistory" name="Action" />
|
||||
<input type="hidden" value="" name="Subaction" id="Subaction" />
|
||||
<input type="hidden" value="[% Data.WebserviceID | html %]" name="WebserviceID" />
|
||||
<input type="hidden" value="" name="WebserviceHistoryID" id="WebserviceHistoryID" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
184
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminGroup.tt
Normal file
184
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminGroup.tt
Normal file
@@ -0,0 +1,184 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Group Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Group Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add Group"),}) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit Group")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Name ) }) %]
|
||||
[% 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 href="[% Env("Baselink") %]Action=AdminGroup;Subaction=Add" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add Group") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><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="FilterGroups">[% Translate("Filter for Groups") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterGroups" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterGroups" value="" title="[% Translate("Filter for groups") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The admin group is to get in the admin area and the stats group to get stats area.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Create new groups to handle access permissions for different groups of agent (e. g. purchasing department, support department, sales department, ...). ") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("It's useful for ASP solutions. ") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %] ([% Data.AllItemsCount | html %] [% Translate("total") | html %])</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<table class="DataTable" id="Groups">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr [% IF Data.ValidID != 1 %]class="Invalid"[% END %]>
|
||||
<td><a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a></td>
|
||||
<td title="[% Data.Comment | html %]">[% Data.Comment | truncate(80) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="5">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
|
||||
[% RenderBlockStart("OverviewUpdate") %]
|
||||
<div class="Header">
|
||||
[% IF Data.Action == 'Add' %]
|
||||
<h2>[% Translate("Add Group") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit Group") | html %]</h2>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form id="GroupUpdate" action="[% Env("CGIHandle") %]" method="post" name="GroupUpdate" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | html %]Action"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
<input type="hidden" name="NameOld" id="GroupOldName" value="[% Data.Name | html %]"/>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label class="Mandatory" for="GroupName"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="GroupName" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.GroupNameInvalid | html %]" maxlength="200"/>
|
||||
<div id="GroupNameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="GroupNameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOption %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="250"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewUpdate") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,87 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Criticality ↔ Impact ↔ Priority") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Criticality ↔ Impact ↔ Priority'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header"><h2>[% Translate("Note") | html %]</h2></div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Manage the priority result of combinating Criticality ↔ Impact.") | html %]
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Priority allocation") | html %]</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="CIPAllocate"/>
|
||||
<table class="DataTable DataTableNoHighlight">
|
||||
<thead>
|
||||
<tr>
|
||||
[% RenderBlockStart("HeaderColumnDescription") %]
|
||||
<th>
|
||||
[% Translate(Data.ObjectType) | html %]
|
||||
</th>
|
||||
[% RenderBlockEnd("HeaderColumnDescription") %]
|
||||
[% RenderBlockStart("HeaderCell") %]
|
||||
<th>
|
||||
[% Translate(Data.ObjectOption) | html %]
|
||||
</th>
|
||||
[% RenderBlockEnd("HeaderCell") %]
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
[% RenderBlockStart("Row") %]
|
||||
<tr>
|
||||
[% RenderBlockStart("DescriptionCell") %]
|
||||
<td>
|
||||
[% Translate(Data.ObjectOption) | html %]
|
||||
</td>
|
||||
[% RenderBlockEnd("DescriptionCell") %]
|
||||
[% RenderBlockStart("ContentCell") %]
|
||||
<td>
|
||||
[% Data.OptionStrg %]
|
||||
</td>
|
||||
[% RenderBlockEnd("ContentCell") %]
|
||||
</tr>
|
||||
[% RenderBlockEnd("Row") %]
|
||||
</tbody>
|
||||
</table>
|
||||
<fieldset class="TableLike">
|
||||
<div class="Field SpacingTop SaveButtons">
|
||||
<button class="Primary CallForAction" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]"><span>[% Translate("Cancel") | html %]</span></a>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,79 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="Header">[% Translate("Category ↔ Impact ↔ Priority") | html %]</h1>
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header"><h2>[% Translate("Note") | html %]</h2></div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Manage the priority result of combinating Category ↔ Impact.") | html %]
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Priority allocation") | html %]</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="CIPAllocate"/>
|
||||
<table class="DataTable DataTableNoHighlight">
|
||||
<thead>
|
||||
<tr>
|
||||
[% RenderBlockStart("HeaderColumnDescription") %]
|
||||
<th>
|
||||
[% Translate(Data.ObjectType) | html %]
|
||||
</th>
|
||||
[% RenderBlockEnd("HeaderColumnDescription") %]
|
||||
[% RenderBlockStart("HeaderCell") %]
|
||||
<th>
|
||||
[% Translate(Data.ObjectOption) | html %]
|
||||
</th>
|
||||
[% RenderBlockEnd("HeaderCell") %]
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
[% RenderBlockStart("Row") %]
|
||||
<tr>
|
||||
[% RenderBlockStart("DescriptionCell") %]
|
||||
<td>
|
||||
[% Translate(Data.ObjectOption) | html %]
|
||||
</td>
|
||||
[% RenderBlockEnd("DescriptionCell") %]
|
||||
[% RenderBlockStart("ContentCell") %]
|
||||
<td>
|
||||
[% Data.OptionStrg %]
|
||||
</td>
|
||||
[% RenderBlockEnd("ContentCell") %]
|
||||
</tr>
|
||||
[% RenderBlockEnd("Row") %]
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="SpacingTop">
|
||||
<button class="Primary CallForAction" id="SubmitAndContinue" type="submit" value="[% Translate("Save") | html %]">
|
||||
<span>[% Translate("Save") | html %]</span>
|
||||
</button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">
|
||||
<span>[% Translate("Cancel") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,332 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("ITSM ChangeManagement Notification Management") | html %]</h1>
|
||||
|
||||
[%-
|
||||
BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('ITSM ChangeManagement Notification Management'),
|
||||
Link => Env("Action"),
|
||||
}
|
||||
];
|
||||
|
||||
IF Data.Action == 'Add';
|
||||
BreadcrumbPath.push({
|
||||
Name => Translate('Add Notification Rule'),
|
||||
});
|
||||
ELSIF Data.Action == 'Change';
|
||||
BreadcrumbPath.push({
|
||||
Name => Translate('Edit Notification Rule'),
|
||||
});
|
||||
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("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Add" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add Notification Rule") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="W20pc">[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Event") | html %]</th>
|
||||
<th>[% Translate("Attribute") | html %]</th>
|
||||
<th>[% Translate("Rule") | html %]</th>
|
||||
<th>[% Translate("Recipients") | html %]</th>
|
||||
# <th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th class="Center W10pc">[% Translate("Copy") | html %]</th>
|
||||
<th class="Center W10pc">[% Translate("Delete") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr [% IF Data.ValidID != 1%]class="Invalid"[% END %]>
|
||||
<td><a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a></td>
|
||||
<td>[% Translate(Data.Event) | html %]</td>
|
||||
<td>[% Data.Attribute | html %]</td>
|
||||
<td>[% Data.Rule | html %]</td>
|
||||
<td>[% Data.Recipients | html %]</td>
|
||||
# <td>[% Data.Comment | truncate(20) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td class="Center">
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=NotificationCopy;ID=[% Data.ID | uri %];[% Env("ChallengeTokenParam") | html %]"><i class="fa fa-copy"></i><span class="InvisibleText">[% Translate("Copy") | html %]</span></a>
|
||||
</td>
|
||||
<td class="Center">
|
||||
<a class="TrashCan NotificationDelete" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Delete;ID=[% Data.ID | uri %];[% Env("ChallengeTokenParam") | html %]" title="[% Translate("Delete this notification") | html %]">
|
||||
<i class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
|
||||
[% RenderBlockStart("OverviewUpdate") %]
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits" name="ChangeNotification" id="ChangeNotification">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate(Data.ActionLabel) | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | uri %]Action"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<fieldset class="TableLike">
|
||||
<label for="Name" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Name") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" id="Name" name="Name" class="Validate_Required W50pc [% Data.NameInvalid | html %]" value="[% Data.Name | html %]" maxlength="50"/>
|
||||
<div id="NameError" class="TooltipErrorMessage"><p>[% Translate("A notification should have a name!") | html %]</p></div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage"><p>[% Translate("Name is required.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="EventID" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Event") | html %]:
|
||||
</label>
|
||||
|
||||
<div class="Field">
|
||||
[% Data.EventOption %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Attribute">[% Translate("Attribute") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" id="Attribute" name="Attribute" value="[% Data.Attribute | html %]" class="W50pc" maxlength="50"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Rule">[% Translate("Rule") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" id="Rule" name="Rule" value="[% Data.Rule | html %]" class="W50pc" maxlength="50"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="RecipientIDs">[% Translate("Recipients") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.RecipientOption %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ValidID">[% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOption %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" id="Comment" name="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="150"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="Hidden Template NotificationLanguage">
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<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 class="Title"></h2>
|
||||
<div class="AdditionalInformation">
|
||||
<a value="Remove Language" class="RemoveButton LanguageRemove" id="Template_Language_Remove" href="" name="Template_Language_Remove"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove Notification Language") | html %]</span></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
<input type="hidden" name="" class="LanguageID" value=""/>
|
||||
<label for="Template_Subject" id="Template_Label_Subject" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Subject") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Template_Subject" id="Template_Subject" value="" class="W75pc" maxlength="200"/>
|
||||
<div id="Template_SubjectError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Template_Body" id="Template_Label_Body" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Text") | html %]:
|
||||
</label>
|
||||
<div class="RichTextField">
|
||||
<textarea id="Template_Body" class="" name="Template_Body" title="[% Translate("Message body") | html %]" rows="15" cols="[% Config("Ticket::Frontend::TextAreaNote") %]"></textarea>
|
||||
<div id="Template_BodyError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
[% RenderBlockStart("NotificationType") %]
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<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("Notification") | html %] ([% Translate(Data.Type) | html %])</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
<div class="NotificationLanguageContainer" id="[% Data.Type | html %]NotificationLanguageContainer">
|
||||
|
||||
[% RenderBlockStart("NotificationLanguage") %]
|
||||
<div class="NotificationLanguage">
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<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 class="Title">[% Translate(Data.Language) | html %]</h2>
|
||||
[% RenderBlockStart("NotificationLanguageRemoveButton") %]
|
||||
<div class="AdditionalInformation">
|
||||
<a value="Remove Language" class="RemoveButton LanguageRemove [% Data.Type | html %]LanguageRemove" id="[% Data.Type | html %]_[% Data.LanguageID | html %]_Language_Remove" href="" name="[% Data.Type | html %]_[% Data.LanguageID | html %]_Language_Remove"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove Notification Language") | html %]</span></a>
|
||||
</div>
|
||||
[% RenderBlockEnd("NotificationLanguageRemoveButton") %]
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<input type="hidden" name="[% Data.Type | html %]_LanguageID" class="LanguageID" value="[% Data.LanguageID | html %]"/>
|
||||
|
||||
<label for="[% Data.Type | html %]_[% Data.LanguageID | html %]_Subject" id="[% Data.Type | html %]_[% Data.LanguageID | html %]_Label_Subject" class="Mandatory">
|
||||
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Subject") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Type | html %]_[% Data.LanguageID | html %]_Subject" id="[% Data.Type | html %]_[% Data.LanguageID | html %]_Subject" value="[% Data.Subject | html %]" class="W75pc Validate_Required [% Data.SubjectServerError | html %]" maxlength="200"/>
|
||||
<div id="[% Data.Type | html %]_[% Data.LanguageID | html %]_SubjectError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="[% Data.Type | html %]_[% Data.LanguageID | html %]_SubjectServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
|
||||
<label for="[% Data.Type | html %]_[% Data.LanguageID | html %]_Body" id="[% Data.Type | html %]_[% Data.LanguageID | html %]_Label_Body" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Text") | html %]:
|
||||
</label>
|
||||
<div class="RichTextField">
|
||||
<textarea name="[% Data.Type | html %]_[% Data.LanguageID | html %]_Body" id="[% Data.Type | html %]_[% Data.LanguageID | html %]_Body" class="RichText Validate_RequiredRichText [% Data.BodyServerError | html %]" title="[% Translate("Message body") | html %]" rows="15" cols="[% Config("Ticket::Frontend::TextAreaNote") %]">[% Data.Body | html %]</textarea>
|
||||
|
||||
<div id="[% Data.Type | html %]_[% Data.LanguageID | html %]_BodyError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="[% Data.Type | html %]_[% Data.LanguageID | html %]_BodyServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("NotificationLanguage") %]
|
||||
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("NotificationLanguageAdd") %]
|
||||
<fieldset class="TableLike">
|
||||
<label for="Language">[% Translate("Add new notification language") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.LanguageStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
<div class="Hidden">
|
||||
[% Data.LanguageOrigStrg %]
|
||||
</div>
|
||||
[% RenderBlockEnd("NotificationLanguageAdd") %]
|
||||
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("NotificationType") %]
|
||||
<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">
|
||||
<button class="Primary CallForAction" id="SubmitAndContinue" type="button" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<button class="Primary CallForAction" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save and finish") | html %]</span></button>
|
||||
[% 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("OverviewUpdate") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,211 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1>[% Translate("Config Item Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Config Item Management'),
|
||||
Link => 'AdminITSMConfigItem',
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% IF (Data.ClassSelected) %]
|
||||
[% BreadcrumbPath.push({
|
||||
Name => Data.ClassSelected.Name,
|
||||
Link => 'AdminITSMConfigItem;Subaction=DefinitionList;ClassID=' _ Data.ClassSelected.ID
|
||||
}) %]
|
||||
[% END %]
|
||||
|
||||
[% IF (Data.VersionSelected) %]
|
||||
[% BreadcrumbPath.push({
|
||||
Name => 'Version ' _ Data.VersionSelected.Version,
|
||||
Link => 'AdminITSMConfigItem;Subaction=DefinitionView;DefinitionID=' _ Data.VersionSelected.ID
|
||||
}) %]
|
||||
[% END %]
|
||||
|
||||
[% IF (Data.Edit) %]
|
||||
[% BreadcrumbPath.push({
|
||||
Name => 'Edit definition',
|
||||
}) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class='Content'>
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="get">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="DefinitionChange"/>
|
||||
|
||||
<div>[% Data.ClassOptionStrg %]</div>
|
||||
<button class="CallForAction Fullsize Center" type="submit" value="[% Translate("Add") | html %]">
|
||||
<span>[% Translate("Change class definition") | html %]</span>
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("OverviewList") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Config Item Class") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("OverviewListRow") %]
|
||||
<tr>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=DefinitionList;ClassID=[% Data.ClassID | uri %]">[% Data.Name | html %]</a>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewListRow") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewList") %]
|
||||
[% RenderBlockStart("DefinitionList") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="W50pc">[% Translate("Config Item Class") | html %]</th>
|
||||
<th>[% Translate("Version") | html %]</th>
|
||||
<th>[% Translate("Created by") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("DefinitionListRow") %]
|
||||
<tr>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=DefinitionView;DefinitionID=[% Data.DefinitionID | uri %]">[% Data.Class | html %]</a>
|
||||
</td>
|
||||
<td>[% Data.Version | html %]</td>
|
||||
<td>[% Data.CreateByUser | html %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeLong") %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("DefinitionListRow") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("DefinitionList") %]
|
||||
[% RenderBlockStart("DefinitionView") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("View") | html %]: </h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label>[% Translate("Config Item Class") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.Class | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Version") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.Version | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Created by") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.CreateByUser | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Created") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.CreateTime | Localize("TimeLong") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Definition") | html %]: </label>
|
||||
<div class="Field">
|
||||
<pre>[% Data.DefinitionString %]</pre>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
[% RenderBlockEnd("DefinitionView") %]
|
||||
[% RenderBlockStart("DefinitionChange") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Change") | html %]: </h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="DefinitionSave"/>
|
||||
<input type="hidden" name="ClassID" value="[% Data.ClassID | html %]"/>
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<fieldset class="TableLike">
|
||||
|
||||
|
||||
<label>[% Translate("Config Item Class") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.Class | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Definition">[% Translate("Definition") | html %]: </label>
|
||||
<div class="Field">
|
||||
<textarea name="Definition" id="Definition" rows="[% Data.Rows | html %]" cols="80" wrap="off">[% Data.Definition | html %]</textarea>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
<button name="SubmitAndContinue" class="CallForAction Primary" id="SubmitAndContinue" type="button" value="Submit">
|
||||
<span>[% Translate("Save") | html %]</span>
|
||||
</button>
|
||||
[% Translate("or") | html %]
|
||||
<button name="Submit" class="CallForAction Primary" id="Submit" type="submit" value="Submit">
|
||||
<span>[% Translate("Save and finish") | html %]</span>
|
||||
</button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("DefinitionChange") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,242 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Admin State Machine") | html %]</h1>
|
||||
[%-
|
||||
BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Admin State Machine'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
];
|
||||
|
||||
IF Data.Action == 'StateTransitionAdd';
|
||||
BreadcrumbPath.push({
|
||||
Name => 'Add State Transition',
|
||||
});
|
||||
ELSIF Data.Action == 'StateTransitionUpdate';
|
||||
BreadcrumbPath.push({
|
||||
Name => 'Edit State Transition',
|
||||
});
|
||||
ELSIF Data.Class;
|
||||
BreadcrumbPath.push({
|
||||
Name => 'State Transitions for ' _ Data.Class,
|
||||
});
|
||||
END;
|
||||
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionAddState") %]
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="get" class="Validate">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]">
|
||||
<input type="hidden" name="Subaction" value="StateTransitionAdd">
|
||||
<div>[% Data.ClassSelectionString %]</div>
|
||||
<div id="ClassError" class="TooltipErrorMessage"><p>[% Translate("Select a catalog class!") | html %]</p></div>
|
||||
<div id="ClassServerError" class="TooltipErrorMessage"><p>[% Translate("A catalog class is required!") | html %]</p></div>
|
||||
<button class="CallForAction Fullsize Center" type="submit" value="[% Translate("Add") | html %]">
|
||||
<span>[% Translate("Add a state transition") | html %]</span>
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAddState") %]
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("OverviewClasses") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Catalog Class") | html %]</th>
|
||||
<th>[% Translate("Object Name") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("OverviewClassesRow") %]
|
||||
<tr>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Class=[% Data.Class | uri %]">[% Data.Class | html %]</a>
|
||||
</td>
|
||||
<td>[% Data.ClassShortName | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewClassesRow") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
[% RenderBlockEnd("OverviewClasses") %]
|
||||
|
||||
[% RenderBlockStart("OverviewStateTransitions") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Overview over state transitions for") | html %] [% Data.Class | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("State") | html %]</th>
|
||||
<th>[% Translate("Next state") | html %]</th>
|
||||
<th>[% Translate("Delete") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("StateTransitionRow") %]
|
||||
<tr>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=StateTransitionUpdate;Class=[% Data.Class | uri %];StateID=[% Data.StateID | uri %];NextStateID=[% Data.NextStateID | uri %]">
|
||||
[% Translate(Data.StateName) | html %]
|
||||
</a>
|
||||
</td>
|
||||
<td>[% Translate(Data.NextStateName) | html %]</td>
|
||||
<td class="Center Last">
|
||||
[% RenderBlockStart("StateTransitionDeleteButton") %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=StateTransitionDelete;Class=[% Data.Class | uri %];StateID=[% Data.StateID | uri %];NextStateID=[% Data.NextStateID | uri %]" title="[% Translate("Delete this state transition") | html %]">
|
||||
<i class="fa fa-trash-o">
|
||||
<span class="InvisibleText">[% Translate("Delete this state transition") | html %]</span>
|
||||
</i>
|
||||
</a>
|
||||
[% RenderBlockEnd("StateTransitionDeleteButton") %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("StateTransitionRow") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewStateTransitions") %]
|
||||
[% RenderBlockStart("StateTransitionAdd") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Add a new state transition for") | html %] [% Data.Class | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" name="ITSMStateMachineAdd" class="Validate">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | html %]Action"/>
|
||||
<input type="hidden" name="Class" value="[% Data.Class | html %]"/>
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label for="StateID">[% Translate("State") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.StateSelectionString %]
|
||||
<div id="StateIDError" class="TooltipErrorMessage"><p>[% Translate("Please select a state!") | html %]</p></div>
|
||||
<div id="StateIDServerError" class="TooltipErrorMessage"><p>[% Translate("Please select a state!") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Next state") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.NextStateSelectionString %]
|
||||
<div id="NextStateIDError" class="TooltipErrorMessage"><p>[% Translate("Please select a next state!") | html %]</p></div>
|
||||
<div id="NextStateIDServerError" class="TooltipErrorMessage"><p>[% Translate("Please select a next state!") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop SaveButtons">
|
||||
<button class="Primary CallForAction" id="SubmitAndContinue" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<button class="Primary CallForAction" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save and finish") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]"><span>[% Translate("Cancel") | html %]</span></a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("StateTransitionAdd") %]
|
||||
[% RenderBlockStart("StateTransitionUpdate") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Edit a state transition for") | html %] [% Data.Class | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" name="ITSMStateMachineUpdate">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | html %]Action"/>
|
||||
<input type="hidden" name="Class" value="[% Data.Class | html %]"/>
|
||||
<input type="hidden" name="StateID" value="[% Data.StateID | html %]"/>
|
||||
<input type="hidden" name="NextStateID" value="[% Data.NextStateID | html %]"/>
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label>[% Translate("State") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Translate(Data.StateName) | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Next state") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.NextStateSelectionString %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<div class="Field SpacingTop SaveButtons">
|
||||
<button class="Primary CallForAction" id="SubmitAndContinue" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<button class="Primary CallForAction" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save and finish") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]"><span>[% Translate("Cancel") | html %]</span></a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("StateTransitionUpdate") %]
|
||||
[% RenderBlockStart("StateTransitionDelete") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Delete") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="Center">
|
||||
[% Translate("Do you really want to delete the state transition") | html %]:
|
||||
<strong>[% Translate(Data.StateName) | html %]</strong> →
|
||||
<strong>[% Translate(Data.NextStateName) | html %]</strong>?
|
||||
</p>
|
||||
|
||||
<fieldset class="TableLike">
|
||||
<div class="Field">
|
||||
<a class="CallForAction" href="[% Env("Baselink") %]Action=[% Env("Action") %];Class=[% Data.Class | uri %]">
|
||||
<span>[% Translate("No") | html %]</span>
|
||||
</a>
|
||||
<a class="CallForAction" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=[% Data.Action | uri %]Action;Class=[% Data.Class | uri %];StateID=[% Data.StateID | uri %];NextStateID=[% Data.NextStateID | uri %]">
|
||||
<span>[% Translate("Yes") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
[% RenderBlockEnd("StateTransitionDelete") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,559 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1>[% Translate("Import/Export Management") | html %]</h1>
|
||||
|
||||
<div class="SidebarColumn">
|
||||
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=TemplateEdit1" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add template") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
|
||||
[% RenderBlockStart("NoteCreateTemplate") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Note") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Create a template to import and export object information.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("NoteCreateTemplate") %]
|
||||
|
||||
[% RenderBlockStart("NoteObjectBackend") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Note") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("To use this module, you need to install ITSMConfigurationManagement or any other package that provides back end for objects to be imported and exported.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("NoteObjectBackend") %]
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("OverviewList") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate(Data.ObjectName) | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Number") | html %]</th>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Format") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th class="Center">[% Translate("Delete") | html %]</th>
|
||||
<th>[% Translate("Start Import") | html %]</th>
|
||||
<th>[% Translate("Start Export") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="7">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewListRow") %]
|
||||
<tr [% IF Data.ValidID != 1%]class="Invalid"[% END %] id="TemplateID_[% Data.TemplateID %]">
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=TemplateEdit1;TemplateID=[% Data.TemplateID | uri %]">
|
||||
[% Data.Number | html %]
|
||||
</a>
|
||||
</td>
|
||||
<td>[% Data.Name | html %]</td>
|
||||
<td>[% Translate(Data.FormatName) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
|
||||
|
||||
<td class="Center">
|
||||
<a id="DeleteTemplateID[% Data.TemplateID %]" class="TrashCan ImportExportDelete" href="#" data-id="[% Data.TemplateID %]" title="[% Translate("Delete this template") | html %]">
|
||||
[% Translate("Delete this template") | html %]
|
||||
<i class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ImportInformation;TemplateID=[% Data.TemplateID | uri %]">
|
||||
[% Translate("Import") | html %]
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Export;TemplateID=[% Data.TemplateID | uri %]">
|
||||
[% Translate("Export") | html %]
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewListRow") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewList") %]
|
||||
|
||||
[% RenderBlockStart("TemplateEdit1") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Step 1 of 5 - Edit common information") | html %]:</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]" />
|
||||
<input type="hidden" name="Subaction" value="TemplateEdit1" />
|
||||
<input type="hidden" name="TemplateID" value="[% Data.TemplateID %]" />
|
||||
<input type="hidden" name="SubmitNext" value="1" />
|
||||
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label class="Mandatory" for="Name" ><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
|
||||
<!-- Validate_Required -->
|
||||
<input id="Name" class="[% Data.NameClass %]" type="text" name="Name" value="[% Data.Name | html %]" size="50" maxlength="200" />
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("Name is required!") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("Name is required!") | html %]</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("NewObjectFormat") %]
|
||||
<label class="Mandatory" for="Object"><span class="Marker">*</span> [% Translate("Object") | html %]:</label>
|
||||
<div class="Field">
|
||||
|
||||
[% Data.ObjectOption %]
|
||||
<div id="ObjectError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("Object is required!") | html %]</p>
|
||||
</div>
|
||||
<div id="ObjectServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("Object is required!") | html %]</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="Format"><span class="Marker">*</span> [% Translate("Format") | html %]:</label>
|
||||
<div class="Field">
|
||||
|
||||
[% Data.FormatOption %]
|
||||
<div id="FormatError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("Format is required!") | html %]</p>
|
||||
</div>
|
||||
<div id="FormatServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("Format is required!") | html %]</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
[% RenderBlockEnd("NewObjectFormat") %]
|
||||
[% RenderBlockStart("EditObjectFormat") %]
|
||||
<label>[% Translate("Object") | html %]:</label>
|
||||
<div class="Field">
|
||||
<span>[% Data.ObjectName | html %]</span>
|
||||
<input type="hidden" name="Object" value="[% Data.Object | html %]" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Format") | html %]:</label>
|
||||
<div class="Field">
|
||||
<span>[% Data.FormatName | html %]</span>
|
||||
<input type="hidden" name="Format" value="[% Data.Format | html %]" />
|
||||
</div>
|
||||
[% RenderBlockEnd("EditObjectFormat") %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ValidID">[% Translate("Valid") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input id="Comment" type="text" name="Comment" value="[% Data.Comment | html %]" size="50" maxlength="200" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Primary CallForAction" type="submit"><span>[% Translate("Next") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction='Overview'">[% Translate("Cancel") | html %] </a>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("TemplateEdit1") %]
|
||||
|
||||
[% RenderBlockStart("TemplateEdit2") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Step 2 of 5 - Edit object information") | html %]:</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]" />
|
||||
<input type="hidden" name="Subaction" value="TemplateEdit2" />
|
||||
<input type="hidden" name="TemplateID" value="[% Data.TemplateID | html %]" />
|
||||
<input type="hidden" name="SubmitNext" value="1" />
|
||||
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label>[% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.Name | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Object") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.Object | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("TemplateEdit2Element") %]
|
||||
|
||||
<label [% IF Data.Mandatory %]class="Mandatory"[% END %] for="[% Data.ID %]">[% IF Data.Mandatory %]<span class="Marker">*</span> [% END %] [% Translate(Data.Name) | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.InputStrg %]
|
||||
<div id="[% Data.ID %]Error" class="TooltipErrorMessage">
|
||||
<p>[% Translate(Data.ErrorMessage) | html %]</p>
|
||||
</div>
|
||||
<div id="[% Data.ID %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate(Data.ErrorMessage) | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("TemplateEdit2Element") %]
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Back CallForAction" type="button" name="Back" ><span>[% Translate("Back") | html %]</span></button>
|
||||
<button class="Primary CallForAction" type="submit"><span>[% Translate("Next") | html %]</span></button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("TemplateEdit2") %]
|
||||
|
||||
[% RenderBlockStart("TemplateEdit3") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Step 3 of 5 - Edit format information") | html %]:</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]" />
|
||||
<input type="hidden" name="Subaction" value="TemplateEdit3" />
|
||||
<input type="hidden" name="TemplateID" value="[% Data.TemplateID | html %]" />
|
||||
<input type="hidden" name="SubmitNext" value="1" />
|
||||
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label>[% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.Name | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Format") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.Format | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("TemplateEdit3Element") %]
|
||||
<label [% IF Data.Mandatory %]class="Mandatory"[% END %] for="[% Data.ID %]">[% IF Data.Mandatory %]<span class="Marker">*</span> [% END %] [% Translate(Data.Name) | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.InputStrg %]
|
||||
[% RenderBlockStart("TemplateEdit3ElementRequired") %]
|
||||
<div id="[% Data.ID %]Error" class="TooltipErrorMessage">
|
||||
<p>[% Translate(Data.Name) | html %] [% Translate("is required!") | html %]</p>
|
||||
</div>
|
||||
<div id="[% Data.ID %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate(Data.Name) | html %] [% Translate("is required!") | html %]</p>
|
||||
</div>
|
||||
[% RenderBlockEnd("TemplateEdit3ElementRequired") %]
|
||||
</div>
|
||||
[% RenderBlockEnd("TemplateEdit3Element") %]
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Back CallForAction" type="button" name="Back" ><span>[% Translate("Back") | html %]</span></button>
|
||||
<button class="Primary CallForAction" type="submit"><span>[% Translate("Next") | html %]</span></button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("TemplateEdit3") %]
|
||||
|
||||
[% RenderBlockStart("TemplateEdit4") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Step 4 of 5 - Edit mapping information") | html %]:</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="MapHeaderRow SpacingTop">
|
||||
<div class="Header">
|
||||
<label>[% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.Name | html %]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="Header">
|
||||
<label>[% Translate("Object") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ObjectName | html %]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="Header">
|
||||
<label>[% Translate("Format") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.FormatName | html %]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]" />
|
||||
<input type="hidden" name="Subaction" value="TemplateSave4" />
|
||||
<input type="hidden" name="TemplateID" value="[% Data.TemplateID | html %]" />
|
||||
<input type="hidden" name="MappingAdd" value="" />
|
||||
<input type="hidden" name="SubmitNext" value="" />
|
||||
<table class="DataTable SpacingTop">
|
||||
<thead>
|
||||
<tr>
|
||||
[% RenderBlockStart("TemplateEdit4TableHeader") %]
|
||||
<th class="Center">[% Translate(Data.Header) | html %]</th>
|
||||
[% RenderBlockEnd("TemplateEdit4TableHeader") %]
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("TemplateEdit4NoMapFound") %]
|
||||
<tr>
|
||||
<td colspan="[% Data.Columns %]">
|
||||
[% Translate("No map elements found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("TemplateEdit4NoMapFound") %]
|
||||
|
||||
[% RenderBlockStart("TemplateEdit4Row") %]
|
||||
<tr>
|
||||
[% RenderBlockStart("TemplateEdit4Column") %]
|
||||
<td class="Center">
|
||||
[% Data.InputStrg %]
|
||||
</td>
|
||||
[% RenderBlockEnd("TemplateEdit4Column") %]
|
||||
[% RenderBlockStart("TemplateEdit4MapNumberColumn") %]
|
||||
<td class="Center">
|
||||
[% Data.Counter %]
|
||||
</td>
|
||||
[% RenderBlockEnd("TemplateEdit4MapNumberColumn") %]
|
||||
<td class="Center">
|
||||
[% RenderBlockStart("TemplateEdit4UpButton") %]
|
||||
<button class="ArrowUp"type="submit" name="MappingUp::[% Data.MappingID | html %]" value="[% Translate("Up") | html %]"> [% Translate("Up") | html %] </button>
|
||||
[% RenderBlockEnd("TemplateEdit4UpButton") %]
|
||||
[% RenderBlockStart("TemplateEdit4NoUpButton") %]
|
||||
<button class="ArrowUp" type="submit" disabled="disabled"> [% Translate("Up") | html %]</button>
|
||||
[% RenderBlockEnd("TemplateEdit4NoUpButton") %]
|
||||
</td>
|
||||
<td class="Center">
|
||||
[% RenderBlockStart("TemplateEdit4DownButton") %]
|
||||
<button class="ArrowDown" type="submit" name="MappingDown::[% Data.MappingID | html %]" value="[% Translate("Down") | html %]"> [% Translate("Down") | html %]</button>
|
||||
[% RenderBlockEnd("TemplateEdit4DownButton") %]
|
||||
[% RenderBlockStart("TemplateEdit4NoDownButton") %]
|
||||
<button class="ArrowDown" type="submit" disabled="disabled"> [% Translate("Down") | html %]</button>
|
||||
[% RenderBlockEnd("TemplateEdit4NoDownButton") %]
|
||||
</td>
|
||||
|
||||
<td class="Center">
|
||||
<a href="#" class="DeleteColumn" title="[% Translate("Delete") | html %]">
|
||||
<i class="fa fa-trash-o">
|
||||
<span class="InvisibleText">[% Translate("Delete") | html %]</span>
|
||||
</i>
|
||||
</a>
|
||||
<input type="hidden" name="MappingDelete::[% Data.MappingID | html %]" value="" />
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
[% RenderBlockEnd("TemplateEdit4Row") %]
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="W100pc SpacingTopSmall Left">
|
||||
<button class="CallForAction Plus" id="MappingAddButton" type="submit" name="MappingAddButton" value="[% Translate("Add") | html %]"><span><i class="fa fa-plus-square"></i>[% Translate("Add Mapping Element") | html %]</span> </button>
|
||||
</div>
|
||||
|
||||
<div class="SpacingTop">
|
||||
<button class="Back CallForAction" type="submit" name="SubmitBack" value="SubmitBack"><span>[% Translate("Back") | html %]</span></button>
|
||||
<button class="Primary CallForAction" type="submit" name="SubmitNextButton" id="SubmitNextButton" value="1"><span>[% Translate("Next") | html %]</span></button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
[% RenderBlockEnd("TemplateEdit4") %]
|
||||
|
||||
[% RenderBlockStart("TemplateEdit5") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Step 5 of 5 - Edit search information") | html %]:</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]" />
|
||||
<input type="hidden" name="Subaction" value="TemplateSave5" />
|
||||
<input type="hidden" name="TemplateID" value="[% Data.TemplateID | html %]" />
|
||||
<input type="hidden" name="SubmitNext" value="1" />
|
||||
<fieldset class="TableLike">
|
||||
<label>[% Translate("Template Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.Name | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="RestrictExport">[% Translate("Restrict export per search") | html %]:</label>
|
||||
<div class="Field SpacingBottom">
|
||||
[% Data.RestrictExportStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("TemplateEdit5Element") %]
|
||||
<label for="[% Data.ID %]">[% Translate(Data.Name) | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.InputStrg %]
|
||||
</div>
|
||||
[% RenderBlockEnd("TemplateEdit5Element") %]
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Back CallForAction" type="submit" name="SubmitBack" value="SubmitBack"><span>[% Translate("Back") | html %]</span></button>
|
||||
<button class="Primary CallForAction" type="submit"><span>[% Translate("Finish") | html %]</span></button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("TemplateEdit5") %]
|
||||
|
||||
[% RenderBlockStart("ImportInformation") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Import information") | html %]:</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]" />
|
||||
<input type="hidden" name="Subaction" value="Import" />
|
||||
<input type="hidden" name="TemplateID" value="[% Data.TemplateID | html %]" />
|
||||
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label for="SourceFile">[% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.Name | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SourceFile">[% Translate("Source File") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="file" name="SourceFile" size="40" class="fixed" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Primary CallForAction" type="submit" value="[% Translate("Start Import") | html %]"><span>[% Translate("Start Import") | html %]</span></button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("ImportInformation") %]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
|
||||
[% RenderBlockStart("ImportResult") %]
|
||||
<div class="MainBox AriaRoleMain">
|
||||
<div class="W50pc SpacingTopLarge SpacingBottomLarge CenterBox">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Import summary for %s", Data.Object) | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Overview"/>
|
||||
|
||||
<fieldset class="TableLike">
|
||||
<label>[% Translate("Records") | html %]:</label>
|
||||
<div class="Value">[% Data.Counter | html %]</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Success") | html %]:</label>
|
||||
<div class="Value">
|
||||
[% Data.Success | html %]
|
||||
[% RenderBlockStart("ImportResultReturnCode") %]
|
||||
([% Translate(Data.ReturnCodeName) | html %]: [% Data.ReturnCodeCount | html %])
|
||||
[% RenderBlockEnd("ImportResultReturnCode") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Failed") | html %]:</label>
|
||||
<div class="Value">[% Data.Failed | html %]</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("ImportResultDuplicateNames") %]
|
||||
<label>[% Translate("Duplicate names") | html %]:</label>
|
||||
<div class="Value">[% Data.DuplicateNames | html %]</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("ImportResultDuplicateNames") %]
|
||||
|
||||
[% RenderBlockStart("ImportResultLastLineNumber") %]
|
||||
<label>[% Translate("Last processed line number of import file") | html %]:</label>
|
||||
<div class="Value">[% Data.LastLineNumber | html %]</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("ImportResultLastLineNumber") %]
|
||||
</fieldset>
|
||||
|
||||
<p class="Center SpacingTopSmall">
|
||||
<button class="Primary CallForAction" type="submit" name="Ok" value="[% Translate("Ok") | html %]"><span>[% Translate("Ok") | html %]</span></button>
|
||||
</p>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ImportResult") %]
|
||||
|
||||
<div class="Hidden" id="DeleteImportExportDialogContainer">
|
||||
<div id ="DeleteImportExportDialog" class="InnerContent">
|
||||
<p class="Center Spacing">[% Translate("Do you really want to delete this template item?") | html %]</p>
|
||||
<div class="SpacingTop"></div>
|
||||
</div>
|
||||
</div>
|
||||
84
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminLog.tt
Normal file
84
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminLog.tt
Normal file
@@ -0,0 +1,84 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("System Log") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('System Log'),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterLogEntries">[% Translate("Filter for Log Entries") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterLogEntries" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterLogEntries" value="" title="[% Translate("Filter for log entries") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you will find log information about your system.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
<a id="HideHint" href="#" class="CallForAction Fullsize Center"><span><i class="fa fa-times-circle"></i> [% Translate("Hide this message") | html %]</span></a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Recent Log Entries") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="LogEntries">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="W25pc">[% Translate("Time") | html %]</th>
|
||||
<th>[% Translate("Priority") | html %]</th>
|
||||
<th class="W20pc">[% Translate("Facility") | html %]</th>
|
||||
<th class="W75pc">[% Translate("Message") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("Row") %]
|
||||
<tr class="[% Data.ErrorClass | html %]">
|
||||
<td>[% Data.Time | html %]</td>
|
||||
<td>[% Data.Priority | html %]</td>
|
||||
<td>[% Data.Facility | html %]</td>
|
||||
<td>[% Data.Message | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("Row") %]
|
||||
[% RenderBlockStart("AdminLogNoDataRow") %]
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("AdminLogNoDataRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="4">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,409 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Mail Account Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Mail Account Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'AddNew' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate('Add Mail Account'),}) %]
|
||||
[% CASE 'Update' %]
|
||||
[% USE EditTitlePartOne = String(Translate("Edit Mail Account for host")) %]
|
||||
[% USE EditTitlePartTwo = String(Translate("and user account")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitlePartOne.append( ' "', Data.Host, '" ', EditTitlePartTwo, ' "', Data.Login, '"' ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=AddNew" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add Mail Account") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterMailAccounts">[% Translate("Filter for Mail Accounts") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterMailAccounts" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterMailAccounts" value="" title="[% Translate("Filter for mail accounts") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("All incoming emails with one account will be dispatched in the selected queue.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If your account is marked as trusted, the X-OTRS headers already existing at arrival time (for priority etc.) will be kept and used, for example in PostMaster filters.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Outgoing email can be configured via the Sendmail* settings in %s.",
|
||||
'<a href="?Action=AdminSystemConfigurationGroup;RootNavigation=Core::Email">' _ Translate("System Configuration") _ '</a>') %]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="MailAccounts">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Host") | html %]/[% Translate("Username") | html %]</th>
|
||||
<th>[% Translate("Type") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
<th>[% Translate("Delete") | html %]</th>
|
||||
<th>[% Translate("Run Now!") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="8">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr [% IF Data.ValidID != 1%]class="Invalid"[% END %]>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Update;ID=[% Data.ID | uri %]">[% Data.Host | html %] / [% Data.Login | html %]</a>
|
||||
</td>
|
||||
<td>[% Data.Type | html %]</td>
|
||||
<td title="[% Data.Comment | html %]">[% Data.Comment | truncate(20) | html %]</td>
|
||||
<td>[% Translate(Data.ShownValid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
<td class="Center">
|
||||
<a class="TrashCan MailAccountDelete" href="#" data-query-string="Action=AdminMailAccount;Subaction=Delete;ID=[% Data.ID | uri %];[% Env("ChallengeTokenParam") | html %]" title="[% Translate("Delete account") | html %]">[% Translate("Delete account") | html %]
|
||||
<i class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Run;ID=[% Data.ID | uri %];[% Env("ChallengeTokenParam") | html %]">[% Translate("Fetch mail") | html %]</a>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="8">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="Hidden" id="DeleteMailAccountDialogContainer">
|
||||
<div id ="DeleteMailAccountDialog" class="InnerContent GenericInterfaceDialog">
|
||||
<p class="Center Spacing">[% Translate("Do you really want to delete this mail account?") | html %]</p>
|
||||
<div class="SpacingTop"></div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
|
||||
[% RenderBlockStart("OverviewAdd") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Add Mail Account") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="AddAction"/>
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="TypeAdd"><span class="Marker">*</span> [% Translate("Type") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.TypeOptionAdd %]
|
||||
<div id="TypeAddError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="TypeAddServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="LoginAdd"><span class="Marker">*</span> [% Translate("Username") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc Validate_Required [% Data.LoginAddInvalid | html %]" name="Login" id="LoginAdd" value="" maxlength="200" autocomplete="off" />
|
||||
<div id="LoginAddError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="LoginAddServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="PasswordAdd"><span class="Marker">*</span> [% Translate("Password") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="password" class="W50pc Validate_Required [% Data.PasswordAddInvalid | html %]" name="Password" id="PasswordAdd" value="" maxlength="200" autocomplete="off" />
|
||||
<div id="PasswordAddError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="PasswordAddServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="HostAdd"><span class="Marker">*</span> [% Translate("Host") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc Validate_Required [% Data.HostAddInvalid | html %]" name="Host" id="HostAdd" value="" maxlength="200"/>
|
||||
<div id="HostAddError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="HostAddServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<p class="FieldExplanation">[% Translate("Example: mail.example.com") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Row Row_IMAPFolder Hidden">
|
||||
<label for="IMAPFolder">[% Translate("IMAP Folder") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc" name="IMAPFolder" id="IMAPFolder" value="INBOX" maxlength="250"/>
|
||||
<p class="FieldExplanation">[% Translate("Only modify this if you need to fetch mail from a different folder than INBOX.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
<label class="Mandatory" for="Trusted"><span class="Marker">*</span> [% Translate("Trusted") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.TrustedOption %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="DispatchingBy"><span class="Marker">*</span> [% Translate("Dispatching") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DispatchingOption %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Row Row_Queue Hidden">
|
||||
<label class="Mandatory" for="QueueID"><span class="Marker">*</span> [% Translate("Queue") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.QueueOption %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOption %]
|
||||
<div id="ValidIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc" name="Comment" id="Comment" value="[% Data.Comment | html %]" maxlength="250"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
<button id="Submit" class="Primary CallForAction" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewAdd") %]
|
||||
|
||||
[% RenderBlockStart("OverviewUpdate") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Edit Mail Account") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="UpdateAction"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
[% IF Data.Action == 'Update' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Type"><span class="Marker">*</span> [% Translate("Type") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.TypeOption %]
|
||||
<div id="TypeError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="TypeServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="LoginEdit"><span class="Marker">*</span> [% Translate("Username") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc Validate_Required [% Data.LoginEditInvalid | html %]" name="Login" id="LoginEdit" value="[% Data.Login | html %]" maxlength="200" autocomplete="off" />
|
||||
<div id="LoginEditError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="LoginEditServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="PasswordEdit"><span class="Marker">*</span> [% Translate("Password") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="password" class="W50pc Validate_Required [% Data.PasswordEditInvalid | html %]" name="Password" id="PasswordEdit" value="[% IF Data.Password %]otrs-dummy-password-placeholder[% END %]" maxlength="200" autocomplete="off" />
|
||||
<div id="PasswordEditError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="PasswordEditServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="HostEdit"><span class="Marker">*</span> [% Translate("Host") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc Validate_Required [% Data.HostEditInvalid | html %]" name="Host" id="HostEdit" value="[% Data.Host | html %]" maxlength="200"/>
|
||||
<div id="HostEditError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="HostEditServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<p class="FieldExplanation">[% Translate("Example: mail.example.com") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Row Row_IMAPFolder Hidden">
|
||||
<label for="IMAPFolder">[% Translate("IMAP Folder") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc" name="IMAPFolder" id="IMAPFolder" value="[% Data.IMAPFolder | html %]" maxlength="250"/>
|
||||
<p class="FieldExplanation">[% Translate("Only modify this if you need to fetch mail from a different folder than INBOX.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
<label class="Mandatory" for="Trusted"><span class="Marker">*</span> [% Translate("Trusted") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.TrustedOption %]
|
||||
<div id="TrustedError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="TrustedServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="DispatchingBy"><span class="Marker">*</span> [% Translate("Dispatching") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DispatchingOption %]
|
||||
<div id="DispatchingByError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="DispatchingByServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Row Row_Queue Hidden">
|
||||
<label class="Mandatory" for="QueueID"><span class="Marker">*</span> [% Translate("Queue") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.QueueOption %]
|
||||
<div id="QueueIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="QueueIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOption %]
|
||||
<div id="ValidIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc" name="Comment" id="Comment" value="[% Data.Comment | html %]" maxlength="250"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Action == 'Update' %]
|
||||
<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") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewUpdate") %]
|
||||
<!-- end form -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,117 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
[% RenderBlockStart("AdminNavBar") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
|
||||
<h1 class="InvisibleText">[% Translate("Administration Overview") | html %]</h1>
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="Filter">[% Translate("Filter for Items") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="Filter" autocomplete="off" class="W95pc" name="Filter" value="" title="[% Translate("Filter") | html %]" placeholder="[% Translate("Just start typing to filter...") | html %]" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Favorites") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content FavouriteList">
|
||||
<table class="DataTable Favourites" [% IF !Data.Favourites.size() %]style="display: none;"[% END %]>
|
||||
<tbody>
|
||||
[% IF Data.Favourites.size() %]
|
||||
[% FOREACH Item IN Data.Favourites %]
|
||||
<tr>
|
||||
<td><a class="AsBlock" href="[% Env("Baselink") %]Action=[% Item.item("Frontend::Module") | uri %]">[% Translate(Item.Name) | html %]</a></td>
|
||||
<td class="Center"><a href="#" class="RemoveFromFavourites" data-module="[% Item.item("Frontend::Module") | html %]"><i class="fa fa-trash"></i></a></td>
|
||||
</tr>
|
||||
[% END %]
|
||||
[% END %]
|
||||
</tbody>
|
||||
</table>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("You can add favorites by moving your cursor over items on the right side and clicking the star icon.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Links") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="https://doc.otrs.com/doc/manual/admin/[% Data.ManualVersion | uri %].0/en/html/index.html" target="_blank" class="CallForAction Fullsize Center"><span><i class="fa fa-book"></i>[% Translate("View the admin manual on Github") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
|
||||
<div class="WidgetSimple FilterMessageWidget Hidden">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("No Matches") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p>[% Translate("Sorry, your search didn't match any items.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[% FOREACH Group IN Data.Groups; GroupKey = Group.Key %]
|
||||
[% IF Data.Items.$GroupKey.size() %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate(Group.Title) | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ItemListGrid WithIcons Filterable">
|
||||
[% FOREACH Item IN Data.Items.$GroupKey %]
|
||||
<li class="[% IF Item.IsFavourite %]IsFavourite[% END %] [% Item.CssClass | html %]" data-module="[% Item.item("Frontend::Module") | html %]">
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Item.item("Frontend::Module") | uri %]" title="[% Translate(Item.Description) | html %]">
|
||||
<span class="Icons">
|
||||
[% IF Item.IconBig %]
|
||||
<i class="fa [% Item.IconBig %]"></i>
|
||||
[% ELSE %]
|
||||
<i class="fa fa-cog"></i>
|
||||
[% END %]
|
||||
[% IF Item.IconSmall %]
|
||||
<i class="Icon2 fa [% Item.IconSmall %]"></i>
|
||||
[% END %]
|
||||
</span>
|
||||
<span class="InvisibleText">[% Group.Title | html %]</span>
|
||||
<span class="Title">
|
||||
[% Translate(Item.Name) | html %]
|
||||
<span class="InvisibleText">[% Item.Name | html %]</span>
|
||||
</span>
|
||||
<span class="Description">
|
||||
[% Translate(Item.Description) | html %]
|
||||
<span class="InvisibleText">[% Item.Description | html %]</span>
|
||||
</span>
|
||||
<span class="Favourite AddAsFavourite" data-module="[% Item.item("Frontend::Module") | html %]" title="[% Translate("Set as favorite") | html %]">
|
||||
<i class="fa fa-star"></i>
|
||||
<i class="fa fa-star-o"></i>
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
[% END %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% END %]
|
||||
[% END %]
|
||||
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("AdminNavBar") %]
|
||||
@@ -0,0 +1,818 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% SET OTRSBusinessLabel = '<strong>OTRS Business Solution</strong>™' %]
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Ticket Notification Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Ticket Notification Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add Notification"),}) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit Notification")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Name ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Add" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add Notification") | html %]</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=NotificationExport" class="CallForAction Fullsize Center"><span><i class="fa fa-download"></i>[% Translate("Export Notifications") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterNotifications">[% Translate("Filter for Notifications") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterNotifications" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterNotifications" value="" title="[% Translate("Filter for notifications") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
|
||||
[% RenderBlockStart("ActionImport") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Configuration Import") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can upload a configuration file to import Ticket Notifications to your system. The file needs to be in .yml format as exported by the Ticket Notification module.") | html %]
|
||||
</p>
|
||||
<ul class="ActionList SpacingTop">
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="NotificationImport"/>
|
||||
<input type="hidden" name="FormID" value="[% Data.FormID | html %]"/>
|
||||
<input name="FileUpload" id="FileUpload" type="file" size="18" class="Fixed W100pc Validate_Required [% Data.FileUploadInvalid | html %]"/>
|
||||
<div id="FileUploadError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="FileUploadServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<fieldset class="Separated">
|
||||
<input type="checkbox" id="OverwriteExistingNotifications" name="OverwriteExistingNotifications" value="1" />
|
||||
<label for="OverwriteExistingNotifications">[% Translate("Overwrite existing notifications?") | html %]</label>
|
||||
</fieldset>
|
||||
|
||||
<button class="CallForAction Fullsize Center" type="submit" value="[% Translate("Upload Notification configuration") | html %]">
|
||||
<span><i class="fa fa-upload"></i>[% Translate("Import Notification configuration") | html %]</span>
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionImport") %]
|
||||
</div>
|
||||
|
||||
|
||||
<div class="ContentColumn">
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="Notifications">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="W20pc">[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
<th class="Center W10pc">[% Translate("Export") | html %]</th>
|
||||
<th class="Center W10pc">[% Translate("Copy") | html %]</th>
|
||||
<th class="Center W10pc">[% Translate("Delete") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="8">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr [% IF Data.ValidID != 1%]class="Invalid"[% END %]>
|
||||
<td><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Change;ID=[% Data.ID | uri %]">[% Translate(Data.Name) | html %]</a></td>
|
||||
<td title="[% Data.Comment | html %]">[% Data.Comment | truncate(26) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
<td class="Center"><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=NotificationExport;ID=[% Data.ID | uri %];[% Env("ChallengeTokenParam") | html %]"><i class="fa fa-download"></i><span class="InvisibleText">[% Translate("Export") | html %]</span></a></td>
|
||||
<td class="Center"><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=NotificationCopy;ID=[% Data.ID | uri %];[% Env("ChallengeTokenParam") | html %]"><i class="fa fa-copy"></i><span class="InvisibleText">[% Translate("Copy") | html %]</span></a></td>
|
||||
<td class="Center">
|
||||
<a class="TrashCan NotificationDelete" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Delete;ID=[% Data.ID | uri %];[% Env("ChallengeTokenParam") | html %]" title="[% Translate("Delete this notification") | html %]">
|
||||
<i class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="8">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
|
||||
[% RenderBlockStart("OverviewUpdate") %]
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits" name="compose" id="NotificationEvent">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
[% IF Data.Action == 'Add' %]
|
||||
<h2>[% Translate("Add Notification") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit Notification") | html %]</h2>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | uri %]Action"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label for="Name" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Name") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameServerError %]" maxlength="200"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="250"/>
|
||||
</div>
|
||||
|
||||
<label for="VisibleForAgent">[% Translate("Show in agent preferences") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.VisibleForAgentStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="VisibleForAgentTooltip">[% Translate("Agent preferences tooltip") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="VisibleForAgentTooltip" id="VisibleForAgentTooltip" class="W50pc" value="[% Data.VisibleForAgentTooltip | html %]" [% Data.VisibleForAgentTooltipReadonly %]/>
|
||||
<p class="FieldExplanation">[% Translate("This message will be shown on the agent preferences screen as a tooltip for this notification.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ValidID">[% Translate("Validity") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOption %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<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("Events") | html %]</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label for="Events" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Event") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
[% Data.EventsStrg %]
|
||||
<div id="EventsError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="EventsServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<p class="FieldExplanation">[% Translate("Here you can choose which events will trigger this notification. An additional ticket filter can be applied below to only send for ticket with certain criteria.") | 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("Ticket Filter") | html %]</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
[% RenderBlockStart("OverviewUpdateType") %]
|
||||
<label for="TypeID">[% Translate("Type") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.TypesStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("OverviewUpdateType") %]
|
||||
<label for="StateID">[% Translate("State") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.StatesStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="PriorityID">[% Translate("Priority") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.PrioritiesStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="QueueID">[% Translate("Queue") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.QueuesStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="LockID">[% Translate("Lock") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.LocksStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("OverviewUpdateService") %]
|
||||
|
||||
<label for="ServiceID">[% Translate("Service") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.ServicesStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SLAID">[% Translate("SLA") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.SLAsStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("OverviewUpdateService") %]
|
||||
|
||||
<label for="CustomerID">[% Translate("Customer ID") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="CustomerID" id="CustomerID" class="W75pc" value="[% Data.CustomerID | html %]"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="CustomerUserID">[% Translate("Customer User ID") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="CustomerUserID" id="CustomerUserID" class="W75pc" value="[% Data.CustomerUserID | html %]"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("DynamicField") %]
|
||||
<div class="SpacingTop"></div>
|
||||
<label><h4>[% Translate("Dynamic Fields") | html %]</h4></label>
|
||||
<div class="Clear"></div>
|
||||
<div class="SpacingTop"></div>
|
||||
[% RenderBlockStart("DynamicFieldElement") %]
|
||||
[% Data.Label %]
|
||||
<div class="Field">
|
||||
[% Data.Field %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("DynamicFieldElement") %]
|
||||
<div class="SpacingTop"></div>
|
||||
[% RenderBlockEnd("DynamicField") %]
|
||||
|
||||
</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("Article Filter") | html %] <span class="FieldExplanation">([% Translate("Only for ArticleCreate and ArticleSend event") | html %])</span></h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label for="ArticleSenderTypeID">[% Translate("Article sender type") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.ArticleSenderTypesStrg %]
|
||||
<div id="ArticleSenderTypeIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("If ArticleCreate or ArticleSend is used as a trigger event, you need to specify an article filter as well. Please select at least one of the article filter fields.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ArticleIsVisibleForCustomer">[% Translate("Customer visibility") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.ArticleCustomerVisibilityStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ArticleCommunicationChannelID">[% Translate("Communication channel") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.ArticleCommunicationChannelStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ArticleAttachmentInclude">[% Translate("Include attachments to notification") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.ArticleAttachmentIncludeStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("BackendArticleField") %]
|
||||
<label for="[% Data.Key %]">[% Translate(Data.Label) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Key %]" id="[% Data.Key %]" class="W75pc [% Data.Key %]ServerError" value="[% Data.Value | html %]"/>
|
||||
<div id="[% Data.Key %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("If ArticleCreate or ArticleSend is used as a trigger event, you need to specify an article filter as well. Please select at least one of the article filter fields.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("BackendArticleField") %]
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<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("Recipients") | html %]</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label for="Recipients">[% Translate("Send to") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.RecipientsStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="RecipientAgents">[% Translate("Send to these agents") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.RecipientAgentsStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="RecipientGroups">[% Translate("Send to all group members (agents only)") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.RecipientGroupsStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="RecipientRoles">[% Translate("Send to all role members") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.RecipientRolesStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SendOnOutOfOffice">[% Translate("Send on out of office") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="SendOnOutOfOffice" id="SendOnOutOfOffice" value="1" [% Data.SendOnOutOfOfficeChecked %] />
|
||||
[% Translate("Also send if the user is currently out of office.") | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="OncePerDay">[% Translate("Once per day") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="OncePerDay" id="OncePerDay" value="1" [% Data.OncePerDayChecked %] />
|
||||
[% Translate("Notify user just once per day about a single ticket using a selected transport.") | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<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("Notification Methods") | html %]</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content TransportsContent">
|
||||
<fieldset class="TableLike">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("These are the possible methods that can be used to send this notification to each of the recipients. Please select at least one method below.") | html %]
|
||||
</p>
|
||||
</fieldset>
|
||||
[% RenderBlockStart("TransportRow") %]
|
||||
<fieldset class="TableLike FixedLabel SpacingTop">
|
||||
<legend><span>[% Translate(Data.TransportName) | html %]</span></legend>
|
||||
[% RenderBlockStart("TransportRowEnabled") %]
|
||||
<label for="Transport[% Data.Transport | html %]">
|
||||
[% Translate("Enable this notification method") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="Transports" id="Transport[% Data.Transport | html %]" value="[% Data.Transport | html %]" class="Validate_OneChecked [% Data.TransportsServerError | html %]" title="[% Translate("Transport") | html %]: [% Translate(Data.Transport) | html %]" [% Data.TransportChecked %] />
|
||||
<div id="Transport[% Data.Transport | html %]Error" class="TooltipErrorMessage">
|
||||
<p>[% Translate("At least one method is needed per notification.") | html %]</p>
|
||||
</div>
|
||||
<div id="Transport[% Data.Transport | html %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("At least one method is needed per notification.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="AgentEnabledByDefault[% Data.Transport | html %]" class="AgentEnabledByDefault">
|
||||
[% Translate("Active by default in agent preferences") | html %]:
|
||||
</label>
|
||||
<div class="Field AgentEnabledByDefault">
|
||||
<input type="checkbox" name="AgentEnabledByDefault" id="AgentEnabledByDefault[% Data.Transport | html %]" value="[% Data.Transport | html %]" title="" [% Data.AgentEnabledByDefaultChecked %] />
|
||||
<p class="FieldExplanation">[% Translate("This is the default value for assigned recipient agents who didn't make a choice for this notification in their preferences yet. If the box is enabled, the notification will be sent to such agents.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% Data.SettingsString %]
|
||||
[% RenderBlockEnd("TransportRowEnabled") %]
|
||||
[% RenderBlockStart("TransportRowDisabled") %]
|
||||
<div class="Field">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This feature is currently not available.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
[% RenderBlockEnd("TransportRowDisabled") %]
|
||||
[% RenderBlockStart("TransportRowRecommendation") %]
|
||||
<div class="Field Info">
|
||||
<a href="[% Env("Baselink") %]Action=AdminOTRSBusiness" class="Button"><i class="fa fa-angle-double-up"></i> [% Translate("Upgrade to %s") | html | ReplacePlaceholders(OTRSBusinessLabel) %]</a>
|
||||
</div>
|
||||
[% RenderBlockEnd("TransportRowRecommendation") %]
|
||||
[% RenderBlockStart("TransportRowNotActive") %]
|
||||
<div class="Field Info">
|
||||
<a href="[% Env("Baselink") %]Action=AdminCloudServices" class="Button"><i class="fa fa-angle-double-up"></i> [% Translate("Please activate this transport in order to use it.") | html %]</a>
|
||||
</div>
|
||||
[% RenderBlockEnd("TransportRowNotActive") %]
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
[% RenderBlockEnd("TransportRow") %]
|
||||
[% RenderBlockStart("NoDataFoundMsgTransport") %]
|
||||
<fieldset class="TableLike SpacingTop">
|
||||
<legend><span>[% Translate("No data found") | html %]</span></legend>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("No notification method found.") | html %]
|
||||
</p>
|
||||
</fieldset>
|
||||
[% RenderBlockEnd("NoDataFoundMsgTransport") %]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<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("Notification Text") | html %]</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
<div class ="NotificationLanguageContainer">
|
||||
|
||||
[% RenderBlockStart("NotificationLanguage") %]
|
||||
<div class="NotificationLanguage">
|
||||
<div class="WidgetSimple SpacingTop [% IF !Data.Language %] Collapsed [% END %] ">
|
||||
<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 class="Title">
|
||||
[% IF Data.Language %]
|
||||
[% Translate(Data.Language) | html %]
|
||||
[% ELSE %]
|
||||
<span class="Warning">'[% Data.LanguageID | html %]' — [% Translate("This language is not present or enabled on the system. This notification text could be deleted if it is not needed anymore.") | html %]</span>
|
||||
[% END %]
|
||||
</h2>
|
||||
[% RenderBlockStart("NotificationLanguageRemoveButton") %]
|
||||
<div class="AdditionalInformation">
|
||||
<a value="Remove Language" class="RemoveButton LanguageRemove" id="[% Data.LanguageID | html %]_Language_Remove" href="" name="Data.LanguageID_Language_Remove"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove Notification Language") | html %]</span></a>
|
||||
</div>
|
||||
[% RenderBlockEnd("NotificationLanguageRemoveButton") %]
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<input type="hidden" name="LanguageID" class="LanguageID" value="[% Data.LanguageID | html %]"/>
|
||||
|
||||
<label for="[% Data.LanguageID | html %]_Subject" id="[% Data.LanguageID | html %]_Label_Subject" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Subject") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.LanguageID | html %]_Subject" id="[% Data.LanguageID | html %]_Subject" value="[% Data.Subject | html %]" class="W75pc Validate_Required [% Data.SubjectServerError | html %]" maxlength="200"/>
|
||||
<div id="[% Data.LanguageID | html %]_SubjectError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="[% Data.LanguageID | html %]_SubjectServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="[% Data.LanguageID | html %]_Body" id="[% Data.LanguageID | html %]_Label_Body" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Text") | html %]:
|
||||
</label>
|
||||
<div class="RichTextField">
|
||||
<textarea name="[% Data.LanguageID | html %]_Body" id="[% Data.LanguageID | html %]_Body" class="RichText Validate_RequiredRichText [% Data.BodyServerError | html %]" title="[% Translate("Message body") | html %]" rows="15" cols="[% Config("Ticket::Frontend::TextAreaNote") | html %]">[% Data.Body | html %]</textarea>
|
||||
|
||||
<div id="[% Data.LanguageID | html %]_BodyError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="[% Data.LanguageID | html %]_BodyServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required and must have less than 4000 characters.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("NotificationLanguage") %]
|
||||
|
||||
<div class="Hidden Template NotificationLanguage">
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<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 class="Title"></h2>
|
||||
<div class="AdditionalInformation">
|
||||
<a value="Remove Language" class="RemoveButton LanguageRemove" id="Template_Language_Remove" href="" name="Template_Language_Remove"><i class="fa fa-minus-square-o"></i><span class="InvisibleText">[% Translate("Remove Notification Language") | html %]</span></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
<input type="hidden" name="" class="LanguageID" value=""/>
|
||||
<label for="Template_Subject" id="Template_Label_Subject" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Subject") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Template_Subject" id="Template_Subject" value="" class="W75pc" maxlength="200"/>
|
||||
<div id="Template_SubjectError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Template_Body" id="Template_Label_Body" class="Mandatory">
|
||||
<span class="Marker">*</span>
|
||||
[% Translate("Text") | html %]:
|
||||
</label>
|
||||
<div class="RichTextField">
|
||||
<textarea id="Template_Body" class="" name="Template_Body" title="[% Translate("Message body") | html %]" rows="15" cols="[% Config("Ticket::Frontend::TextAreaNote") | html %]"></textarea>
|
||||
<div id="Template_BodyError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<fieldset class="TableLike">
|
||||
<label for="Language">[% Translate("Add new notification language") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.LanguageStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
<div class="Hidden">
|
||||
[% Data.LanguageOrigStrg %]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Save Changes") | html %]</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<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("Tag Reference") | html %]</h2>
|
||||
</div>
|
||||
|
||||
<div class="Content">
|
||||
|
||||
<p>[% Translate("Notifications are sent to an agent or a customer.") | html %]</p>
|
||||
|
||||
<p>[% Translate("You can use the following tags") | html %]:</p>
|
||||
|
||||
<dl>
|
||||
<dt><code><OTRS_AGENT_SUBJECT[20]></code></dt>
|
||||
<dd>
|
||||
[% Translate("To get the first 20 character of the subject (of the latest agent article).") | html %]
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_AGENT_BODY[5]></code></dt>
|
||||
<dd>
|
||||
[% Translate("To get the first 5 lines of the body (of the latest agent article).") | html %]
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_AGENT_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("To get the article attribute") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_AGENT_From>, <OTRS_AGENT_To>, <OTRS_AGENT_Cc></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CUSTOMER_SUBJECT[20]></code></dt>
|
||||
<dd>
|
||||
[% Translate("To get the first 20 character of the subject (of the latest customer article).") | html %]
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CUSTOMER_BODY[5]></code></dt>
|
||||
<dd>
|
||||
[% Translate("To get the first 5 lines of the body (of the latest customer article).") | html %]
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CUSTOMER_REALNAME></code></dt>
|
||||
<dd>
|
||||
[% Translate("To get the name of the ticket's customer user (if given).") | html %]
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CUSTOMER_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("To get the article attribute") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_CUSTOMER_From>, <OTRS_CUSTOMER_To>,
|
||||
<OTRS_CUSTOMER_Cc></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CUSTOMER_DATA_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Attributes of the current customer user data") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_CUSTOMER_DATA_UserFirstname></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_OWNER_*></code> [% Translate("or") | html %] <code><OTRS_TICKET_OWNER_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Attributes of the current ticket owner user data") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_OWNER_UserFirstname></code> [% Translate("or") | html %] <code><OTRS_TICKET_OWNER_UserFirstname></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_RESPONSIBLE_*></code> [% Translate("or") | html %] <code><OTRS_TICKET_RESPONSIBLE_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Attributes of the current ticket responsible user data") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_RESPONSIBLE_UserFirstname></code> [% Translate("or") | html %] <code><OTRS_TICKET_RESPONSIBLE_UserFirstname></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CURRENT_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Attributes of the current agent user who requested this action") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_CURRENT_UserFirstname></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_*></code> [% Translate("or") | html %] <code><OTRS_NOTIFICATION_RECIPIENT_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Attributes of the recipient user for the notification") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_UserFullname></code> [% Translate("or") | html %] <code><OTRS_NOTIFICATION_RECIPIENT_UserFullname></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_TICKET_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Attributes of the ticket data") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_TICKET_TicketNumber>, <OTRS_TICKET_TicketID>,
|
||||
<OTRS_TICKET_Queue>, <OTRS_TICKET_State></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_TICKET_DynamicField_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Ticket dynamic fields internal key values") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_TICKET_DynamicField_TestField>,
|
||||
<OTRS_TICKET_DynamicField_TicketFreeText1></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_TICKET_DynamicField_*_Value></code></dt>
|
||||
<dd>
|
||||
[% Translate("Ticket dynamic fields display values, useful for Dropdown and Multiselect fields") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_TICKET_DynamicField_TestField_Value>,
|
||||
<OTRS_TICKET_DynamicField_TicketFreeText1_Value></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CONFIG_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Config options") | html %]
|
||||
([% Translate(" e. g.") | html %] <code><OTRS_CONFIG_HttpType></code>).
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p class="SpacingTop">
|
||||
[% Translate("Example notification") | html %]:
|
||||
</p>
|
||||
<label for="SubjectExample">[% Translate("Subject") | html %]</label>:
|
||||
<input type="text" name="SubjectExample" id="SubjectExample" value="Ticket Created: <OTRS_TICKET_Title>" size="80" maxlength="80" readonly />
|
||||
<br/>
|
||||
<label for="ResponseExample">[% Translate("Text") | html %]</label>:
|
||||
<br/>
|
||||
<textarea rows="12" cols="70" name="ResponseExample" id="ResponseExample" readonly>
|
||||
Hi <OTRS_NOTIFICATION_RECIPIENT_UserFirstname>,
|
||||
|
||||
ticket [<OTRS_CONFIG_TicketHook><OTRS_TICKET_TicketNumber>] has been created in queue <OTRS_TICKET_Queue>.
|
||||
|
||||
<OTRS_CUSTOMER_REALNAME> wrote:
|
||||
<OTRS_CUSTOMER_Body[30]>
|
||||
|
||||
<OTRS_CONFIG_HttpType>://<OTRS_CONFIG_FQDN>/<OTRS_CONFIG_ScriptAlias>index.pl?Action=AgentTicketZoom;TicketID=<OTRS_TICKET_TicketID>
|
||||
|
||||
-- <OTRS_CONFIG_NotificationSenderName>
|
||||
</textarea>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewUpdate") %]
|
||||
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,53 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<label for="RecipientEmail">[% Translate("Additional recipient email addresses") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="RecipientEmail" id="RecipientEmail" class="W50pc Validate_MaxLength [% Data.RecipientEmailServerError | html %]" value="[% Data.RecipientEmail | html %]" data-maxlength="200"/>
|
||||
<div id="RecipientEmailError" class="TooltipErrorMessage"><p>[% Translate("This field must have less then 200 characters.") | html %]</p></div>
|
||||
<div id="RecipientEmailServerError" class="TooltipErrorMessage"><p>[% Translate("This field must have less then 200 characters.") | html %]</p></div>
|
||||
<p class="FieldExplanation">[% Translate("Use comma or semicolon to separate email addresses.") | html %]</p>
|
||||
<p class="FieldExplanation">[% Translate("You can use OTRS-tags like <OTRS_TICKET_DynamicField_...> to insert values from the current ticket.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="IsVisibleForCustomer">[% Translate("Article visible for customer") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="IsVisibleForCustomer" id="IsVisibleForCustomer" value="1" [% IF Data.Data.IsVisibleForCustomer %] checked="checked" [% END %]/>
|
||||
<p class="FieldExplanation">[% Translate("An article will be created if the notification is sent to the customer or an additional email address.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="TransportEmailTemplate">[% Translate("Email template") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.TransportEmailTemplateStrg %]
|
||||
<p class="FieldExplanation">[% Translate("Use this template to generate the complete email (only for HTML emails).") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="EmailSecuritySettings">[% Translate("Enable email security") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="EmailSecuritySettings" id="EmailSecuritySettings" value="1" [% Data.EmailSecuritySettings %] />
|
||||
<p class="FieldExplanation">[% Data.EmailSecurityInfo %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label for="EmailSigningCrypting">[% Translate("Email security level") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.EmailSigningCrypting %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label for="EmailMissingSigningKeys">[% Translate("If signing key/certificate is missing") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.EmailMissingSigningKeys %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label for="EmailMissingCryptingKeys">[% Translate("If encryption key/certificate is missing") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.EmailMissingCryptingKeys %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
@@ -0,0 +1,178 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[%
|
||||
SET OTRSBusinessLabel = '<strong>OTRS Business Solution</strong>™';
|
||||
SET OTRSBusinessLabelPlain = 'OTRS Business Solution™';
|
||||
%]
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Manage %s") | html | ReplacePlaceholders(OTRSBusinessLabel) %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate("Manage %s", OTRSBusinessLabelPlain),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Uninstall" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-angle-double-down"></i> [% Translate("Downgrade to ((OTRS)) Community Edition") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://doc.otrs.com/doc/manual/otrs-business-solution/6.0/en/html/index.html" target="_blank" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-book"></i> [% Translate("Read documentation") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p>
|
||||
[% Translate('%s makes contact regularly with cloud.otrs.com to check on available updates and the validity of the underlying contract.') | html | ReplacePlaceholders(OTRSBusinessLabel) %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
[% RenderBlockStart("NotEntitled") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2 class="Center">[% Translate("Unauthorized Usage Detected") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="BusinessLogo Error">
|
||||
<span></span>
|
||||
<i class="fa fa-times-circle"></i>
|
||||
</div>
|
||||
<p class="Center">
|
||||
[% Translate('This system uses the %s without a proper license! Please make contact with %s to renew or activate your contract!') | html | ReplacePlaceholders(OTRSBusinessLabel, '<a href="mailto:sales@otrs.com">sales@otrs.com</a>') %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("NotEntitled") %]
|
||||
[% RenderBlockStart("NeedsReinstall") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header Center">
|
||||
<h2>[% Translate("%s not Correctly Installed") | html | ReplacePlaceholders(OTRSBusinessLabel) %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="BusinessLogo Error">
|
||||
<span></span>
|
||||
<i class="fa fa-times-circle"></i>
|
||||
</div>
|
||||
<p class="Center">
|
||||
[% Translate('Your %s is not correctly installed. Please reinstall it with the button below.') | html | ReplacePlaceholders(OTRSBusinessLabel) %]
|
||||
</p>
|
||||
<div class="Center SpacingTop">
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ReinstallAction" class="CallForAction Primary"><span><i class="fa fa-retweet"></i> [% Translate('Reinstall %s') | html | ReplacePlaceholders(OTRSBusinessLabel) %]</span></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("NeedsReinstall") %]
|
||||
[% RenderBlockStart("NeedsReinstallAndUpdate") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header Center">
|
||||
<h2>[% Translate("%s not Correctly Installed") | html | ReplacePlaceholders(OTRSBusinessLabel) %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="BusinessLogo Error">
|
||||
<span></span>
|
||||
<i class="fa fa-times-circle"></i>
|
||||
</div>
|
||||
<p class="Center">
|
||||
[% Translate('Your %s is not correctly installed, and there is also an update available.') | html | ReplacePlaceholders(OTRSBusinessLabel) %]
|
||||
<br/>
|
||||
[% Translate('You can either reinstall your current version or perform an update with the buttons below (update recommended).') | html %]
|
||||
</p>
|
||||
<p class="Center SpacingTop">
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=UpdateAction" class="CallForAction Primary"><span><i class="fa fa-refresh"></i> [% Translate('Update %s') | html | ReplacePlaceholders(OTRSBusinessLabel) %]</span></a>
|
||||
[% Translate('or') | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ReinstallAction" class="CallForAction Primary"><span><i class="fa fa-retweet"></i> [% Translate('Reinstall %s') | html | ReplacePlaceholders(OTRSBusinessLabel) %]</span></a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("NeedsReinstallAndUpdate") %]
|
||||
[% RenderBlockStart("ReinstallImpossible") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header Center">
|
||||
<h2>[% Translate("%s Not Yet Available") | html | ReplacePlaceholders(OTRSBusinessLabel) %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="BusinessLogo">
|
||||
<span></span>
|
||||
<i class="fa fa-check"></i>
|
||||
</div>
|
||||
<p class="Center">
|
||||
[% Translate('%s will be available soon.') | html | ReplacePlaceholders(OTRSBusinessLabel) %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ReinstallImpossible") %]
|
||||
[% RenderBlockStart("NeedsUpdate") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header Center">
|
||||
<h2>[% Translate("%s Update Available") | html | ReplacePlaceholders(OTRSBusinessLabel) %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="BusinessLogo">
|
||||
<span></span>
|
||||
<i class="fa fa-refresh"></i>
|
||||
</div>
|
||||
<p class="Center">
|
||||
[% Translate('An update for your %s is available! Please update at your earliest!') | html | ReplacePlaceholders(OTRSBusinessLabel) %]
|
||||
</p>
|
||||
<div class="Center SpacingTop">
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=UpdateAction" class="CallForAction Primary"><span><i class="fa fa-refresh"></i> [% Translate('Update %s') | html | ReplacePlaceholders(OTRSBusinessLabel) %]</span></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("NeedsUpdate") %]
|
||||
[% RenderBlockStart("EverythingOk") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header Center">
|
||||
<h2>[% Translate("%s Correctly Deployed") | html | ReplacePlaceholders(OTRSBusinessLabel) %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="BusinessLogo">
|
||||
<span></span>
|
||||
<i class="fa fa-check"></i>
|
||||
</div>
|
||||
<p class="Center">
|
||||
[% Translate('Congratulations, your %s is correctly installed and up to date!') | html | ReplacePlaceholders(OTRSBusinessLabel) %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("EverythingOk") %]
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,171 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[%
|
||||
SET OTRSBusinessLabel = '<strong>OTRS Business Solution</strong>™';
|
||||
SET OTRSBusinessLabelPlain = 'OTRS Business Solution™';
|
||||
%]
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Upgrade to %s") | html | ReplacePlaceholders(OTRSBusinessLabel) %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate("Upgrade to %s", OTRSBusinessLabelPlain),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
[% RenderBlockStart("Actions") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://portal.otrs.com/" target="_blank" class="CallForAction Fullsize Center"><span><i class="fa fa-external-link"></i>[% Translate("Go to the OTRS customer portal") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Actions") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p>
|
||||
[% Translate("%s makes contact regularly with cloud.otrs.com to check on available updates and the validity of the underlying contract.") | html | ReplacePlaceholders(OTRSBusinessLabel) %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
[% RenderBlockStart("NotAvailable") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header Center">
|
||||
<h2>[% Translate("Upgrade to %s") | html | ReplacePlaceholders(OTRSBusinessLabel) %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="Center">
|
||||
[% Translate("%s will be available soon. Please check again in a few days.") | html | ReplacePlaceholders(OTRSBusinessLabel) %]
|
||||
</p>
|
||||
<p class="Center">
|
||||
[% Translate("Please have a look at %s for more information.") | html | ReplacePlaceholders('<a href="http://www.otrs-business-solution.com" target="_blank">otrs-business-solution.com</a>') %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("NotAvailable") %]
|
||||
[% RenderBlockStart("NotRegistered") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header Center">
|
||||
<h2>[% Translate("Upgrade to %s") | html | ReplacePlaceholders(OTRSBusinessLabel) %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="Center">
|
||||
[% Translate("Your ((OTRS)) Community Edition is the base for all future actions. Please register first before you continue with the upgrade process of %s!") | html | ReplacePlaceholders(OTRSBusinessLabel) %]
|
||||
</p>
|
||||
[% IF Config("Frontend::Module").AdminRegistration %]
|
||||
<div class="Center SpacingTop">
|
||||
<a href="[% Env("Baselink") %]Action=AdminRegistration" class="CallForAction Primary">
|
||||
<span><i class="fa fa-sign-in"></i> [% Translate("Register this System") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
[% ELSE %]
|
||||
<div class="Center SpacingTop">
|
||||
<p>
|
||||
[% Translate("System Registration is disabled for your system. Please check your configuration.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("NotRegistered") %]
|
||||
[% RenderBlockStart("NotEntitled") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header Center">
|
||||
<h2>[% Translate("Upgrade to %s") | html | ReplacePlaceholders(OTRSBusinessLabel) %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="Center">
|
||||
[% Translate("Before you can benefit from %s, please contact %s to get your %s contract.") | html | ReplacePlaceholders(OTRSBusinessLabel, '<a href="mailto:sales@otrs.com">sales@otrs.com</a>', OTRSBusinessLabel) %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("NotEntitled") %]
|
||||
[% RenderBlockStart("EntitlementStatusUnclear") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header Center">
|
||||
<h2>[% Translate("Upgrade to %s") | html | ReplacePlaceholders(OTRSBusinessLabel) %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="Center">
|
||||
[% Translate("Connection to cloud.otrs.com via HTTPS couldn't be established. Please make sure that your OTRS can connect to cloud.otrs.com via port 443.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("EntitlementStatusUnclear") %]
|
||||
[% RenderBlockStart("Install") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header Center">
|
||||
<h2[% IF Data.ShowBlock == "IncompatibleInfo" %] class="Left"[% END %]>[% Translate("Upgrade to %s") | html | ReplacePlaceholders(OTRSBusinessLabel) %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% IF Data.ShowBlock == "IncompatibleInfo" %]
|
||||
<h2>[% Translate("Package installation requires patch level update of OTRS.") | html %]</h2>
|
||||
<p>[% Translate("Please visit our customer portal and file a request.") | html %]</p>
|
||||
<p><strong>[% Translate("Everything else will be done as part of your contract.") | html %]</strong></p>
|
||||
<p class="SpacingTop">[% Translate("Your installed OTRS version is %s.", Config("Version")) | html %]</p>
|
||||
[% IF Data.RequiredMinimumVersion %]
|
||||
<p><span class="MinimumRequired">[% Translate("To install this package, you need to update to OTRS %s or higher.", Data.RequiredMinimumVersion) | html %]</span></p>
|
||||
[% END %]
|
||||
[% IF Data.RequiredMaximumVersion %]
|
||||
<p><span class="MaximumRequired">[% Translate("To install this package, the Maximum OTRS Version is %s.", Data.RequiredMaximumVersion) | html %] </span></p>
|
||||
[% END %]
|
||||
[% IF !Data.RequiredMinimumVersion && Data.RequiredFramework %]
|
||||
<p><span class="MaximumRequired">[% Translate("To install this package, the required Framework version is %s.", Data.RequiredFramework) | html %] </span></p>
|
||||
[% END %]
|
||||
<h2 class="SpacingTop">[% Translate("Why should I keep OTRS up to date?") | html %]</h2>
|
||||
<ul class="Default">
|
||||
<li>
|
||||
[% Translate("You will receive updates about relevant security issues.") | html %]
|
||||
</li>
|
||||
<li>
|
||||
[% Translate("You will receive updates for all other relevant OTRS issues") | html %]
|
||||
</li>
|
||||
</ul>
|
||||
[% ELSE %]
|
||||
<p class="Center">
|
||||
[% Translate("With your existing contract you can only use a small part of the %s.") | html | ReplacePlaceholders(OTRSBusinessLabel ) %]
|
||||
<br/>
|
||||
[% Translate("If you would like to take full advantage of the %s get your contract upgraded now! Contact %s.") | html | ReplacePlaceholders(OTRSBusinessLabel, '<a href="mailto:sales@otrs.com">sales@otrs.com</a>') %]
|
||||
</p>
|
||||
<div class="Center SpacingTop">
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=InstallAction" class="CallForAction Primary"><span><i class="fa fa-angle-double-up"></i> [% Translate("Upgrade to %s") | html | ReplacePlaceholders(OTRSBusinessLabel) %]</span></a>
|
||||
</div>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Install") %]
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,103 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[%
|
||||
SET OTRSBusinessLabel = '<strong>OTRS Business Solution</strong>™';
|
||||
SET OTRSBusinessLabelPlain = 'OTRS Business Solution™';
|
||||
%]
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Manage %s") | html | ReplacePlaceholders(OTRSBusinessLabel) %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate("Manage %s", OTRSBusinessLabelPlain),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-caret-left"></i> [% Translate("Cancel downgrade and go back") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminPackageManager" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-suitcase"></i> [% Translate('Go to OTRS Package Manager') | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Downgrade to ((OTRS)) Community Edition") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% RenderBlockStart("DowngradeNotPossible") %]
|
||||
<p>
|
||||
[% Translate("Sorry, but currently you can't downgrade due to the following packages which depend on %s:") | html | ReplacePlaceholders(OTRSBusinessLabel) %]
|
||||
</p>
|
||||
<ul class="Default">
|
||||
[% FOR Package IN Data.Packages %]
|
||||
<li>
|
||||
<p><strong>[% Package.Name | html %]</strong></p>
|
||||
[% FOR Description IN Package.Description %]
|
||||
[% IF Description.Lang == 'en' %]
|
||||
<p>[% Description.Content | html %]</p>
|
||||
[% END %]
|
||||
[% END %]
|
||||
<p><em>[% Translate('Vendor') | html %] [% Package.Vendor | html %], [% Translate('Version') | html %] [% Package.Version | html %]</em></p>
|
||||
</li>
|
||||
[% END %]
|
||||
</ul>
|
||||
<p>
|
||||
[% Translate('Please uninstall the packages first using the package manager and try again.') | html %]
|
||||
</p>
|
||||
[% RenderBlockEnd("DowngradeNotPossible") %]
|
||||
[% RenderBlockStart("DowngradePossible") %]
|
||||
<p>
|
||||
[% Translate('You are about to downgrade to ((OTRS)) Community Edition and will lose the following features and all data related to these:') | html %]
|
||||
</p>
|
||||
<ul class="Default">
|
||||
<li>[% Translate('Chat') | html %]</li>
|
||||
<li>[% Translate('Report Generator') | html %]</li>
|
||||
<li>[% Translate('Timeline view in ticket zoom') | html %]</li>
|
||||
<li>[% Translate('DynamicField ContactWithData') | html %]</li>
|
||||
<li>[% Translate('DynamicField Database') | html %]</li>
|
||||
<li>[% Translate('SLA Selection Dialog') | html %]</li>
|
||||
<li>[% Translate('Ticket Attachment View') | html %]</li>
|
||||
<li>[% Translate('The %s skin') | html | ReplacePlaceholders(OTRSBusinessLabel) %]</li>
|
||||
</ul>
|
||||
<p class="SpacingTop">
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=UninstallAction">
|
||||
<button class="CallForAction Primary"><span>[% Translate('Downgrade to ((OTRS)) Community Edition') | html %]</span></button>
|
||||
</a>
|
||||
[% Translate('or') | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate('Cancel') | html %]</a>
|
||||
</p>
|
||||
[% RenderBlockEnd("DowngradePossible") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
217
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminPGP.tt
Normal file
217
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminPGP.tt
Normal file
@@ -0,0 +1,217 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("PGP Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate("PGP Management"),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% IF Data.Subaction == 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate('Add PGP Key'), }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
[% RenderBlockStart("Notice") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Notice") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content ActionList">
|
||||
<form action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="AdminSystemConfigurationGroup"/>
|
||||
<input type="hidden" name="RootNavigation" value="Core::Crypt::PGP"/>
|
||||
[% RenderBlockStart("Disabled") %]
|
||||
<h3><span class="Warning">[% Translate("PGP support is disabled") | html %]</span></h3>
|
||||
<fieldset>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("To be able to use PGP in OTRS, you have to enable it first.") | html %]
|
||||
</p>
|
||||
<div class="Field">
|
||||
<button class="CallForAction Fullsize Center" type="submit" value="[% Translate("Enable it here!") | html %]">
|
||||
<span><i class="fa fa-unlock-alt"></i> [% Translate("Enable PGP support") | html %]</span>
|
||||
</button>
|
||||
</div>
|
||||
[% RenderBlockEnd("Disabled") %]
|
||||
[% RenderBlockStart("NotWorking") %]
|
||||
<h3><span class="Error">[% Translate("Faulty PGP configuration") | html %]</span></h3>
|
||||
<fieldset>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("PGP support is enabled, but the relevant configuration contains errors. Please check the configuration using the button below.") | html %]
|
||||
</p>
|
||||
<div class="Field">
|
||||
<button class="CallForAction Fullsize Center" type="submit" value="[% Translate("Configure it here!") | html %]">
|
||||
<span><i class="fa fa-unlock-alt"></i> [% Translate("Check PGP configuration") | html %]</span>
|
||||
</button>
|
||||
</div>
|
||||
[% RenderBlockEnd("NotWorking") %]
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Notice") %]
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header"><h2>[% Translate("Actions") | html %]</h2></div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
|
||||
[% RenderBlockStart("ActionSearch") %]
|
||||
<li>
|
||||
<form class="SearchBox" action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Search"/>
|
||||
<input type="text" name="Search" id="Search" value="[% Data.Search | html %]" title="[% Translate("Search") | html %]"/>
|
||||
<button type="submit" value="[% Translate("Search") | html %]" title="[% Translate("Search") | html %]"><i class="fa fa-search"></i></button>
|
||||
<div class="Clear"></div>
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionSearch") %]
|
||||
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Add" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add PGP Key") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
|
||||
[% RenderBlockStart("Hint") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("In this way you can directly edit the keyring configured in SysConfig.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Description") | html %]:
|
||||
<a href="http://en.wikipedia.org/wiki/Pretty_Good_Privacy" target="_blank">
|
||||
[% Translate("Introduction to PGP") | html %]
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Hint") %]
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="PGP">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Type") | html %]</th>
|
||||
<th>[% Translate("Status") | html %]</th>
|
||||
<th>[% Translate("Identifier") | html %]</th>
|
||||
<th>[% Translate("Bit") | html %]</th>
|
||||
<th>[% Translate("Key") | html %]</th>
|
||||
<th>[% Translate("Fingerprint") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
<th>[% Translate("Expires") | html %]</th>
|
||||
<th class="Center">[% Translate("Delete") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="9">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("Row") %]
|
||||
<tr [% IF Data.Status != 'good' %]class="Error"[% END %]>
|
||||
<td>[% Data.Type | html %]</td>
|
||||
<td>[% Data.Status | html %]</td>
|
||||
<td>[% Data.Identifier | truncate(80) | html %]</td>
|
||||
<td>[% Data.Bit | html %]</td>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Download;Type=[% Data.Type | uri %];Key=[% Data.Key | uri %];[% Env("ChallengeTokenParam") | html %]">[% Data.Key | html %]</a>
|
||||
</td>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=DownloadFingerprint;Type=[% Data.Type | uri %];Key=[% Data.Key | uri %];[% Env("ChallengeTokenParam") | html %]"><span title="[% Data.Fingerprint | html %]">[% Data.Fingerprint | truncate(10) | html %]</span></a>
|
||||
</td>
|
||||
<td>[% Data.Created | html %]</td>
|
||||
<td>[% Data.Expires | html %]</td>
|
||||
<td class="Center">
|
||||
<a class="TrashCan" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Delete;Type=[% Data.Type | uri %];Key=[% Data.FingerprintShort | uri %];[% Env("ChallengeTokenParam") | html %]" title="[% Translate("Delete this key") | html %]">
|
||||
[% Translate("Delete this key") | html %]
|
||||
<i class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("Row") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
|
||||
[% RenderBlockStart("AddKey") %]
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Add PGP Key") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="AddKey"/>
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="FileUpload"><span class="Marker">*</span> [% Translate("PGP key") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input name="FileUpload" id="FileUpload" type="file" class="W50pc Validate_Required [% Data.FileUploadInvalid | html %]" size="30"/>
|
||||
<div id="FileUploadError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="FileUploadServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Primary CallForAction" type="submit"><span>[% Translate("Add") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]"><span>[% Translate("Cancel") | html %]</span></a>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("AddKey") %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,820 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% SET OTRSBusinessLabel = '<strong>OTRS Business Solution</strong>™' %]
|
||||
|
||||
[% RenderBlockStart("Uninstall") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Package Manager") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Package Manager'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% USE UninstallBreadcrumb = String(Translate("Uninstall Package")) %]
|
||||
[% BreadcrumbPath.push({ Name => UninstallBreadcrumb.append( ': ', Data.Name ) }) %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>
|
||||
[% Translate("Uninstall package") | html %]
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<fieldset class="TableLike">
|
||||
<label>[% Translate("Name") | html %]: </label>
|
||||
<div class="Value">
|
||||
[% Data.Name | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Version") | html %]: </label>
|
||||
<div class="Value">
|
||||
[% Data.Version %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<p class="Field">
|
||||
[% Translate("Do you really want to uninstall this package?") | html %]
|
||||
</p>
|
||||
<div class="Clear"></div>
|
||||
<div class="Field SpacingTop">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="UninstallAction"/>
|
||||
<input type="hidden" name="Name" value="[% Data.Name | html %]"/>
|
||||
<input type="hidden" name="Version" value="[% Data.Version | html %]"/>
|
||||
<button class="Primary CallForAction" type="submit" value="[% Translate("Uninstall package") | html %]"><span>[% Translate("Uninstall package") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
</form>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Uninstall") %]
|
||||
[% RenderBlockStart("Reinstall") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Package Manager") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Package Manager'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% USE ReinstallBreadcrumb = String(Translate("Reinstall package")) %]
|
||||
[% BreadcrumbPath.push({ Name => ReinstallBreadcrumb.append( ': ', Data.Name ) }) %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>
|
||||
[% Translate("Reinstall package") | html %]
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<fieldset class="TableLike">
|
||||
<label>[% Translate("Name") | html %]: </label>
|
||||
<div class="Value">
|
||||
[% Data.Name | html %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Version") | html %]: </label>
|
||||
<div class="Value">
|
||||
[% Data.Version %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<p class="Field">
|
||||
[% Translate("Do you really want to reinstall this package? Any manual changes will be lost.") | html %]
|
||||
</p>
|
||||
<div class="Clear"></div>
|
||||
<div class="Field SpacingTop">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="ReinstallAction"/>
|
||||
<input type="hidden" name="Name" value="[% Data.Name | html %]"/>
|
||||
<input type="hidden" name="Version" value="[% Data.Version | html %]"/>
|
||||
<button class="Primary CallForAction" type="submit" value="[% Translate("Reinstall package") | html %]"><span>[% Translate("Reinstall package") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
</form>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Reinstall") %]
|
||||
[% RenderBlockStart("IncompatibleInfo") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Package Manager") | html %]</h1>
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h3>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://doc.otrs.com/doc/manual/admin/6.0/en/html/updating.html" target="_blank" class="CallForAction Fullsize Center"><span><i class="fa fa-external-link"></i>[% Translate("Go to updating instructions") | html %]</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://portal.otrs.com/" target="_blank" class="CallForAction Fullsize Center"><span><i class="fa fa-external-link"></i>[% Translate("Go to the OTRS customer portal") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2> [% Data.Name | html %] [% Data.Version | html %] [% Translate("package information") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% IF Data.Type == 'InstallIncompatible' %]
|
||||
<h2>[% Translate("Package installation requires a patch level update of OTRS.") | html %]</h2>
|
||||
[% ELSIF Data.Type =='UpgradeIncompatible' %]
|
||||
<h2>[% Translate("Package update requires a patch level update of OTRS.") | html %]</h2>
|
||||
[% END %]
|
||||
<p>[% Translate("If you are a OTRS Business Solution™ customer, please visit our customer portal and file a request.") | html %]</p>
|
||||
<p><strong>[% Translate("Everything else will be done as part of your contract.") | html %]</strong></p>
|
||||
<p class="SpacingTop">[% Translate("Please note that your installed OTRS version is %s.", Config("Version")) | html %]</p>
|
||||
[% IF Data.RequiredMinimumVersion %]
|
||||
<p><span class="MinimumRequired">[% Translate("To install this package, you need to update OTRS to version %s or newer.", Data.RequiredMinimumVersion) | html %]</span></p>
|
||||
[% END %]
|
||||
[% IF Data.RequiredMaximumVersion %]
|
||||
<p><span class="MaximumRequired">[% Translate("This package can only be installed on OTRS version %s or older.", Data.RequiredMaximumVersion) | html %] </span></p>
|
||||
[% END %]
|
||||
[% IF !Data.RequiredMinimumVersion && Data.RequiredFramework %]
|
||||
<p><span class="MaximumRequired">[% Translate("This package can only be installed on OTRS version %s or newer.", Data.RequiredFramework) | html %] </span></p>
|
||||
[% END %]
|
||||
<h2 class="SpacingTop">[% Translate("Why should I keep OTRS up to date?") | html %]</h2>
|
||||
<ul class="Default">
|
||||
<li>
|
||||
[% Translate("You will receive updates about relevant security issues.") | html %]
|
||||
</li>
|
||||
<li>
|
||||
[% Translate("You will receive updates for all other relevant OTRS issues.") | html %]
|
||||
</li>
|
||||
</ul>
|
||||
<h2 class="SpacingTop">[% Translate("How can I do a patch level update if I don’t have a contract?") | html %]</h2>
|
||||
<p>
|
||||
[% Translate("Please find all relevant information within the updating instructions at %s.") | html
|
||||
| ReplacePlaceholders('<a href="https://doc.otrs.com/doc/manual/admin/6.0/en/html/updating.html" target="_blank">doc.otrs.com</a>') %]
|
||||
</p>
|
||||
<p>[% Translate("In case you would have further questions we would be glad to answer them.") | html %] <br />[% Translate("Please visit our customer portal and file a request.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("IncompatibleInfo") %]
|
||||
[% RenderBlockStart("Intro") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Package Manager") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Package Manager'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Env("Subaction") %]
|
||||
[% CASE 'InstallRemote' %]
|
||||
[% USE InstallRemoteTitle = String(Translate("Install Package")) %]
|
||||
[% BreadcrumbPath.push({ Name => InstallRemoteTitle.append( ': ', Data.Name ) }) %]
|
||||
[% CASE 'Uninstall' %]
|
||||
[% USE UninstallTitle = String(Translate("Uninstall Package")) %]
|
||||
[% BreadcrumbPath.push({ Name => UninstallTitle.append( ': ', Data.Name ) }) %]
|
||||
[% CASE 'UpgradeRemote' %]
|
||||
[% USE UpgradeRemoteTitle = String(Translate("Update Package")) %]
|
||||
[% BreadcrumbPath.push({ Name => UpgradeRemoteTitle.append( ': ', Data.Name ) }) %]
|
||||
[% CASE 'InstallUpload' %]
|
||||
[% USE InstallUploadTitle = String(Translate("Install Package")) %]
|
||||
[% BreadcrumbPath.push({ Name => InstallUploadTitle.append( ': ', Data.Name ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h3>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate(Data.Title) | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% RenderBlockStart("OTRSVerifyLogo") %]
|
||||
<img src="[% Config("Frontend::ImagePath") %]/otrs-verify.png" class="OTRSVerifyLogoBig" />
|
||||
[% RenderBlockEnd("OTRSVerifyLogo") %]
|
||||
<div class="IntroInstall [% Data.VerifyCSSClass | html %]">
|
||||
<h3>[% Data.Name | html %] [% Data.Version | html %]</h3>
|
||||
[% Data.Description %]
|
||||
</div>
|
||||
[% RenderBlockStart("IntroForm") %]
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Subaction | html %]"/>
|
||||
<input type="hidden" name="FormID" value="[% Data.FormID | html %]"/>
|
||||
<input type="hidden" name="Source" value="[% Data.Source | html %]"/>
|
||||
<input type="hidden" name="File" value="[% Data.File | html %]"/>
|
||||
<input type="hidden" name="[% Data.Type | html %]" value="1"/>
|
||||
<input type="hidden" name="Name" value="[% Data.Name | html %]"/>
|
||||
<input type="hidden" name="Version" value="[% Data.Version | html %]"/>
|
||||
<button class="Primary CallForAction" type="submit" value="[% Translate("Continue") | html %]"><span>[% Translate("Continue") | html %]</span></button>
|
||||
[% RenderBlockStart("IntroCancel") %]
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]"><span>[% Translate("Cancel") | html %]</span></a>
|
||||
[% RenderBlockEnd("IntroCancel") %]
|
||||
</form>
|
||||
[% RenderBlockEnd("IntroForm") %]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Intro") %]
|
||||
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Package Manager") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Package Manager'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("OverviewFileUpload") %]
|
||||
<li class="Separated">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="InstallUpload"/>
|
||||
<input type="hidden" name="FormID" value="[% Data.FormID | html %]"/>
|
||||
<input name="FileUpload" id="FileUpload" type="file" size="18" class="Fixed W100pc Validate_Required [% Data.FileUploadInvalid | html %]"/>
|
||||
<div id="FileUploadError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="FileUploadServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
[% RenderBlockStart("DatabasePackageSizeWarning") %]
|
||||
<p class="FieldExplanation Error">
|
||||
[% Translate("Please make sure your database accepts packages over %s MB in size (it currently only accepts packages up to %s MB). Please adapt the max_allowed_packet setting of your database in order to avoid errors.", Data.MaxAllowedPacketRecommended, Data.MaxAllowedPacket) | html %]
|
||||
</p>
|
||||
[% RenderBlockEnd("DatabasePackageSizeWarning") %]
|
||||
<button class="Fullsize Center CallForAction LittleSpacingTop PackageAction" type="submit" value="[% Translate("Install") | html %]">
|
||||
<span><i class="fa fa-upload"></i> [% Translate("Install Package") | html %]</span>
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockEnd("OverviewFileUpload") %]
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="ChangeRepository"/>
|
||||
[% Data.SourceList %]
|
||||
<button class="Fullsize CallForAction LittleSpacingTop Center" type="submit" name="GetRepositoryList" value="[% Translate("Update") | html %]">
|
||||
<span><i class="fa fa-refresh"></i> [% Translate("Update repository information") | html %]</span>
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockStart("CloudServicesWarning") %]
|
||||
<li>
|
||||
<p class="FieldExplanation Error">
|
||||
[% Translate("Cloud services are currently disabled.") | html %]
|
||||
</br>
|
||||
[% Translate("OTRS Verify™ can not continue!") | html %]
|
||||
</p>
|
||||
<form action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="AdminSystemConfiguration"/>
|
||||
<input type="hidden" name="Subaction" value="Edit"/>
|
||||
<input type="hidden" name="SysConfigGroup" value="CloudService"/>
|
||||
<input type="hidden" name="SysConfigSubGroup" value="Core"/>
|
||||
<fieldset>
|
||||
<button class="Fullsize CallForAction LittleSpacingTop Center" type="submit" value="[% Translate("Enable cloud services") | html %]">
|
||||
<span><i class="fa fa-cloud"></i> [% Translate("Enable cloud services") | html %]</span>
|
||||
</button>
|
||||
</fieldset>
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockEnd("CloudServicesWarning") %]
|
||||
[% IF Data.InstalledPackages %]
|
||||
<li>
|
||||
<a href="#" class="CallForAction Fullsize Center UpgradeAll PackageAction"><span><i class="fa fa-arrow-circle-o-up"></i>[% Translate("Update all installed packages") | html %]</span></a>
|
||||
</li>
|
||||
[% END %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Online Repository") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content ">
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th></th>
|
||||
<th>[% Translate("Version") | html %]</th>
|
||||
<th>[% Translate("Vendor") | html %]</th>
|
||||
<th class="W40pc">[% Translate("Description") | html %]</th>
|
||||
<th>[% Translate("Action") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("ShowRemotePackage") %]
|
||||
<tr>
|
||||
<td>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ViewRemote;Source=[% Data.Source | uri %];File=[% Data.File | uri %];Name=[% Data.Name | uri %];Version=[% Data.Version | uri %]">[% Data.Name | html %]</a>
|
||||
</td>
|
||||
<td>
|
||||
[% RenderBlockStart("ShowRemotePackageDocumentation") %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ViewRemote;Source=[% Data.Source | uri %];File=[% Data.File | uri %];Name=[% Data.Name | uri %];Version=[% Data.Version | uri %];Location=[% Data.Location | uri %]" class="AsBlock" title="[% Translate("Module documentation") | html %]"><i class="fa fa-file-pdf-o"></i></a>
|
||||
[% RenderBlockEnd("ShowRemotePackageDocumentation") %]
|
||||
</td>
|
||||
<td>[% Data.Version | html %]</td>
|
||||
<td><a href="[% Data.URL %]" target="_blank">[% Data.Vendor | html %]</a></td>
|
||||
<td title="[% Data.Description | html %]">[% Data.Description | truncate(55) | html %]</td>
|
||||
<td>
|
||||
[% RenderBlockStart("ShowRemotePackageInstall") %]
|
||||
<a class="PackageAction" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=InstallRemote;Source=[% Data.Source | uri %];File=[% Data.File | uri %];Name=[% Data.Name | uri %];Version=[% Data.Version | uri %];[% Env("ChallengeTokenParam") | html %]">[% Translate("Install") | html %]</a>
|
||||
[% RenderBlockEnd("ShowRemotePackageInstall") %]
|
||||
[% RenderBlockStart("ShowRemotePackageUpgrade") %]
|
||||
<a class="PackageAction" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=UpgradeRemote;Source=[% Data.Source | uri %];File=[% Data.File | uri %];Name=[% Data.Name | uri %];Version=[% Data.Version | uri %];[% Env("ChallengeTokenParam") | html %]">[% Translate("Update") | html %]</a>
|
||||
[% RenderBlockEnd("ShowRemotePackageUpgrade") %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("ShowRemotePackage") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Local Repository") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content ">
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th></th>
|
||||
<th>[% Translate("Version") | html %]</th>
|
||||
<th>[% Translate("Vendor") | html %]</th>
|
||||
<th class="W40pc">[% Translate("Description") | html %]</th>
|
||||
<th>[% Translate("Status") | html %]</th>
|
||||
<th>[% Translate("Action") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg2") %]
|
||||
<tr>
|
||||
<td colspan="7">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg2") %]
|
||||
[% RenderBlockStart("ShowLocalPackage") %]
|
||||
<tr>
|
||||
<td>
|
||||
[% RenderBlockStart("ShowLocalPackageVerifyLogo") %]
|
||||
<img src="[% Config("Frontend::ImagePath") %]/otrs-verify-small.png" class="OTRSVerifyLogo" alt="[% Translate("This package is verified by OTRSverify (tm)") | html %]" />
|
||||
[% RenderBlockEnd("ShowLocalPackageVerifyLogo") %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=View;Name=[% Data.Name | uri %];Version=[% Data.Version | uri %]">[% Data.Name | html %]</a>
|
||||
</td>
|
||||
<td>
|
||||
[% RenderBlockStart("ShowLocalPackageDocumentation") %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=View;Name=[% Data.Name | uri %];Version=[% Data.Version | uri %];File=[% Data.File | uri %];Location=[% Data.Location | uri %]" class="AsBlock" title="[% Translate("Module documentation") | html %]"><i class="fa fa-file-pdf-o"></i></a>
|
||||
[% RenderBlockEnd("ShowLocalPackageDocumentation") %]
|
||||
</td>
|
||||
<td>[% Data.Version | html %]</td>
|
||||
<td><a href="[% Data.URL %]" target="_blank">[% Data.Vendor | html %]</a></td>
|
||||
<td title="[% Data.Description | html %]">[% Data.Description | truncate(55) | html %]</td>
|
||||
<td>[% Translate(Data.Status) | html %]</td>
|
||||
<td>
|
||||
[% RenderBlockStart("ShowLocalPackageInstall") %]
|
||||
<a class="PackageAction" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Install;Name=[% Data.Name | uri %];Version=[% Data.Version | uri %];[% Env("ChallengeTokenParam") | html %]">[% Translate("Install") | html %]</a>
|
||||
<br/><br/>
|
||||
[% RenderBlockEnd("ShowLocalPackageInstall") %]
|
||||
[% RenderBlockStart("ShowLocalPackageUninstall") %]
|
||||
<a class="PackageAction" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Uninstall;Name=[% Data.Name | uri %];Version=[% Data.Version | uri %];[% Env("ChallengeTokenParam") | html %]">[% Translate("Uninstall") | html %]</a>
|
||||
<br/>
|
||||
[% RenderBlockEnd("ShowLocalPackageUninstall") %]
|
||||
[% RenderBlockStart("ShowLocalPackageReinstall") %]
|
||||
<a class="PackageAction" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Reinstall;Name=[% Data.Name | uri %];Version=[% Data.Version | uri %];[% Env("ChallengeTokenParam") | html %]" title="[% Translate("Package not correctly deployed! Please reinstall the package.") | html %]">[% Translate("Reinstall") | html %]</a>
|
||||
<br/>
|
||||
[% RenderBlockEnd("ShowLocalPackageReinstall") %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("ShowLocalPackage") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("FeatureAddonList") %]
|
||||
<div class="WidgetSimple">
|
||||
|
||||
<div class="Header">
|
||||
<h2>
|
||||
[% Translate("Features for %s customers only") | html | ReplacePlaceholders(OTRSBusinessLabel) %]
|
||||
→ <a href="mailto:sales@otrs.com">sales@otrs.com</a>
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content ">
|
||||
<p>
|
||||
[% Translate("With %s, you can benefit from the following optional features. Please make contact with %s if you need more information.") | html | ReplacePlaceholders(OTRSBusinessLabel, '<a href="mailto:sales@otrs.com">sales@otrs.com</a>') %]
|
||||
</p>
|
||||
<table class="DataTable SpacingTop">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Description") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("FeatureAddonData") %]
|
||||
<tr>
|
||||
<td><a href="[% Data.Link | html %]" target="_feature_addon_details">[% Data.Title | html %]</a></td>
|
||||
<td>[% Data.Description | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("FeatureAddonData") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("FeatureAddonList") %]
|
||||
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
|
||||
|
||||
[% RenderBlockStart("Package") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Package Manager") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Package Manager'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% USE PackageBreadcrumb = String(Translate("Package Information")) %]
|
||||
[% BreadcrumbPath.push({ Name => PackageBreadcrumb.append( ': ', Data.Name ) }) %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<ul class="ActionList">
|
||||
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockStart("PackageDownloadLocal") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Download;Name=[% Data.Name | uri %];Version=[% Data.Version | uri %]" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-download"></i>[% Translate("Download package") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("PackageDownloadLocal") %]
|
||||
[% RenderBlockStart("PackageDownloadRemote") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=DownloadRemote;File=[% Data.File | uri %]" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-download"></i>[% Translate("Download package") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("PackageDownloadRemote") %]
|
||||
[% RenderBlockStart("PackageRebuild") %]
|
||||
<li>
|
||||
<a class="CallForAction Fullsize Center PackageAction" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=RebuildPackage;Name=[% Data.Name | uri %];Version=[% Data.Version | uri %];[% Env("ChallengeTokenParam") | html %]">
|
||||
<span><i class="fa fa-retweet"></i>[% Translate("Rebuild package") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("PackageRebuild") %]
|
||||
[% RenderBlockStart("PackageReinstall") %]
|
||||
<li>
|
||||
<a class="CallForAction Fullsize Center PackageAction" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Reinstall;Name=[% Data.Name | uri %];Version=[% Data.Version | uri %];[% Env("ChallengeTokenParam") | html %]">
|
||||
<span><i class="fa fa-refresh"></i>[% Translate("Reinstall package") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("PackageReinstall") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Metadata") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content ">
|
||||
<fieldset class="TableLike Fixed Label">
|
||||
[% RenderBlockStart("PackageItemDescription") %]
|
||||
<label>[% Translate(Data.Tag) | html %]: </label>
|
||||
<div class="Value">([% Data.Lang | html %]) [% Data.Content | html %]</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("PackageItemDescription") %]
|
||||
[% RenderBlockStart("PackageItemGeneric") %]
|
||||
<label>[% Translate(Data.Tag) | html %]: </label>
|
||||
<div class="Value">[% Data.Content %]</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("PackageItemGeneric") %]
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Change Log") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content ">
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="W25pc">[% Translate("Version") | html %]</th>
|
||||
<th class="W25pc">[% Translate("Date") | html %]</th>
|
||||
<th class="W50pc">[% Translate("Comment") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("PackageItemChangeLog") %]
|
||||
<tr>
|
||||
<td>[% Data.Version | html %]</td>
|
||||
<td>[% Data.Date | html %]</td>
|
||||
<td>[% Data.Content | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("PackageItemChangeLog") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List of Files") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content ">
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="W50pc">[% Translate("Filename") | html %]</th>
|
||||
<th>[% Translate("Permission") | html %]</th>
|
||||
<th>[% Translate("Status") | html %]</th>
|
||||
<th class="W20pc">[% Translate("Download") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("PackageItemFilelistFile") %]
|
||||
<tr>
|
||||
<td title="[% Data.Location | html %]">
|
||||
<code>[% Data.Location | truncate(65) | html %]</code>
|
||||
</td>
|
||||
<td>
|
||||
<div title="[% Data.Permission | html %]">([% Data.Permission | html %])</div>
|
||||
</td>
|
||||
<td>
|
||||
[% RenderBlockStart("PackageItemFilelistFileNoteDiff") %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ViewDiff;Name=[% Data.Name | uri %];Version=[% Data.Version | uri %];File=[% Data.File | uri %];Location=[% Data.Location | uri %]" title="[% Translate(Data.Message) | html %]" class="AsBlock [% Data.Icon | html %]"></a>
|
||||
[% RenderBlockEnd("PackageItemFilelistFileNoteDiff") %]
|
||||
[% RenderBlockStart("PackageItemFilelistFileNote") %]
|
||||
<span title="[% Translate(Data.Message) | html %]" class="AsBlock [% Data.Icon | html %]"></span>
|
||||
[% RenderBlockEnd("PackageItemFilelistFileNote") %]
|
||||
</td>
|
||||
<td>
|
||||
|
||||
[% RenderBlockStart("PackageItemFilelistFileLink") %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=[% Env("Subaction") %];Name=[% Data.Name | uri %];Version=[% Data.Version | uri %];File=[% Data.File | uri %];Location=[% Data.Location | uri %]" class="IconInline" title="[% Translate("Download file from package!") | html %]"><i class="fa fa-save"></i></a>
|
||||
[% RenderBlockEnd("PackageItemFilelistFileLink") %]
|
||||
[% Data.Size | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("PackageItemFilelistFile") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockStart("PackageItemDatabase") %]
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<div class="Header">
|
||||
<h2>[% Data.TagName | html %] ([% Data.Type | html %])</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<h3 class="SpacingTop">[% Data.Tag | html %]: [% Data.Name | html %] ([% Data.Version | html %])</h3>
|
||||
<table class="DataTable W100pc">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Type") | html %]</th>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Required") | html %]</th>
|
||||
<th>[% Translate("Size") | html %]</th>
|
||||
<th>[% Translate("Primary Key") | html %]</th>
|
||||
<th>[% Translate("Auto Increment") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("PackageItemDatabaseSub") %]
|
||||
<tr>
|
||||
<td><code>[% Data.Tag | html %]</code></td>
|
||||
<td>[% Data.Name | html %]</td>
|
||||
<td>[% Data.Required | html %]</td>
|
||||
<td>[% Data.Size | html %]</td>
|
||||
<td>[% Data.PrimaryKey | html %]</td>
|
||||
<td>[% Data.AutoIncrement | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("PackageItemDatabaseSub") %]
|
||||
</tbody>
|
||||
</table>
|
||||
[% RenderBlockStart("PackageItemDatabaseSQL") %]
|
||||
<h3 class="SpacingTop">[% Translate("SQL") | html %]</h3>
|
||||
<div>
|
||||
<code>[% Data.SQL | html %]</code>
|
||||
</div>
|
||||
[% RenderBlockEnd("PackageItemDatabaseSQL") %]
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("PackageItemDatabase") %]
|
||||
|
||||
|
||||
[% RenderBlockStart("PackageItemCode") %]
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<div class="Header">
|
||||
<h2>[% Translate(Data.Tag) | html %] ([% Data.Type | html %])</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<code>[% Data.Content %]</code>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("PackageItemCode") %]
|
||||
[% RenderBlockStart("PackageItemIntro") %]
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<div class="Header">
|
||||
<h2>[% Translate(Data.Tag) | html %] ([% Data.Type | html %]/[% Data.Lang | html %])</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% Data.Content %]
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("PackageItemIntro") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Package") %]
|
||||
[% RenderBlockStart("FileDiff") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Package Manager") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Package Manager'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% USE FileDiffBreadcrumb = String(Translate("File Differences for File %s", Data.Location)) %]
|
||||
[% BreadcrumbPath.push({ Name => FileDiffBreadcrumb.append( ': ', Data.Name ) }) %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=View;Name=[% Data.Name | uri %];Version=[% Data.Version | uri %]" class="CallForAction Fullsize Center">
|
||||
<span>[% Translate("Go to overview") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>
|
||||
[% Data.Name | html %]: [% Translate("File differences for file %s", Data.Location) | html %]
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<pre><code>[% Data.Diff | html %]</code></pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("FileDiff") %]
|
||||
@@ -0,0 +1,222 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Performance Log") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate("Performance Log"),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% IF Data.Minute %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Range") _ ' (' _ Translate("last") _ ' ' _ Data.Age _ ')' }) %]
|
||||
[% END %]
|
||||
|
||||
[% IF Data.Interface %]
|
||||
[% BreadcrumbPath.push({ Name => Data.Interface, Link => Env("Action") _ ';Subaction=View;Interface=Agent;Minute=' _ Data.Minute, }) %]
|
||||
[% END %]
|
||||
|
||||
[% IF Data.Module %]
|
||||
[% BreadcrumbPath.push({ Name => Data.Module }) %]
|
||||
[% 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("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% RenderBlockStart("Enabled") %]
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="Action" value="AdminSystemConfigurationGroup"/>
|
||||
<input type="hidden" name="RootNavigation" value="Core::PerformanceLog"/>
|
||||
<h3>[% Translate("This feature is enabled!") | html %]</h3>
|
||||
<fieldset>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Just use this feature if you want to log each request.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Activating this feature might affect your system performance!") | html %]
|
||||
</p>
|
||||
<div class="Field SpacingTop">
|
||||
<button class="CallForAction Fullsize Center" type="submit" value="[% Translate("Disable it here!") | html %]">
|
||||
<span><i class="fa fa-lock"></i> [% Translate("Disable it here!") | html %]</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
[% RenderBlockEnd("Enabled") %]
|
||||
[% RenderBlockStart("Disabled") %]
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="Action" value="AdminSystemConfigurationGroup"/>
|
||||
<input type="hidden" name="RootNavigation" value="Core::PerformanceLog"/>
|
||||
<h3>[% Translate("This feature is disabled!") | html %]</h3>
|
||||
<fieldset>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Just use this feature if you want to log each request.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Activating this feature might affect your system performance!") | html %]
|
||||
</p>
|
||||
<div class="Field SpacingTop">
|
||||
<button class="CallForAction Fullsize Center" type="submit" value="[% Translate("Enable it here!") | html %]">
|
||||
<span><i class="fa fa-unlock-alt"></i> [% Translate("Enable it here!") | html %]</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
[% RenderBlockEnd("Disabled") %]
|
||||
[% RenderBlockStart("Reset") %]
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Reset"/>
|
||||
<h3>[% Translate("Logfile too large!") | html %] ([% Data.Size | html %])</h3>
|
||||
<fieldset>
|
||||
<p class="Error">
|
||||
[% Translate("The logfile is too large, you need to reset it") | html %] ([% Data.Size | html %]).
|
||||
</p>
|
||||
<div class="Field SpacingTop">
|
||||
<button class="CallForAction" type="submit" value="[% Translate("Reset") | html %]">
|
||||
<span>[% Translate("Reset") | html %]</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
[% RenderBlockEnd("Reset") %]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Overview") | html %]</h2>
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("OverviewTable") %]
|
||||
<h3 class="Spacing">[% Translate("Range") | html %] ([% Translate("last") | html %] [% Data.Age | html %])</h3>
|
||||
<div class="Content">
|
||||
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Interface") | html %]</th>
|
||||
<th>[% Translate("Requests") | html %]</th>
|
||||
<th>[% Translate("Min Response") | html %]</th>
|
||||
<th>[% Translate("Max Response") | html %]</th>
|
||||
<th>[% Translate("Average Response") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("OverviewInterface") %]
|
||||
<tr>
|
||||
<td>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=View;Interface=[% Data.Interface | uri %];Minute=[% Data.Minute | uri %]" title="[% Data.Interface | html %]">
|
||||
[% Data.Interface | truncate(40) | html %]
|
||||
</a>
|
||||
</td>
|
||||
<td>[% Data.Count | html %]</td>
|
||||
<td>[% Data.Min | html %]s</td>
|
||||
<td>[% Data.Max | html %]s</td>
|
||||
<td>[% Data.Average | html %]s</td>
|
||||
</tr>
|
||||
[% RenderBlockStart("OverviewRow") %]
|
||||
<tr>
|
||||
<td class="Indent">
|
||||
<em>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=View;Interface=[% Data.Interface | uri %];Module=[% Data.Module | uri %];Minute=[% Data.Minute | uri %]" title="[% Data.Module | html %]">
|
||||
[% Data.Module | truncate(40) | html %]
|
||||
</a>
|
||||
</em>
|
||||
</td>
|
||||
<td><em>[% Data.Count | html %]</em></td>
|
||||
<td><em>[% Data.Min | html %]s</em></td>
|
||||
<td><em>[% Data.Max | html %]s</em></td>
|
||||
<td><em>[% Data.Average | html %]s</em></td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewRow") %]
|
||||
[% RenderBlockEnd("OverviewInterface") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewTable") %]
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
|
||||
[% RenderBlockStart("View") %]
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Range") | html %] ([% Translate("last") | html %] [% Data.Age | html %])</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p>
|
||||
<strong>[% Translate("Interface") | html %]:</strong> [% Data.Interface | html %],
|
||||
<strong>[% Translate("Module") | html %]:</strong> [% Data.Module | html %],
|
||||
<strong>[% Translate("Period") | html %]:</strong> [% Data.Period | html %] [% Translate("minutes") | html %]
|
||||
</p>
|
||||
<table class="DataTable SpacingTop AdminPerformanceLog">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Date") | html %]</th>
|
||||
<th>[% Translate("Requests") | html %]</th>
|
||||
<th>[% Translate("Min") | html %]</th>
|
||||
<th>[% Translate("Max") | html %]</th>
|
||||
<th>[% Translate("Average") | html %]</th>
|
||||
<th class="ProgressbarColumn"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("ViewRow") %]
|
||||
<tr>
|
||||
<td><em>[% Data.Date | Localize("TimeShort") %]</em></td>
|
||||
<td><em>[% Data.Count | html %]</em></td>
|
||||
<td><em>[% Data.Min | html %]s</em></td>
|
||||
<td><em>[% Data.Max | html %]s</em></td>
|
||||
<td><em>[% Data.Average | html %]s</em></td>
|
||||
<td><div class="Progressbar" style="width:[% Data.Width | html %];"> </div></td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("ViewRow") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("View") %]
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,290 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("PostMaster Filter Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('PostMaster Filter Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'AddAction' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate('Add PostMaster Filter'),}) %]
|
||||
[% CASE 'Update' %]
|
||||
[% USE EditTitle = String(Translate('Edit PostMaster Filter')) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Name ) }) %]
|
||||
[% 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("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=AddAction" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add PostMaster Filter") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterPostMasterFilters">[% Translate("Filter for PostMaster Filters") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterPostMasterFilters" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterPostMasterFilters" value="" title="[% Translate("Filter for PostMaster filters") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
|
||||
[% IF Env("Subaction") == 'Update' || Env("Subaction") == "AddAction" %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("To dispatch or filter incoming emails based on email headers. Matching using Regular Expressions is also possible.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If you want to match only the email address, use EMAILADDRESS:info@example.com in From, To or Cc.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If you use Regular Expressions, you also can use the matched value in () as [***] in the 'Set' action.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("You can also use named captures %s and use the names in the 'Set' action %s (e.g. Regexp: %s, Set action: %s). A matched EMAILADDRESS has the name '%s'.", "(?<name>)", "[**\\" _ "name**]", "(?<server>\\w+)", "[**\\server**]", "email") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
[% END %]
|
||||
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="PostMasterFilters">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th class="Center W10pc">[% Translate("Delete") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Update;Name=[% Data.Name | uri %]">[% Translate(Data.Name) | html %]</a>
|
||||
</td>
|
||||
<td class="Center">
|
||||
<a class="TrashCan PostMasterFilterDelete" href="#" data-query-string="Action=[% Env("Action") %];Subaction=Delete;Name=[% Data.Name | uri %];[% Env("ChallengeTokenParam") | html %]" title="[% Translate("Delete this filter") | html %]">
|
||||
<i class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="2">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Hidden" id="DeletePostMasterFilterDialogContainer">
|
||||
<div id ="DeletePostMasterFilterDialog" class="InnerContent GenericInterfaceDialog">
|
||||
<p class="Center Spacing">[% Translate("Do you really want to delete this postmaster filter?") | html %]</p>
|
||||
<div class="SpacingTop"></div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
|
||||
[% RenderBlockStart("OverviewUpdate") %]
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="FilterFields Validate">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
[% IF Data.Action == 'AddAction' %]
|
||||
<h2>[% Translate("Add PostMaster Filter") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit PostMaster Filter") | html %]</h2>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="UpdateAction"/>
|
||||
<input type="hidden" name="OldName" value="[% Data.OldName | html %]"/>
|
||||
[% IF Data.Action == 'Update' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="EditName"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" class="W50pc Validate_Required [% Data.NameInvalid | html %]" name="Name" id="EditName" value="[% Data.Name | html %]"/>
|
||||
<div id="EditNameError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="EditNameServerError" class="TooltipErrorMessage"><p>[% Translate("A postmaster filter with this name already exists!") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="StopAfterMatch"><span class="Marker">*</span> [% Translate("Stop after match") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.StopAfterMatch %]
|
||||
<div id="StopAfterMatchError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="StopAfterMatchServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<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("Filter Condition") | html %] <span class="FieldExplanation">([% Translate("AND Condition") | html %])</span></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% FOREACH [ 1 .. Config("PostmasterHeaderFieldCount") ] %]
|
||||
<div class="Field Center SpacingTopSmall">
|
||||
<label for="MatchHeader[% loop.count %]">[% Translate("Search header field") | html %]:</label>
|
||||
[% Data.item( "MatchHeader$loop.count") %]
|
||||
<div id="MatchHeader[% loop.count %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
|
||||
<label for="MatchValue[% loop.count %]">[% Translate("for value") | html %]:</label>
|
||||
<input type="text" name="MatchValue[% loop.count %]" id="MatchValue[% loop.count %]" value="[% Data.item("MatchValue$loop.count") | html %]" class="W33pc [% Data.item('MatchValue' _ loop.count _ 'Invalid') | html %]" maxlength="200"/>
|
||||
<div id="MatchValue[% loop.count %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("The field needs to be a valid regular expression or a literal word.") | html %]</p>
|
||||
</div>
|
||||
|
||||
<label class="Negate" for="MatchNot[% loop.count %]">
|
||||
[% Translate("Negate") | html %]: <input type="checkbox" name="MatchNot[% loop.count %]" id="MatchNot[% loop.count %]" value="1" [% Data.item( "MatchNot$loop.count") | html %] />
|
||||
</label>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% END %]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<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("Set Email Headers") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
[% FOREACH [ 1 .. Config("PostmasterHeaderFieldCount") ] %]
|
||||
<div class="Field Center SpacingTopSmall">
|
||||
<label for="SetHeader[% loop.count %]">[% Translate("Set email header") | html %]:</label>
|
||||
[% Data.item("SetHeader$loop.count") %]
|
||||
<div id="SetHeader[% loop.count %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
|
||||
<label class="RightLabel" for="SetValue[% loop.count %]">[% Translate("with value") | html %]:</label>
|
||||
<input type="text" name="SetValue[% loop.count %]" id="SetValue[% loop.count %]" value="[% Data.item("SetValue$loop.count") | html %]" class="W33pc [% Data.item('SetValue' _ loop.count _ 'Invalid') | html %]" maxlength="200"/>
|
||||
<div id="SetValue[% loop.count %]ServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("The field needs to be a literal word.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% END %]
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Save Changes") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content Center">
|
||||
[% IF Data.Action == 'Update' %]
|
||||
<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") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<div class="WidgetSimple Collapsed SpacingTop">
|
||||
<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("Example") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
<h4>[% Translate("Filter Condition") | html %]</h4>
|
||||
|
||||
<label for="MatchHeaderExample">[% Translate("Header") | html %] 1:</label>
|
||||
<div class="Field">
|
||||
<select name="MatchHeaderExample" id="MatchHeaderExample" class="Modernize W33pc"><option selected="selected" value="To">To</option></select>
|
||||
<label for="MatchValueExample">[% Translate("Value") | html %] 1:</label>
|
||||
<input type="text" name="MatchValueExample" id="MatchValueExample" value="(me|test)@example.com" class="W33pc" maxlength="50"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<h4>[% Translate("Set Email Headers") | html %]</h4>
|
||||
|
||||
<label for="SetHeaderExample">[% Translate("Header") | html %] 1:</label>
|
||||
<div class="Field">
|
||||
<select name="SetHeaderExample" id="SetHeaderExample" class="Modernize W33pc"><option selected="selected" value="X-OTRS-Queue">X-OTRS-Queue</option></select>
|
||||
<label for="SetValueExample">[% Translate("Value") | html %] 1:</label>
|
||||
<input type="text" name="SetValueExample" id="SetValueExample" value="SomeQueue" class="W33pc" maxlength="50"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewUpdate") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
212
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminPriority.tt
Normal file
212
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminPriority.tt
Normal file
@@ -0,0 +1,212 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Priority Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Priority Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate('Add Priority'),}) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit Priority")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Name ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Add" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-plus-square"></i>[% Translate("Add Priority") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
</div>
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterPriorities">[% Translate("Filter for Priorities") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterPriorities" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterPriorities" value="" title="[% Translate("Filter for priorities") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<table class="DataTable" id="Priorities">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr [% IF Data.ValidID != 1%]class="Invalid"[% END %]>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Change;PriorityID=[% Data.PriorityID | uri %]">
|
||||
[% Data.Name | html %]
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
[% Translate(Data.Valid) | html %]
|
||||
</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="4">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
|
||||
[% RenderBlockStart("OverviewUpdate") %]
|
||||
<div class="Header">
|
||||
[% IF Data.Action == 'Add' %]
|
||||
<h2>[% Translate("Add Priority") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit Priority") | html %]</h2>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<form id="EntityUpdate" action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]" />
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | uri %]Action" />
|
||||
<input type="hidden" name="PriorityID" value="[% Data.PriorityID | html %]" />
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameInvalid | html %]" maxlength="200"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>
|
||||
[% RenderBlockStart("RequiredNameServerError") %]
|
||||
[% Translate("This field is required.") | html %]
|
||||
[% RenderBlockEnd("RequiredNameServerError") %]
|
||||
[% RenderBlockStart("InSettingNameServerError") %]
|
||||
[% Translate("This priority is present in a SysConfig setting, confirmation for updating settings to point to the new priority is needed!") | html %]
|
||||
[% RenderBlockEnd("InSettingNameServerError") %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOptionStrg %]
|
||||
<div id="ValidIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>
|
||||
[% RenderBlockStart("RequiredValidOptionServerError") %]
|
||||
[% Translate("This field is required.") | html %]
|
||||
[% RenderBlockEnd("RequiredValidOptionServerError") %]
|
||||
[% RenderBlockStart("InSettingValidOptionServerError") %]
|
||||
[% Translate("Is not possible to invalidate this entry, all config settings have to be changed beforehand.") | html %]
|
||||
[% RenderBlockEnd("InSettingValidOptionServerError") %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
[% RenderBlockStart("PriorityInSysConfig") %]
|
||||
<input type="hidden" name="OldName" id="OldName" value="[% Data.OldName | html %]"/>
|
||||
<input type="hidden" name="UpdateEntity" id="UpdateEntity" value=""/>
|
||||
<div id="EntityInSetting" class="Hidden">
|
||||
<div class="TextDialog">
|
||||
<h1>[% Translate("This priority is used in the following config settings:") | html %]</h1>
|
||||
<ul>
|
||||
[% RenderBlockStart("PriorityInSysConfigRow") %]
|
||||
<li class="InSysConfigSetting">[% Data.SettingName %]</li>
|
||||
[% RenderBlockEnd("PriorityInSysConfigRow") %]
|
||||
</ul>
|
||||
<p class="FieldExplanation"></p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("PriorityInSysConfig") %]
|
||||
[% RenderBlockStart("PriorityInSysConfigDirty") %]
|
||||
<input type="hidden" name="SysConfigDirty" id="SysConfigDirty" value="1"/>
|
||||
[% RenderBlockEnd("PriorityInSysConfigDirty") %]
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewUpdate") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,191 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[%
|
||||
SET OTRSBusinessLabel = '<strong>OTRS Business Solution</strong>™';
|
||||
SET OTRSBusinessLinkLabel = '<strong><a href="#" class="OTRSBusinessRequired">OTRS Business Solution</a></strong>™';
|
||||
%]
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Process Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Process Management'),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="Filter">[% Translate("Filter for Processes") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="Filter" class="W95pc" name="Filter" value="" placeholder="[% Translate("Just start typing to filter...") | html %]" title="[% Translate("Filter for processes") | html %]" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ProcessNew" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i> [% Translate("Create New Process") | html %]</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ProcessSync" class="CallForAction Fullsize Center"><span><i class="fa fa-rocket"></i> [% Translate("Deploy All Processes") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Configuration Import") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can upload a configuration file to import a process to your system. The file needs to be in .yml format as exported by process management module.") | html %]
|
||||
</p>
|
||||
<ul class="ActionList SpacingTop">
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="ProcessImport"/>
|
||||
<input type="hidden" name="FormID" value="[% Data.FormID | html %]"/>
|
||||
<input name="FileUpload" id="FileUpload" type="file" size="18" class="Fixed W100pc Validate_Required [% Data.FileUploadInvalid | html %]"/>
|
||||
<div id="FileUploadError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="FileUploadServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<fieldset class="SpacingTop">
|
||||
<input type="checkbox" id="OverwriteExistingEntitiesImport" name="OverwriteExistingEntities" value="1" checked="checked" />
|
||||
<label for="OverwriteExistingEntitiesImport">[% Translate("Overwrite existing entities") | html %]</label>
|
||||
</fieldset>
|
||||
<button class="CallForAction Fullsize Center SpacingTop" type="submit" value="[% Translate("Upload process configuration") | html %]">
|
||||
<span><i class="fa fa-upload"></i>[% Translate("Import process configuration") | html %]</span>
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple" id="ExampleProcesses">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Ready2Adopt Processes") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can activate Ready2Adopt processes showcasing our best practices. Please note that some additional configuration may be required.") | html %]
|
||||
</p>
|
||||
[% IF !Data.OTRSBusinessIsInstalled %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Would you like to benefit from processes created by experts? Upgrade to %s to import some sophisticated Ready2Adopt processes.") | html | ReplacePlaceholders(OTRSBusinessLinkLabel) %]
|
||||
</p>
|
||||
[% END %]
|
||||
<ul class="ActionList SpacingTop">
|
||||
<li>
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="ProcessImport"/>
|
||||
<input type="hidden" name="FormID" value="[% Data.FormID | html %]"/>
|
||||
[% Data.ExampleProcessList %]
|
||||
<div id="ExampleProcessError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="ExampleProcessServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<fieldset class="SpacingTop">
|
||||
<input type="checkbox" id="OverwriteExistingEntitiesExample" name="OverwriteExistingEntities" value="1" checked="checked" />
|
||||
<label for="OverwriteExistingEntitiesExample">[% Translate("Overwrite existing entities") | html %]</label>
|
||||
</fieldset>
|
||||
<button class="CallForAction Fullsize Center SpacingTop" type="submit" value="[% Translate("Import Ready2Adopt process") | html %]">
|
||||
<span><i class="fa fa-upload"></i>[% Translate("Import Ready2Adopt process") | html %]</span>
|
||||
</button>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Description") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("To create a new Process you can either import a Process that was exported from another system or create a complete new one.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Changes to the Processes here only affect the behavior of the system, if you synchronize the Process data. By synchronizing the Processes, the newly made changes will be written to the Configuration.") | html %]
|
||||
</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Processes") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="Processes">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Process name") | html %]</th>
|
||||
<th>[% Translate("Description") | html %]</th>
|
||||
<th>[% Translate("State") | html %]</th>
|
||||
<th class="Center">[% Translate("Export") | html %]</th>
|
||||
<th class="Center">[% Translate("Copy") | html %]</th>
|
||||
<th class="Center">[% Translate("Print") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("ProcessRow") %]
|
||||
<tr [% IF Data.State != "Active"%]class="Invalid"[% END %]>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ProcessEdit;ID=[% Data.ID | uri %];EntityID=[% Data.EntityID | uri %]" title="[% Data.Name | html %] ([% Data.EntityID | html %])">
|
||||
[% Data.Name | html %]
|
||||
</a>
|
||||
</td>
|
||||
<td title="[% Data.Description | html %]">[% Data.Description | truncate(80) | html %]</td>
|
||||
<td>[% Translate(Data.State) | html %]</td>
|
||||
<td class="Center">
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ProcessExport;ID=[% Data.ID | uri %]" title="[% Translate("Export Process Configuration") | html %]">
|
||||
<i class="fa fa-download"></i> <span class="InvisibleText">[% Translate("Export") | html %]</span>
|
||||
</a>
|
||||
</td>
|
||||
<td class="Center">
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ProcessCopy;ID=[% Data.ID | uri %];[% Env("ChallengeTokenParam") | html %]" title="[% Translate("Copy Process") | html %]">
|
||||
<i class="fa fa-copy"></i> <span class="InvisibleText">[% Translate("Copy") | html %]</span>
|
||||
</a>
|
||||
</td>
|
||||
<td class="Center">
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ProcessPrint;ID=[% Data.ID | uri %];[% Env("ChallengeTokenParam") | html %]" class="AsPopup PopupType_ProcessOverview">
|
||||
<i class="fa fa-print"></i> <span class="InvisibleText">[% Translate("Print") | html %]</span>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("ProcessRow") %]
|
||||
[% RenderBlockStart("ProcessNoDataRow") %]
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("ProcessNoDataRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="6">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,139 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="LayoutPopup ARIARoleMain">
|
||||
<div class="Header">
|
||||
<h1>[% Translate(Data.Title) | html %]</h1>
|
||||
[% RenderBlockStart("ClosePopup") %]
|
||||
<p>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ClosePopup" class="ClosePopup">[% Translate("Cancel & close") | html %]</a>
|
||||
</p>
|
||||
[% RenderBlockEnd("ClosePopup") %]
|
||||
[% RenderBlockStart("GoBack") %]
|
||||
<p>
|
||||
<a class="GoBack" href="[% Env("Baselink") %]Action=[% Data.Action | uri %];Subaction=[% Data.Subaction | uri %];ID=[% Data.ID | uri %];EntityID=[% Data.EntityID | uri %]">[% Translate("Go Back") | html %]</a>
|
||||
</p>
|
||||
[% RenderBlockEnd("GoBack") %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="ContentColumn">
|
||||
<form id='ActivityForm' action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Activity[% Data.Action | html %]Action"/>
|
||||
<input type="hidden" name="EntityID" value="[% Data.EntityID | html %]"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
<input type="hidden" name="ActivityDialogs" value=""/>
|
||||
<input type="hidden" name="PopupRedirect" value="" id="PopupRedirect"/>
|
||||
<input type="hidden" name="PopupRedirectAction" value="" id="PopupRedirectAction"/>
|
||||
<input type="hidden" name="PopupRedirectSubaction" value="" id="PopupRedirectSubaction"/>
|
||||
<input type="hidden" name="PopupRedirectID" value="" id="PopupRedirectID"/>
|
||||
<input type="hidden" name="PopupRedirectEntityID" value="" id="PopupRedirectEntityID"/>
|
||||
|
||||
[% RenderBlockStart("EditWarning") %]
|
||||
<div class="WidgetSimple Expanded WidgetNotice">
|
||||
<div class="Content">[% Translate("Please note, that changing this activity will affect the following processes") | html %]: [% Data.ProcessList | html %]</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("EditWarning") %]
|
||||
|
||||
<div class="WidgetSimple Expanded">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("Activity") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Activity Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameServerError | html %]" maxlength="70"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple Expanded">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("Activity Dialogs") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content LayoutGrid">
|
||||
<div class="Size1of1 SpacingBottom">
|
||||
<p>
|
||||
[% Translate("You can assign Activity Dialogs to this Activity by dragging the elements with the mouse from the left list to the right list.") | html %]
|
||||
[% Translate("Ordering the elements within the list is also possible by drag 'n' drop.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<input type="text" id="FilterAvailableActivityDialogs" class="W75pc" name="FilterAvailableActivityDialogs" value="" title="[% Translate("Filter available Activity Dialogs") | html %]" placeholder="[% Translate("Filter available Activity Dialogs") | html %]..." />
|
||||
<ul class="Tablelike W90pc SpacingTop">
|
||||
<li class="Header">
|
||||
[% Translate("Available Activity Dialogs") | html %]
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="AllocationList Tablelike W90pc" id="AvailableActivityDialogs">
|
||||
[% RenderBlockStart("AvailableActivityDialogRow") %]
|
||||
<li data-id="[% Data.ID | html %]" title="[% Translate("Name: %s, EntityID: %s", Data.Name, Data.EntityID) | html %]">
|
||||
[% Data.Name | html %]
|
||||
<span class="Functions">
|
||||
<span class="AvailableIn">[% Translate(Data.AvailableIn) | html %]</span>
|
||||
<a href="#" data-entity="[% Data.EntityID | html %]" data-id="[% Data.ID | html %]" data-action="AdminProcessManagementActivityDialog" data-subaction="ActivityDialogEdit" class="AsPopup_Redirect Edit_Confirm PopupType_ActivityDialog Icon" title="[% Translate("Edit") | html %]">
|
||||
<i class="fa fa-edit"></i>
|
||||
</a>
|
||||
</span>
|
||||
</li>
|
||||
[% RenderBlockEnd("AvailableActivityDialogRow") %]
|
||||
</ul>
|
||||
<div class="SpacingTop">
|
||||
# <button>[% Translate("Create New Activity Dialog") | html %]</button>
|
||||
<!-- TODO Re-implemented as link, but it can be a button if needed (button is disabled by leading #) -->
|
||||
<a href="#" data-entity="" data-id="" data-action="AdminProcessManagementActivityDialog" data-subaction="ActivityDialogNew" class="CallForAction AsPopup_Redirect" ><span>[% Translate("Create New Activity Dialog") | html %]</span></a>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike W90pc">
|
||||
<li class="Header">
|
||||
[% Translate("Assigned Activity Dialogs") | html %]
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="AllocationList Tablelike W90pc" id="AssignedActivityDialogs">
|
||||
[% RenderBlockStart("AssignedActivityDialogRow") %]
|
||||
<li data-id="[% Data.ID | html %]" title="[% Translate("Name: %s, EntityID: %s", Data.Name, Data.EntityID) | html %]">
|
||||
[% Data.Name | html %]
|
||||
<span class="Functions">
|
||||
<span class="AvailableIn">[% Translate(Data.AvailableIn) | html %]</span>
|
||||
<a href="#" data-entity="[% Data.EntityID | html %]" data-id="[% Data.ID | html %]" data-action="AdminProcessManagementActivityDialog" data-subaction="ActivityDialogEdit" class="AsPopup_Redirect Edit_Confirm PopupType_ActivityDialog Icon" title="[% Translate("Edit") | html %]">
|
||||
<i class="fa fa-edit"></i>
|
||||
</a>
|
||||
</span>
|
||||
</li>
|
||||
[% RenderBlockEnd("AssignedActivityDialogRow") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Invisible submit button to allow form submit on pressing enter/return without javascript -->
|
||||
<input type="image" width="0" height="0" style="display: none;" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Footer">
|
||||
<button class="Primary CallForAction" id="Submit" title="[% Translate("Save") | html %]" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,245 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="LayoutPopup ARIARoleMain">
|
||||
<div class="Header">
|
||||
<h1>[% Translate(Data.Title) | html %]</h1>
|
||||
[% RenderBlockStart("ClosePopup") %]
|
||||
<p>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ClosePopup" class="ClosePopup">[% Translate("Cancel & close") | html %]</a>
|
||||
</p>
|
||||
[% RenderBlockEnd("ClosePopup") %]
|
||||
[% RenderBlockStart("GoBack") %]
|
||||
<p>
|
||||
<a class="GoBack" href="[% Env("Baselink") %]Action=[% Data.Action | uri %];Subaction=[% Data.Subaction | uri %];ID=[% Data.ID | uri %];EntityID=[% Data.EntityID | uri %]">[% Translate("Go Back") | html %]</a>
|
||||
</p>
|
||||
[% RenderBlockEnd("GoBack") %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="ContentColumn">
|
||||
<form id='ActivityDialogForm' action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="ActivityDialog[% Data.Action | html %]Action"/>
|
||||
<input type="hidden" name="EntityID" value="[% Data.EntityID | html %]"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
<input type="hidden" name="Fields" value=""/>
|
||||
<input type="hidden" name="FieldDetails" value=""/>
|
||||
<input type="hidden" name="PopupRedirect" value="" id="PopupRedirect"/>
|
||||
<input type="hidden" name="PopupRedirectAction" value="" id="PopupRedirectAction"/>
|
||||
<input type="hidden" name="PopupRedirectSubaction" value="" id="PopupRedirectSubaction"/>
|
||||
<input type="hidden" name="PopupRedirectID" value="" id="PopupRedirectID"/>
|
||||
<input type="hidden" name="PopupRedirectEntityID" value="" id="PopupRedirectEntityID"/>
|
||||
|
||||
[% RenderBlockStart("EditWarning") %]
|
||||
<div class="WidgetSimple Expanded WidgetNotice">
|
||||
<div class="Content">[% Translate("Please note that changing this activity dialog will affect the following activities") | html %]: [% Data.ActivityList | html %]</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("EditWarning") %]
|
||||
|
||||
<div class="WidgetSimple Expanded WidgetNotice">
|
||||
|
||||
<div class="Content">
|
||||
[% Translate("Please note that customer users will not be able to see or use the following fields: Owner, Responsible, Lock, PendingTime and CustomerID.") | html %]
|
||||
[% Translate("The Queue field can only be used by customers when creating a new ticket.") | html %]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple Expanded">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("Activity Dialog") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Activity dialog Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameServerError | html %]" maxlength="70"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="Interface">[% Translate("Available in") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.InterfaceSelection %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="DescriptionShort"><span class="Marker">*</span> [% Translate("Description (short)") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="DescriptionShort" id="DescriptionShort" value="[% Data.DescriptionShort | html %]" class="W50pc Validate_Required [% Data.DescriptionShortServerError | html %]" maxlength="70"/>
|
||||
<div id="DescriptionShortError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="DescriptionShortServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="DescriptionLong">[% Translate("Description (long)") | html %]:</label>
|
||||
<div class="Field">
|
||||
<textarea name="DescriptionLong" id="DescriptionLong" class="W50pc" rows="10" cols="20">[% Data.DescriptionLong | html %]</textarea>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Permission">[% Translate("Permission") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.PermissionSelection %]
|
||||
</div>
|
||||
<div id="PermissionServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("The selected permission does not exist.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="RequiredLock">[% Translate("Required Lock") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.RequiredLockSelection %]
|
||||
</div>
|
||||
<div id="RequiredLockServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("The selected required lock does not exist.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SubmitAdviceText">[% Translate("Submit Advice Text") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="SubmitAdviceText" id="SubmitAdviceText" value="[% Data.SubmitAdviceText | html %]" class="W50pc" maxlength="70"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SubmitButtonText">[% Translate("Submit Button Text") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="SubmitButtonText" id="SubmitButtonText" value="[% Data.SubmitButtonText | html %]" class="W50pc" maxlength="70"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple Expanded">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("Fields") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content LayoutGrid">
|
||||
<div class="Size1of1 SpacingBottom">
|
||||
<p>
|
||||
[% Translate("You can assign Fields to this Activity Dialog by dragging the elements with the mouse from the left list to the right list.") | html %]
|
||||
[% Translate("Ordering the elements within the list is also possible by drag 'n' drop.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<input type="text" id="FilterAvailableFields" class="W75pc" name="FilterAvailableFields" value="" title="[% Translate("Filter available fields") | html %]" placeholder="[% Translate("Filter available fields") | html %]..." />
|
||||
<ul class="Tablelike W90pc SpacingTop">
|
||||
<li class="Header">
|
||||
[% Translate("Available Fields") | html %]
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="AllocationList Tablelike W90pc" id="AvailableFields">
|
||||
[% RenderBlockStart("AvailableFieldRow") %]
|
||||
<li title="[% Data.FieldnameTranslated | html %]" data-name-translated="[% Data.FieldnameTranslated | html %]" data-id="[% Data.Field | html %]" data-config="">
|
||||
[% Data.FieldnameTranslated | html %]
|
||||
<span class="Functions ShowOnAssignedList">
|
||||
<a href="#" data-id="[% Data.Field | html %]" data-entity="[% Data.Field | html %]" class="FieldDetailsOverlay Icon" title="[% Translate("Edit") | html %]">
|
||||
<i class="fa fa-edit"></i>
|
||||
</a>
|
||||
</span>
|
||||
</li>
|
||||
[% RenderBlockEnd("AvailableFieldRow") %]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike W90pc">
|
||||
<li class="Header">
|
||||
[% Translate("Assigned Fields") | html %]
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="AllocationList Tablelike W90pc" id="AssignedFields">
|
||||
[% RenderBlockStart("AssignedFieldRow") %]
|
||||
<li data-name-translated="[% Translate(Data.Field) | html %]" data-id="[% Data.Field | html %]" data-entity="[% Data.Field | html %]" data-config="[% Data.FieldConfig | html %]" title="Name: [% Translate(Data.Field) | html %]">
|
||||
[% Translate(Data.Field) | html %]
|
||||
<span class="Functions ShowOnAssignedList">
|
||||
<a href="#" data-id="[% Data.Field | html %]" data-entity="[% Data.Field | html %]" class="FieldDetailsOverlay Icon" title="[% Translate("Edit") | html %]">
|
||||
<i class="fa fa-edit"></i>
|
||||
</a>
|
||||
</span>
|
||||
</li>
|
||||
[% RenderBlockEnd("AssignedFieldRow") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Invisible submit button to allow form submit on pressing enter/return without javascript -->
|
||||
<input type="image" width="0" height="0" style="display: none;" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Footer">
|
||||
<button class="Primary CallForAction" id="Submit" title="[% Translate("Save") | html %]" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="Dialogs" class="Hidden">
|
||||
<div id="FieldDetails">
|
||||
<div style="width: 500px;">
|
||||
<fieldset class="TableLike">
|
||||
<label for="DescShort">[% Translate("Description (short)") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="DescShort" id="DescShort" value="" class="W50pc" maxlength="70"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="DescLong">[% Translate("Description (long)") | html %]:</label>
|
||||
<div class="Field">
|
||||
<textarea name="DescLong" id="DescLong" class="W50pc"></textarea>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="DefaultValue">[% Translate("Default value") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="DefaultValue" id="DefaultValue" value="" class="W50pc" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="CommunicationChannel">[% Translate("Communication Channel") | html %]:</label>
|
||||
<div class="Field" id="CommunicationChannelContainer" class='Hidden'>
|
||||
[% Data.CommunicationChannelSelection %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="IsVisibleForCustomer">[% Translate("Is visible for customer") | html %]:</label>
|
||||
<div class="Field" id="IsVisibleForCustomerContainer" class='Hidden'>
|
||||
<input type="checkbox" name="IsVisibleForCustomer" id="IsVisibleForCustomer"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("TimeUnitsContainer") %]
|
||||
<label for="TimeUnits">[% Translate("Time units") | html %]:</label>
|
||||
<div class="Field" id="TimeUnitsContainer" class="Hidden">
|
||||
[% Data.TimeUnitsSelection %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("TimeUnitsContainer") %]
|
||||
|
||||
<label for="Display">[% Translate("Display") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DisplaySelection %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,116 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="LayoutPopup ARIARoleMain">
|
||||
<div class="Header">
|
||||
<h1>[% Translate(Data.Title) | html %]</h1>
|
||||
[% RenderBlockStart("ClosePopup") %]
|
||||
<p>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ClosePopup" class="ClosePopup">[% Translate("Cancel & close") | html %]</a>
|
||||
</p>
|
||||
[% RenderBlockEnd("ClosePopup") %]
|
||||
[% RenderBlockStart("GoBack") %]
|
||||
<p>
|
||||
<a class="GoBack" href="[% Env("Baselink") %]Action=[% Data.Action | uri %];Subaction=[% Data.Subaction | uri %];ID=[% Data.ID | uri %];EntityID=[% Data.EntityID | uri %]">[% Translate("Go Back") | html %]</a>
|
||||
</p>
|
||||
[% RenderBlockEnd("GoBack") %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="ContentColumn">
|
||||
<form id="PathForm" action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Path[% Data.Action | html %]Action"/>
|
||||
<input type="hidden" name="ProcessEntityID" value="[% Data.ProcessEntityID %]" id="ProcessEntityID"/>
|
||||
<input type="hidden" name="TransitionEntityID" value="[% Data.TransitionEntityID %]" id="TransitionEntityID"/>
|
||||
<input type="hidden" name="StartActivityID" value="[% Data.StartActivityID %]" id="StartActivityID"/>
|
||||
<input type="hidden" name="ProcessData" value="" id="ProcessData"/>
|
||||
<input type="hidden" name="TransitionInfo" value="" id="TransitionInfo"/>
|
||||
<input type="hidden" name="PopupRedirect" value="" id="PopupRedirect"/>
|
||||
<input type="hidden" name="PopupRedirectAction" value="" id="PopupRedirectAction"/>
|
||||
<input type="hidden" name="PopupRedirectSubaction" value="" id="PopupRedirectSubaction"/>
|
||||
<input type="hidden" name="PopupRedirectID" value="" id="PopupRedirectID"/>
|
||||
<input type="hidden" name="PopupRedirectEntityID" value="" id="PopupRedirectEntityID"/>
|
||||
<input type="hidden" name="PopupRedirectStartActivityID" value="" id="PopupRedirectStartActivityID"/>
|
||||
|
||||
<div class="WidgetSimple Expanded">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("Path") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="Path">
|
||||
<li id="StartActivity" class="StartActivity"></li>
|
||||
<li class="Transition">
|
||||
[% Data.Transition %]
|
||||
<span></span>
|
||||
</li>
|
||||
<li id="EndActivity" class="EndActivity"></li>
|
||||
</ul>
|
||||
<div id="EditPath"><a href="#" data-action="AdminProcessManagementTransition" data-subaction="TransitionEdit" class="AsPopup_Redirect Edit_Confirm PopupType_Transition">[% Translate("Edit this transition") | html %]</a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple Expanded">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("Transition Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content LayoutGrid">
|
||||
<div class="Size1of1 SpacingBottom">
|
||||
<p>
|
||||
[% Translate("You can assign Transition Actions to this Transition by dragging the elements with the mouse from the left list to the right list.") | html %]
|
||||
[% Translate("Ordering the elements within the list is also possible by drag 'n' drop.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<input type="text" id="FilterAvailableTransitionActions" class="W75pc" name="FilterAvailableTransitionActions" value="" title="[% Translate("Filter available Transition Actions") | html %]" placeholder="[% Translate("Filter available Transition Actions") | html %]..." />
|
||||
<ul class="Tablelike W90pc SpacingTop">
|
||||
<li class="Header">
|
||||
[% Translate("Available Transition Actions") | html %]
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="AllocationList Tablelike W90pc" id="AvailableTransitionActions">
|
||||
[% RenderBlockStart("AvailableTransitionActionRow") %]
|
||||
<li data-id="[% Data.ID | html %]" id="[% Data.EntityID | html %]" title="[% Translate("Name: %s, EntityID: %s", Data.Name, Data.EntityID) | html %]">
|
||||
[% Data.Name | html %] ([% Data.EntityID | html %])
|
||||
<span class="Functions">
|
||||
<a href="#" data-entity="[% Data.EntityID | html %]" data-id="[% Data.ID | html %]" data-action="AdminProcessManagementTransitionAction" data-subaction="TransitionActionEdit" class="AsPopup_Redirect Edit_Confirm PopupType_TransitionAction Icon" title="[% Translate("Edit") | html %]">
|
||||
<i class="fa fa-edit"></i>
|
||||
</a>
|
||||
</span>
|
||||
</li>
|
||||
[% RenderBlockEnd("AvailableTransitionActionRow") %]
|
||||
</ul>
|
||||
<div class="SpacingTop">
|
||||
<a href="#" data-entity="" data-id="" data-action="AdminProcessManagementTransitionAction" data-subaction="TransitionActionNew" class="CallForAction AsPopup_Redirect Edit_Confirm"><span>[% Translate("Create New Transition Action") | html %]</span></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike W90pc">
|
||||
<li class="Header">
|
||||
[% Translate("Assigned Transition Actions") | html %]
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="AllocationList Tablelike W90pc" id="AssignedTransitionActions">
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Invisible submit button to allow form submit on pressing enter/return without javascript -->
|
||||
<input type="image" width="0" height="0" style="display: none;" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Footer">
|
||||
<button class="Primary CallForAction" id="Submit" title="[% Translate("Save") | html %]" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,10 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
<div class="Spacing Center AJAXWaiting">
|
||||
<span class="AJAXLoader" title="[% Translate("Loading") | html %]"></span>
|
||||
</div>
|
||||
@@ -0,0 +1,103 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<ul id="ProcessElements">
|
||||
<li class="AccordionElement Active">
|
||||
<h2><a href="#" class="AsBlock"><span><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></span>[% Translate("Activities") | html %]</a></h2>
|
||||
<div class="Content">
|
||||
<input type="text" id="ActivityFilter" class="ProcessElementFilter W75pc" placeholder="[% Translate("Filter Activities...") | html %]" />
|
||||
<ul class="Tablelike" id="Activities">
|
||||
[% RenderBlockStart("ActivityRow") %]
|
||||
<li class="OneRow" data-entity="[% Data.EntityID | html %]" data-id="[% Data.ID | html %]">
|
||||
<div class="AsBlock W80pc" title="[% Data.Name | html %] ([% Data.EntityID | html %])">[% Data.Name | html %]</div>
|
||||
<span>
|
||||
<a href="#" title="[% Translate("Delete") | html %]" class="DeleteEntity DeleteActivity"><i class="fa fa-trash-o"></i></a>
|
||||
<a href="[% Env("Baselink") %]Action=AdminProcessManagementActivity;Subaction=ActivityEdit;ID=[% Data.ID | uri %];EntityID=[% Data.EntityID | uri %]" title="[% Translate("Edit") | html %]" class="AsPopup PopupType_Activity"><i class="fa fa-edit"></i></a>
|
||||
</span>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActivityRow") %]
|
||||
[% RenderBlockStart("ActivityNoDataRow") %]
|
||||
<li title="[% Data.Name | html %]">
|
||||
[% Translate("No data found.") | html %]
|
||||
</li>
|
||||
[% RenderBlockEnd("ActivityNoDataRow") %]
|
||||
</ul>
|
||||
<a href="[% Env("Baselink") %]Action=AdminProcessManagementActivity;Subaction=ActivityNew;" class="CallForAction AsPopup PopupType_Activity Fullsize Center ProcessElementButton"><span><i class="fa fa-plus-square"></i>[% Translate("Create New Activity") | html %]</span></a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="AccordionElement">
|
||||
<h2><a href="#" class="AsBlock"><span><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></span>[% Translate("Activity Dialogs") | html %]</a></h2>
|
||||
<div class="Content">
|
||||
<input type="text" id="ActivityDialogFilter" class="ProcessElementFilter W75pc" placeholder="[% Translate("Filter Activity Dialogs...") | html %]" />
|
||||
<ul class="Tablelike" id="ActivityDialogs">
|
||||
[% RenderBlockStart("ActivityDialogRow") %]
|
||||
<li class="OneRow" data-entity="[% Data.EntityID | html %]" data-id="[% Data.ID | html %]">
|
||||
<div class="AsBlock W80pc" title="[% Data.Name | html %] ([% Data.EntityID | html %])">[% Data.Name | html %]</div>
|
||||
<span>
|
||||
<a href="#" title="[% Translate("Delete") | html %]" class="DeleteEntity DeleteActivityDialog"><i class="fa fa-trash-o"></i></a>
|
||||
<a href="[% Env("Baselink") %]Action=AdminProcessManagementActivityDialog;Subaction=ActivityDialogEdit;ID=[% Data.ID | uri %];EntityID=[% Data.EntityID | uri %]" title="[% Translate("Edit") | html %]" class="AsPopup PopupType_ActivityDialog"><i class="fa fa-edit"></i></a>
|
||||
<span class="AvailableIn">[% Translate(Data.AvailableIn) | html %]</span>
|
||||
</span>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActivityDialogRow") %]
|
||||
[% RenderBlockStart("ActivityDialogNoDataRow") %]
|
||||
<li title="[% Data.Name | html %]">
|
||||
[% Translate("No data found.") | html %]
|
||||
</li>
|
||||
[% RenderBlockEnd("ActivityDialogNoDataRow") %]
|
||||
</ul>
|
||||
<a href="[% Env("Baselink") %]Action=AdminProcessManagementActivityDialog;Subaction=ActivityDialogNew;" class="CallForAction AsPopup PopupType_ActivityDialog Fullsize Center ProcessElementButton"><span><i class="fa fa-plus-square"></i>[% Translate("Create New Activity Dialog") | html %]</span></a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="AccordionElement">
|
||||
<h2><a href="#" class="AsBlock"><span><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></span>[% Translate("Transitions") | html %]</a></h2>
|
||||
<div class="Content">
|
||||
<input type="text" id="TransitionFilter" class="ProcessElementFilter W75pc" placeholder="[% Translate("Filter Transitions...") | html %]" />
|
||||
<ul class="Tablelike" id="Transitions">
|
||||
[% RenderBlockStart("TransitionRow") %]
|
||||
<li class="OneRow" data-entity="[% Data.EntityID | html %]" data-id="[% Data.ID | html %]">
|
||||
<div class="AsBlock W80pc" title="[% Data.Name | html %] ([% Data.EntityID | html %])">[% Data.Name | html %]</div>
|
||||
<span>
|
||||
<a href="#" title="[% Translate("Delete") | html %]" class="DeleteEntity DeleteTransition"><i class="fa fa-trash-o"></i></a>
|
||||
<a href="[% Env("Baselink") %]Action=AdminProcessManagementTransition;Subaction=TransitionEdit;ID=[% Data.ID | uri %];EntityID=[% Data.EntityID | uri %]" title="[% Translate("Edit") | html %]" class="AsPopup PopupType_Transition"><i class="fa fa-edit"></i></a>
|
||||
</span>
|
||||
</li>
|
||||
[% RenderBlockEnd("TransitionRow") %]
|
||||
[% RenderBlockStart("TransitionNoDataRow") %]
|
||||
<li title="[% Data.Name | html %]">
|
||||
[% Translate("No data found.") | html %]
|
||||
</li>
|
||||
[% RenderBlockEnd("TransitionNoDataRow") %]
|
||||
</ul>
|
||||
<a href="[% Env("Baselink") %]Action=AdminProcessManagementTransition;Subaction=TransitionNew;" class="CallForAction AsPopup PopupType_Transition Fullsize Center ProcessElementButton"><span><i class="fa fa-plus-square"></i>[% Translate("Create New Transition") | html %]</span></a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="AccordionElement">
|
||||
<h2><a href="#" class="AsBlock"><span><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></span>[% Translate("Transition Actions") | html %]</a></h2>
|
||||
<div class="Content">
|
||||
<input type="text" id="TransitionActionFilter" class="ProcessElementFilter W75pc" placeholder="[% Translate("Filter Transition Actions...") | html %]" />
|
||||
<ul class="Tablelike" id="TransitionActions">
|
||||
[% RenderBlockStart("TransitionActionRow") %]
|
||||
<li class="OneRow" data-entity="[% Data.EntityID | html %]" data-id="[% Data.ID | html %]">
|
||||
<div class="AsBlock W80pc" title="[% Data.Name | html %] ([% Data.EntityID | html %])">[% Data.Name | html %]</div>
|
||||
<span>
|
||||
<a href="#" title="[% Translate("Delete") | html %]" class="DeleteEntity DeleteTransitionAction"><i class="fa fa-trash-o"></i></a>
|
||||
<a href="[% Env("Baselink") %]Action=AdminProcessManagementTransitionAction;Subaction=TransitionActionEdit;ID=[% Data.ID | uri %];EntityID=[% Data.EntityID | uri %]" title="[% Translate("Edit") | html %]" class="AsPopup PopupType_TransitionAction"><i class="fa fa-edit"></i></a>
|
||||
</span>
|
||||
</li>
|
||||
[% RenderBlockEnd("TransitionActionRow") %]
|
||||
[% RenderBlockStart("TransitionActionNoDataRow") %]
|
||||
<li title="[% Data.Name | html %]">
|
||||
[% Translate("No data found.") | html %]
|
||||
</li>
|
||||
[% RenderBlockEnd("TransitionActionNoDataRow") %]
|
||||
</ul>
|
||||
<a href="[% Env("Baselink") %]Action=AdminProcessManagementTransitionAction;Subaction=TransitionActionNew;" class="CallForAction AsPopup PopupType_TransitionAction Fullsize Center ProcessElementButton"><span><i class="fa fa-plus-square"></i>[% Translate("Create New Transition Action") | html %]</span></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -0,0 +1,311 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst ProcessManagementEditScreen">
|
||||
<h1 class="InvisibleText">[% Translate("Edit Process") | html %] "[% Data.Name | html %]"</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Process Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% USE EditTitle = String(Translate("Edit Process")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Name ) }) %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Center Fullsize Back"><span><i class="fa fa-caret-left"></i> [% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ProcessPrint;ID=[% Data.ID | uri %];[% Env("ChallengeTokenParam") | html %]" class="CallForAction Fullsize Center AsPopup PopupType_ProcessOverview"><span><i class="fa fa-print"></i> [% Translate("Print process information") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockStart("ProcessDeleteAction") %]
|
||||
<li>
|
||||
<a href="#" id="ProcessDelete" class="CallForAction Fullsize Center" data-dialog-element="DeleteProcessConfirmationDialog" data-dialog-title="[% Translate("Delete Process") | html %]" data-id="[% Data.ID | html %]"><span><i class="fa fa-trash-o"></i> [% Translate("Delete Inactive Process") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ProcessDeleteAction") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple ScreenXL">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Available Process Elements") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul id="ProcessElements">
|
||||
<li class="AccordionElement Active">
|
||||
<h2><a href="#" class="AsBlock"><span><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></span>[% Translate("Activities") | html %]</a></h2>
|
||||
<div class="Content">
|
||||
<input type="text" id="ActivityFilter" class="ProcessElementFilter W75pc" placeholder="[% Translate("Filter Activities...") | html %]" title="[% Translate("Filter Activities...") | html %]" />
|
||||
<ul class="Tablelike" id="Activities">
|
||||
[% RenderBlockStart("ActivityRow") %]
|
||||
<li class="OneRow" data-entity="[% Data.EntityID | html %]" data-id="[% Data.ID | html %]">
|
||||
<div class="AsBlock W80pc" title="[% Data.Name | html %] ([% Data.EntityID | html %])">[% Data.Name | html %]</div>
|
||||
<span>
|
||||
<a href="#" title="[% Translate("Delete") | html %]" class="DeleteEntity DeleteActivity"><i class="fa fa-trash-o"></i></a>
|
||||
<a href="[% Env("Baselink") %]Action=AdminProcessManagementActivity;Subaction=ActivityEdit;ID=[% Data.ID | uri %];EntityID=[% Data.EntityID | uri %]" title="[% Translate("Edit") | html %]" class="AsPopup PopupType_Activity"><i class="fa fa-edit"></i></a>
|
||||
</span>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActivityRow") %]
|
||||
[% RenderBlockStart("ActivityNoDataRow") %]
|
||||
<li title="[% Data.Name | html %]">
|
||||
[% Translate("No data found.") | html %]
|
||||
</li>
|
||||
[% RenderBlockEnd("ActivityNoDataRow") %]
|
||||
</ul>
|
||||
<a href="[% Env("Baselink") %]Action=AdminProcessManagementActivity;Subaction=ActivityNew;" class="CallForAction AsPopup PopupType_Activity Fullsize ProcessElementButton Center ProcessElementButton" ><span><i class="fa fa-plus-square"></i> [% Translate("Create New Activity") | html %]</span></a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="AccordionElement">
|
||||
<h2><a href="#" class="AsBlock"><span><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></span>[% Translate("Activity Dialogs") | html %]</a></h2>
|
||||
<div class="Content">
|
||||
<input type="text" id="ActivityDialogFilter" class="ProcessElementFilter W75pc" placeholder="[% Translate("Filter Activity Dialogs...") | html %]" title="[% Translate("Filter Activity Dialogs...") | html %]" />
|
||||
<ul class="Tablelike" id="ActivityDialogs">
|
||||
[% RenderBlockStart("ActivityDialogRow") %]
|
||||
<li class="OneRow" data-entity="[% Data.EntityID | html %]" data-id="[% Data.ID | html %]">
|
||||
<div class="AsBlock W60pc" title="[% Data.Name | html %] ([% Data.EntityID | html %])">[% Data.Name | html %]</div>
|
||||
<span>
|
||||
<a href="#" title="[% Translate("Delete") | html %]" class="DeleteEntity DeleteActivityDialog"><i class="fa fa-trash-o"></i></a>
|
||||
<a href="[% Env("Baselink") %]Action=AdminProcessManagementActivityDialog;Subaction=ActivityDialogEdit;ID=[% Data.ID | uri %];EntityID=[% Data.EntityID | uri %]" title="[% Translate("Edit") | html %]" class="AsPopup PopupType_ActivityDialog"><i class="fa fa-edit"></i></a>
|
||||
<span class="AvailableIn">[% Translate(Data.AvailableIn) | html %]</span>
|
||||
</span>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActivityDialogRow") %]
|
||||
[% RenderBlockStart("ActivityDialogNoDataRow") %]
|
||||
<li title="[% Data.Name | html %]">
|
||||
[% Translate("No data found.") | html %]
|
||||
</li>
|
||||
[% RenderBlockEnd("ActivityDialogNoDataRow") %]
|
||||
</ul>
|
||||
<a href="[% Env("Baselink") %]Action=AdminProcessManagementActivityDialog;Subaction=ActivityDialogNew;" class="CallForAction AsPopup PopupType_ActivityDialog Center Fullsize ProcessElementButton" ><span><i class="fa fa-plus-square"></i> [% Translate("Create New Activity Dialog") | html %]</span></a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="AccordionElement">
|
||||
<h2><a href="#" class="AsBlock">
|
||||
<span>
|
||||
<i class="fa fa-caret-right"></i>
|
||||
<i class="fa fa-caret-down"></i>
|
||||
</span>
|
||||
[% Translate("Transitions") | html %]</a>
|
||||
</h2>
|
||||
<div class="Content">
|
||||
<input type="text" id="TransitionFilter" class="ProcessElementFilter W75pc" placeholder="[% Translate("Filter Transitions...") | html %]" title="[% Translate("Filter Transitions...") | html %]" />
|
||||
<ul class="Tablelike" id="Transitions">
|
||||
[% RenderBlockStart("TransitionRow") %]
|
||||
<li class="OneRow" data-entity="[% Data.EntityID | html %]" data-id="[% Data.ID | html %]">
|
||||
<div class="AsBlock W80pc" title="[% Data.Name | html %] ([% Data.EntityID | html %])">[% Data.Name | html %]</div>
|
||||
<span>
|
||||
<a href="#" title="[% Translate("Delete") | html %]" class="DeleteEntity DeleteTransition"><i class="fa fa-trash-o"></i></a>
|
||||
<a href="[% Env("Baselink") %]Action=AdminProcessManagementTransition;Subaction=TransitionEdit;ID=[% Data.ID | uri %];EntityID=[% Data.EntityID | uri %]" title="[% Translate("Edit") | html %]" class="AsPopup PopupType_Transition"><i class="fa fa-edit"></i></a>
|
||||
</span>
|
||||
</li>
|
||||
[% RenderBlockEnd("TransitionRow") %]
|
||||
[% RenderBlockStart("TransitionNoDataRow") %]
|
||||
<li title="[% Data.Name | html %]">
|
||||
[% Translate("No data found.") | html %]
|
||||
</li>
|
||||
[% RenderBlockEnd("TransitionNoDataRow") %]
|
||||
</ul>
|
||||
<a href="[% Env("Baselink") %]Action=AdminProcessManagementTransition;Subaction=TransitionNew;" class="CallForAction AsPopup PopupType_Transition Center Fullsize ProcessElementButton" ><span><i class="fa fa-plus-square"></i> [% Translate("Create New Transition") | html %]</span></a>
|
||||
</div>
|
||||
</li>
|
||||
<li class="AccordionElement">
|
||||
<h2><a href="#" class="AsBlock"><span><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></span>[% Translate("Transition Actions") | html %]</a></h2>
|
||||
<div class="Content">
|
||||
<input type="text" id="TransitionActionFilter" class="ProcessElementFilter W75pc" placeholder="[% Translate("Filter Transition Actions...") | html %]" title="[% Translate("Filter Transition Actions...") | html %]" />
|
||||
<ul class="Tablelike" id="TransitionActions">
|
||||
[% RenderBlockStart("TransitionActionRow") %]
|
||||
<li class="OneRow" data-entity="[% Data.EntityID | html %]" data-id="[% Data.ID | html %]">
|
||||
<div class="AsBlock W80pc" title="[% Data.Name | html %] ([% Data.EntityID | html %])">[% Data.Name | html %]</div>
|
||||
<span>
|
||||
<a href="#" title="[% Translate("Delete") | html %]" class="DeleteEntity DeleteTransitionAction"><i class="fa fa-trash-o"></i></a>
|
||||
<a href="[% Env("Baselink") %]Action=AdminProcessManagementTransitionAction;Subaction=TransitionActionEdit;ID=[% Data.ID | uri %];EntityID=[% Data.EntityID | uri %]" title="[% Translate("Edit") | html %]" class="AsPopup PopupType_TransitionAction"><i class="fa fa-edit"></i></a>
|
||||
</span>
|
||||
</li>
|
||||
[% RenderBlockEnd("TransitionActionRow") %]
|
||||
[% RenderBlockStart("TransitionActionNoDataRow") %]
|
||||
<li title="[% Data.Name | html %]">
|
||||
[% Translate("No data found.") | html %]
|
||||
</li>
|
||||
[% RenderBlockEnd("TransitionActionNoDataRow") %]
|
||||
</ul>
|
||||
<a href="[% Env("Baselink") %]Action=AdminProcessManagementTransitionAction;Subaction=TransitionActionNew;" class="CallForAction AsPopup PopupType_TransitionAction Center Fullsize ProcessElementButton" ><span><i class="fa fa-plus-square"></i> [% Translate("Create New Transition Action") | html %]</span></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Description") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The Elements listed above in this sidebar can be moved to the canvas area on the right by using drag'n'drop.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
<strong>[% Translate("Activities") | html %]:</strong> [% Translate("You can place Activities on the canvas area to assign this Activity to the Process.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
<strong>[% Translate("Activity Dialogs") | html %]:</strong> [% Translate("To assign an Activity Dialog to an Activity drop the Activity Dialog element from this sidebar over the Activity placed in the canvas area.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
<strong>[% Translate("Transitions") | html %]:</strong> [% Translate("You can start a connection between two Activities by dropping the Transition element over the Start Activity of the connection. After that you can move the loose end of the arrow to the End Activity.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
<strong>[% Translate("Transition Actions") | html %]:</strong> [% Translate("Actions can be assigned to a Transition by dropping the Action Element onto the label of a Transition.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" id="ProcessForm" class="Validate PreventMultipleSubmits">
|
||||
|
||||
<div class="WidgetSimple Expanded ScreenXL">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("Edit Process Information") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="ProcessEditAction"/>
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<input type="hidden" name="ProcessLayout" value=""/>
|
||||
<input type="hidden" name="Path" value=""/>
|
||||
<input type="hidden" name="StartActivity" value=""/>
|
||||
<input type="hidden" name="StartActivityDialog" value=""/>
|
||||
<input type="hidden" name="EntityID" id="ProcessEntityID" value="[% Data.EntityID | html %]"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Process Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W75pc Validate_Required [% Data.NameServerError | html %]" maxlength="70"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="Description"><span class="Marker">*</span> [% Translate("Description") | html %]:</label>
|
||||
<div class="Field">
|
||||
<textarea name="Description" id="Description" class="W75pc Validate_Required [% Data.DescriptionServerError | html %]" rows="7" cols="20">[% Data.Description | html %]</textarea>
|
||||
<div id="DescriptionError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="DescriptionServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="StateEntityID">[% Translate("State") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.StateSelection %]
|
||||
</div>
|
||||
<div id="StateEntityIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("The selected state does not exist.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple ScreenXL">
|
||||
<div class="Header Expanded">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("Add and Edit Activities, Activity Dialogs and Transitions") | html %]</h2>
|
||||
<div class="CanvasActions">
|
||||
<a href="#" id="ShowEntityIDs">[% Translate("Show EntityIDs") | html %]</a>
|
||||
<a href="#" id="ExtendCanvasWidth" title="[% Translate("Extend the width of the Canvas") | html %]"><i class="fa fa-arrows-h"></i></a>
|
||||
<a href="#" id="ExtendCanvasHeight" title="[% Translate("Extend the height of the Canvas") | html %]"><i class="fa fa-arrows-v"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div id="Canvas">
|
||||
</div>
|
||||
<div class="DiagramDeleteLink"><a href="#" title="[% Translate("Remove the Activity from this Process") | html %]"><i class="fa fa-trash-o"></i></a></div>
|
||||
<div class="DiagramEditLink"><a href="#" title="[% Translate("Edit this Activity") | html %]"><i class="fa fa-edit"></i></a></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple ScreenXL">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Save Activities, Activity Dialogs and Transitions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
<div class="Field SaveButtons">
|
||||
<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>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]"><span>[% Translate("Cancel") | html %]</span></a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[% InsertTemplate("MobileNotAvailableWidget.tt") %]
|
||||
|
||||
</form>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
<div id="Dialogs" class="Hidden">
|
||||
<div id="DeleteProcessConfirmationDialog">
|
||||
<p>[% Translate("Do you really want to delete this Process?") | html %]</p>
|
||||
<p class="SpacingTop"><strong>[% Data.Name | html %]</strong></p>
|
||||
</div>
|
||||
<div id="DeleteActivityConfirmationDialog">
|
||||
<p>[% Translate("Do you really want to delete this Activity?") | html %]</p>
|
||||
<p class="SpacingTop"><strong><span class="EntityName"></span></strong></p>
|
||||
</div>
|
||||
<div id="DeleteActivityDialogConfirmationDialog">
|
||||
<p>[% Translate("Do you really want to delete this Activity Dialog?") | html %]</p>
|
||||
<p class="SpacingTop"><strong><span class="EntityName"></span></strong></p>
|
||||
</div>
|
||||
<div id="DeleteTransitionConfirmationDialog">
|
||||
<p>[% Translate("Do you really want to delete this Transition?") | html %]</p>
|
||||
<p class="SpacingTop"><strong><span class="EntityName"></span></strong></p>
|
||||
</div>
|
||||
<div id="DeleteTransitionActionConfirmationDialog">
|
||||
<p>[% Translate("Do you really want to delete this Transition Action?") | html %]</p>
|
||||
<p class="SpacingTop"><strong><span class="EntityName"></span></strong></p>
|
||||
</div>
|
||||
<div id="RemoveActivityCanvasConfirmationDialog">
|
||||
<p>[% Translate("Do you really want to remove this activity from the canvas? This can only be undone by leaving this screen without saving.") | html %]</p>
|
||||
<p class="SpacingTop"><strong><span class="EntityName"></span></strong></p>
|
||||
</div>
|
||||
<div id="RemovePathCanvasConfirmationDialog">
|
||||
<p>[% Translate("Do you really want to remove this transition from the canvas? This can only be undone by leaving this screen without saving.") | html %]</p>
|
||||
<p class="SpacingTop"><strong><span class="EntityName"></span></strong></p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,107 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Create New Process") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Process Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
{
|
||||
Name => Translate("Create New Process"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center Back"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Description") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("In this screen, you can create a new process. In order to make the new process available to users, please make sure to set its state to 'Active' and synchronize after completing your work.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Create New Process") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="ProcessNewAction"/>
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Process Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameServerError | html %]" maxlength="70"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="Description"><span class="Marker">*</span> [% Translate("Description") | html %]:</label>
|
||||
<div class="Field">
|
||||
<textarea name="Description" id="Description" class="W50pc Validate_Required [% Data.DescriptionServerError | html %]" rows="5">[% Data.Description | html %]</textarea>
|
||||
<div id="DescriptionError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="DescriptionServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="StateEntityID">[% Translate("State") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.StateSelection %]
|
||||
</div>
|
||||
<div id="StateEntityIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("The selected state does not exist.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Primary CallForAction" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]"><span>[% Translate("Cancel") | html %]</span></a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,178 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="LayoutPopup ARIARoleMain">
|
||||
<div class="Header">
|
||||
<h1>
|
||||
[% Translate("Print process information") | html %]
|
||||
</h1>
|
||||
<p>
|
||||
<a class="ProcessPrint" href="#">[% Translate("Print") | html %]</a>
|
||||
[% Translate("or") | html %]
|
||||
<a class="CancelClosePopup" href="#">[% Translate("cancel & close") | html %]</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<div class="PrintContainer">
|
||||
|
||||
[% RenderBlockStart("Logo") %]
|
||||
<img src="[% Data.LogoURL | html %]" class="Logo" />
|
||||
[% RenderBlockEnd("Logo") %]
|
||||
<h1>[% Data.Name | html %]</h1>
|
||||
<h2>
|
||||
[% Translate("State") | html %]: [% Data.State | html %]<br />
|
||||
[% Translate("Start Activity") | html %]: [% Data.StartActivity | html %]<br />
|
||||
[% Translate("Description") | html %]: [% Data.Description | html %]
|
||||
</h2>
|
||||
|
||||
<ul id="Path">
|
||||
[% RenderBlockStart("PathItem") %]
|
||||
<li><span>[% Data.ActivityStart | html %]</span> <strong><em>[% Data.Transition | html %] [% Data.TransitionActions | html %]</em><span></span></strong> <span>[% Data.ActivityEnd | html %]</span></li>
|
||||
[% RenderBlockEnd("PathItem") %]
|
||||
</ul>
|
||||
|
||||
<h3>[% Translate("Activities") | html %]</h3>
|
||||
<ul class="ItemData">
|
||||
[% RenderBlockStart("ActivityRow") %]
|
||||
<li>
|
||||
<h4>
|
||||
[% Data.Name | html %] ([% Data.EntityID | html %])
|
||||
<span>[% Translate("Contains %s dialog(s)", Data.DialogCount) | html %]</span>
|
||||
</h4>
|
||||
[% RenderBlockStart("AssignedDialogs") %]
|
||||
<strong>[% Translate("Assigned dialogs") | html %]:</strong>
|
||||
<ol>
|
||||
[% RenderBlockStart("AssignedDialogsRow") %]
|
||||
<li>[% Data.Name | html %] ([% Data.EntityID | html %])</li>
|
||||
[% RenderBlockEnd("AssignedDialogsRow") %]
|
||||
</ol>
|
||||
[% RenderBlockEnd("AssignedDialogs") %]
|
||||
</li>
|
||||
[% RenderBlockEnd("ActivityRow") %]
|
||||
[% RenderBlockStart("ActivityRowEmpty") %]
|
||||
<li>
|
||||
[% Translate("Activities are not being used in this process.") | html %]
|
||||
</li>
|
||||
[% RenderBlockEnd("ActivityRowEmpty") %]
|
||||
</ul>
|
||||
|
||||
<h3>[% Translate("Activity Dialogs") | html %]</h3>
|
||||
<ul class="ItemData">
|
||||
[% RenderBlockStart("ActivityDialogRow") %]
|
||||
<li>
|
||||
<h4>
|
||||
[% Data.Name | html %] ([% Data.EntityID | html %])
|
||||
<span>[% Translate("Available in") | html %] [% Data.ShownIn | html %]</span>
|
||||
</h4>
|
||||
<ul class="Attributes">
|
||||
[% RenderBlockStart("ElementAttribute") %]
|
||||
<li><strong>[% Data.Key | html %]</strong>: [% Data.Value | html %]</li>
|
||||
[% RenderBlockEnd("ElementAttribute") %]
|
||||
</ul>
|
||||
[% RenderBlockStart("AssignedFields") %]
|
||||
<strong>[% Translate("Assigned fields") | html %]:</strong>
|
||||
<ol>
|
||||
[% RenderBlockStart("AssignedFieldsRow") %]
|
||||
<li>
|
||||
[% Data.Name | html %]
|
||||
[% RenderBlockStart("AssignedFieldsRowValue") %]
|
||||
<p><strong>[% Data.Key | html %]</strong>: [% Data.Value | html %]</p>
|
||||
[% RenderBlockEnd("AssignedFieldsRowValue") %]
|
||||
</li>
|
||||
[% RenderBlockEnd("AssignedFieldsRow") %]
|
||||
</ol>
|
||||
[% RenderBlockEnd("AssignedFields") %]
|
||||
</li>
|
||||
[% RenderBlockEnd("ActivityDialogRow") %]
|
||||
[% RenderBlockStart("ActivityDialogRowEmpty") %]
|
||||
<li>
|
||||
[% Translate("Activity dialogs are not being used in this process.") | html %]
|
||||
</li>
|
||||
[% RenderBlockEnd("ActivityDialogRowEmpty") %]
|
||||
</ul>
|
||||
|
||||
<h3>[% Translate("Transitions") | html %]</h3>
|
||||
<ul class="ItemData">
|
||||
[% RenderBlockStart("TransitionRow") %]
|
||||
<li>
|
||||
<h4>
|
||||
[% Data.Name | html %] ([% Data.EntityID | html %])
|
||||
<span>[% Translate("Condition linking") | html %]: [% Data.ConditionLinking | html %]</span>
|
||||
</h4>
|
||||
[% RenderBlockStart("Condition") %]
|
||||
<strong>[% Translate("Conditions") | html %]:</strong>
|
||||
<ol>
|
||||
[% RenderBlockStart("ConditionRow") %]
|
||||
<li>
|
||||
[% Translate("Condition") | html %]
|
||||
[% RenderBlockStart("ConditionRowValue") %]
|
||||
<p><strong>[% Data.Key | html %]</strong>: [% Data.Value | html %]</p>
|
||||
[% RenderBlockEnd("ConditionRowValue") %]
|
||||
[% RenderBlockStart("ConditionRowSub") %]
|
||||
<ul>
|
||||
<li>
|
||||
<h5>[% Data.NameSub | html %]:</h5>
|
||||
[% RenderBlockStart("ConditionRowSubValue") %]
|
||||
<p class="sub"><strong>[% Data.Key | html %]</strong>: [% Data.Value | html %]</p>
|
||||
[% RenderBlockEnd("ConditionRowSubValue") %]
|
||||
[% RenderBlockStart("ConditionRowSubSub") %]
|
||||
<ul>
|
||||
<li>
|
||||
<h6>[% Data.NameSubSub | html %]</h6>
|
||||
</li>
|
||||
[% RenderBlockStart("ConditionRowSubSubValue") %]
|
||||
<li><strong>[% Data.Key | html %]</strong>: [% Data.Value | html %]</li>
|
||||
[% RenderBlockEnd("ConditionRowSubSubValue") %]
|
||||
</ul>
|
||||
[% RenderBlockEnd("ConditionRowSubSub") %]
|
||||
</li>
|
||||
</ul>
|
||||
[% RenderBlockEnd("ConditionRowSub") %]
|
||||
</li>
|
||||
[% RenderBlockEnd("ConditionRow") %]
|
||||
</ol>
|
||||
[% RenderBlockEnd("Condition") %]
|
||||
|
||||
</li>
|
||||
[% RenderBlockEnd("TransitionRow") %]
|
||||
[% RenderBlockStart("TransitionRowEmpty") %]
|
||||
<li>
|
||||
[% Translate("Transitions are not being used in this process.") | html %]
|
||||
</li>
|
||||
[% RenderBlockEnd("TransitionRowEmpty") %]
|
||||
</ul>
|
||||
|
||||
<h3>[% Translate("Transition Actions") | html %]</h3>
|
||||
<ul class="ItemData">
|
||||
[% RenderBlockStart("TransitionActionRow") %]
|
||||
<li>
|
||||
<h4>
|
||||
[% Data.Name | html %] ([% Data.EntityID | html %])
|
||||
<span>[% Translate("Module name") | html %]: [% Data.Module | html %]</span>
|
||||
</h4>
|
||||
[% RenderBlockStart("Config") %]
|
||||
<strong>[% Translate("Configuration") | html %]:</strong>
|
||||
<ol>
|
||||
[% RenderBlockStart("ConfigRow") %]
|
||||
<li>[% Data.Name | html %]: [% Data.Value | html %]</li>
|
||||
[% RenderBlockEnd("ConfigRow") %]
|
||||
</ol>
|
||||
[% RenderBlockEnd("Config") %]
|
||||
</li>
|
||||
[% RenderBlockEnd("TransitionActionRow") %]
|
||||
[% RenderBlockStart("TransitionActionRowEmpty") %]
|
||||
<li>
|
||||
[% Translate("Transition actions are not being used in this process.") | html %]
|
||||
</li>
|
||||
[% RenderBlockEnd("TransitionActionRowEmpty") %]
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,291 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="LayoutPopup ARIARoleMain">
|
||||
<div class="Header">
|
||||
<h1>[% Translate(Data.Title) | html %]</h1>
|
||||
[% RenderBlockStart("ClosePopup") %]
|
||||
<p>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ClosePopup" class="ClosePopup">[% Translate("Cancel & close") | html %]</a>
|
||||
</p>
|
||||
[% RenderBlockEnd("ClosePopup") %]
|
||||
[% RenderBlockStart("GoBack") %]
|
||||
<p>
|
||||
<a class="GoBack" href="[% Env("Baselink") %]Action=[% Data.Action | uri %];Subaction=[% Data.Subaction | uri %];ID=[% Data.ID | uri %];EntityID=[% Data.EntityID | uri %];StartActivityID=[% Data.StartActivityID | uri %]">[% Translate("Go Back") | html %]</a>
|
||||
</p>
|
||||
[% RenderBlockEnd("GoBack") %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="ContentColumn">
|
||||
<form id="TransitionForm" action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Transition[% Data.Action | html %]Action"/>
|
||||
<input type="hidden" name="EntityID" value="[% Data.EntityID | html %]"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
<input type="hidden" name="ActivityDialogs" value=""/>
|
||||
<input type="hidden" name="ConditionConfig" value=""/>
|
||||
<input type="hidden" name="PopupRedirect" value="" id="PopupRedirect"/>
|
||||
<input type="hidden" name="PopupRedirectID" value="" id="PopupRedirectID"/>
|
||||
<input type="hidden" name="PopupRedirectEntityID" value="" id="PopupRedirectEntityID"/>
|
||||
|
||||
[% RenderBlockStart("EditWarning") %]
|
||||
<div class="WidgetSimple Expanded WidgetNotice">
|
||||
<div class="Content">[% Translate("Please note that changing this transition will affect the following processes") | html %]: [% Data.ProcessList | html %]</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("EditWarning") %]
|
||||
|
||||
<div class="WidgetSimple Expanded">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("Transition") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Transition Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameServerError | html %]" maxlength="70"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple Expanded">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("Conditions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content LayoutGrid">
|
||||
<fieldset class="TableLike FixedLabel" id="PresentConditionsContainer">
|
||||
<div class="SpacingBottom">
|
||||
<p>
|
||||
[% Translate("Conditions can only operate on non-empty fields.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label for="OverallConditionLinking">[% Translate("Type of Linking between Conditions") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.OverallConditionLinking %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockStart("ConditionItemEditRow") %]
|
||||
<div class="WidgetSimple ParentWidget" id="Condition[[% Data.Index | html %]]">
|
||||
<div class="Header">
|
||||
<h2 for="Condition[[% Data.Index | html %]]">[% Translate("Condition") | html %] [% Data.Index | html %]</h2>
|
||||
<div class="AdditionalInformation">
|
||||
<a class="RemoveButton" href="#" name="ConditionRemove[[% Data.Index | html %]]" title="[% Translate("Remove this Condition") | html %]">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Remove this Condition") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="Field ConditionField">
|
||||
<div class="Condition">
|
||||
<fieldset class="TableLike FixedLabelSmall">
|
||||
<label for="ConditionLinking[[% Data.Index | html %]]">[% Translate("Type of Linking") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ConditionLinking %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<div class="WidgetSimple FieldWidget">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Fields") | html %]</h2>
|
||||
<div class="AdditionalInformation">
|
||||
<a class="AddButton ConditionFieldAdd" href="#" title="[% Translate("Add a new Field") | html %]">
|
||||
<i class="fa fa-plus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Add a new Field") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% RenderBlockStart("ConditionItemEditRowField") %]
|
||||
<fieldset>
|
||||
<label for="ConditionFieldName[[% Data.Index | html %]][[% Data.FieldIndex | html %]]">[% Translate("Name") | html %]:</label>
|
||||
<input type="text" name="ConditionFieldName[[% Data.Index | html %]][[% Data.FieldIndex | html %]]" class="W20pc Validate_Required Validate_NotEqual Validate_NotEqual_ConditionFieldName" value="[% Data.FieldIndex | html %]" id="ConditionFieldName[[% Data.Index | html %]][[% Data.FieldIndex | html %]]" />
|
||||
<label for="ConditionFieldType[[% Data.Index | html %]][[% Data.FieldIndex | html %]]">[% Translate("Type") | html %]:</label>
|
||||
[% Data.ConditionFieldType %]
|
||||
<label for="ConditionFieldValue[[% Data.Index | html %]][[% Data.FieldIndex | html %]]">[% Translate("Value") | html %]:</label>
|
||||
<input type="text" name="ConditionFieldValue[[% Data.Index | html %]][[% Data.FieldIndex | html %]]" class="W20pc Validate_Required" value="[% Data.Match | html %]" id="ConditionFieldValue[[% Data.Index | html %]][[% Data.FieldIndex | html %]]" />
|
||||
<a href="#" class="RemoveButton" type="button" name="ConditionFieldRemove[[% Data.Index | html %]][[% Data.FieldIndex | html %]]" title="[% Translate("Remove this Field") | html %]">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Remove this Field") | html %]</span>
|
||||
</a>
|
||||
<div id="ConditionFieldName[[% Data.Index | html %]][[% Data.FieldIndex | html %]]Error" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %] [% Translate("And can't be repeated on the same condition.") | html %]
|
||||
</div>
|
||||
<div id="ConditionFieldValue[[% Data.Index | html %]][[% Data.FieldIndex | html %]]Error" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %]
|
||||
</div>
|
||||
</fieldset>
|
||||
[% RenderBlockEnd("ConditionItemEditRowField") %]
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ConditionItemEditRow") %]
|
||||
|
||||
[% RenderBlockStart("ConditionItemInitRow") %]
|
||||
<div class="WidgetSimple ParentWidget" id="Condition[1]">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Condition") | html %] 1</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="Field ConditionField">
|
||||
<div class="Condition">
|
||||
<fieldset class="TableLike FixedLabelSmall">
|
||||
<label for="ConditionLinking[1]">[% Translate("Type of Linking") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ConditionLinking %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="WidgetSimple FieldWidget">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Fields") | html %]</h2>
|
||||
<div class="AdditionalInformation">
|
||||
<a class="ConditionFieldAdd AddButton" href="#" title="[% Translate("Add a new Field") | html %]">
|
||||
<i class="fa fa-plus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Add a new Field") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset>
|
||||
<label for="ConditionFieldName[1][1]">[% Translate("Name") | html %]:</label>
|
||||
<input type="text" name="ConditionFieldName[1][1]" class="W20pc Validate_Required Validate_NotEqual Validate_NotEqual_ConditionFieldName" id="ConditionFieldName[1][1]" />
|
||||
<label for="ConditionFieldType[1][1]">[% Translate("Type") | html %]:</label>
|
||||
[% Data.ConditionFieldType %]
|
||||
<label for="ConditionFieldValue[1][1]">[% Translate("Value") | html %]:</label>
|
||||
<input type="text" name="ConditionFieldValue[1][1]" class="W20pc Validate_Required" id="ConditionFieldValue[1][1]" />
|
||||
<a href="#" class="RemoveButton" type="button" name="ConditionFieldRemove[1][1]" title="[% Translate("Remove this Field") | html %]">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Remove this Field") | html %]</span>
|
||||
</a>
|
||||
|
||||
<div id="ConditionFieldName[1][1]Error" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %] [% Translate("And can't be repeated on the same condition.") | html %]
|
||||
</div>
|
||||
<div id="ConditionFieldValue[1][1]Error" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %]
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ConditionItemInitRow") %]
|
||||
<button type="button" id="ConditionAdd" class="CallForAction"><span>[% Translate("Add New Condition") | html %]</span></button>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Invisible submit button to allow form submit on pressing enter/return without javascript -->
|
||||
<input type="image" width="0" height="0" style="display: none;" />
|
||||
</form>
|
||||
<div id="ConditionContainer" style="display:none;">
|
||||
<div class="WidgetSimple ParentWidget" id="Condition[_INDEX_]">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Condition") | html %] _INDEX_</h2>
|
||||
<div class="AdditionalInformation">
|
||||
<a href="#" name="ConditionRemove[_INDEX_]" class="RemoveButton" title="[% Translate("Remove this Condition") | html %]">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Remove this Condition") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="Field ConditionField">
|
||||
<div class="Condition">
|
||||
<fieldset class="TableLike FixedLabelSmall">
|
||||
<label for="ConditionLinking[_INDEX_]">[% Translate("Type of Linking") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.FreshConditionLinking %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="WidgetSimple FieldWidget">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Fields") | html %]</h2>
|
||||
<div class="AdditionalInformation">
|
||||
<a class="ConditionFieldAdd AddButton" href="#" title="[% Translate("Add a new Field") | html %]">
|
||||
<i class="fa fa-plus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Add a new Field") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset>
|
||||
<label for="ConditionFieldName[_INDEX_][1]">[% Translate("Name") | html %]:</label>
|
||||
<input type="text" name="ConditionFieldName[_INDEX_][1]" class="W20pc Validate_Required Validate_NotEqual Validate_NotEqual_ConditionFieldName" id="ConditionFieldName[_INDEX_][1]" />
|
||||
<label for="ConditionFieldType[_INDEX_][1]">[% Translate("Type") | html %]:</label>
|
||||
[% Data.FreshConditionFieldType %]
|
||||
<label for="ConditionFieldValue[_INDEX_][1]">[% Translate("Value") | html %]:</label>
|
||||
<input type="text" name="ConditionFieldValue[_INDEX_][1]" class="W20pc Validate_Required" id="ConditionFieldValue[_INDEX_][1]" />
|
||||
<a href="#" class="RemoveButton" type="button" name="ConditionFieldRemove[_INDEX_][1]" title="[% Translate("Remove this Field") | html %]">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Remove this Field") | html %]</span>
|
||||
</a>
|
||||
<div id="ConditionFieldName[_INDEX_][1]Error" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %] [% Translate("And can't be repeated on the same condition.") | html %]
|
||||
</div>
|
||||
<div id="ConditionFieldValue[_INDEX_][1]Error" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %]
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ConditionFieldContainer" style="display:none;">
|
||||
<fieldset>
|
||||
<label for="ConditionFieldName[_INDEX_][_FIELDINDEX_]">[% Translate("Name") | html %]:</label>
|
||||
<input type="text" name="ConditionFieldName[_INDEX_][_FIELDINDEX_]" class="W20pc Validate_Required Validate_NotEqual Validate_NotEqual_ConditionFieldName" id="ConditionFieldName[_INDEX_][_FIELDINDEX_]" />
|
||||
<label for="ConditionFieldType[_INDEX_][_FIELDINDEX_]">[% Translate("Type") | html %]:</label>
|
||||
[% Data.FreshConditionFieldType %]
|
||||
<label for="ConditionFieldValue[_INDEX_][_FIELDINDEX_]">[% Translate("Value") | html %]:</label>
|
||||
<input type="text" name="ConditionFieldValue[_INDEX_][_FIELDINDEX_]" class="W20pc Validate_Required" id="ConditionFieldValue[_INDEX_][_FIELDINDEX_]" />
|
||||
<a href="#" class="RemoveButton" type="button" name="ConditionFieldRemove[_INDEX_][_FIELDINDEX_]" title="[% Translate("Remove this Field") | html %]">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Remove this Field") | html %]</span>
|
||||
</a>
|
||||
<div id="ConditionFieldName[_INDEX_][_FIELDINDEX_]Error" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %] [% Translate("And can't be repeated on the same condition.") | html %]
|
||||
</div>
|
||||
<div id="ConditionFieldValue[_INDEX_][_FIELDINDEX_]Error" class="TooltipErrorMessage">
|
||||
[% Translate("This field is required.") | html %]
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Footer">
|
||||
<button class="Primary CallForAction" id="Submit" title="[% Translate("Save") | html %]" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,128 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="LayoutPopup ARIARoleMain">
|
||||
<div class="Header">
|
||||
<h1>[% Translate(Data.Title) | html %]</h1>
|
||||
[% RenderBlockStart("ClosePopup") %]
|
||||
<p>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ClosePopup" class="ClosePopup">[% Translate("Cancel & close") | html %]</a>
|
||||
</p>
|
||||
[% RenderBlockEnd("ClosePopup") %]
|
||||
[% RenderBlockStart("GoBack") %]
|
||||
<p>
|
||||
<a class="GoBack" href="[% Env("Baselink") %]Action=[% Data.Action | uri %];Subaction=[% Data.Subaction | uri %];ID=[% Data.ID | uri %];EntityID=[% Data.EntityID | uri %];StartActivityID=[% Data.StartActivityID | uri %]">[% Translate("Go Back") | html %]</a>
|
||||
</p>
|
||||
[% RenderBlockEnd("GoBack") %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="ContentColumn">
|
||||
<form id="TransitionForm" action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="TransitionAction[% Data.Action | html %]Action"/>
|
||||
<input type="hidden" name="EntityID" value="[% Data.EntityID | html %]"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
<input type="hidden" name="PopupRedirect" value="" id="PopupRedirect"/>
|
||||
<input type="hidden" name="PopupRedirectID" value="" id="PopupRedirectID"/>
|
||||
<input type="hidden" name="PopupRedirectEntityID" value="" id="PopupRedirectEntityID"/>
|
||||
|
||||
[% RenderBlockStart("EditWarning") %]
|
||||
<div class="WidgetSimple Expanded WidgetNotice">
|
||||
<div class="Content">[% Translate("Please note that changing this transition action will affect the following processes") | html %]: [% Data.ProcessList | html %]</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("EditWarning") %]
|
||||
|
||||
<div class="WidgetSimple Expanded">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate("Transition Action") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Transition Action Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W90pc Validate_Required [% Data.NameServerError | html %]" maxlength="70"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label class="Mandatory" for="Module"><span class="Marker">*</span> [% Translate("Transition Action Module") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ModuleStrg %]
|
||||
<div id="ModuleError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ModuleServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2 for="Config">[% Translate("Config Parameters") | html %]</h2>
|
||||
<div class="AdditionalInformation">
|
||||
<a class="AddButton" href="#" name="ConfigAdd" id="ConfigAdd" title="[% Translate("Add a new Parameter") | html %]">
|
||||
<i class="fa fa-plus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Add a new Parameter") | html %]</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Content" id="ConfigParams">
|
||||
[% RenderBlockStart("ConfigItemInitRow") %]
|
||||
<fieldset>
|
||||
<label for="ConfigKey[1]">[% Translate("Key") | html %]:</label>
|
||||
<input type="text" name="ConfigKey[1]" id="ConfigKey[1]" />
|
||||
<label for="ConfigValue[1]">[% Translate("Value") | html %]:</label>
|
||||
<input type="text" name="ConfigValue[1]" id="ConfigValue[1]" />
|
||||
</fieldset>
|
||||
[% RenderBlockEnd("ConfigItemInitRow") %]
|
||||
[% RenderBlockStart("ConfigItemEditRow") %]
|
||||
<fieldset>
|
||||
<label for="ConfigKey[[% Data.Index | html %]]">[% Translate("Key") | html %]:</label>
|
||||
<input type="text" value="[% Data.Key | html %]" name="ConfigKey[[% Data.Index | html %]]" id="ConfigKey[[% Data.Index | html %]]" />
|
||||
<label for="ConfigValue[[% Data.Index | html %]]">[% Translate("Value") | html %]:</label>
|
||||
<input type="text" value="[% Data.Value | html %]" name="ConfigValue[[% Data.Index | html %]]" id="ConfigValue[[% Data.Index | html %]]" />
|
||||
<a class="RemoveButton" href="#" title="[% Translate("Remove this Parameter") | html %]">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Remove this Parameter") | html %]</span>
|
||||
</a>
|
||||
</fieldset>
|
||||
[% RenderBlockEnd("ConfigItemEditRow") %]
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
<!-- Invisible submit button to allow form submit on pressing enter/return without javascript -->
|
||||
<input type="image" width="0" height="0" style="display: none;" />
|
||||
</form>
|
||||
<div id="ConfigParamContainer" style="display:none;">
|
||||
<fieldset>
|
||||
<label for="ConfigKey[_INDEX_]">[% Translate("Key") | html %]:</label>
|
||||
<input type="text" name="ConfigKey[_INDEX_]" id="ConfigKey[_INDEX_]" />
|
||||
<label for="ConfigValue[_INDEX_]">[% Translate("Value") | html %]:</label>
|
||||
<input type="text" name="ConfigValue[_INDEX_]" id="ConfigValue[_INDEX_]" />
|
||||
<a class="RemoveButton" href="#" title="[% Translate("Remove this Parameter") | html %]">
|
||||
<i class="fa fa-minus-square-o"></i>
|
||||
<span class="InvisibleText">[% Translate("Remove this Parameter") | html %]</span>
|
||||
</a>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Footer">
|
||||
<button class="Primary CallForAction" id="Submit" title="[% Translate("Save") | html %]" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button>
|
||||
</div>
|
||||
</div>
|
||||
450
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminQueue.tt
Normal file
450
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminQueue.tt
Normal file
@@ -0,0 +1,450 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Queue Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Queue Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate('Add Queue'),}) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit Queue")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Name ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Add" class="CallForAction Fullsize Center Create"><span><i class="fa fa-plus-square"></i>[% Translate("Add Queue") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
|
||||
</div>
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterQueues">[% Translate("Filter for Queues") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterQueues" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterQueues" value="" title="[% Translate("Filter for queues") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="Queues">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Group") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr [% IF Data.ValidID != 1 %]class="Invalid"[% END %]>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Change;QueueID=[% Data.QueueID | uri %]">[% Data.Name | html %]</a>
|
||||
</td>
|
||||
<td>[% Data.GroupName | html %]</td>
|
||||
<td title="[% Data.Comment | html %]">[% Data.Comment | truncate(26) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="6">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
|
||||
[% RenderBlockStart("OverviewUpdate") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
[% IF Data.Action == 'Add' %]
|
||||
<h2>[% Translate("Add Queue") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit Queue") | html %]</h2>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form id="EntityUpdate" action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | uri %]Action"/>
|
||||
<input type="hidden" name="QueueID" value="[% Data.QueueID | html %]"/>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameInvalid | html %]" maxlength="50"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>
|
||||
[% RenderBlockStart("NameServerError") %]
|
||||
[% Translate("This field is required.") | html %]
|
||||
[% RenderBlockEnd("NameServerError") %]
|
||||
[% RenderBlockStart("ExistNameServerError") %]
|
||||
[% Translate("A queue with this name already exists!") | html %]
|
||||
[% RenderBlockEnd("ExistNameServerError") %]
|
||||
[% RenderBlockStart("InSettingNameServerError") %]
|
||||
[% Translate("This queue is present in a SysConfig setting, confirmation for updating settings to point to the new queue is needed!") | html %]
|
||||
[% RenderBlockEnd("InSettingNameServerError") %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ParentQueueID">[% Translate("Sub-queue of") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.QueueOption %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="GroupID"><span class="Marker">*</span> [% Translate("Group") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.GroupOption %]
|
||||
<div id="GroupIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="GroupIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="UnlockTimeout">
|
||||
[% Translate("Unlock timeout") | html %] [% Translate("minutes") | html %]:
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="UnlockTimeout" id="UnlockTimeout" value="[% Data.UnlockTimeout | html %]" class="W20pc" maxlength="10"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("0 = no unlock") | html %] - 24 [% Translate("hours") | html %] = 1440 [% Translate("minutes") | html %] - [% Translate("Only business hours are counted.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If an agent locks a ticket and does not close it before the unlock timeout has passed, the ticket will unlock and will become available for other agents.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="FirstResponseTime">
|
||||
[% Translate("Escalation - first response time") | html %] ([% Translate("minutes") | html %]):
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="FirstResponseTime" id="FirstResponseTime" value="[% Data.FirstResponseTime | html %]" class="W20pc" maxlength="10"/>
|
||||
( <label>[% Translate("Notify by") | html %] [% Data.FirstResponseNotifyOptionStrg %] </label> )
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("0 = no escalation") | html %] - 24 [% Translate("hours") | html %] = 1440 [% Translate("minutes") | html %] - [% Translate("Only business hours are counted.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If there is not added a customer contact, either email-external or phone, to a new ticket before the time defined here expires, the ticket is escalated.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="UpdateTime">
|
||||
[% Translate("Escalation - update time") | html %] ([% Translate("minutes") | html %]):
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="UpdateTime" id="UpdateTime" value="[% Data.UpdateTime | html %]" class="W20pc" maxlength="10"/>
|
||||
( <label>[% Translate("Notify by") | html %] [% Data.UpdateNotifyOptionStrg %]</label> )
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("0 = no escalation") | html %] - 24 [% Translate("hours") | html %] = 1440 [% Translate("minutes") | html %] - [% Translate("Only business hours are counted.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If there is an article added, such as a follow-up via email or the customer portal, the escalation update time is reset. If there is no customer contact, either email-external or phone, added to a ticket before the time defined here expires, the ticket is escalated.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SolutionTime">
|
||||
[% Translate("Escalation - solution time") | html %] ([% Translate("minutes") | html %]):
|
||||
</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="SolutionTime" id="SolutionTime" value="[% Data.SolutionTime | html %]" class="W20pc" maxlength="10"/>
|
||||
( <label>[% Translate("Notify by") | html %] [% Data.SolutionNotifyOptionStrg %] </label>)
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("0 = no escalation") | html %] - 24 [% Translate("hours") | html %] = 1440 [% Translate("minutes") | html %] - [% Translate("Only business hours are counted.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If the ticket is not set to closed before the time defined here expires, the ticket is escalated.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="FollowUpID"><span class="Marker">*</span> [% Translate("Follow up Option") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.FollowUpOption %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Specifies if follow up to closed tickets would re-open the ticket, be rejected or lead to a new ticket.") | html %]
|
||||
</p>
|
||||
<div id="FollowUpIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="FollowUpIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="FollowUpLock"><span class="Marker">*</span> [% Translate("Ticket lock after a follow up") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.FollowUpLockYesNoOption %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("If a ticket is closed and the customer sends a follow up the ticket will be locked to the old owner.") | html %]
|
||||
</p>
|
||||
<div id="FollowUpLockError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="FollowUpLockServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="SystemAddressID"><span class="Marker">*</span> [% Translate("System address") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.SystemAddressOption %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Will be the sender address of this queue for email answers.") | html %]
|
||||
</p>
|
||||
<div id="SystemAddressIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="SystemAddressIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("OptionalField") %]
|
||||
<label for="DefaultSignKey">[% Translate("Default sign key") | html %][% IF Data.Email %]<em> ([% Data.Email | html %])</em>[% END %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DefaultSignKeyOption %]
|
||||
[% IF !Data.DefaultSignKeyListAvailable %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("To use a sign key, PGP keys or S/MIME certificates need to be added with identifiers for selected queue system address.") | html %]
|
||||
</p>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("OptionalField") %]
|
||||
|
||||
<label class="Mandatory" for="SalutationID"><span class="Marker">*</span> [% Translate("Salutation") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.SalutationOption %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The salutation for email answers.") | html %]
|
||||
</p>
|
||||
<div id="SalutationIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="SalutationIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="SignatureID"><span class="Marker">*</span> [% Translate("Signature") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.SignatureOption %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The signature for email answers.") | html %]
|
||||
</p>
|
||||
<div id="SignatureIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="SignatureIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Calendar">[% Translate("Calendar") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.CalendarOption %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOption %]
|
||||
<div id="ValidIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>
|
||||
[% RenderBlockStart("RequiredValidOptionServerError") %]
|
||||
[% Translate("This field is required.") | html %]
|
||||
[% RenderBlockEnd("RequiredValidOptionServerError") %]
|
||||
[% RenderBlockStart("InSettingValidOptionServerError") %]
|
||||
[% Translate("Is not possible to invalidate this entry, all config settings have to be changed beforehand.") | html %]
|
||||
[% RenderBlockEnd("InSettingValidOptionServerError") %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="250"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("Item") %]
|
||||
[% RenderBlockStart("InputKey") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.SelectedID | html %]" class="W50pc" maxlength="30"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("InputKey") %]
|
||||
[% RenderBlockStart("Input") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.SelectedID | html %]" class="W50pc" maxlength="30"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate(Data.Desc) | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Input") %]
|
||||
[% RenderBlockStart("TextArea") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]:</label>
|
||||
<div class="Field">
|
||||
<textarea name="[% Data.Name | html %]" id="[% Data.Name | html %]" rows="[% Data.Rows | html %]" cols="[% Data.Cols | html %]">[% Data.SelectedID | html %]</textarea>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate(Data.Desc) | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("TextArea") %]
|
||||
[% RenderBlockStart("Option") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.Option %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate(Data.Desc) | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Option") %]
|
||||
[% RenderBlockStart("Upload") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="file" name="[% Data.Name | html %]" id="[% Data.Name | html %]" class="W50pc" maxlength="30"/>
|
||||
<a href="">[% Data.Filename | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Upload") %]
|
||||
[% RenderBlockStart("Password") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="password" name="[% Data.Name | html %]" id="[% Data.Name | html %]" class="W50pc" maxlength="30" value=""/>
|
||||
<a href="">[% Data.Filename | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Password") %]
|
||||
[% RenderBlockEnd("Item") %]
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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>
|
||||
[% RenderBlockStart("QueueInSysConfig") %]
|
||||
<input type="hidden" name="OldName" id="OldName" value="[% Data.OldName | html %]"/>
|
||||
<input type="hidden" name="UpdateEntity" id="UpdateEntity" value=""/>
|
||||
<div id="EntityInSetting" class="Hidden">
|
||||
<div class="TextDialog">
|
||||
<h1>[% Translate("This queue is used in the following config settings:") | html %]</h1>
|
||||
<ul>
|
||||
[% RenderBlockStart("QueueInSysConfigRow") %]
|
||||
<li class="InSysConfigSetting">[% Data.SettingName %]</li>
|
||||
[% RenderBlockEnd("QueueInSysConfigRow") %]
|
||||
</ul>
|
||||
<p class="FieldExplanation"></p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("QueueInSysConfig") %]
|
||||
[% RenderBlockStart("QueueInSysConfigDirty") %]
|
||||
<input type="hidden" name="SysConfigDirty" id="SysConfigDirty" value="1"/>
|
||||
[% RenderBlockEnd("QueueInSysConfigDirty") %]
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewUpdate") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,156 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Manage Queue-Auto Response Relations") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Manage Queue-Auto Response Relations'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% IF Data.Subaction == 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Change Auto Response Relations for Queue")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ' ', Data.QueueName ) }) %]
|
||||
[% ELSIF Data.Filter == 'QueuesWithoutAutoResponses' %]
|
||||
[% BreadcrumbPath.push({ Name => 'Queues without Auto Responses' }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("QueuesWithoutAutoResponses") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminQueueAutoResponse;Filter=QueuesWithoutAutoResponses" title="[% Translate("This filter allow you to show queues without auto responses") | html %]" class="CallForAction Fullsize Center"><span><i class="fa fa-filter"></i>[% Translate("Queues without Auto Responses") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("QueuesWithoutAutoResponses") %]
|
||||
[% RenderBlockStart("ShowAllQueues") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminQueueAutoResponse" title="[% Translate("This filter allow you to show all queues") | html %]" class="CallForAction Fullsize Center"><span><i class="fa fa-filter"></i>[% Translate("Show All Queues") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ShowAllQueues") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
|
||||
[% RenderBlockStart("FilterQueues") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterQueues">[% Translate("Filter for Queues") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterQueues" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterQueues" value="" title="[% Translate("Filter for queues") | html %]" />
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("FilterQueues") %]
|
||||
[% RenderBlockStart("FilterAutoResponses") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterAutoResponses">[% Translate("Filter for Auto Responses") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterAutoResponses" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterAutoResponses" value="" title="[% Translate("Filter for auto responses") | html %]" />
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("FilterAutoResponses") %]
|
||||
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Overview") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="Queues">
|
||||
<li class="Header">[% Translate(Data.QueueHeader) | html %]</li>
|
||||
<li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li>
|
||||
[% RenderBlockStart("NoQueuesFoundMsg") %]
|
||||
<li>[% Translate("No data found.") | html %]</li>
|
||||
[% RenderBlockEnd("NoQueuesFoundMsg") %]
|
||||
[% RenderBlockStart("Item") %]
|
||||
<li><a href="[% Env("Baselink") %]Action=AdminQueueAutoResponse;Subaction=Change;ID=[% Data.QueueID | uri %]" class="AsBlock">[% Data.Queue | html %]</a></li>
|
||||
[% RenderBlockEnd("Item") %]
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="AutoResponses">
|
||||
<li class="Header">[% Translate("Auto Responses") | html %]</li>
|
||||
<li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li>
|
||||
[% RenderBlockStart("NoAutoResponsesFoundMsg") %]
|
||||
<li>[% Translate("No data found.") | html %]</li>
|
||||
[% RenderBlockEnd("NoAutoResponsesFoundMsg") %]
|
||||
[% RenderBlockStart("ItemList") %]
|
||||
<li><a href="[% Env("Baselink") %]Action=AdminAutoResponse;Subaction=Change;ID=[% Data.ID | uri %]" class="AsBlock">[% Translate(Data.Name) | html %] ([% Data.Type | html %])</a></li>
|
||||
[% RenderBlockEnd("ItemList") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class ="Clear"></div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
|
||||
[% RenderBlockStart("Selection") %]
|
||||
<div class="Header">
|
||||
<h2>
|
||||
[% Translate("Change Auto Response Relations for Queue") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Data.ActionHome | uri %];Subaction=Change;QueueID=[% Data.ID | uri %]">[% Data.Name | html %]</a>
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content ">
|
||||
<form action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="ChangeAction"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<fieldset class="TableLike">
|
||||
[% RenderBlockStart("ChangeItemList") %]
|
||||
<label for="IDs_[% Data.TypeID %]">[% Translate(Data.Type) | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.DataStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("ChangeItemList") %]
|
||||
<div class="Field SpacingTop">
|
||||
<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>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Data.Action | uri %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("Selection") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,182 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Manage Template-Queue Relations") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Manage Template-Queue Relations'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% IF Data.BreadcrumbTitle %]
|
||||
[% USE EditTitle = String(Data.BreadcrumbTitle) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( " '", Data.Name, "'" ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label>[% Translate("Actions") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><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="Filter">[% Translate("Filter") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="Filter" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="Filter" value="" title="[% Translate("Filter") | html %]" />
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
|
||||
[% RenderBlockStart("FilterTemplate") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterTemplates">[% Translate("Filter for Templates") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterTemplates" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterTemplates" value="" title="[% Translate("Filter for templates") | html %]" />
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("FilterTemplate") %]
|
||||
[% RenderBlockStart("FilterQueue") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterQueues">[% Translate("Filter for Queues") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterQueues" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterQueues" value="" title="[% Translate("Filter for queues") | html %]" />
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("FilterQueue") %]
|
||||
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Overview") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="Templates">
|
||||
<li class="Header">[% Translate("Templates") | html %]</li>
|
||||
<li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li>
|
||||
[% RenderBlockStart("NoTemplatesFoundMsg") %]
|
||||
<li>[% Translate("No data found.") | html %]</li>
|
||||
[% RenderBlockEnd("NoTemplatesFoundMsg") %]
|
||||
[% RenderBlockStart("List1n") %]
|
||||
<li><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=[% Data.Subaction | uri %];ID=[% Data.ID | uri %]" class="AsBlock">[% Data.Name | html %]</a></li>
|
||||
[% RenderBlockEnd("List1n") %]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="Queues">
|
||||
<li class="Header">[% Translate("Queues") | html %]</li>
|
||||
<li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li>
|
||||
[% RenderBlockStart("NoQueuesFoundMsg") %]
|
||||
<li>[% Translate("No data found.") | html %]</li>
|
||||
[% RenderBlockEnd("NoQueuesFoundMsg") %]
|
||||
[% RenderBlockStart("Listn1") %]
|
||||
<li><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=[% Data.Subaction | uri %];ID=[% Data.ID | uri %]" class="AsBlock">[% Data.Name | html %]</a></li>
|
||||
[% RenderBlockEnd("Listn1") %]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
[% RenderBlockStart("Change") %]
|
||||
<div class="Header">
|
||||
<h2>
|
||||
[% Data.BreadcrumbTitle | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Data.ActionHome | uri %];Subaction=Change;[% Data.Queue | uri %]ID=[% Data.ID | uri %]">[% Data.Name | html %]</a>
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content ">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" name="matrix">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Change[% Data.Type | html %]"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<table class="DataTable VariableWidth" id="ItemsTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate(Data.VisibleNeType) | html %]</th>
|
||||
[% RenderBlockStart("ChangeHeader") %]
|
||||
<th class="[% Data.Mark | html %]">
|
||||
<input type="checkbox" id="SelectAllItemsSelected" name="ItemsSelected" title="[% Translate("Toggle active state for all") | html %]" value="" />
|
||||
[% Translate("Active") | html %]
|
||||
</th>
|
||||
[% RenderBlockEnd("ChangeHeader") %]
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsgList") %]
|
||||
<tr>
|
||||
<td colspan="[% Data.ColSpan | html %]">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsgList") %]
|
||||
[% RenderBlockStart("ChangeRow") %]
|
||||
<tr>
|
||||
<td><a href="[% Env("Baselink") %]Action=Admin[% Data.NeType | uri %];Subaction=Change;[% Data.Queue | uri %]ID=[% Data.ID | uri %]">[% Data.Name | html %]</a></td>
|
||||
<td class="[% Data.Mark | html %]">
|
||||
<input type="checkbox" name="ItemsSelected" title="[% Translate("Toggle active state for %s", Data.Name) | html %]" value="[% Data.ID | html %]" [% Data.Selected %]/>
|
||||
<input type="hidden" name="ItemsAll" value="[% Data.ID | html %]"/>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("ChangeRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="2">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="Field SpacingTop">
|
||||
<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>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("Change") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,606 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% IF Data.OTRSSTORMIsInstalled %]
|
||||
[% SET OTRSBusinessLabel = '<strong>STORM powered by OTRS</strong>™' %]
|
||||
[% ELSIF Data.OTRSCONTROLIsInstalled %]
|
||||
[% SET OTRSBusinessLabel = '<strong>CONTROL powered by OTRS</strong>™' %]
|
||||
[% ELSE %]
|
||||
[% SET OTRSBusinessLabel = '<strong>OTRS Business Solution</strong>™' %]
|
||||
[% END %]
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("System Registration Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('System Registration Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Subaction %]
|
||||
[% CASE 'Edit' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Edit System Registration"),}) %]
|
||||
[% CASE 'SentDataOverview' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("System Registration Overview"),}) %]
|
||||
[% CASE 'Register' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Register System"),}) %]
|
||||
[% CASE 'OTRSIDValidate' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Validate OTRS-ID"),}) %]
|
||||
[% CASE 'Deregister' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Deregister System"),}) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-caret-left"></i> [% Translate("Go to overview") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionUpdate") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Edit" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-edit"></i> [% Translate("Edit details") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionUpdate") %]
|
||||
[% RenderBlockStart("ActionSentDataOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=SentDataOverview" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-cloud-upload"></i> [% Translate("Show transmitted data") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionSentDataOverview") %]
|
||||
[% RenderBlockStart("ActionDeregister") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=OTRSIDValidate" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-sign-out"></i> [% Translate("Deregister system") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionDeregister") %]
|
||||
<li>
|
||||
<a href="https://portal.otrs.com/external/otrssystems/overview" target="_blank" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-external-link"></i> [% Translate("Overview of registered systems") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("OverviewRegistered") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("System Registration") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<div class="ServiceDescription">
|
||||
[% Translate("This system is registered with OTRS Group.") | html %]
|
||||
</div>
|
||||
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label>[% Translate("System type") | html %]:</label>
|
||||
<div class="Value">[% Translate(Data.Type) | html %]</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Description") | html %]:</label>
|
||||
<div class="Value">[% Data.Description | html %]</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Unique ID") | html %]:</label>
|
||||
<div class="Value">[% Data.UniqueID | html %]</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Last communication with registration server") | html %]:</label>
|
||||
<div class="Value">[% Data.LastUpdateTime | Localize("TimeShort") %]</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label>[% Translate("Send support data") | html %]:</label>
|
||||
<div class="Value">[% Translate(Data.SupportDataSending) | html %]</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("OverviewRegistered") %]
|
||||
[% RenderBlockStart("DaemonNotRunning") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("System Registration not Possible") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p>
|
||||
[% Translate("Please note that you can't register your system if OTRS Daemon is not running correctly!") | html %]
|
||||
<a href="#" class="DaemonInfo">[% Translate("Instructions") | html %]</a>.
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("DaemonNotRunning") %]
|
||||
[% RenderBlockStart("OTRSIDDeregistrationNotPossible") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("System Deregistration not Possible") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p>
|
||||
[% Translate("Please note that you can't deregister your system if you're using the %s or having a valid service contract.") | html | ReplacePlaceholders(OTRSBusinessLabel) %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("OTRSIDDeregistrationNotPossible") %]
|
||||
[% RenderBlockStart("OTRSIDValidation") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("OTRS-ID Login") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form id="FormRegistration" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="BaseLink" value="[% Env("CGIHandle") %]" />
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]" />
|
||||
<input type="hidden" name="Subaction" value="CheckOTRSID" />
|
||||
|
||||
[% RenderBlockStart("OTRSIDRegistration") %]
|
||||
<div class="ServiceDescription">
|
||||
<p>
|
||||
[% Translate("System registration is a service of OTRS Group, which provides a lot of advantages!") | html %]
|
||||
<a href="#" id="RegistrationMoreInfo">[% Translate("Read more") | html %]</a>.
|
||||
</p>
|
||||
<p>
|
||||
[% Translate("You need to log in with your OTRS-ID to register your system.") | html %]
|
||||
[% Translate("Your OTRS-ID is the email address you used to sign up on the OTRS.com webpage.") | html %]
|
||||
<a href="#" id="RegistrationDataProtection">[% Translate("Data Protection") | html %]</a>
|
||||
</p>
|
||||
</div>
|
||||
<div id="QADialog" class="Hidden">
|
||||
<div class="TextDialog">
|
||||
<h1>[% Translate("What are the advantages of system registration?") | html %]</h1>
|
||||
<ul>
|
||||
<li>
|
||||
[% Translate("You will receive updates about relevant security releases.") | html %]
|
||||
</li>
|
||||
<li>
|
||||
[% Translate("With your system registration we can improve our services for you, because we have all relevant information available.") | html %]
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
[% Translate("This is only the beginning!") | html %]
|
||||
[% Translate("We will inform you about our new services and offerings soon.") | html %]
|
||||
</p>
|
||||
|
||||
<h1>[% Translate("Can I use OTRS without being registered?") | html %]</h1>
|
||||
<p>
|
||||
[% Translate("System registration is optional.") | html %]
|
||||
[% Translate("You can download and use OTRS without being registered.") | html %]
|
||||
</p>
|
||||
|
||||
<h1>[% Translate("Is it possible to deregister?") | html %]</h1>
|
||||
<p>
|
||||
[% Translate("You can deregister at any time.") | html %]
|
||||
</p>
|
||||
|
||||
<h1>[% Translate("Which data is transfered when registering?") | html %]</h1>
|
||||
<p>
|
||||
[% Translate("A registered system sends the following data to OTRS Group:") | html %]
|
||||
[% Translate("Fully Qualified Domain Name (FQDN), OTRS version, Database, Operating System and Perl version.") | html %]
|
||||
</p>
|
||||
|
||||
<h1>[% Translate("Why do I have to provide a description for my system?") | html %]</h1>
|
||||
<p>
|
||||
[% Translate("The description of the system is optional.") | html %] [% Translate("The description and system type you specify help you to identify and manage the details of your registered systems.") | html %]
|
||||
</p>
|
||||
|
||||
<h1>[% Translate("How often does my OTRS system send updates?") | html %]</h1>
|
||||
<p>
|
||||
[% Translate("Your system will send updates to the registration server at regular intervals.") | html %] [% Translate("Typically this would be around once every three days.") | html %]
|
||||
</p>
|
||||
<p>
|
||||
[% Translate("In case you would have further questions we would be glad to answer them.") | html %] [% Translate("Please visit our customer portal and file a request.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="DPDialog" class="Hidden">
|
||||
<div class="TextDialog">
|
||||
[% IF Env("UserLanguage") == 'de' %]
|
||||
<p>
|
||||
Die OTRS-Gruppe nimmt den Schutz Ihrer persönlichen Daten sehr ernst und hält sich strikt an Datenschutzgesetze. Alle Passwörter werden automatisch unkenntlich gemacht, bevor Informationen gesendet werden. Unter keinen Umständen werden jegliche Daten verkauft oder an unauthorisierte Dritte weitergegeben.
|
||||
</p>
|
||||
<p>
|
||||
Die nachfolgende Erklärung gibt Ihnen einen Überblick darüber, wie wir diesen Schutz gewährleisten und welche Art von Daten zu welchem Zweck erhoben werden.
|
||||
</p>
|
||||
|
||||
<h1>Datenverarbeitung bei 'Systemregistrierung'</h1>
|
||||
<p>
|
||||
Informationen welche über das 'Service Center' gesendet werden, werden von der OTRS Group gespeichert. Das trifft nur auf Daten zu, die die OTRS Group zur Performance- und Funktions-Analyse des OTRS-Servers oder zur Kontaktaufnahme benötigt.
|
||||
</p>
|
||||
|
||||
<h1>Sicherheit von persönlichen Details</h1>
|
||||
<p>
|
||||
Die OTRS Group schützt Ihre persönlichen Daten von unauthorisiertem Zugriff. Die OTRS Group versichert, dass Ihre auf dem Server gespeicherten persönlichen Daten vor unauthorisiertem Zugriff geschützt sind.
|
||||
</p>
|
||||
|
||||
<h1>Offenlegung von Details</h1>
|
||||
<p>
|
||||
Die OTRS Gruppe wird Ihre Daten nicht an Dritte weitergeben, es sei denn diese werden zur weiteren Geschäftsabwicklung benötigt. Die OTRS Gruppe wird Ihre Daten nur an öffentliche Einrichtungen und Behörden weiterleiten, wenn dies per Gesetz oder per Gerichtsbeschluss erforderlich ist.
|
||||
</p>
|
||||
|
||||
<h1>Änderung der Datenschutzbestimmungen</h1>
|
||||
<p>
|
||||
Die OTRS Group behält sich vor Sicherheits- und Datenschutzbestimmungen, wenn diese durch technische Entwicklungen notwendig sind, zu ändern In diesem Fall werden wir ebenfalls unsere Datenschutzbestimmungen anpassen. Bitte überprüfen Sie regelmäßig ob eine neuere Version unserer Datenschutzerklärung verfügbar ist.
|
||||
</p>
|
||||
|
||||
<h1>Anspruch auf Information</h1>
|
||||
<p>
|
||||
Sie haben jederzeit das Recht Einsicht in Daten die zu Ihrer Person gespeichert sind, deren Herkunft und Empfänger zu verlangen, sowie den Zweck der Datenverarbeitung zu erfahren. Sie können die über Sie gespeicherten Daten durch eine E-Mail an info@otrs.com anfordern.
|
||||
</p>
|
||||
|
||||
<h1>Weitere Informationen</h1>
|
||||
<p>
|
||||
Ihr Vertrauen ist uns sehr wichtig. Wir sind bereit, Sie über die Verarbeitung Ihrer personenbezogenen Daten jederzeit zu informieren. Wenn Sie weitere Fragen haben, die durch diese Datenschutzerklärung nicht beantwortet werden konnten oder wenn Sie nähere Informationen zu einem bestimmten Thema benötigen, wenden Sie sich an info@otrs.com.
|
||||
</p>
|
||||
[% ELSE %]
|
||||
<p>
|
||||
Here at OTRS Group we take the protection of your personal details very seriously and strictly adhere to data protection laws.
|
||||
All passwords are automatically made unrecognizable before the information is sent.
|
||||
Under no circumstances will any data we obtain be sold or passed on to unauthorized third parties.
|
||||
</p>
|
||||
<p>
|
||||
The following explanation provides you with an overview of how we guarantee this protection and which type of data is collected for which purpose.
|
||||
</p>
|
||||
|
||||
<h1>Data Handling with 'System Registration'</h1>
|
||||
<p>
|
||||
Information received through the 'Service Center' is saved by OTRS Group.
|
||||
This only applies to data that OTRS Group requires to analyze the performance and function of the OTRS server or to establish contact.
|
||||
</p>
|
||||
|
||||
<h1>Safety of Personal Details</h1>
|
||||
<p>
|
||||
OTRS Group protects your personal data from unauthorized access, use or publication.
|
||||
OTRS Group ensures that the personal information you store on the server is protected from unauthorized access and publication.
|
||||
</p>
|
||||
|
||||
<h1>Disclosure of Details</h1>
|
||||
<p>
|
||||
OTRS Group will not pass on your details to third parties unless required for business transactions.
|
||||
OTRS Group will only pass on your details to entitled public institutions and authorities if required by law or court order.
|
||||
</p>
|
||||
|
||||
<h1>Amendment of Data Protection Policy</h1>
|
||||
<p>
|
||||
OTRS Group reserves the right to amend this security and data protection policy if required by technical developments.
|
||||
In this case we will also adapt our information regarding data protection accordingly.
|
||||
Please regularly refer to the latest version of our Data Protection Policy.
|
||||
</p>
|
||||
|
||||
<h1>Right to Information</h1>
|
||||
<p>
|
||||
You have the right to demand information concerning the data saved about you, its origin and recipients, as well as the purpose of the data processing at any time.
|
||||
You can request information about the saved data by sending an e-mail to info@otrs.com.
|
||||
</p>
|
||||
|
||||
<h1>Further Information</h1>
|
||||
<p>
|
||||
Your trust is very important to us. We are willing to inform you about the processing of your personal details at any time.
|
||||
If you have any questions that have not been answered by this Data Protection Policy or if you require more detailed information about a specific topic, please contact info@otrs.com.
|
||||
</p>
|
||||
[% END %]
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OTRSIDRegistration") %]
|
||||
[% RenderBlockStart("OTRSIDDeregistration") %]
|
||||
<div class="ServiceDescription">
|
||||
<p>
|
||||
[% Translate("If you deregister your system, you will lose these benefits:") | html %]
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
[% Translate("You will receive updates about relevant security releases.") | html %]
|
||||
</li>
|
||||
<li>
|
||||
[% Translate("With your system registration we can improve our services for you, because we have all relevant information available.") | html %]
|
||||
</li>
|
||||
</ul>
|
||||
<p>[% Translate("You need to log in with your OTRS-ID to deregister your system.") | html %]</p>
|
||||
<p>[% Translate("Your OTRS-ID is the email address you used to sign up on the OTRS.com webpage.") | html %]</p>
|
||||
</div>
|
||||
[% RenderBlockEnd("OTRSIDDeregistration") %]
|
||||
[% RenderBlockStart("OTRSIDValidationDaemonNotRunning") %]
|
||||
<div class="ServiceDescription">
|
||||
<p>
|
||||
[% Translate("Please note that you can't register your system if OTRS Daemon is not running correctly!") | html %]
|
||||
<a href="#" class="DaemonInfo">[% Translate("Instructions") | html %]</a>.
|
||||
</p>
|
||||
</div>
|
||||
[% RenderBlockEnd("OTRSIDValidationDaemonNotRunning") %]
|
||||
[% RenderBlockStart("OTRSIDValidationForm") %]
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="OTRSID"><span class="Marker">*</span> [% Translate("OTRS-ID") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="email" name="OTRSID" id="OTRSID" value="[% Data.OTRSID | html %]" class="W50pc Validate_Required [% Data.EmailInvalid | html %]" maxlength="200"/>
|
||||
<div id="OTRSIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="OTRSIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
<label class="Mandatory" for="Password"><span class="Marker">*</span> [% Translate("Password") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="password" name="Password" id="Password" class="W50pc Validate_Required [% Data.PasswordInvalid | html %]" maxlength="200"/>
|
||||
<div id="PasswordError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="PasswordServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("You don't have an OTRS-ID yet?") | html %]
|
||||
<a href="https://portal.otrs.com/" target="_blank">
|
||||
[% Translate("Sign up now") | html %]
|
||||
</a>
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Forgot your password?") | html %]
|
||||
<a href="https://portal.otrs.com/" target="_blank">
|
||||
[% Translate("Retrieve a new one") | html %]
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Primary CallForAction" type="submit" id="Submit">
|
||||
<span>[% Translate("Next") | html %] <i class="fa fa-caret-right"></i></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="TableLike Hidden ErrorMsg">
|
||||
<div class="Field">
|
||||
<p id="FormRegistrationResultMessage" class="Error"></p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
[% RenderBlockEnd("OTRSIDValidationForm") %]
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("OTRSIDValidation") %]
|
||||
[% RenderBlockStart("Registration") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("System Registration") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="ServiceDescription">
|
||||
[% Translate("This data will be frequently transferred to OTRS Group when you register this system.") | html %]
|
||||
</div>
|
||||
<div id="SystemDataListContainer" class="ListContainer">
|
||||
<table class="DataTable SystemDataListContainer" id="SystemDataList">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Attribute") | html %]</th>
|
||||
<th>[% Translate("Value") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>[% Translate("FQDN") | html %]</td>
|
||||
<td>[% Data.FQDN | html %]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>[% Translate("OTRS Version") | html %]</td>
|
||||
<td>[% Data.OTRSVersion | html %]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>[% Translate("Database") | html %]</td>
|
||||
<td>[% Data.Version | html %]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>[% Translate("Operating System") | html %]</td>
|
||||
<td>[% Data.OSName | html %]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>[% Translate("Perl Version") | html %]</td>
|
||||
<td>[% Data.PerlVersion | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" method="post" id="FormRegistration" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="AddAction"/>
|
||||
<input type="hidden" name="Token" value="[% Data.Token | html %]"/>
|
||||
<input type="hidden" name="OTRSID" value="[% Data.OTRSID | html %]"/>
|
||||
|
||||
<fieldset class="TableLike Registration">
|
||||
|
||||
<label class="Mandatory" for="Type"><span class="Marker">*</span> [% Translate("System type") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.SystemTypeOption %]
|
||||
<div id="TypeError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="SystemTypeServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Description">[% Translate("Description") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Description" id="Description" value="[% Data.Description | html %]" class="W50pc" maxlength="250"/>
|
||||
<p class="FieldExplanation">[% Translate("Optional description of this system.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SupportDataSending">[% Translate("Send support data") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="SupportDataSending" id="SupportDataSending" value="Yes" />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This will allow the system to send additional support data information to OTRS Group.") | html %] <br/>
|
||||
<a href="[% Env("Baselink") %]Action=AdminSupportDataCollector" target="_blank">
|
||||
[% Translate("Support Data Collector") | html %]
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Primary CallForAction" type="submit" id="Submit" value="[% Translate("Register") | html %]">
|
||||
<span>
|
||||
<i class="fa fa-check"></i>
|
||||
[% Translate("Register") | html %]
|
||||
</span>
|
||||
</button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("Registration") %]
|
||||
[% RenderBlockStart("Deregistration") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Deregister System") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" method="post" id="FormRegistration" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="DeregisterAction"/>
|
||||
<input type="hidden" name="Token" value="[% Data.Token | html %]"/>
|
||||
<input type="hidden" name="OTRSID" value="[% Data.OTRSID | html %]"/>
|
||||
|
||||
<fieldset class="TableLike">
|
||||
<div class="ServiceDescription">
|
||||
[% Translate("Continuing with this step will deregister the system from OTRS Group.") | html %]
|
||||
</div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Primary CallForAction" type="submit" id="Submit" value="[% Translate("Deregister") | html %]">
|
||||
<span><i class="fa fa-sign-out"></i> [% Translate("Deregister") | html %]</span>
|
||||
</button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("Deregistration") %]
|
||||
[% RenderBlockStart("Edit") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("System Registration") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="ServiceDescription">
|
||||
[% Translate("You can modify registration settings here.") | html %]
|
||||
</div>
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" method="post" id="FormRegistration" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="EditAction"/>
|
||||
|
||||
<fieldset class="TableLike Registration">
|
||||
|
||||
<label class="Mandatory" for="Type"><span class="Marker">*</span> [% Translate("System type") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.SystemTypeOption %]
|
||||
<div id="TypeError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="SystemTypeServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Description">[% Translate("Description") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Description" id="Description" value="[% Data.Description | html %]" class="W50pc" maxlength="250"/>
|
||||
<p class="FieldExplanation">[% Translate("Optional description of this system.") | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SupportDataSending">[% Translate("Send support data") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="checkbox" name="SupportDataSending" id="SupportDataSending" value="Yes" [% Data.SupportDataSendingChecked %] />
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This will allow the system to send additional support data information to OTRS Group.") | html %] <br/>
|
||||
<a href="[% Env("Baselink") %]Action=AdminSupportDataCollector" target="_blank">
|
||||
[% Translate("Support Data Collector") | html %]
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Primary CallForAction" type="submit" id="Submit" value="[% Translate("Update") | html %]">
|
||||
<span>[% Translate("Update") | html %]</span>
|
||||
</button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("Edit") %]
|
||||
[% RenderBlockStart("SentDataOverview") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Overview of Transmitted Data") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% RenderBlockStart("SentDataOverviewNoData") %]
|
||||
<p>
|
||||
[% Translate('There is no data regularly sent from your system to %s.', 'cloud.otrs.com') | html %]
|
||||
</p>
|
||||
[% RenderBlockEnd("SentDataOverviewNoData") %]
|
||||
[% RenderBlockStart("SentDataOverviewData") %]
|
||||
<p>
|
||||
[% Translate('The following data is sent at minimum every 3 days from your system to %s.', 'cloud.otrs.com') | html %]
|
||||
[% Translate('The data will be transferred in JSON format via a secure https connection.') | html %]
|
||||
</p>
|
||||
<h3 class="SpacingTop SpacingBottom">[% Translate('System Registration Data') | html %]</h3>
|
||||
<textarea class="SupportData AsBlock W95pc" rows="10">[% Data.RegistrationUpdate | replace('\$VAR1 = ', '') | html %]</textarea>
|
||||
[% IF Data.SupportData %]
|
||||
<h3 class="SpacingTop SpacingBottom">[% Translate('Support Data') | html %]</h3>
|
||||
<textarea class="SupportData AsBlock W95pc" rows="10">[% Data.SupportData | replace('\$VAR1 = ', '') | html %]</textarea>
|
||||
[% END %]
|
||||
|
||||
[% RenderBlockEnd("SentDataOverviewData") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("SentDataOverview") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
182
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminRole.tt
Normal file
182
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminRole.tt
Normal file
@@ -0,0 +1,182 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Role Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Role Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate('Add Role'),}) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit Role")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Name ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Add" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add Role") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterRoles">[% Translate("Filter for Roles") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterRoles" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterRoles" value="" title="[% Translate("Filter for roles") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Create a role and put groups in it. Then add the role to the users.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("OverviewHeader") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %] ([% Data.AllItemsCount | html %] [% Translate("total") | html %])</h2>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewHeader") %]
|
||||
[% RenderBlockStart("NoRolesDefined") %]
|
||||
<div class="Content">
|
||||
<p>[% Translate("There are no roles defined. Please use the 'Add' button to create a new role.") | html %]</p>
|
||||
</div>
|
||||
[% RenderBlockEnd("NoRolesDefined") %]
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="Roles">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr [% IF Data.ValidID != 1 %]class="Invalid"[% END %]>
|
||||
<td><a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a></td>
|
||||
<td title="[% Data.Comment | html %]">[% Data.Comment | truncate(26) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="5">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
|
||||
[% RenderBlockStart("OverviewUpdate") %]
|
||||
<div class="Header">
|
||||
[% IF Data.Action == 'Add' %]
|
||||
<h2>[% Translate("Add Role") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit Role") | html %]</h2>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | uri %]Action"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameInvalid | html %]" maxlength="200"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOption %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="250"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewUpdate") %]
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,253 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Manage Role-Group Relations") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Manage Role-Group Relations'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% IF Data.Type %]
|
||||
[% USE EditTitle = String(Data.BreadcrumbTitle) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( " '", Data.Name, "'" ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockStart("OverviewAction") %]
|
||||
<div class="SidebarColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminRole;Subaction=Add" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add Role") | html %]</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminGroup;Subaction=Add" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add Group") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterRoles">[% Translate("Filter for Roles") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterRoles" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterRoles" value="" title="[% Translate("Filter for roles") | html %]"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterGroups">[% Translate("Filter for Groups") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterGroups" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterGroups" value="" title="[% Translate("Filter for groups") | html %]" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Overview") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="Roles">
|
||||
<li class="Header">[% Translate("Roles") | html %]</li>
|
||||
<li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li>
|
||||
[% RenderBlockStart("NoDataFoundMsgRole") %]
|
||||
<li>[% Translate("No data found.") | html %]</li>
|
||||
[% RenderBlockEnd("NoDataFoundMsgRole") %]
|
||||
[% RenderBlockStart("List1n") %]
|
||||
<li><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=[% Data.Subaction | uri %];ID=[% Data.ID | uri %]" class="AsBlock">[% Data.Name | html %]</a></li>
|
||||
[% RenderBlockEnd("List1n") %]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="Groups">
|
||||
<li class="Header">[% Translate("Groups") | html %]</li>
|
||||
<li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li>
|
||||
[% RenderBlockStart("NoDataFoundMsgGroup") %]
|
||||
<li>[% Translate("No data found.") | html %]</li>
|
||||
[% RenderBlockEnd("NoDataFoundMsgGroup") %]
|
||||
[% RenderBlockStart("Listn1") %]
|
||||
<li><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=[% Data.Subaction | uri %];ID=[% Data.ID | uri %]" class="AsBlock">[% Data.Name | html %]</a></li>
|
||||
[% RenderBlockEnd("Listn1") %]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("OverviewAction") %]
|
||||
|
||||
[% RenderBlockStart("Change") %]
|
||||
<div class="SidebarColumn">
|
||||
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="Filter">[% Translate("Filter") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="Filter" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="Filter" value="" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Select the role:group permissions.") | html %]
|
||||
[% Translate("If nothing is selected, then there are no permissions in this group (tickets will not be available for the role).") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>
|
||||
[% Data.BreadcrumbTitle | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Data.ActionHome | uri %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a>
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content ">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" name="matrix">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Change[% Data.Type | html %]"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<table class="DataTable VariableWidth" id="UserGroups">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate(Data.NeType) | html %]</th>
|
||||
[% RenderBlockStart("ChangeHeader") %]
|
||||
<th class="Center [% Data.Mark | html %]">
|
||||
<input type="checkbox" name="[% Data.Type | html %]" id="SelectAll[% Data.Type | html %]" title="[% Translate("Toggle %s permission for all", Translate(Data.Type)) | html %]" value="" />
|
||||
[% Translate(Data.Type) | html %]
|
||||
</th>
|
||||
[% RenderBlockEnd("ChangeHeader") %]
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsgList") %]
|
||||
<tr>
|
||||
<td colspan="[% Data.ColSpan | html %]">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsgList") %]
|
||||
[% RenderBlockStart("ChangeRow") %]
|
||||
<tr>
|
||||
<td><a href="[% Env("Baselink") %]Action=Admin[% Data.NeType | uri %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a></td>
|
||||
[% RenderBlockStart("ChangeRowItem") %]
|
||||
<td class="[% Data.Mark | html %]">
|
||||
<input type="checkbox" name="[% Data.Type | html %]" title="[% Translate("Toggle %s permission for %s", Translate(Data.Type), Data.Name) | html %]" value="[% Data.ID | html %]" [% Data.Selected %]/>
|
||||
</td>
|
||||
[% RenderBlockEnd("ChangeRowItem") %]
|
||||
</tr>
|
||||
[% RenderBlockEnd("ChangeRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="8">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="Field SpacingTop">
|
||||
<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>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Reference") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<dl>
|
||||
<dt>[% Translate("ro") | html %]</dt>
|
||||
<dd>
|
||||
[% Translate("Read only access to the ticket in this group/queue.") | html %]
|
||||
</dd>
|
||||
|
||||
<dt>[% Translate("move_into") | html %]</dt>
|
||||
<dd>
|
||||
[% Translate("Permissions to move tickets into this group/queue.") | html %]
|
||||
</dd>
|
||||
|
||||
<dt>[% Translate("create") | html %]</dt>
|
||||
<dd>
|
||||
[% Translate("Permissions to create tickets in this group/queue.") | html %]
|
||||
</dd>
|
||||
|
||||
<dt>[% Translate("note") | html %]</dt>
|
||||
<dd>
|
||||
[% Translate("Permissions to add notes to tickets in this group/queue.") | html %]
|
||||
</dd>
|
||||
|
||||
<dt>[% Translate("owner") | html %]</dt>
|
||||
<dd>
|
||||
[% Translate("Permissions to change the owner of tickets in this group/queue.") | html %]
|
||||
</dd>
|
||||
|
||||
<dt>[% Translate("priority") | html %]</dt>
|
||||
<dd>
|
||||
[% Translate("Permissions to change the ticket priority in this group/queue.") | html %]
|
||||
</dd>
|
||||
|
||||
<dt>[% Translate("rw") | html %]</dt>
|
||||
<dd>
|
||||
[% Translate("Full read and write access to the tickets in this group/queue.") | html %]
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Change") %]
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
202
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminRoleUser.tt
Normal file
202
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminRoleUser.tt
Normal file
@@ -0,0 +1,202 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Manage Agent-Role Relations") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Manage Agent-Role Relations'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminUser;Subaction=Add" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add Agent") | html %]</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=AdminRole;Subaction=Add" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add Role") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterUsers">[% Translate("Filter for Agents") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterUsers" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterUsers" value="" title="[% Translate("Filter for agents") | html %]"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterRoles">[% Translate("Filter for Roles") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterRoles" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterRoles" value="" title="[% Translate("Filter for roles") | html %]"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Overview") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content LayoutGrid ColumnsWithSpacing">
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="Users">
|
||||
<li class="Header">[% Translate("Agents") | html %]</li>
|
||||
<li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li>
|
||||
[% RenderBlockStart("List1n") %]
|
||||
<li><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=[% Data.Subaction | uri %];ID=[% Data.ID | uri %]" class="AsBlock">[% Data.Name | html %]</a></li>
|
||||
[% RenderBlockEnd("List1n") %]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="Size1of2">
|
||||
<ul class="Tablelike" id="Roles">
|
||||
<li class="Header">[% Translate("Roles") | html %]</li>
|
||||
<li class="FilterMessage Hidden">[% Translate("No matches found.") | html %]</li>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<li>[% Translate("No data found.") | html %]</li>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("Listn1") %]
|
||||
<li><a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=[% Data.Subaction | uri %];ID=[% Data.ID | uri %]" class="AsBlock">[% Data.Name | html %]</a></li>
|
||||
[% RenderBlockEnd("Listn1") %]
|
||||
</ul>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
[% RenderBlockStart("Change") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Manage Role-Agent Relations") | html %]</h1>
|
||||
|
||||
[% USE EditTitle = String(Data.BreadcrumbTitle) %]
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Manage Role-Agent Relations'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
{
|
||||
Name => EditTitle.append( " '", Data.Name, "'" )
|
||||
}
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>
|
||||
<label for="Filter">[% Translate("Filter") | html %]</label>
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="Filter" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="Filter" value="" title="[% Translate("Filter") | html %]" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>
|
||||
[% Data.BreadcrumbTitle | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Data.ActionHome | uri %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a>
|
||||
</h2>
|
||||
</div>
|
||||
<div class="Content ">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" name="matrix">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Change[% Data.Type | html %]"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
<table class="DataTable VariableWidth" id="UserRoles">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate(Data.VisibleNeType) | html %]</th>
|
||||
[% RenderBlockStart("ChangeHeader") %]
|
||||
<th class="Center [% Data.Mark | html %]">
|
||||
<input type="checkbox" name="[% Data.Type | html %]" id="SelectAll[% Data.Type | html %]" title="[% Translate("Toggle active state for all") | html %]" value="" />
|
||||
[% Translate("Active") | html %]
|
||||
</th>
|
||||
[% RenderBlockEnd("ChangeHeader") %]
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsgList") %]
|
||||
<tr>
|
||||
<td colspan="[% Data.ColSpan | html %]">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsgList") %]
|
||||
[% RenderBlockStart("ChangeRow") %]
|
||||
<tr>
|
||||
<td><a href="[% Env("Baselink") %]Action=Admin[% Data.NeType | uri %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a></td>
|
||||
<td class="[% Data.Mark | html %]">
|
||||
<input type="checkbox" name="[% Data.Type | html %]" title="[% Translate("Toggle active state for %s", Data.Name) | html %]" value="[% Data.ID | html %]" [% Data.Selected %]/>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("ChangeRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="2">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="Field SpacingTop">
|
||||
<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>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockEnd("Change") %]
|
||||
295
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminSLA.tt
Normal file
295
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminSLA.tt
Normal file
@@ -0,0 +1,295 @@
|
||||
# --
|
||||
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
||||
# --
|
||||
# $origin: otrs - b9cf29ede488bbc3bf5bd0d49f422ecc65668a0c - Kernel/Output/HTML/Templates/Standard/AdminSLA.tt
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("SLA Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('SLA Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% IF Data.SLAID %]
|
||||
[% USE EditTitle = String(Translate("Edit SLA")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.SLAName ) }) %]
|
||||
[% ELSIF Data.Subaction == "SLAEdit" %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add SLA"),}) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a class="CallForAction Fullsize Center" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=SLAEdit">
|
||||
<span><i class="fa fa-plus-square"></i>[% Translate("Add SLA") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterSLAs">[% Translate("Filter for SLAs") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterSLAs" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterSLAs" value="" title="[% Translate("Filter for SLAs") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("OverviewList") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<table class="DataTable" id="SLAs">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("SLA") | html %]</th>
|
||||
<th>[% Translate("Service") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewListRow") %]
|
||||
<tr [% IF Data.ValidID && Data.ValidID != 1 %]class="Invalid"[% END %]>
|
||||
<td><a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=SLAEdit;SLAID=[% Data.SLAID | uri %]">[% Data.Name | html %]</a></td>
|
||||
<td>[% Data.Service | html %]</td>
|
||||
<td title="[% Data.Comment | html %]">[% Data.Comment | truncate(26) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewListRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="6">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewList") %]
|
||||
|
||||
[% RenderBlockStart("SLAEdit") %]
|
||||
<div class="Header">
|
||||
[% IF !Data.SLAID %]
|
||||
<h2>[% Translate("Add SLA") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit SLA") | html %]</h2>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="SLASave"/>
|
||||
<input type="hidden" name="SLAID" value="[% Data.SLAID | html %]"/>
|
||||
[% IF Data.SLAID %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("SLA") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameInvalid | html %]" maxlength="200"/>
|
||||
<div id="NameError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
# ---
|
||||
# ITSMCore
|
||||
# ---
|
||||
<label for="ServiceIDs">[% Translate("Type") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.TypeOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
# ---
|
||||
|
||||
<label for="ServiceIDs">[% Translate("Service") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ServiceOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Calendar">[% Translate("Calendar") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.CalendarOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="FirstResponseTime">[% Translate("Escalation - first response time") | html %] ([% Translate("minutes") | html %]):</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="FirstResponseTime" id="FirstResponseTime" value="[% Data.FirstResponseTime | html %]" class="W50px Validate_Number" maxlength="10"/>
|
||||
<div id="FirstResponseTimeError" class="TooltipErrorMessage"><p>[% Translate("Please write only numbers!") | html %]</p></div>
|
||||
(<label for="FirstResponseNotify">[% Translate("Notify by") | html %]</label> [% Data.FirstResponseNotifyOptionStrg %])
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("0 = no escalation") | html %] - 24 [% Translate("hours") | html %] = 1440 [% Translate("minutes") | html %] - [% Translate("Only business hours are counted.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="UpdateTime">[% Translate("Escalation - update time") | html %] ([% Translate("minutes") | html %]):</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="UpdateTime" id="UpdateTime" value="[% Data.UpdateTime | html %]" class="W50px Validate_Number" maxlength="10"/>
|
||||
<div id="UpdateTimeError" class="TooltipErrorMessage"><p>[% Translate("Please write only numbers!") | html %]</p></div>
|
||||
(<label for="UpdateNotify">[% Translate("Notify by") | html %]</label> [% Data.UpdateNotifyOptionStrg %])
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("0 = no escalation") | html %] - 24 [% Translate("hours") | html %] = 1440 [% Translate("minutes") | html %] - [% Translate("Only business hours are counted.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SolutionTime">[% Translate("Escalation - solution time") | html %] ([% Translate("minutes") | html %]):</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="SolutionTime" id="SolutionTime" value="[% Data.SolutionTime | html %]" class="W50px Validate_Number" maxlength="10"/>
|
||||
<div id="SolutionTimeError" class="TooltipErrorMessage"><p>[% Translate("Please write only numbers!") | html %]</p></div>
|
||||
(<label for="SolutionNotify">[% Translate("Notify by") | html %]</label> [% Data.SolutionNotifyOptionStrg %])
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("0 = no escalation") | html %] - 24 [% Translate("hours") | html %] = 1440 [% Translate("minutes") | html %] - [% Translate("Only business hours are counted.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
# ---
|
||||
# ITSMCore
|
||||
# ---
|
||||
<label for="MinTimeBetweenIncidents">[% Translate("Minimum Time Between Incidents") | html %] ([% Translate("minutes") | html %]):</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="MinTimeBetweenIncidents" id="MinTimeBetweenIncidents" value="[% Data.MinTimeBetweenIncidents | html %]" class="W25pc Validate_Number" maxlength="15"/>
|
||||
<div id="MinTimeBetweenIncidentsError" class="TooltipErrorMessage"><p>[% Translate("Please write only numbers!") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
# ---
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="250"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockStart("SLAItem") %]
|
||||
[% RenderBlockStart("InputKey") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.SelectedID | html %]" class="W50pc"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("InputKey") %]
|
||||
[% RenderBlockStart("Input") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.SelectedID | html %]" class="W50pc"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate(Data.Desc) | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Input") %]
|
||||
[% RenderBlockStart("TextArea") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]:</label>
|
||||
<div class="Field">
|
||||
<textarea name="[% Data.Name | html %]" id="[% Data.Name | html %]" rows="[% Data.Rows | html %]" cols="[% Data.Cols | html %]">[% Data.SelectedID | html %]</textarea>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate(Data.Desc) | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockEnd("TextArea") %]
|
||||
[% RenderBlockStart("Option") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.Option %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate(Data.Desc) | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Option") %]
|
||||
[% RenderBlockStart("Upload") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input name="[% Data.Name | html %]" id="[% Data.Name | html %]" type="file" class="fixed"/>
|
||||
<a href="">[% Data.Filename | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Upload") %]
|
||||
[% RenderBlockStart("Password") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="password" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="" class="W50pc"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Password") %]
|
||||
[% RenderBlockEnd("SLAItem") %]
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.SLAID %]
|
||||
<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") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("SLAEdit") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,274 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("SLA Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('SLA Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% IF Data.SLAID %]
|
||||
[% USE EditTitle = String(Translate("Edit SLA")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.SLAName ) }) %]
|
||||
[% ELSIF Data.Subaction == "SLAEdit" %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add SLA"),}) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a class="CallForAction Fullsize Center" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=SLAEdit">
|
||||
<span><i class="fa fa-plus-square"></i>[% Translate("Add SLA") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterSLAs">[% Translate("Filter for SLAs") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterSLAs" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterSLAs" value="" title="[% Translate("Filter for SLAs") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("OverviewList") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<table class="DataTable" id="SLAs">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("SLA") | html %]</th>
|
||||
<th>[% Translate("Service") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewListRow") %]
|
||||
<tr [% IF Data.ValidID && Data.ValidID != 1 %]class="Invalid"[% END %]>
|
||||
<td><a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=SLAEdit;SLAID=[% Data.SLAID | uri %]">[% Data.Name | html %]</a></td>
|
||||
<td>[% Data.Service | html %]</td>
|
||||
<td title="[% Data.Comment | html %]">[% Data.Comment | truncate(26) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewListRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="6">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewList") %]
|
||||
|
||||
[% RenderBlockStart("SLAEdit") %]
|
||||
<div class="Header">
|
||||
[% IF !Data.SLAID %]
|
||||
<h2>[% Translate("Add SLA") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit SLA") | html %]</h2>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="SLASave"/>
|
||||
<input type="hidden" name="SLAID" value="[% Data.SLAID | html %]"/>
|
||||
[% IF Data.SLAID %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("SLA") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameInvalid | html %]" maxlength="200"/>
|
||||
<div id="NameError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ServiceIDs">[% Translate("Service") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ServiceOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Calendar">[% Translate("Calendar") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.CalendarOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="FirstResponseTime">[% Translate("Escalation - first response time") | html %] ([% Translate("minutes") | html %]):</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="FirstResponseTime" id="FirstResponseTime" value="[% Data.FirstResponseTime | html %]" class="W50px Validate_Number" maxlength="10"/>
|
||||
<div id="FirstResponseTimeError" class="TooltipErrorMessage"><p>[% Translate("Please write only numbers!") | html %]</p></div>
|
||||
(<label for="FirstResponseNotify">[% Translate("Notify by") | html %]</label> [% Data.FirstResponseNotifyOptionStrg %])
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("0 = no escalation") | html %] - 24 [% Translate("hours") | html %] = 1440 [% Translate("minutes") | html %] - [% Translate("Only business hours are counted.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="UpdateTime">[% Translate("Escalation - update time") | html %] ([% Translate("minutes") | html %]):</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="UpdateTime" id="UpdateTime" value="[% Data.UpdateTime | html %]" class="W50px Validate_Number" maxlength="10"/>
|
||||
<div id="UpdateTimeError" class="TooltipErrorMessage"><p>[% Translate("Please write only numbers!") | html %]</p></div>
|
||||
(<label for="UpdateNotify">[% Translate("Notify by") | html %]</label> [% Data.UpdateNotifyOptionStrg %])
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("0 = no escalation") | html %] - 24 [% Translate("hours") | html %] = 1440 [% Translate("minutes") | html %] - [% Translate("Only business hours are counted.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SolutionTime">[% Translate("Escalation - solution time") | html %] ([% Translate("minutes") | html %]):</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="SolutionTime" id="SolutionTime" value="[% Data.SolutionTime | html %]" class="W50px Validate_Number" maxlength="10"/>
|
||||
<div id="SolutionTimeError" class="TooltipErrorMessage"><p>[% Translate("Please write only numbers!") | html %]</p></div>
|
||||
(<label for="SolutionNotify">[% Translate("Notify by") | html %]</label> [% Data.SolutionNotifyOptionStrg %])
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("0 = no escalation") | html %] - 24 [% Translate("hours") | html %] = 1440 [% Translate("minutes") | html %] - [% Translate("Only business hours are counted.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="250"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockStart("SLAItem") %]
|
||||
[% RenderBlockStart("InputKey") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.SelectedID | html %]" class="W50pc"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("InputKey") %]
|
||||
[% RenderBlockStart("Input") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.SelectedID | html %]" class="W50pc"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate(Data.Desc) | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Input") %]
|
||||
[% RenderBlockStart("TextArea") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]:</label>
|
||||
<div class="Field">
|
||||
<textarea name="[% Data.Name | html %]" id="[% Data.Name | html %]" rows="[% Data.Rows | html %]" cols="[% Data.Cols | html %]">[% Data.SelectedID | html %]</textarea>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate(Data.Desc) | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockEnd("TextArea") %]
|
||||
[% RenderBlockStart("Option") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.Option %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate(Data.Desc) | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Option") %]
|
||||
[% RenderBlockStart("Upload") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input name="[% Data.Name | html %]" id="[% Data.Name | html %]" type="file" class="fixed"/>
|
||||
<a href="">[% Data.Filename | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Upload") %]
|
||||
[% RenderBlockStart("Password") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="password" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="" class="W50pc"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Password") %]
|
||||
[% RenderBlockEnd("SLAItem") %]
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.SLAID %]
|
||||
<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") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("SLAEdit") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
236
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminSLA.tt.save
Normal file
236
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminSLA.tt.save
Normal file
@@ -0,0 +1,236 @@
|
||||
# --
|
||||
# Copyright (C) 2001-2016 OTRS AG, http://otrs.com/
|
||||
# --
|
||||
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
# the enclosed file COPYING for license information (AGPL). If you
|
||||
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1>[% Translate("SLA Management") | html %]</h1>
|
||||
|
||||
<div class="SidebarColumn">
|
||||
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a class="CallForAction Fullsize Center" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=SLAEdit">
|
||||
<span><i class="fa fa-plus-square"></i>[% Translate("Add SLA") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("OverviewList") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("SLA") | html %]</th>
|
||||
<th>[% Translate("Service") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewListRow") %]
|
||||
<tr [% IF Data.ValidID && Data.ValidID != 1 %]class="Invalid"[% END %]>
|
||||
<td><a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=SLAEdit;SLAID=[% Data.SLAID | uri %]">[% Data.Name | html %]</a></td>
|
||||
<td>[% Translate(Data.Service) | html %]</td>
|
||||
<td title="[% Data.Comment | html %]">[% Data.Comment | truncate(26) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewListRow") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewList") %]
|
||||
|
||||
[% RenderBlockStart("SLAEdit") %]
|
||||
<div class="Header">
|
||||
[% RenderBlockStart("HeaderAdd") %]
|
||||
<h2>[% Translate("Add SLA") | html %]</h2>
|
||||
[% RenderBlockEnd("HeaderAdd") %]
|
||||
[% RenderBlockStart("HeaderEdit") %]
|
||||
<h2>[% Translate("Edit SLA") | html %]</h2>
|
||||
[% RenderBlockEnd("HeaderEdit") %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="SLASave"/>
|
||||
<input type="hidden" name="SLAID" value="[% Data.SLAID | html %]"/>
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label for="Name">[% Translate("SLA") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameInvalid | html %]" maxlength="200"/>
|
||||
<div id="NameError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ServiceIDs">[% Translate("Service") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ServiceOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Calendar">[% Translate("Calendar") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.CalendarOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="FirstResponseTime">[% Translate("Escalation - first response time") | html %] ([% Translate("minutes") | html %]):</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="FirstResponseTime" id="FirstResponseTime" value="[% Data.FirstResponseTime | html %]" class="W50px Validate_Number" maxlength="10"/>
|
||||
<div id="FirstResponseTimeError" class="TooltipErrorMessage"><p>[% Translate("Please write only numbers!") | html %]</p></div>
|
||||
(<label for="FirstResponseNotify">[% Translate("Notify by") | html %]</label> [% Data.FirstResponseNotifyOptionStrg %])
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("0 = no escalation") | html %] - 24 [% Translate("hours") | html %] = 1440 [% Translate("minutes") | html %] - [% Translate("Only business hours are counted.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="UpdateTime">[% Translate("Escalation - update time") | html %] ([% Translate("minutes") | html %]):</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="UpdateTime" id="UpdateTime" value="[% Data.UpdateTime | html %]" class="W50px Validate_Number" maxlength="10"/>
|
||||
<div id="UpdateTimeError" class="TooltipErrorMessage"><p>[% Translate("Please write only numbers!") | html %]</p></div>
|
||||
(<label for="UpdateNotify">[% Translate("Notify by") | html %]</label> [% Data.UpdateNotifyOptionStrg %])
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("0 = no escalation") | html %] - 24 [% Translate("hours") | html %] = 1440 [% Translate("minutes") | html %] - [% Translate("Only business hours are counted.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="SolutionTime">[% Translate("Escalation - solution time") | html %] ([% Translate("minutes") | html %]):</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="SolutionTime" id="SolutionTime" value="[% Data.SolutionTime | html %]" class="W50px Validate_Number" maxlength="10"/>
|
||||
<div id="SolutionTimeError" class="TooltipErrorMessage"><p>[% Translate("Please write only numbers!") | html %]</p></div>
|
||||
(<label for="SolutionNotify">[% Translate("Notify by") | html %]</label> [% Data.SolutionNotifyOptionStrg %])
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("0 = no escalation") | html %] - 24 [% Translate("hours") | html %] = 1440 [% Translate("minutes") | html %] - [% Translate("Only business hours are counted.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ValidID">[% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="250"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockStart("SLAItem") %]
|
||||
[% RenderBlockStart("InputKey") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.SelectedID | html %]" class="W50pc"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("InputKey") %]
|
||||
[% RenderBlockStart("Input") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.SelectedID | html %]" class="W50pc"/>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate(Data.Desc) | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Input") %]
|
||||
[% RenderBlockStart("TextArea") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]:</label>
|
||||
<div class="Field">
|
||||
<textarea name="[% Data.Name | html %]" id="[% Data.Name | html %]" rows="[% Data.Rows | html %]" cols="[% Data.Cols | html %]">[% Data.SelectedID | html %]</textarea>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate(Data.Desc) | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockEnd("TextArea") %]
|
||||
[% RenderBlockStart("Option") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.Option %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate(Data.Desc) | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Option") %]
|
||||
[% RenderBlockStart("Upload") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input name="[% Data.Name | html %]" id="[% Data.Name | html %]" type="file" class="fixed"/>
|
||||
<a href="">[% Data.Filename | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Upload") %]
|
||||
[% RenderBlockStart("Password") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="password" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="" class="W50pc"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Password") %]
|
||||
[% RenderBlockEnd("SLAItem") %]
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Primary CallForAction" type="submit" value="[% Translate("Submit") | html %]"><span>[% Translate("Submit") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("SLAEdit") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
401
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminSMIME.tt
Normal file
401
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminSMIME.tt
Normal file
@@ -0,0 +1,401 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("S/MIME Management") | html %][% IF Data.Subtitle %]:[% END %] [% Translate(Data.Subtitle) | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('S/MIME Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% IF Data.Action == "ShowAddCertificate" %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add Certificate"),}) %]
|
||||
[% ELSIF Data.Action == "ShowAddPrivate" %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add Private Key"),}) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
[% RenderBlockStart("Notice") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Notice") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content ActionList">
|
||||
<form action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="AdminSystemConfigurationGroup"/>
|
||||
<input type="hidden" name="RootNavigation" value="Core::Crypt::SMIME"/>
|
||||
[% RenderBlockStart("Disabled") %]
|
||||
<h3><span class="Warning">[% Translate("SMIME support is disabled") | html %]<span></h3>
|
||||
<fieldset>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("To be able to use SMIME in OTRS, you have to enable it first.") | html %]
|
||||
</p>
|
||||
<div class="Field">
|
||||
<button class="CallForAction Fullsize Center" type="submit" value="[% Translate("Enable it here!") | html %]">
|
||||
<span><i class="fa fa-unlock-alt"></i> [% Translate("Enable SMIME support") | html %]</span>
|
||||
</button>
|
||||
</div>
|
||||
[% RenderBlockEnd("Disabled") %]
|
||||
[% RenderBlockStart("NotWorking") %]
|
||||
<h3><span class="Error">[% Translate("Faulty SMIME configuration") | html %]<span></h3>
|
||||
<fieldset>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("SMIME support is enabled, but the relevant configuration contains errors. Please check the configuration using the button below.") | html %]
|
||||
</p>
|
||||
<div class="Field">
|
||||
<button class="CallForAction Fullsize Center" type="submit" value="[% Translate("Configure it here!") | html %]">
|
||||
<span><i class="fa fa-unlock-alt"></i> [% Translate("Check SMIME configuration") | html %]</span>
|
||||
</button>
|
||||
</div>
|
||||
[% RenderBlockEnd("NotWorking") %]
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Notice") %]
|
||||
[% 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=ShowAddCertificate"><span><i class="fa fa-plus-square"></i> [% Translate("Add Certificate") | html %]</span></a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="CallForAction Fullsize Center" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ShowAddPrivate"><span><i class="fa fa-plus-square"></i> [% Translate("Add Private Key") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
|
||||
[% RenderBlockStart("SMIMEFilter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterSMIME">[% Translate("Filter for Certificates") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul>
|
||||
<li>
|
||||
<form action="">
|
||||
<fieldset>
|
||||
<input type="text" id="FilterSMIME" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterSMIME" value="" title="[% Translate("Filter for certificates") | html %]" />
|
||||
</fieldset>
|
||||
</form>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("SMIMEFilter") %]
|
||||
|
||||
[% RenderBlockStart("OverviewHint") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("To show certificate details click on a certificate icon.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("To manage private certificate relations click on a private key icon.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewHint") %]
|
||||
[% RenderBlockStart("SignerCertHint") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can add relations to your private certificate, these will be embedded to the S/MIME signature every time you use this certificate to sign an email.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("See also") | html %]: <a href="http://en.wikipedia.org/wiki/S/MIME" target="_blank">http://en.wikipedia.org/wiki/S/MIME</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("SignerCertHint") %]
|
||||
[% RenderBlockStart("Hint") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("In this way you can directly edit the certification and private keys in file system.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("See also") | html %]: <a href="http://en.wikipedia.org/wiki/S/MIME" target="_blank">http://en.wikipedia.org/wiki/S/MIME</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Hint") %]
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content ">
|
||||
<table class="DataTable" id="SMIME">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>[% Translate("Type") | html %]</th>
|
||||
<th>[% Translate("Subject") | html %]</th>
|
||||
<th>[% Translate("Hash") | html %]</th>
|
||||
<th>[% Translate("Fingerprint") | html %]</th>
|
||||
<th>[% Translate("Create") | html %]</th>
|
||||
<th>[% Translate("Expires") | html %]</th>
|
||||
<th>[% Translate("Delete") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="8">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="8">[% Translate("No data found.") | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("Row") %]
|
||||
<tr [% IF Data.Expired %] class="Error" title="Expired"[% END %]>
|
||||
<td>
|
||||
|
||||
[% RenderBlockStart("CertificateRelationAdd") %]
|
||||
<a class="CertificateRelationAdd" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=SignerRelations;Fingerprint=[% Data.Fingerprint %]" title="[% Translate("Handle related certificates") | html %]">
|
||||
[% Translate("Handle related certificates") | html %]
|
||||
</a>
|
||||
[% RenderBlockEnd("CertificateRelationAdd") %]
|
||||
[% RenderBlockStart("CertificateRead") %]
|
||||
<a class="CertificateRead" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Read;Type=[% Data.Type | uri %];Filename=[% Data.Filename | uri %]" title="[% Translate("Read certificate") | html %]">
|
||||
[% Translate("Read certificate") | html %]
|
||||
</a>
|
||||
[% RenderBlockEnd("CertificateRead") %]
|
||||
|
||||
</td>
|
||||
<td>[% Data.Type | html %]</td>
|
||||
<td>[% Data.Subject | html %]</td>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Download;Type=[% Data.Type | uri %];Filename=[% Data.Filename | uri %]" title="[% Data.Hash | html %]">[% Data.Hash | truncate(12) | html %]</a>
|
||||
</td>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=DownloadFingerprint;Type=[% Data.Type | uri %];Filename=[% Data.Filename | uri %]" title="[% Data.Fingerprint | html %]">[% Data.Fingerprint | truncate(12) | html %]</a>
|
||||
</td>
|
||||
<td>[% Data.ShortStartDate | html %]</td>
|
||||
<td>[% Data.ShortEndDate | html %]</td>
|
||||
<td class="Center">
|
||||
<a class="TrashCan" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Delete;Type=[% Data.Type | uri %];Filename=[% Data.Filename | uri %];[% Env("ChallengeTokenParam") | html %]" title="[% Translate("Delete this certificate") | html %]">
|
||||
[% Translate("Delete this certificate") | html %]
|
||||
<i class="fa fa-trash-o"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("Row") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
[% RenderBlockStart("OverviewAddCertificate") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Add Certificate") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="AddCertificate"/>
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="File"><span class="Marker">*</span> [% Translate("File") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="file" size="30" name="FileUpload" id="FileUpload" class="Validate_Required [% Data.FileUploadInvalid | html %]"/>
|
||||
<div id="FileUploadError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="FileUploadServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Primary CallForAction" type="submit" value="[% Translate("Add") | html %]"><span>[% Translate("Add") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewAddCertificate") %]
|
||||
[% RenderBlockStart("OverviewAddPrivate") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Add Private Key") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" enctype="multipart/form-data" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="AddPrivate"/>
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="File"><span class="Marker">*</span> [% Translate("File") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="file" size="5" name="FileUpload" id="FileUpload" class="Validate_Required [% Data.FileUploadInvalid | html %]"/>
|
||||
<div id="FileUploadError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="FileUploadServerError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="Secret"><span class="Marker">*</span> [% Translate("Secret") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input class="W50pc Validate_Required" type="password" name="Secret" id="Secret" value="[% Data.Secret | html %]" maxlength="50"/>
|
||||
<div id="SecretError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Primary CallForAction" type="submit"><span>[% Translate("Submit") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewAddPrivate") %]
|
||||
[% RenderBlockStart("SignerCertificates") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Related Certificates for") | html %]: [% Data.CertFingerprint | html %] </h2>
|
||||
</div>
|
||||
<div class="Content ">
|
||||
<table class="DataTable" id="RelatedCerts">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>[% Translate("Type") | html %]</th>
|
||||
<th>[% Translate("Subject") | html %]</th>
|
||||
<th>[% Translate("Hash") | html %]</th>
|
||||
<th>[% Translate("Fingerprint") | html %]</th>
|
||||
<th>[% Translate("Create") | html %]</th>
|
||||
<th>[% Translate("Expires") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="7">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockStart("RelatedCertsNoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="7">[% Translate("No data found.") | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("RelatedCertsNoDataFoundMsg") %]
|
||||
[% RenderBlockStart("RelatedCertsRow") %]
|
||||
<tr>
|
||||
<td class="Center">
|
||||
<a class="Remove" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=SignerRelationDelete;CertFingerprint=[% Data.CertFingerprint | uri %];CAFingerprint=[% Data.Fingerprint | uri %];[% Env("ChallengeTokenParam") | html %]" title="[% Translate("Delete this relation") | html %]">
|
||||
[% Translate("Delete this relation") | html %]
|
||||
</a>
|
||||
</td>
|
||||
<td>[% Data.Type | html %]</td>
|
||||
<td>[% Data.Subject | html %]</td>
|
||||
<td>
|
||||
[% Data.Hash | truncate(12) | html %]
|
||||
</td>
|
||||
<td title="[% Data.Fingerprint | html %]">
|
||||
[% Data.Fingerprint | truncate(12) | html %]
|
||||
</td>
|
||||
<td>[% Data.ShortStartDate | html %]</td>
|
||||
<td>[% Data.ShortEndDate | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("RelatedCertsRow") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Available Certificates") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<fieldset>
|
||||
<label for="FilterSMIMECerts">[% Translate("Filter") | html %]: </label>
|
||||
<input type="text" id="FilterSMIMECerts" class="W50pc" name="FilterSMIME" value="" title="[% Translate("Filter for S/MIME certs") | html %]" />
|
||||
</fieldset>
|
||||
<table class="DataTable" id="AvailableCerts">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>[% Translate("Type") | html %]</th>
|
||||
<th>[% Translate("Subject") | html %]</th>
|
||||
<th>[% Translate("Hash") | html %]</th>
|
||||
<th>[% Translate("Fingerprint") | html %]</th>
|
||||
<th>[% Translate("Create") | html %]</th>
|
||||
<th>[% Translate("Expires") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="7">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockStart("AvailableCertsNoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="7">[% Translate("No data found.") | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("AvailableCertsNoDataFoundMsg") %]
|
||||
[% RenderBlockStart("AvailableCertsRow") %]
|
||||
<tr>
|
||||
<td>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=SignerRelationAdd;CertFingerprint=[% Data.CertFingerprint | uri %];CAFingerprint=[% Data.Fingerprint | uri %];[% Env("ChallengeTokenParam") | html %]" class="Add" title="[% Translate("Relate this certificate") | html %]">
|
||||
[% Translate("Relate this certificate") | html %]
|
||||
</a>
|
||||
</td>
|
||||
<td>[% Data.Type | html %]</td>
|
||||
<td>[% Data.Subject | html %]</td>
|
||||
<td>
|
||||
[% Data.Hash | truncate(12) | html %]
|
||||
</td>
|
||||
<td title="[% Data.Fingerprint | html %]">
|
||||
[% Data.Fingerprint | truncate(12) | html %]
|
||||
</td>
|
||||
<td>[% Data.ShortStartDate | html %]</td>
|
||||
<td>[% Data.ShortEndDate | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("AvailableCertsRow") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("SignerCertificates") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,28 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
<div class="LayoutPopup ARIARoleMain">
|
||||
<div class="Header">
|
||||
<h1>[% Translate("S/MIME Certificate") | html %]: [% Data.Filename | html %]</h1>
|
||||
<p>
|
||||
<a class="CancelClosePopup" href="#">[% Translate("Close this dialog") | html %]</a>
|
||||
</p>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate('Certificate Details') | html %]:</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<code>[% Data.CertificateText %]</code>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Footer">
|
||||
<button class="CancelClosePopup" value="Close" type="button" title="[% Translate("Close this dialog") | html %]" id="Close">[% Translate("Close this dialog") | html %]</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,243 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Salutation Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Salutation Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add Salutation"),}) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit Salutation")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Name ) }) %]
|
||||
[% 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("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a class="CallForAction Fullsize Center" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Add">
|
||||
<span><i class="fa fa-plus-square"></i>[% Translate("Add Salutation") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterSalutations">[% Translate("Filter for Salutations") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterSalutations" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterSalutations" value="" title="[% Translate("Filter for salutations") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="Salutations">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr [% IF Data.ValidID != 1 %]class="Invalid"[% END %]>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a>
|
||||
</td>
|
||||
<td title="[% Data.Comment | html %]">[% Data.Comment | truncate(20) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="5">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
[% RenderBlockStart("OverviewUpdate") %]
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
|
||||
[% IF Data.Action == 'Add' %]
|
||||
<h2>[% Translate("Add Salutation") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit Salutation") | html %]</h2>
|
||||
[% END %]
|
||||
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | uri %]Action"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameInvalid | html %]" maxlength="200"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="RichText">[% Translate("Salutation") | html %]:</label>
|
||||
<div class="RichTextField">
|
||||
<textarea id="RichText" class="RichText" rows="10" cols="74" name="Text">[% Data.Text | html %]</textarea>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOption %]
|
||||
<div id="ValidIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="250"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<p>[% Translate("You can use the following tags") | html %]:</p>
|
||||
<dl>
|
||||
<dt><code><OTRS_OWNER_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Ticket owner options") | html %] ([% Translate("e. g.") | html %]
|
||||
<code><OTRS_OWNER_UserFirstname></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_RESPONSIBLE_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Ticket responsible options") | html %] ([% Translate("e. g.") | html %]
|
||||
<code><OTRS_RESPONSIBLE_UserFirstname></code>).
|
||||
</dd>
|
||||
<dt><code><OTRS_CURRENT_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Options of the current user who requested this action") | html %] ([% Translate("e. g.") | html %]
|
||||
<code><OTRS_CURRENT_UserFirstname></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_TICKET_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Options of the ticket data") | html %] ([% Translate("e. g.") | html %]
|
||||
<code><OTRS_TICKET_TicketNumber>, <OTRS_TICKET_TicketID>, <OTRS_TICKET_Queue>, <OTRS_TICKET_State></code>).
|
||||
</dd>
|
||||
<dt><code><OTRS_CUSTOMER_DATA_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Options of the current customer user data") | html %] ([% Translate("e. g.") | html %]
|
||||
<code><OTRS_CUSTOMER_DATA_UserFirstname></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CONFIG_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Config options") | html %] ([% Translate("e. g.") | html %] <code><OTRS_CONFIG_HttpType></code>).
|
||||
</dd>
|
||||
</dl>
|
||||
<p class="SpacingTop">
|
||||
[% Translate("Example salutation") | html %]:
|
||||
</p>
|
||||
<textarea rows="5" cols="60" name="Response">
|
||||
Dear <OTRS_CUSTOMER_REALNAME>,
|
||||
|
||||
Thank you for your request.
|
||||
</textarea>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewUpdate") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,28 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox AriaRoleMain">
|
||||
<div class="W33pc SpacingTopLarge SpacingBottomLarge CenterBox">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Secure Mode Needs to be Enabled!") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<p>
|
||||
[% Translate("Secure mode will (normally) be set after the initial installation is completed.") | html %]
|
||||
</p>
|
||||
<p class="SpacingTopSmall">
|
||||
<a href="[% Env("Baselink") %]Action=AdminSystemConfiguration;Subaction=View;Setting=SecureMode">
|
||||
[% Translate("If secure mode is not activated, activate it via SysConfig because your application is already running.") | html %]
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,145 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("SQL Box") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('SQL Box'),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
[% RenderBlockStart("ResultFilter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterResults">[% Translate("Filter for Results") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterResults" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterResults" value="" title="[% Translate("Filter for results") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ResultFilter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
[% RenderBlockStart("ExplanationOnlySelect") %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can enter SQL to send it directly to the application database. It is not possible to change the content of the tables, only select queries are allowed.") | html %]
|
||||
</p>
|
||||
[% RenderBlockEnd("ExplanationOnlySelect") %]
|
||||
[% RenderBlockStart("ExplanationAllSqlQueries") %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Here you can enter SQL to send it directly to the application database.") | html %]
|
||||
</p>
|
||||
[% RenderBlockEnd("ExplanationAllSqlQueries") %]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Options") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate" id="AdminSelectBoxForm">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="Select"/>
|
||||
<fieldset class="TableLike FixedLabelSmall">
|
||||
|
||||
<label class="Mandatory" for="SQL"><span class="Marker">*</span> [% Translate("SQL") | html %]:</label>
|
||||
<div class="Field">
|
||||
<textarea name="SQL" id="SQL" rows="3" class="W100pc Validate_Required [% Data.SQLInvalid | html %]">[% Data.SQL | html %]</textarea>
|
||||
<div id="SQLError" class="TooltipErrorMessage"><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="SQLServerError" class="TooltipErrorMessage">
|
||||
<p>
|
||||
[% RenderBlockStart("FieldRequiredServerError") %]
|
||||
[% Translate("This field is required.") | html %]
|
||||
[% RenderBlockEnd("FieldRequiredServerError") %]
|
||||
[% RenderBlockStart("SQLIsNotSelectServerError") %]
|
||||
[% Translate("Only select queries are allowed.") | html %]
|
||||
[% RenderBlockEnd("SQLIsNotSelectServerError") %]
|
||||
[% RenderBlockStart("SQLSyntaxServerError") %]
|
||||
[% Translate("The syntax of your SQL query has a mistake. Please check it.") | html %]
|
||||
[% RenderBlockEnd("SQLSyntaxServerError") %]
|
||||
[% RenderBlockStart("BindParamServerError") %]
|
||||
[% Translate("There is at least one parameter missing for the binding. Please check it.") | html %]
|
||||
[% RenderBlockEnd("BindParamServerError") %]
|
||||
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Max">[% Translate("Limit") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Max" id="Max" value="[% Data.Max | html %]" class="W50px" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ResultFormat">[% Translate("Result format") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ResultFormatStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Primary CallForAction" type="submit" id="Run" value="[% Translate("Run Query") | html %]"><span>[% Translate("Run Query") | html %]</span></button>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("Result") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("%s Results", Data.MatchesFound) | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="Results">
|
||||
<thead>
|
||||
<tr>
|
||||
[% RenderBlockStart("ColumnHead") %]
|
||||
<th>[% Data.ColumnName | html %]</th>
|
||||
[% RenderBlockEnd("ColumnHead") %]
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoMatches") %]
|
||||
<tr><td colspan="[% Data.Colspan | html %]">[% Translate("No matches found.") | html %]</td></tr>
|
||||
[% RenderBlockEnd("NoMatches") %]
|
||||
[% RenderBlockStart("NoSelectResult") %]
|
||||
<tr><td colspan="[% Data.Colspan | html %]">[% Translate("Query is executed.") | html %]</td></tr>
|
||||
[% RenderBlockEnd("NoSelectResult") %]
|
||||
[% RenderBlockStart("Row") %]
|
||||
<tr>
|
||||
[% RenderBlockStart("Cell") %]
|
||||
<td title="[% Data.Content | html %]">[% Data.Content | truncate(80) | html %]</td>
|
||||
[% RenderBlockEnd("Cell") %]
|
||||
</tr>
|
||||
[% RenderBlockEnd("Row") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="999">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Result") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
246
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminService.tt
Normal file
246
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminService.tt
Normal file
@@ -0,0 +1,246 @@
|
||||
# --
|
||||
# Copyright (C) 2001-2019 OTRS AG, https://otrs.com/
|
||||
# --
|
||||
# $origin: otrs - b9cf29ede488bbc3bf5bd0d49f422ecc65668a0c - Kernel/Output/HTML/Templates/Standard/AdminService.tt
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Service Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Service Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% IF Data.ServiceID == "NEW" %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add Service"),}) %]
|
||||
[% ELSIF Data.ServiceID %]
|
||||
[% USE EditTitle = String(Translate("Edit Service")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.ServiceName ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ServiceEdit;ServiceID=NEW" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add Service") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterServices">[% Translate("Filter for Services") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterServices" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterServices" value="" title="[% Translate("Filter for services") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("OverviewList") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<table class="DataTable" id="Services">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Service") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewListRow") %]
|
||||
<tr [% IF Data.ValidID != 1%]class="Invalid"[% END %]>
|
||||
<td title="[% Data.Name | html %]">[% Data.LevelSpace | html %]<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ServiceEdit;ServiceID=[% Data.ServiceID | uri %]">[% Data.Name | truncate(80) | html %]</a></td>
|
||||
<td title="[% Data.Comment | html %]">[% Data.Comment | truncate(20) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewListRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="5">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewList") %]
|
||||
|
||||
[% RenderBlockStart("ServiceEdit") %]
|
||||
<div class="Header">
|
||||
[% IF Data.ServiceID == 'NEW' %]
|
||||
<h2>[% Translate("Add Service") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit Service") | html %]</h2>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="ServiceSave"/>
|
||||
<input type="hidden" name="ServiceID" value="[% Data.ServiceID | html %]"/>
|
||||
[% IF Data.ServiceID != 'NEW' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Service") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.NameShort | html %]" class="W50pc Validate_Required [% Data.NameInvalid | html %]" maxlength="200"/>
|
||||
<div id="NameError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
[% IF Data.LongName %]
|
||||
<div id="NameServerError" class="TooltipErrorMessage" ><p>[% Translate("Service name maximum length is 200 characters (with Sub-service).") | html %]</p></div>
|
||||
[% ELSE %]
|
||||
<div id="NameServerError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ParentID">[% Translate("Sub-service of") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.ParentOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
# ---
|
||||
# ITSMCore
|
||||
# ---
|
||||
<label for="TypeID">[% Translate("Type") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.TypeOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Criticality">[% Translate("Criticality") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.CriticalityOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
# ---
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="250"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("Item") %]
|
||||
[% RenderBlockStart("InputKey") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.SelectedID | html %]" class="W25pc"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("InputKey") %]
|
||||
[% RenderBlockStart("Input") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.SelectedID | html %]" class="W25pc"/>
|
||||
<p class="FieldExplanation">[% Translate(Data.Desc) | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Input") %]
|
||||
[% RenderBlockStart("TextArea") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]: </label>
|
||||
<div class="Field">
|
||||
<textarea name="[% Data.Name | html %]" id="[% Data.Name | html %]" rows="[% Data.Rows | html %]" cols="[% Data.Cols | html %]">[% Data.SelectedID | html %]</textarea>
|
||||
<p class="FieldExplanation">[% Translate(Data.Desc) | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("TextArea") %]
|
||||
[% RenderBlockStart("Option") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.Option %]
|
||||
<p class="FieldExplanation">[% Translate(Data.Desc) | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Option") %]
|
||||
[% RenderBlockStart("Upload") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]</label>
|
||||
<div class="Field">
|
||||
<input name="[% Data.Name | html %]" id="[% Data.Name | html %]" type="file" size="30" class="fixed"/><br/>
|
||||
<a href="">[% Data.Filename | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Upload") %]
|
||||
[% RenderBlockStart("Password") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="password" class="W25pc" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Password") %]
|
||||
[% RenderBlockEnd("Item") %]
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.ServiceID != 'NEW' %]
|
||||
<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") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("ServiceEdit") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,229 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Service Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Service Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% IF Data.ServiceID == "NEW" %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add Service"),}) %]
|
||||
[% ELSIF Data.ServiceID %]
|
||||
[% USE EditTitle = String(Translate("Edit Service")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.ServiceName ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ServiceEdit;ServiceID=NEW" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add Service") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterServices">[% Translate("Filter for Services") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterServices" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterServices" value="" title="[% Translate("Filter for services") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("OverviewList") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<table class="DataTable" id="Services">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Service") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewListRow") %]
|
||||
<tr [% IF Data.ValidID != 1%]class="Invalid"[% END %]>
|
||||
<td title="[% Data.Name | html %]">[% Data.LevelSpace | html %]<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ServiceEdit;ServiceID=[% Data.ServiceID | uri %]">[% Data.Name | truncate(80) | html %]</a></td>
|
||||
<td title="[% Data.Comment | html %]">[% Data.Comment | truncate(20) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewListRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="5">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewList") %]
|
||||
|
||||
[% RenderBlockStart("ServiceEdit") %]
|
||||
<div class="Header">
|
||||
[% IF Data.ServiceID == 'NEW' %]
|
||||
<h2>[% Translate("Add Service") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit Service") | html %]</h2>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="ServiceSave"/>
|
||||
<input type="hidden" name="ServiceID" value="[% Data.ServiceID | html %]"/>
|
||||
[% IF Data.ServiceID != 'NEW' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Service") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.NameShort | html %]" class="W50pc Validate_Required [% Data.NameInvalid | html %]" maxlength="200"/>
|
||||
<div id="NameError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
[% IF Data.LongName %]
|
||||
<div id="NameServerError" class="TooltipErrorMessage" ><p>[% Translate("Service name maximum length is 200 characters (with Sub-service).") | html %]</p></div>
|
||||
[% ELSE %]
|
||||
<div id="NameServerError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ParentID">[% Translate("Sub-service of") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.ParentOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="250"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("Item") %]
|
||||
[% RenderBlockStart("InputKey") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.SelectedID | html %]" class="W25pc"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("InputKey") %]
|
||||
[% RenderBlockStart("Input") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.SelectedID | html %]" class="W25pc"/>
|
||||
<p class="FieldExplanation">[% Translate(Data.Desc) | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Input") %]
|
||||
[% RenderBlockStart("TextArea") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]: </label>
|
||||
<div class="Field">
|
||||
<textarea name="[% Data.Name | html %]" id="[% Data.Name | html %]" rows="[% Data.Rows | html %]" cols="[% Data.Cols | html %]">[% Data.SelectedID | html %]</textarea>
|
||||
<p class="FieldExplanation">[% Translate(Data.Desc) | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("TextArea") %]
|
||||
[% RenderBlockStart("Option") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.Option %]
|
||||
<p class="FieldExplanation">[% Translate(Data.Desc) | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Option") %]
|
||||
[% RenderBlockStart("Upload") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]</label>
|
||||
<div class="Field">
|
||||
<input name="[% Data.Name | html %]" id="[% Data.Name | html %]" type="file" size="30" class="fixed"/><br/>
|
||||
<a href="">[% Data.Filename | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Upload") %]
|
||||
[% RenderBlockStart("Password") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="password" class="W25pc" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Password") %]
|
||||
[% RenderBlockEnd("Item") %]
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.ServiceID != 'NEW' %]
|
||||
<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") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("ServiceEdit") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,184 @@
|
||||
# --
|
||||
# Copyright (C) 2001-2016 OTRS AG, http://otrs.com/
|
||||
# --
|
||||
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
|
||||
# the enclosed file COPYING for license information (AGPL). If you
|
||||
# did not receive this file, see http://www.gnu.org/licenses/agpl.txt.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1>[% Translate("Service Management") | html %]</h1>
|
||||
|
||||
<div class="SidebarColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ServiceEdit;ServiceID=NEW" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add service") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
[% RenderBlockStart("OverviewList") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Service") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewListRow") %]
|
||||
<tr [% IF Data.ValidID != 1%]class="Invalid"[% END %]>
|
||||
<td title="[% Data.Name | html %]">[% Data.LevelSpace | html %]<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=ServiceEdit;ServiceID=[% Data.ServiceID | uri %]">[% Data.Name | truncate(80) | html %]</a></td>
|
||||
<td title="[% Data.Comment | html %]">[% Data.Comment | truncate(20) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewListRow") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewList") %]
|
||||
|
||||
[% RenderBlockStart("ServiceEdit") %]
|
||||
<div class="Header">
|
||||
[% RenderBlockStart("HeaderAdd") %]
|
||||
<h2>[% Translate("Add Service") | html %]</h2>
|
||||
[% RenderBlockEnd("HeaderAdd") %]
|
||||
[% RenderBlockStart("HeaderEdit") %]
|
||||
<h2>[% Translate("Edit Service") | html %] : [% Data.Name | html %]</h2>
|
||||
[% RenderBlockEnd("HeaderEdit") %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="ServiceSave"/>
|
||||
<input type="hidden" name="ServiceID" value="[% Data.ServiceID | html %]"/>
|
||||
|
||||
<fieldset class="TableLike">
|
||||
|
||||
<label for="Name">[% Translate("Service") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.NameShort | html %]" class="W50pc Validate_Required [% Data.NameInvalid | html %]" maxlength="200"/>
|
||||
<div id="NameError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage" ><p>[% Translate("This field is required.") | html %]</p></div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ParentID">[% Translate("Sub-service of") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.ParentOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="ValidID">[% Translate("Validity") | html %]: </label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOptionStrg %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="250"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
[% RenderBlockStart("Item") %]
|
||||
[% RenderBlockStart("InputKey") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.SelectedID | html %]" class="W25pc"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("InputKey") %]
|
||||
[% RenderBlockStart("Input") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="text" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="[% Data.SelectedID | html %]" class="W25pc"/>
|
||||
<p class="FieldExplanation">[% Translate(Data.Desc) | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Input") %]
|
||||
[% RenderBlockStart("TextArea") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %]: </label>
|
||||
<div class="Field">
|
||||
<textarea name="[% Data.Name | html %]" id="[% Data.Name | html %]" rows="[% Data.Rows | html %]" cols="[% Data.Cols | html %]">[% Data.SelectedID | html %]</textarea>
|
||||
<p class="FieldExplanation">[% Translate(Data.Desc) | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("TextArea") %]
|
||||
[% RenderBlockStart("Option") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.Option %]
|
||||
<p class="FieldExplanation">[% Translate(Data.Desc) | html %]</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Option") %]
|
||||
[% RenderBlockStart("Upload") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]</label>
|
||||
<div class="Field">
|
||||
<input name="[% Data.Name | html %]" id="[% Data.Name | html %]" type="file" size="30" class="fixed"/><br/>
|
||||
<a href="">[% Data.Filename | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Upload") %]
|
||||
[% RenderBlockStart("Password") %]
|
||||
<label for="[% Data.Name | html %]">[% Translate(Data.Label) | html %] [% Translate(Data.Key) | html %]: </label>
|
||||
<div class="Field">
|
||||
<input type="password" class="W25pc" name="[% Data.Name | html %]" id="[% Data.Name | html %]" value="" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
[% RenderBlockEnd("Password") %]
|
||||
[% RenderBlockEnd("Item") %]
|
||||
<div class="Field SpacingTop">
|
||||
<button class="Primary CallForAction" type="submit" value="[% Translate("Submit") | html %]"><span>[% Translate("Submit") | html %]</span></button>
|
||||
[% Translate("or") | html %]
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("ServiceEdit") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
161
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminSession.tt
Normal file
161
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminSession.tt
Normal file
@@ -0,0 +1,161 @@
|
||||
# --
|
||||
# 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 -->
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Session Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Session Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% IF Data.Action == 'Detail' %]
|
||||
[% USE TranslatedUserType = String(Translate(Data.UserType)) %]
|
||||
[% BreadcrumbPath.push({ Name => Translate( "Detail Session View for %s (%s)", Data.UserFullname, TranslatedUserType ) })%]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
|
||||
[% RenderBlockStart("ActionSummary") %]
|
||||
|
||||
<li>
|
||||
<table class="DataTable">
|
||||
<tr>
|
||||
<td>[% Translate("All sessions") | html %]</td>
|
||||
<td>[% Data.Counter | html %]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>[% Translate("Agent sessions") | html %]</td>
|
||||
<td>[% Data.UserSession | html %]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>[% Translate("Customer sessions") | html %]</td>
|
||||
<td>[% Data.CustomerSession | html %]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>[% Translate("Unique agents") | html %]</td>
|
||||
<td>[% Data.UserSessionUniq | html %]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>[% Translate("Unique customers") | html %]</td>
|
||||
<td>[% Data.CustomerSessionUniq | html %]</td>
|
||||
</tr>
|
||||
</table>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=KillAll;WantSessionID=[% Env("SessionID") %];[% Env("ChallengeTokenParam") | html %]" id="KillAllSessions" class="CallForAction LittleSpacingTop Fullsize Center"><span><i class="fa fa-trash-o"></i> [% Translate("Kill all sessions") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionSummary") %]
|
||||
|
||||
[% RenderBlockStart("ActionKillSession") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Kill;WantSessionID=[% Data.SessionID %];[% Env("ChallengeTokenParam") | html %]" id="KillThisSession" class="CallForAction Fullsize Center"><span><i class="fa fa-power-off"></i> [% Translate("Kill this session") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionKillSession") %]
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterSessions">[% Translate("Filter for Sessions") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterSessions" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterSessions" value="" title="[% Translate("Filter for sessions") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="Sessions">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Session") | html %]</th>
|
||||
<th>[% Translate("Type") | html %]</th>
|
||||
<th>[% Translate("User") | html %]</th>
|
||||
<th>[% Translate("Kill") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("Session") %]
|
||||
<tr>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=AdminSession;Subaction=Detail;WantSessionID=[% Data.SessionID | uri %]">[% Data.SessionID | html %]</a>
|
||||
</td>
|
||||
<td>[% Data.UserType | html %]</td>
|
||||
<td>[% Data.UserFullname | html %]</td>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=AdminSession;Subaction=Kill;WantSessionID=[% Data.SessionID | uri %];[% Env("ChallengeTokenParam") | html %]">[% Translate("Kill this session") | html %]</a>
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("Session") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="4">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
|
||||
[% RenderBlockStart("DetailView") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Detail View for SessionID: %s - %s", Data.SessionID, Data.UserFullname) | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Key") | html %]</th>
|
||||
<th>[% Translate("Value") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("DetailViewRow") %]
|
||||
<tr>
|
||||
<td>[% Data.Key | html %]</td>
|
||||
<td>[% Data.Value | html %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("DetailViewRow") %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("DetailView") %]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
<!-- end -->
|
||||
@@ -0,0 +1,247 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Signature Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Signature Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add Signature"),}) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit Signature")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Name ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a class="CallForAction Fullsize Center" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Add">
|
||||
<span><i class="fa fa-plus-square"></i>[% Translate("Add Signature") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterSignatures">[% Translate("Filter for Signatures") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterSignatures" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterSignatures" value="" title="[% Translate("Filter for signatures") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
</div>
|
||||
<div class="ContentColumn">
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="Signatures">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="5">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr [% IF Data.ValidID != 1 %]class="Invalid"[% END %]>
|
||||
<td>
|
||||
<a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a>
|
||||
</td>
|
||||
<td title="[% Data.Comment | html %]">[% Data.Comment | truncate(20) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="5">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
[% RenderBlockStart("OverviewUpdate") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
[% IF Data.Action == 'Add' %]
|
||||
<h2>[% Translate("Add Signature") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit Signature") | html %]</h2>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | uri %]Action"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameInvalid | html %]" maxlength="200"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="RichText">[% Translate("Signature") | html %]:</label>
|
||||
<div class="RichTextField">
|
||||
[%# Textareas always swallow the first newline from their data, therefore we must prepend one since we want to preserve white space. %]
|
||||
<textarea id="RichText" class="RichText" rows="10" cols="60" name="Text">[% "\n" _ Data.Text | html %]</textarea>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOption %]
|
||||
<div id="ValidIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="250"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="WidgetSimple SpacingTop">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p>[% Translate("You can use the following tags") | html %]:</p>
|
||||
<dl>
|
||||
<dt><code><OTRS_OWNER_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Ticket owner options") | html %] ([% Translate("e. g.") | html %]
|
||||
<code><OTRS_OWNER_UserFirstname></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_RESPONSIBLE_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Ticket responsible options") | html %] ([% Translate("e. g.") | html %]
|
||||
<code><OTRS_RESPONSIBLE_UserFirstname></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CURRENT_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Options of the current user who requested this action") | html %] ([% Translate("e. g.") | html %]
|
||||
<code><OTRS_CURRENT_UserFirstname></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_TICKET_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Options of the ticket data") | html %] ([% Translate("e. g.") | html %]
|
||||
<code><OTRS_TICKET_TicketNumber>, <OTRS_TICKET_TicketID>, <OTRS_TICKET_Queue>, <OTRS_TICKET_State></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CUSTOMER_DATA_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Options of the current customer user data") | html %] ([% Translate("e. g.") | html %]
|
||||
<code><OTRS_CUSTOMER_DATA_UserFirstname></code>).
|
||||
</dd>
|
||||
|
||||
<dt><code><OTRS_CONFIG_*></code></dt>
|
||||
<dd>
|
||||
[% Translate("Config options") | html %] ([% Translate("e. g.") | html %] <code><OTRS_CONFIG_HttpType></code>).
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
<p class="SpacingTop">
|
||||
[% Translate("Example signature") | html %]:
|
||||
</p>
|
||||
<textarea rows="5" cols="60" name="Response">
|
||||
Your OTRS-Team
|
||||
|
||||
<OTRS_CURRENT_UserFirstname> <OTRS_CURRENT_UserLastname>
|
||||
|
||||
--
|
||||
Super Support Company Inc. - Waterford Business Park
|
||||
5201 Blue Lagoon Drive - 8th Floor & 9th Floor - Miami, 33126 USA
|
||||
Email: hot@florida.com - Web: http://hot.florida.com/
|
||||
--
|
||||
PS: Your email address in our database is "<OTRS_CUSTOMER_DATA_UserEmail>".
|
||||
</textarea>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewUpdate") %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
243
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminState.tt
Normal file
243
Perl OTRS/Kernel/Output/HTML/Templates/Standard/AdminState.tt
Normal file
@@ -0,0 +1,243 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("State Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate("State Management"),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate("Add State"),}) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit State")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Name ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Add" class="CallForAction Fullsize Center Create"><span><i class="fa fa-plus-square"></i>[% Translate("Add State") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterStates">[% Translate("Filter for States") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterStates" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterStates" value="" title="[% Translate("Filter for states") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Attention") | html %]: [% Translate("Please also update the states in SysConfig where needed.") | html %]
|
||||
</p>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("See also") | html %]: <a href="https://doc.otrs.com/doc" target="_blank">https://doc.otrs.com/doc</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<table class="DataTable" id="States">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Name") | html %]</th>
|
||||
<th>[% Translate("Type") | html %]</th>
|
||||
<th>[% Translate("Comment") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr [% IF Data.ValidID != 1%]class="Invalid"[% END %]>
|
||||
<td><a class="AsBlock" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a></td>
|
||||
<td>[% Translate(Data.TypeName) | html %]</td>
|
||||
<td title="[% Data.Comment | html %]">[% Data.Comment | truncate(20) | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="6">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
|
||||
[% RenderBlockStart("OverviewUpdate") %]
|
||||
<div class="Header">
|
||||
[% IF Data.Action == 'Add' %]
|
||||
<h2>[% Translate("Add State") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit State") | html %]</h2>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
|
||||
<form id="EntityUpdate" action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | uri %]Action"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Required [% Data.NameInvalid | html %]" maxlength="200"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
<p>
|
||||
[% RenderBlockStart("RequiredValidOptionServerError") %]
|
||||
[% Translate("This field is required.") | html %]
|
||||
[% RenderBlockEnd("RequiredValidOptionServerError") %]
|
||||
[% RenderBlockStart("InSettingNameServerError") %]
|
||||
[% Translate("This state is present in a SysConfig setting, confirmation for updating settings to point to the new type is needed!") | html %]
|
||||
[% RenderBlockEnd("InSettingNameServerError") %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="TypeID"><span class="Marker">*</span> [% Translate("State type") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.StateTypeOption %]
|
||||
<div id="TypeIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="TypeIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOption %]
|
||||
<div id="ValidIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>
|
||||
[% RenderBlockStart("RequiredValidOptionServerError") %]
|
||||
[% Translate("This field is required.") | html %]
|
||||
[% RenderBlockEnd("RequiredValidOptionServerError") %]
|
||||
[% RenderBlockStart("InSettingValidOptionServerError") %]
|
||||
[% Translate("Is not possible to invalidate this entry, all config settings have to be changed beforehand.") | html %]
|
||||
[% RenderBlockEnd("InSettingValidOptionServerError") %]
|
||||
[% RenderBlockStart("MergeErrorValidOptionServerError") %]
|
||||
[% Translate("It's not possible to invalidate this entry because there is no other merge states in system!") | html %]
|
||||
[% RenderBlockEnd("MergeErrorValidOptionServerError") %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="250"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
[% RenderBlockStart("StateInSysConfig") %]
|
||||
<input type="hidden" name="OldName" id="OldName" value="[% Data.OldName | html %]"/>
|
||||
<input type="hidden" name="UpdateEntity" id="UpdateEntity" value=""/>
|
||||
<div id="EntityInSetting" class="Hidden">
|
||||
<div class="TextDialog">
|
||||
<h1>[% Translate("This state is used in the following config settings:") | html %]</h1>
|
||||
<ul>
|
||||
[% RenderBlockStart("StateInSysConfigRow") %]
|
||||
<li class="InSysConfigSetting">[% Data.SettingName %]</li>
|
||||
[% RenderBlockEnd("StateInSysConfigRow") %]
|
||||
</ul>
|
||||
<p class="FieldExplanation"></p>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("StateInSysConfig") %]
|
||||
[% RenderBlockStart("StateInSysConfigDirty") %]
|
||||
<input type="hidden" name="SysConfigDirty" id="SysConfigDirty" value="1"/>
|
||||
[% RenderBlockEnd("StateInSysConfigDirty") %]
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewUpdate") %]
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,269 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
<div class="MainBox ARIARoleMain AdminSupportDataCollector LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("Support Data Collector") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('Support Data Collector'),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="SidebarColumn">
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Note") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("CloudServicesWarning") %]
|
||||
<li>
|
||||
<p class="FieldExplanation Error">
|
||||
[% Translate("Cloud services are currently disabled.") | html %]
|
||||
</br>
|
||||
[% Translate("Sending support data to OTRS Group is not possible!") | html %]
|
||||
</p>
|
||||
<form action="[% Env("CGIHandle") %]" method="post">
|
||||
<input type="hidden" name="Action" value="AdminSystemConfiguration"/>
|
||||
<input type="hidden" name="Subaction" value="Edit"/>
|
||||
<input type="hidden" name="SysConfigGroup" value="CloudService"/>
|
||||
<input type="hidden" name="SysConfigSubGroup" value="Core"/>
|
||||
<fieldset>
|
||||
<button class="Fullsize CallForAction LittleSpacingTop Center" type="submit" value="[% Translate("Enable Cloud Services") | html %]">
|
||||
<span><i class="fa fa-cloud"></i> [% Translate("Enable cloud services") | html %]</span>
|
||||
</button>
|
||||
</fieldset>
|
||||
</form>
|
||||
</li>
|
||||
[% RenderBlockEnd("CloudServicesWarning") %]
|
||||
[% RenderBlockStart("NoteRegisteredSending") %]
|
||||
[% IF Config("Frontend::Module").AdminRegistration %]
|
||||
<li>
|
||||
<p class="FieldExplanation">[% Translate("This data is sent to OTRS Group on a regular basis. To stop sending this data please update your system registration.") | html %]</p>
|
||||
<a href="[% Env("Baselink") %]Action=AdminRegistration;Subaction=Edit" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-sign-in"></i> [% Translate("System Registration") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="Separated">
|
||||
<a href="[% Env("Baselink") %]Action=AdminRegistration;Subaction=SentDataOverview" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-cloud"></i> [% Translate("Show transmitted data") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% END %]
|
||||
<li>
|
||||
<p class="FieldExplanation">[% Translate("You can manually trigger the Support Data sending by pressing this button:") | html %]</p>
|
||||
<a class="CallForAction Fullsize Center LittleSpacingTop" id="SendUpdate" name="SendUpdate" >
|
||||
<span><i class="fa fa-cloud-upload"></i> [% Translate("Send Update") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("NoteRegisteredSending") %]
|
||||
|
||||
[% RenderBlockStart("NoteNotRegisteredNotSending") %]
|
||||
[% IF Config("Frontend::Module").AdminRegistration %]
|
||||
<li>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("Currently this data is only shown in this system.") | html %]
|
||||
[% Translate("It is highly recommended to send this data to OTRS Group in order to get better support.") | html %]
|
||||
<br/>
|
||||
[% Translate("To enable data sending, please register your system with OTRS Group or update your system registration information (make sure to activate the 'send support data' option.)") | html %]
|
||||
</p>
|
||||
<a href="[% Env("Baselink") %]Action=AdminRegistration" class="CallForAction Fullsize Center">
|
||||
<span><i class="fa fa-sign-in"></i> [% Translate("System Registration") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% END %]
|
||||
[% RenderBlockEnd("NoteNotRegisteredNotSending") %]
|
||||
[% RenderBlockStart("NoteSupportBundle") %]
|
||||
<li>
|
||||
<p class="FieldExplanation">[% Translate("A support bundle (including: system registration information, support data, a list of installed packages and all locally modified source code files) can be generated by pressing this button:") | html %]</p>
|
||||
<a class="CallForAction Fullsize Center LittleSpacingTop" id="GenerateSupportBundle" name="GenerateSupportBundle" >
|
||||
<span><i class="fa fa-archive"></i> [% Translate("Generate Support Bundle") | html %]</span>
|
||||
</a>
|
||||
</li>
|
||||
[% RenderBlockEnd("NoteSupportBundle") %]
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="SupportBundleOptionsDialogContainer" class="Hidden">
|
||||
<div class="Spacing SupportBundleOptionsDialog" id="SupportBundleOptionsDialog">
|
||||
<span class="W50pc" title=""></span>
|
||||
<h2>[% Translate("The Support Bundle has been Generated") | html %]</h2>
|
||||
<div class="FieldExplanation">
|
||||
[% Translate("Please choose one of the following options.") | html %]
|
||||
</div>
|
||||
<div class="Spacing"></div>
|
||||
<fieldset class="TableLike NoSupportBundleSendMessage Hidden">
|
||||
<legend><span>[% Translate("Send by Email") | html %]</span></legend>
|
||||
<div class="FieldExplanation SizeMessage Hidden">
|
||||
[% Translate("The support bundle is too large to send it by email, this option has been disabled.") | html %]
|
||||
</div>
|
||||
<div class="FieldExplanation EmailMessage Hidden">
|
||||
[% Translate("The email address for this user is invalid, this option has been disabled.") | html %]
|
||||
</div>
|
||||
<div class="Spacing"></div>
|
||||
</fieldset>
|
||||
<fieldset class="TableLike SupportBundleSendFieldSet">
|
||||
<legend><span>[% Translate("Send by Email") | html %]</span></legend>
|
||||
<label for="Name">[% Translate("Name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" id="Name" name="Name" value="[% Data.SenderName | html %]" class="W50pc" readonly="readonly" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Sender">[% Translate("Email") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" id="Sender" name="Sender" value="[% Data.SenderAddress | html %]" class="W50pc" readonly="readonly" />
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field">
|
||||
<button class="CallForAction" value="SendByEmail" id="SendSupportBundle">
|
||||
<span><i class="fa fa-send"></i> [% Translate("Send") | html %]</span>
|
||||
</button>
|
||||
<span id="SendingAJAXLoader" class="Hidden" title="[% Translate("Sending") | html %]"></span>
|
||||
<div class="FieldExplanation">
|
||||
[% Translate("The support bundle will be sent to OTRS Group via email automatically.") | html %]
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset class="TableLike">
|
||||
<legend><span>[% Translate("Download File") | html %]</span></legend>
|
||||
<div class="Field">
|
||||
<button class="CallForAction" value="DownLoad" id="DownloadSupportBundle">
|
||||
<span><i class="fa fa-download"></i> [% Translate("Download") | html %]</span>
|
||||
</button>
|
||||
<div class="FieldExplanation">
|
||||
[% Translate("A file containing the support bundle will be downloaded to the local system. Please save the file and send it to the OTRS Group, using an alternate method.") | html %]
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
[% RenderBlockStart("SupportDataCollectionFailed") %]
|
||||
<div class="ContentColumn">
|
||||
<h2>[% Translate("Support Data") | html %]</h2>
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p>[% Translate("Error: Support data could not be collected (%s).", Data.ErrorMessage) | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("SupportDataCollectionFailed") %]
|
||||
|
||||
[% RenderBlockStart("SupportData") %]
|
||||
<div class="ContentColumn">
|
||||
[% RenderBlockStart("SupportDataGroup") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<div class="WidgetAction Toggle">
|
||||
<a href="#" title="[% Translate("Show or hide the content") | html %]"><i class="fa fa-caret-right"></i><i class="fa fa-caret-down"></i></a>
|
||||
</div>
|
||||
<h2>[% Translate(Data.Group) | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="CheckResults">
|
||||
[% RenderBlockStart("SupportDataRow") %]
|
||||
<li class="CheckResult[% Data.StatusName | html %]">
|
||||
[% RenderBlockStart("SupportDataEntryTable") %]
|
||||
<h3 class="Heading">
|
||||
<span title="[% Translate(Data.StatusName) | html %]" class="Flag Small [% Data.StatusName | html %]">
|
||||
<span>[% Data.StatusName | html %]</span>
|
||||
</span>
|
||||
[% Translate(Data.Label) | html %]
|
||||
</h3>
|
||||
[% RenderBlockStart("SupportDataEntryTableDetails") %]
|
||||
<div class="SupportDataTableScrollbar">
|
||||
<table class="DataTable SupportDataTable">
|
||||
<thead>
|
||||
[% FOR Label IN Data.Labels %]
|
||||
<th>[% Translate(Label) | html %]</th>
|
||||
[% END %]
|
||||
</thead>
|
||||
<tbody>
|
||||
[% FOR Entry IN Data.Value %]
|
||||
<tr>
|
||||
[% FOR Identifier IN Data.Identifiers %]
|
||||
<td>[% Entry.$Identifier %]</td>
|
||||
[% END %]
|
||||
</tr>
|
||||
[% END %]
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("SupportDataEntryTableDetails") %]
|
||||
[% RenderBlockEnd("SupportDataEntryTable") %]
|
||||
[% RenderBlockStart("SupportDataEntry") %]
|
||||
<h3 class="Heading">
|
||||
<span title="[% Translate(Data.StatusName) | html %]" class="Flag Small [% Data.StatusName | html %]">
|
||||
<span>[% Data.StatusName | html %]</span>
|
||||
</span>
|
||||
[% Translate(Data.Label) | html %]
|
||||
[% RenderBlockStart("SupportDataEntryValueSingleLine") %]
|
||||
<span class="Value">([% Data.Value | html %])</span>
|
||||
[% RenderBlockEnd("SupportDataEntryValueSingleLine") %]
|
||||
</h3>
|
||||
<p class="SpacingTopSmall">[% Translate(Data.Message) | html %]</p>
|
||||
[% RenderBlockStart("SupportDataEntryValueMultiLine") %]
|
||||
<textarea rows="5" cols="80" readonly="readonly" class="Value">[% Data.Value | html %]</textarea>
|
||||
[% RenderBlockEnd("SupportDataEntryValueMultiLine") %]
|
||||
[% RenderBlockEnd("SupportDataEntry") %]
|
||||
[% RenderBlockStart("SupportDataSubGroup") %]
|
||||
<h3 class="Heading">
|
||||
<span title="[% Translate(Data.StatusName) | html %]" class="Flag Small [% Data.StatusName | html %]">
|
||||
<span>[% Data.StatusName | html %]</span>
|
||||
</span>
|
||||
[% Translate(Data.SubGroup) | html %]
|
||||
</h3>
|
||||
<table class="DataTable">
|
||||
<tbody>
|
||||
[% RenderBlockStart("SupportDataSubEntry") %]
|
||||
<tr>
|
||||
<td class="Status">
|
||||
<span title="[% Translate(Data.StatusName) | html %]" class="Flag Small [% Data.StatusName | html %]">
|
||||
<span>[% Data.StatusName | html %]</span>
|
||||
</span>
|
||||
</td>
|
||||
<td class="ItemLabel">[% Translate(Data.Label) | html %]</td>
|
||||
<td>[% Data.Value | html %]</td>
|
||||
<td>
|
||||
[% RenderBlockStart("SupportDataSubEntryMessage") %]
|
||||
<a href="#" class="ShowItemMessage"><i class="fa fa-info-sign"></i> [% Translate("Details") | html %]</a>
|
||||
<div class="Hidden">
|
||||
[% IF Data.Message %]
|
||||
<p class="DialogMessage">[% Translate(Data.Message) | html %]</p>
|
||||
[% ELSIF Data.MessageFormatted %]
|
||||
<pre class="DialogMessage">[% Translate(Data.MessageFormatted) | html %]</pre>
|
||||
[% END %]
|
||||
</div>
|
||||
[% RenderBlockEnd("SupportDataSubEntryMessage") %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("SupportDataSubEntry") %]
|
||||
</tbody>
|
||||
</table>
|
||||
[% RenderBlockEnd("SupportDataSubGroup") %]
|
||||
</li>
|
||||
[% RenderBlockEnd("SupportDataRow") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("SupportDataGroup") %]
|
||||
</div>
|
||||
[% RenderBlockEnd("SupportData") %]
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
@@ -0,0 +1,245 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[% RenderBlockStart("Overview") %]
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
<h1 class="InvisibleText">[% Translate("System Email Addresses Management") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('System Email Addresses Management'),
|
||||
Link => Env("Action"),
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% SWITCH Data.Action %]
|
||||
[% CASE 'Add' %]
|
||||
[% BreadcrumbPath.push({ Name => Translate('Add System Email Address'),}) %]
|
||||
[% CASE 'Change' %]
|
||||
[% USE EditTitle = String(Translate("Edit System Email Address")) %]
|
||||
[% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Name ) }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
|
||||
<div class="Clear"></div>
|
||||
<div class="SidebarColumn">
|
||||
[% RenderBlockStart("ActionList") %]
|
||||
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Actions") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<ul class="ActionList">
|
||||
[% RenderBlockStart("ActionOverview") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %]" class="CallForAction Fullsize Center"><span><i class="fa fa-caret-left"></i>[% Translate("Go to overview") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionOverview") %]
|
||||
[% RenderBlockStart("ActionAdd") %]
|
||||
<li>
|
||||
<a href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Add" class="CallForAction Fullsize Center"><span><i class="fa fa-plus-square"></i>[% Translate("Add System Address") | html %]</span></a>
|
||||
</li>
|
||||
[% RenderBlockEnd("ActionAdd") %]
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("ActionList") %]
|
||||
[% RenderBlockStart("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2><label for="FilterSystemAddresses">[% Translate("Filter for System Addresses") | html %]</label></h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<input type="text" id="FilterSystemAddresses" class="FilterBox" placeholder="[% Translate("Just start typing to filter...") | html %]" name="FilterSystemAddresses" value="" title="[% Translate("Filter for system addresses") | html %]">
|
||||
</div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Filter") %]
|
||||
<div class="WidgetSimple">
|
||||
<div class="Header">
|
||||
<h2>[% Translate("Hint") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("All incoming email with this address in To or Cc will be dispatched to the selected queue.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
|
||||
[% RenderBlockStart("OverviewResult") %]
|
||||
<div class="Header">
|
||||
<h2>[% Translate("List") | html %]</h2>
|
||||
</div>
|
||||
<div class="Content">
|
||||
<table class="DataTable" id="SystemAddresses">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>[% Translate("Email address") | html %]</th>
|
||||
<th>[% Translate("Display name") | html %]</th>
|
||||
<th>[% Translate("Queue") | html %]</th>
|
||||
<th>[% Translate("Validity") | html %]</th>
|
||||
<th>[% Translate("Changed") | html %]</th>
|
||||
<th>[% Translate("Created") | html %]</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
[% RenderBlockStart("NoDataFoundMsg") %]
|
||||
<tr>
|
||||
<td colspan="6">
|
||||
[% Translate("No data found.") | html %]
|
||||
</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("NoDataFoundMsg") %]
|
||||
[% RenderBlockStart("OverviewResultRow") %]
|
||||
<tr class="MasterAction[% IF Data.ValidID != 1%] Invalid[% END %]" >
|
||||
<td><a class="AsBlock MasterActionLink" href="[% Env("Baselink") %]Action=[% Env("Action") %];Subaction=Change;ID=[% Data.ID | uri %]">[% Data.Name | html %]</a></td>
|
||||
<td title="[% Data.Realname | html %]">[% Data.Realname | truncate(26) | html %]</td>
|
||||
<td>[% Data.Queue | html %]</td>
|
||||
<td>[% Translate(Data.Valid) | html %]</td>
|
||||
<td>[% Data.ChangeTime | Localize("TimeShort") %]</td>
|
||||
<td>[% Data.CreateTime | Localize("TimeShort") %]</td>
|
||||
</tr>
|
||||
[% RenderBlockEnd("OverviewResultRow") %]
|
||||
<tr class="FilterMessage Hidden">
|
||||
<td colspan="6">[% Translate("No matches found.") | html %]</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewResult") %]
|
||||
|
||||
[% RenderBlockStart("OverviewUpdate") %]
|
||||
<div class="Header">
|
||||
[% IF Data.Action == 'Add' %]
|
||||
<h2>[% Translate("Add System Email Address") | html %]</h2>
|
||||
[% ELSE %]
|
||||
<h2>[% Translate("Edit System Email Address") | html %]</h2>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Content">
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="Validate PreventMultipleSubmits">
|
||||
<input type="hidden" name="Action" value="[% Env("Action") %]"/>
|
||||
<input type="hidden" name="Subaction" value="[% Data.Action | uri %]Action"/>
|
||||
<input type="hidden" name="ID" value="[% Data.ID | html %]"/>
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/>
|
||||
[% END %]
|
||||
<fieldset class="TableLike">
|
||||
<label class="Mandatory" for="Name"><span class="Marker">*</span> [% Translate("Email address") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="[% Env("EmailFieldType") | html %]" name="Name" id="Name" value="[% Data.Name | html %]" class="W50pc Validate_Email Validate_Required [% Data.NameInvalid | html %]" maxlength="200"/>
|
||||
<div id="NameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required and needs to be a valid email address.") | html %]</p>
|
||||
</div>
|
||||
<div id="NameServerError" class="TooltipErrorMessage">
|
||||
[% RenderBlockStart("RequiredFieldServerErrorMsg") %]
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
[% RenderBlockEnd("RequiredFieldServerErrorMsg") %]
|
||||
[% RenderBlockStart("EmailInvalidConfigServerErrorMsg") %]
|
||||
<p>[% Translate("This email address is not allowed due to the system configuration.") | html %]</p>
|
||||
[% RenderBlockEnd("EmailInvalidConfigServerErrorMsg") %]
|
||||
[% RenderBlockStart("EmailInvalidMXServerErrorMsg") %]
|
||||
<p>[% Translate("This email address failed MX check.") | html %]</p>
|
||||
[% RenderBlockEnd("EmailInvalidMXServerErrorMsg") %]
|
||||
[% RenderBlockStart("EmailInvalidDNSServerErrorMsg") %]
|
||||
<p>[% Translate("DNS problem, please check your configuration and the error log.") | html %]</p>
|
||||
[% RenderBlockEnd("EmailInvalidDNSServerErrorMsg") %]
|
||||
[% RenderBlockStart("EmailInvalidSyntaxServerErrorMsg") %]
|
||||
<p>[% Translate("The syntax of this email address is incorrect.") | html %]</p>
|
||||
[% RenderBlockEnd("EmailInvalidSyntaxServerErrorMsg") %]
|
||||
[% RenderBlockStart("EmailAlreadyUsedServerErrorMsg") %]
|
||||
<p>[% Translate("This email address is already used as system email address.") | html %]</p>
|
||||
[% RenderBlockEnd("EmailAlreadyUsedServerErrorMsg") %]
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="Realname"><span class="Marker">*</span> [% Translate("Display name") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Realname" id="Realname" value="[% Data.Realname | html %]" class="W50pc Validate_Required [% Data.RealnameInvalid | html %]" maxlength="200"/>
|
||||
<div id="RealnameError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="RealnameServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("The display name and email address will be shown on mail you send.") | html %]
|
||||
</p>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="QueueID"><span class="Marker">*</span> [% Translate("Queue") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.QueueOption %]
|
||||
<div id="QueueIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
<div id="QueueIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label class="Mandatory" for="ValidID"><span class="Marker">*</span> [% Translate("Validity") | html %]:</label>
|
||||
<div class="Field">
|
||||
[% Data.ValidOption %]
|
||||
<div id="ValidIDError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
[% IF Data.Errors.SystemAddressIsUsed %]
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This system address cannot be set to invalid.") | html %]</p>
|
||||
</div>
|
||||
[% ELSE %]
|
||||
<div id="ValidIDServerError" class="TooltipErrorMessage">
|
||||
<p>[% Translate("This field is required.") | html %]</p>
|
||||
</div>
|
||||
[% END %]
|
||||
[% IF Data.SystemAddressIsUsed %]
|
||||
<p class="FieldExplanation">
|
||||
[% Translate("This system address cannot be set to invalid, because it is used in one or more queue(s) or auto response(s).") | html %]
|
||||
</p>
|
||||
[% END %]
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<label for="Comment">[% Translate("Comment") | html %]:</label>
|
||||
<div class="Field">
|
||||
<input type="text" name="Comment" id="Comment" value="[% Data.Comment | html %]" class="W50pc" maxlength="250"/>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
|
||||
<div class="Field SpacingTop">
|
||||
[% IF Data.Action == 'Change' %]
|
||||
<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") %]">[% Translate("Cancel") | html %]</a>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% RenderBlockEnd("OverviewUpdate") %]
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
[% RenderBlockEnd("Overview") %]
|
||||
@@ -0,0 +1,90 @@
|
||||
# --
|
||||
# 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.
|
||||
# --
|
||||
|
||||
[%
|
||||
SET DocumentationLinkText = Translate('online administrator documentation');
|
||||
SET DocumentationLink = "<a href='https://doc.otrs.com/doc/manual/admin/" _ Data.ManualVersion _ ".0/en/html/configuration.html#sysconfig' target='_blank'>" _ DocumentationLinkText.html() _ "</a>";
|
||||
%]
|
||||
|
||||
<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst">
|
||||
|
||||
<h1 class="InvisibleText">[% Translate("System configuration") | html %]</h1>
|
||||
|
||||
[% BreadcrumbPath = [
|
||||
{
|
||||
Name => Translate('System Configuration'),
|
||||
Link => 'AdminSystemConfiguration',
|
||||
},
|
||||
]
|
||||
%]
|
||||
|
||||
[% FOREACH Item IN Data.Path %]
|
||||
[% BreadcrumbPath.push({ Name => Item.Name, Link => 'AdminSystemConfigurationGroup;RootNavigation=' _ Item.Value }) %]
|
||||
[% END %]
|
||||
|
||||
[% FOREACH Item IN Data.Parameters %]
|
||||
[% BreadcrumbPath.push({ Name => Item.Name, Link => 'AdminSystemConfiguration;Subaction=' _ Item.Value }) %]
|
||||
[% END %]
|
||||
|
||||
[% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %]
|
||||
<div class="SidebarColumn">
|
||||
[% INCLUDE "SystemConfiguration/Sidebar/Actions.tt" %]
|
||||
[% IF Data.SettingCount %]
|
||||
[% INCLUDE "SystemConfiguration/Sidebar/Navigation.tt" %]
|
||||
[% END %]
|
||||
[% INCLUDE "SystemConfiguration/Sidebar/Help.tt" %]
|
||||
[% INCLUDE "SystemConfiguration/Sidebar/OTRSBusinessTeaser.tt" %]
|
||||
[% INCLUDE "SystemConfiguration/Sidebar/DynamicActions.tt" %]
|
||||
</div>
|
||||
|
||||
<div class="ContentColumn">
|
||||
<div class="WidgetSimple">
|
||||
<div class="Content">
|
||||
[% IF Data.SettingCount %]
|
||||
<ul class="GettingStarted">
|
||||
<li>
|
||||
<i class="fa fa-code-fork"></i>
|
||||
<p>
|
||||
[% Translate("Navigate through the available settings by using the tree in the navigation box on the left side.") | html %]
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa fa-search"></i>
|
||||
<p>
|
||||
[% Translate("Find certain settings by using the search field below or from search icon from the top navigation.") | html %]
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fa fa-lightbulb-o"></i>
|
||||
<p>
|
||||
[% Translate("Find out how to use the system configuration by reading the %s.") | html | ReplacePlaceholders(DocumentationLink) %]
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<form action="[% Env("CGIHandle") %]" method="post" class="SearchBox" id="SearchBoxAutoComplete">
|
||||
<input type="hidden" name="Action" value="AdminSystemConfiguration"/>
|
||||
<input type="hidden" name="Subaction" value="Search"/>
|
||||
<input type="hidden" name="Category" value="All"/>
|
||||
<span>
|
||||
<input type="text" autofocus autocomplete="off" placeholder="[% Translate("Search in all settings...") | html %]" name="Search" id="SysConfigSearch" value="[% Data.Search | html %]" title="[% Translate("Search") | html %]" />
|
||||
<button type="submit" title="[% Translate("Search") | html %]" value="[% Translate("Search") | html %]">
|
||||
<span><i class="fa fa-search"></i></span>
|
||||
</button>
|
||||
</span>
|
||||
</form>
|
||||
[% ELSE %]
|
||||
<p class="Center NoItemsInfo">
|
||||
<i class="fa fa-exclamation-triangle"></i>
|
||||
[% Translate("There are currently no settings available. Please make sure to run 'otrs.Console.pl Maint::Config::Rebuild' before using the software.") | html %]
|
||||
</p>
|
||||
[% END %]
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="Clear"></div>
|
||||
</div>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user