1# -- 2# Copyright (C) 2001-2020 OTRS AG, https://otrs.com/ 3# -- 4# This software comes with ABSOLUTELY NO WARRANTY. For details, see 5# the enclosed file COPYING for license information (GPL). If you 6# did not receive this file, see https://www.gnu.org/licenses/gpl-3.0.txt. 7# -- 8<div class="MainBox ARIARoleMain LayoutFixedSidebar SidebarFirst"> 9 <h1 class="InvisibleText">[% Translate( "GenericInterface Web Service Management" ) | html %]</h1> 10 11 [% USE WebserviceLink = String("AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=") %] 12 13 [% BreadcrumbPath = [ 14 { 15 Name => Translate( 'Web Service Management' ), 16 Link => BreadcrumbLink, 17 }, 18 { 19 Name => Data.WebserviceName, 20 Link => WebserviceLink.append( Data.WebserviceID ), 21 }, 22 ] 23 %] 24 25 [% SWITCH Data.Action %] 26 [% CASE 'Add' %] 27 [% USE AddTitle = String(Translate("Add ErrorHandling")) %] 28 [% BreadcrumbPath.push({ Name => AddTitle.append( ': ', Data.ErrorHandlingType ), }) %] 29 [% CASE 'Change' %] 30 [% USE EditTitle = String(Translate("Edit ErrorHandling")) %] 31 [% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.ErrorHandlingType ), }) %] 32 [% END %] 33 34 [% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %] 35 36 <div class="SidebarColumn"> 37 <div class="WidgetSimple"> 38 <div class="Header"> 39 <h2>[% Translate("Actions") | html %]</h2> 40 </div> 41 <div class="Content"> 42 <ul class="ActionList"> 43 <li> 44 <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> 45 </li> 46[% IF Data.Action == 'Change' %] 47 <li> 48 <button class="CallForAction Fullsize Center" type="button" id="DeleteButton"><span> <i class="fa fa-trash-o"></i> [% Translate("Delete") | html %]</span></button> 49 <div class="Hidden" id="DeleteDialogContainer"> 50 <span class="WarningDialog "> </span> 51 <p id="DeleteDialog" class="Center Warning"> 52 [% Translate("Do you really want to delete this error handling module?") | html %] 53 </p> 54 <p class="Center Warning"> 55 [% Translate("All configuration data will be lost.") | html %] 56 </p> 57 <div class="SpacingTop"></div> 58 </div> 59 </li> 60[% END %] 61 </ul> 62 </div> 63 </div> 64 </div> 65 <div class="ContentColumn"> 66 67 <form action="[% Env("CGIHandle") %]" class="Validate" method="post"> 68 <input type="hidden" name="Action" value="AdminGenericInterfaceErrorHandlingDefault" /> 69 <input type="hidden" name="Subaction" value="[% Data.Action | html %]Action" /> 70 <input type="hidden" id="WebserviceID" name="WebserviceID" value="[% Data.WebserviceID | html %]" /> 71 <input type="hidden" name="CommunicationType" value="[% Data.CommunicationType | html %]" /> 72 <input type="hidden" name="ErrorHandlingType" value="[% Data.ErrorHandlingType | html %]" /> 73 [% IF Data.Action == 'Change' %] 74 <input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/> 75 [% END %] 76 77 <!-- General options --> 78 <div class="WidgetSimple Expanded"> 79 <div class="Header"> 80 <div class="WidgetAction Toggle"> 81 <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> 82 </div> 83 <h2>[% Translate("General options") | html %]</h2> 84 </div> 85 <div class="Content"> 86 87 <fieldset class="TableLike"> 88 <label for="ErrorHandling" class="Mandatory"> 89 <span class="Marker">*</span> 90 [% Translate("Name") | html %]: 91 </label> 92 <div class="Field"> 93 <input type="text" class="W50pc Validate_Required [% Data.ErrorHandlingServerError | html %]" maxlength="200" id="ErrorHandling" name="ErrorHandling" value="[% Data.ErrorHandling | html %]" /> 94 <input type="hidden" name="OldErrorHandling" value="[% Data.OldErrorHandling | html %]" /> 95 <p class="FieldExplanation"> 96 [% Translate("The name can be used to distinguish different error handling configurations.") | html %] 97 </p> 98 <div id="ErrorHandlingError" class="TooltipErrorMessage"> 99 [% Translate("Please provide a unique name for this web service.") | html %] 100 </div> 101 <div id="ErrorHandlingServerError" class="TooltipErrorMessage"> 102 [% Translate("The name you entered already exists.") | html %] 103 </div> 104 </div> 105 <div class="Clear"></div> 106 107 <label for="Description"> 108 [% Translate("Description") | html %]: 109 </label> 110 <div class="Field"> 111 <input type="text" class="W50pc" maxlength="200" id="Description" name="Description" value="[% Data.Description | html %]" /> 112 </div> 113 <div class="Clear"></div> 114 115 <label for="ErrorHandlingTypeDisplay">[% Translate("Error handling module backend") | html %]:</label> 116 <div class="Field"> 117 <input type="text" readonly="readonly" class="W50pc" id="ErrorHandlingTypeDisplay" value="[% Data.ErrorHandlingType | html %]" /> 118 <p class="FieldExplanation"> 119 [% Translate("This OTRS error handling backend module will be called internally to process the error handling mechanism.") | html %] 120 </p> 121 </div> 122 <div class="Clear"></div> 123 124 </fieldset> 125 </div> 126 </div> 127 128 <!-- Processing options --> 129 <div class="WidgetSimple Expanded"> 130 <div class="Header"> 131 <div class="WidgetAction Toggle"> 132 <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> 133 </div> 134 <h2>[% Translate("Processing options") | html %]</h2> 135 </div> 136 <div class="Content"> 137 138 <fieldset class="TableLike"> 139 140 <div class="Field"> 141 [% Translate("Configure filters to control error handling module execution.") | html %] 142 <p class="FieldExplanation"> 143 [% Translate("Only requests matching all configured filters (if any) will trigger module execution.") | html %] 144 </p> 145 </div> 146 <div class="Clear"></div> 147 148[% RenderBlockStart("OperationFilter") %] 149 <label for="OperationFilter"> 150 [% Translate("Operation filter") | html %]: 151 </label> 152 <div class="Field"> 153 [% Data.OperationFilterStrg %] 154 <p class="FieldExplanation"> 155 [% Translate("Only execute error handling module for selected operations.") | html %]<br/> 156 [% Translate("Note: Operation is undetermined for errors occuring while receiving incoming request data. Filters involving this error stage should not use operation filter.") | html %] 157 </p> 158 </div> 159 <div class="Clear"></div> 160[% RenderBlockEnd("OperationFilter") %] 161[% RenderBlockStart("InvokerFilter") %] 162 <label for="InvokerFilter"> 163 [% Translate("Invoker filter") | html %]: 164 </label> 165 <div class="Field"> 166 [% Data.InvokerFilterStrg %] 167 <p class="FieldExplanation"> 168 [% Translate("Only execute error handling module for selected invokers.") | html %] 169 </p> 170 </div> 171 <div class="Clear"></div> 172[% RenderBlockEnd("InvokerFilter") %] 173 174 <label for="ErrorMessageContentFilter"> 175 [% Translate("Error message content filter") | html %]: 176 </label> 177 <div class="Field"> 178 <input type="text" class="W50pc [% Data.ErrorMessageContentFilterServerError | html %]" maxlength="200" id="ErrorMessageContentFilter" name="ErrorMessageContentFilter" value="[% Data.ErrorMessageContentFilter | html %]" /> 179 <input type="hidden" id="ErrorMessageContentFilter" name="ErrorMessageContentFilter" value="[% Data.ErrorMessageContentFilter | html %]" /> 180 <p class="FieldExplanation"> 181 [% Translate("Enter a regular expression to restrict which error messages should cause error handling module execution.") | html %]<br/> 182 [% Translate("Error message subject and data (as seen in the debugger error entry) will considered for a match.") | html %]<br/> 183 [% Translate("Example: Enter '^.*401 Unauthorized.*\$' to handle only authentication related errors.") | html %] 184 </p> 185 </div> 186 <div class="Clear"></div> 187 188 <label for="ErrorStageFilter"> 189 [% Translate("Error stage filter") | html %]: 190 </label> 191 <div class="Field"> 192 [% Data.ErrorStageFilterStrg %] 193 <p class="FieldExplanation"> 194 [% Translate("Only execute error handling module on errors that occur during specific processing stages.") | html %]<br/> 195 [% Translate("Example: Handle only errors where mapping for outgoing data could not be applied.") | html %] 196 </p> 197 </div> 198 <div class="Clear"></div> 199 200 <label for="ErrorCode"> 201 [% Translate("Error code") | html %]: 202 </label> 203 <div class="Field"> 204 <input type="text" class="W50pc" maxlength="200" id="ErrorCode" name="ErrorCode" value="[% Data.ErrorCode | html %]" /> 205 <p class="FieldExplanation"> 206 [% Translate("An error identifier for this error handling module.") | html %]<br/> 207 [% Translate("This identifier will be available in XSLT-Mapping and shown in debugger output.") | html %] 208 </p> 209 </div> 210 <div class="Clear"></div> 211 212 <label for="ErrorMessage"> 213 [% Translate("Error message") | html %]: 214 </label> 215 <div class="Field"> 216 <input type="text" class="W50pc" maxlength="200" id="ErrorMessage" name="ErrorMessage" value="[% Data.ErrorMessage | html %]" /> 217 <p class="FieldExplanation"> 218 [% Translate("An error explanation for this error handling module.") | html %]<br/> 219 [% Translate("This message will be available in XSLT-Mapping and shown in debugger output.") | html %] 220 </p> 221 </div> 222 <div class="Clear"></div> 223 224 <label for="StopAfterMatch"> 225 [% Translate("Stop after match") | html %]: 226 </label> 227 <div class="Field"> 228 [% Data.StopAfterMatchStrg %] 229 <p class="FieldExplanation"> 230 [% Translate("Define if processing should be stopped after module was executed, skipping all remaining modules or only those of the same backend.") | html %]<br/> 231 [% Translate("Default behavior is to resume, processing the next module.") | html %] 232 </p> 233 </div> 234 <div class="Clear"></div> 235 236 </fieldset> 237 </div> 238 </div> 239 240 <!-- Submit options --> 241 <div class="WidgetSimple"> 242 <div class="Header"> 243 <h2>[% Translate("Submit") | html %]</h2> 244 </div> 245 <div class="Content"> 246 247 <fieldset class="TableLike"> 248 249 <div class="Field SpacingTop"> 250 [% IF Data.Action == 'Change' %] 251 <button class="CallForAction Primary" id="SubmitAndContinue" type="button" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button> 252 [% Translate("or") | html %] 253 <button class="CallForAction Primary" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save and finish") | html %]</span></button> 254 [% ELSE %] 255 <button class="CallForAction Primary" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button> 256 [% END %] 257 [% Translate("or") | html %] 258 <a href="[% Env("Baselink") %]Action=AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %]"><span>[% Translate("Cancel") | html %]</span></a> 259 </div> 260 <div class="Clear"></div> 261 262 </fieldset> 263 </div> 264 </div> 265 </form> 266 </div> 267 <div class="Clear"></div> 268</div> 269