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 AdminGenericInterfaceInvokerDefault"> 9 <h1 class="InvisibleText">[% Translate("GenericInterface Web Service Management") | html %]</h1> 10 11 [% USE BreadcrumbLink = String("AdminGenericInterfaceWebservice") %] 12 13 [% BreadcrumbPath = [ 14 { 15 Name => Translate( 'Web Service Management' ), 16 Link => BreadcrumbLink, 17 }, 18 { 19 Name => Data.WebserviceName, 20 Link => BreadcrumbLink.copy.append( ";Subaction=Change;WebserviceID=", Data.WebserviceID ), 21 }, 22 ] 23 %] 24 25 [% SWITCH Data.Mode %] 26 [% CASE 'Add' %] 27 [% BreadcrumbPath.push({ Name => Translate("Add Invoker"),}) %] 28 [% CASE 'Change' %] 29 [% USE EditTitle = String(Translate("Edit Invoker")) %] 30 [% BreadcrumbPath.push({ Name => EditTitle.append( ': ', Data.Invoker ), }) %] 31 [% END %] 32 33 [% INCLUDE "Breadcrumb.tt" Path = BreadcrumbPath %] 34 35 <div class="Clear"></div> 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.Mode == '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 invoker?") | 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 <div class="WidgetSimple"> 68 <div class="Header"> 69 <h2>[% Translate("Invoker Details") | html %]</h2> 70 </div> 71 <div class="Content"> 72 <form action="[% Env("CGIHandle") %]" class="Validate" method="post"> 73 <input type="hidden" name="Action" value="AdminGenericInterfaceInvokerDefault" /> 74 <input type="hidden" name="Subaction" value="[% Data.Mode | html %]Action" /> 75 <input type="hidden" name="WebserviceID" value="[% Data.WebserviceID | html %]" id="WebserviceID" /> 76 <input type="hidden" name="InvokerType" value="[% Data.InvokerType | html %]" /> 77 [% IF Data.Mode == 'Change' %] 78 <input type="hidden" name="ContinueAfterSave" id="ContinueAfterSave" value=""/> 79 [% END %] 80 81 <fieldset class="TableLike"> 82 <label for="Invoker" class="Mandatory"> 83 <span class="Marker">*</span> 84 [% Translate("Name") | html %]: 85 </label> 86 <div class="Field"> 87 <input type="text" class="W50pc RegisterChange Validate_Required [% Data.InvokerServerError | html %]" maxlength="200" id="Invoker" name="Invoker" value="[% Data.NewInvoker | html %]" /> 88 <input type="hidden" id="OldInvoker" name="OldInvoker" value="[% Data.Invoker | html %]" /> 89 <p class="FieldExplanation"> 90 [% Translate("The name is typically used to call up an operation of a remote web service.") | html %] 91 </p> 92 <div id="InvokerError" class="TooltipErrorMessage"> 93 [% Translate("This field is required.") | html %] [% Translate("Please provide a unique name for this web service.") | html %] 94 </div> 95 <div id="InvokerServerError" class="TooltipErrorMessage"> 96 [% Translate("The name you entered already exists.") | html %] 97 </div> 98 </div> 99 <div class="Clear"></div> 100 101 <label for="Description"> 102 [% Translate("Description") | html %]: 103 </label> 104 <div class="Field"> 105 <input type="text" class="W50pc RegisterChange" maxlength="200" id="Description" name="Description" value="[% Data.Description | html %]" /> 106 </div> 107 <div class="Clear"></div> 108 109 <label for="InvokerTypeDisplay">[% Translate("Invoker backend") | html %]:</label> 110 <div class="Field"> 111 <input type="text" readonly="readonly" class="W50pc" id="InvokerTypeDisplay" value="[% Data.InvokerType | html %]" /> 112 <p class="FieldExplanation"> 113 [% 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 %] 114 </p> 115 </div> 116 <div class="Clear"></div> 117 118 <label for="MappingOutbound">[% Translate("Mapping for outgoing request data") | html %]:</label> 119 <div class="Field"> 120 [% Data.MappingOutboundStrg %] 121[% RenderBlockStart("MappingOutboundConfigureButton") %] 122 <input type="hidden" id="MappingOutboundConfigDialog" value="[% Data.MappingOutboundConfigDialog | html %]" /> 123 <button type="button" class="HideOnChange CallForAction InLine" id="MappingOutboundConfigureButton" value="[% Translate("Configure") | html %]"><span>[% Translate("Configure") | html %]</span></button> 124[% RenderBlockEnd("MappingOutboundConfigureButton") %] 125 <p class="FieldExplanation"> 126 [% 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 %] 127 </p> 128 </div> 129 <div class="Clear"></div> 130 131 <label for="MappingInbound">[% Translate("Mapping for incoming response data") | html %]:</label> 132 <div class="Field"> 133 [% Data.MappingInboundStrg %] 134[% RenderBlockStart("MappingInboundConfigureButton") %] 135 <input type="hidden" id="MappingInboundConfigDialog" value="[% Data.MappingInboundConfigDialog | html %]" /> 136 <button type="button" class="HideOnChange CallForAction InLine" id="MappingInboundConfigureButton" value="[% Translate("Configure") | html %]"><span>[% Translate("Configure") | html %]</span></button> 137[% RenderBlockEnd("MappingInboundConfigureButton") %] 138 <p class="FieldExplanation"> 139 [% Translate("The response data will be processed by this mapping, to transform it to the kind of data the invoker of OTRS expects.") | html %] 140 </p> 141 </div> 142 <div class="Clear"></div> 143 144 [% IF Data.Mode == 'Change' %] 145 <label for="EventsTable">[% Translate("Event Triggers") | html %]:</label> 146 <div class="Field W50pc"> 147 <table class="DataTable W50pc" id="EventsTable" summary="List of all configured events"> 148 <thead> 149 <tr> 150 <th class="Center">[% Translate("Event") | html %]</th> 151 <th class="Center">[% Translate("Asynchronous") | html %]</th> 152 <th class="Center">[% Translate("Condition") | html %]</th> 153 <th class="Center">[% Translate("Edit") | html %]</th> 154 <th class="Center">[% Translate("Delete") | html %]</th> 155 </tr> 156 </thead> 157 <tbody> 158[% RenderBlockStart("NoDataFoundMsg") %] 159 <tr> 160 <td colspan="5"> 161 [% Translate("No data found.") | html %] 162 </td> 163 </tr> 164[% RenderBlockEnd("NoDataFoundMsg") %] 165 166[% RenderBlockStart("EventRow") %] 167 <tr> 168 <td class="AsBlock">[% Data.Event | html %]</td> 169 <td class="Center">[% Translate(Data.Asynchronous) | html %]</td> 170 <td class="Center">[% Translate(Data.Condition) | html %]</td> 171 <td class="Center"> 172 <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 %]"> 173 [% Translate("Edit this event") | html %] 174 <i class="fa fa-edit"></i> 175 </a> 176 <td class="Center"> 177 <a id="DeleteEvent[% Data.Event | html %]" class="TrashCan DeleteEvent HideOnChange" href="#" title="[% Translate("Delete this event") | html %]"> 178 [% Translate("Delete this event") | html %] 179 <i class="fa fa-trash-o"></i> 180 </a> 181 </td> 182 </tr> 183[% RenderBlockEnd("EventRow") %] 184 </tbody> 185 </table> 186 <p class="FieldExplanation"> 187 [% Translate("This invoker will be triggered by the configured events.") | html %] 188 </p> 189 </div> 190 191 <div class="Hidden" id="DeleteEventDialogContainer"> 192 <div id ="DeleteEventDialog" class="InnerContent GenericInterfaceDialog"> 193 <span class="WarningDialog "> </span> 194 <p class="Center Warning">[% Translate("Do you really want to delete this event trigger?") | html %]</p> 195 <div class="SpacingTop"></div> 196 </div> 197 </div> 198 199 <div class="SpacingTop"></div> 200 <label for="EventType">[% Translate("Add Event Trigger") | html %]:</label> 201 <div class="Field"> 202 [% Data.EventTypeStrg %] 203[% RenderBlockStart("EventAdd") %] 204 [% Data.EventStrg %] 205[% RenderBlockEnd("EventAdd") %] 206 <input type="checkbox" id="Asynchronous" checked="checked" class="GenericInterfaceSpacing" name="Asynchronous"/><label for="Asynchronous">[% Translate("Asynchronous") | html %]</label> 207 <button type="button" id="AddEvent" class="Add GenericInterfaceSpacing HideOnChange" name="AddEvent" value="[% Translate("Add Event") | html %]">[% Translate("Add Event") | html %]</button> 208 <p class="FieldExplanation"> 209 [% Translate("To add a new event select the event object and event name and click on the \"+\" button") | html %]. 210 </p> 211 <p class="FieldExplanation"> 212 [% Translate("Asynchronous event triggers are handled by the OTRS Scheduler Daemon in background (recommended).") | html %] 213 <br/> 214 [% Translate("Synchronous event triggers would be processed directly during the web request.") | html %] 215 </p> 216 </div> 217 <div class="Clear"></div> 218 [% END %] 219 220 <div class="Field SpacingTop"> 221 [% IF Data.Mode == 'Change' %] 222 <button class="CallForAction Primary" id="SubmitAndContinue" type="button" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button> 223 [% Translate("or") | html %] 224 <button class="CallForAction Primary" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save and finish") | html %]</span></button> 225 [% ELSE %] 226 <button class="CallForAction Primary" id="Submit" type="submit" value="[% Translate("Save") | html %]"><span>[% Translate("Save") | html %]</span></button> 227 [% END %] 228 [% Translate("or") | html %] 229 <a href="[% Env("Baselink") %]Action=AdminGenericInterfaceWebservice;Subaction=Change;WebserviceID=[% Data.WebserviceID | uri %]"><span>[% Translate("Cancel") | html %]</span></a> 230 </div> 231 <div class="Clear"></div> 232 233 </fieldset> 234 </form> 235 </div> 236 </div> 237 </div> 238 <div class="Clear"></div> 239</div> 240