The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/app/integrations/client/views/integrationsOutgoing.html

241 lines
12 KiB

<template name="integrationsOutgoing">
<section class="page-container page-home page-static page-settings">
{{#header sectionName=pageTitle buttons=true}}
<div class="rc-header__section-button">
<button class="rc-button rc-button--secondary history" disabled="{{$not showHistoryButton}}">{{_ "History"}}</button>
<button class="rc-button rc-button--cancel delete" disabled="{{$not canDelete}}"><span>{{_ "Delete"}}</span></button>
<button class="rc-button rc-button--primary save" disabled="{{$not hasTypeSelected}}"><span>{{_ "Save_changes"}}</span></button>
</div>
{{/header}}
<div class="content">
<a href="{{pathFor "admin-integrations"}}"><i class="icon-angle-left"></i> {{_ "Back_to_integrations"}}</a><br><br>
{{#unless hasPermission}}
<p>{{_ "You_are_not_authorized_to_view_this_page"}}</p>
{{else}}
<div class="rocket-form">
<div class="section">
<div class="section-title">
<div class="section-title-text">{{_ "Webhook Details"}}</div>
<div class="section-title-right">
<button class="button primary collapse"><span>{{_ "Collapse"}}</span></button>
</div>
</div>
<div class="section-content">
<div class="input-line double-col">
<label>{{_ "Event_Trigger"}}</label>
<div>
<select name="event" class="required rc-input__element">
<option value=""></option>
{{#each eventTypes}}
<option value="{{value}}" selected="{{$eq data.event value}}" dir="auto">{{_ label}}</option>
{{/each}}
</select>
<div class="settings-description">{{_ "Event_Trigger_Description"}}</div>
</div>
</div>
{{#if hasTypeSelected}}
<div class="input-line double-col">
<label>{{_ "Enabled"}}</label>
<div>
<label><input type="radio" name="enabled" value="1" checked="{{$eq data.enabled true}}" /> {{_ "True"}}</label>
<label><input type="radio" name="enabled" value="0" checked="{{$neq data.enabled true}}" /> {{_ "False"}}</label>
</div>
</div>
<div class="input-line double-col">
<label>{{_ "Name"}} ({{_ "optional"}})</label>
<div>
<input type="text" class="rc-input__element" name="name" value="{{data.name}}" placeholder="{{_ 'Optional'}}" />
<div class="settings-description">{{_ "You_should_name_it_to_easily_manage_your_integrations"}}</div>
</div>
</div>
{{#if shouldDisplayChannel}}
<div class="input-line double-col">
<label>{{_ "Channel"}}</label>
<div>
<input type="text" class="rc-input__element" name="channel" value="{{data.channel}}" placeholder="{{_ 'User_or_channel_name'}}" />
<div class="settings-description">{{_ "Channel_to_listen_on"}}</div>
<div class="settings-description">{{{_ "Start_with_s_for_user_or_s_for_channel_Eg_s_or_s" "@" "#" "@john" "#general"}}}</div>
<div class="settings-description">{{{_ "Integrations_for_all_channels"}}}</div>
</div>
</div>
{{/if}}
{{#if shouldDisplayTriggerWords}}
<div class="input-line double-col">
<label>{{_ "Trigger_Words"}} ({{_ "optional"}})</label>
<div>
<input type="text" class="rc-input__element" name="triggerWords" value="{{join data.triggerWords ','}}" />
<div class="settings-description">{{_ "When a line starts with one of these words, post to the URL(s) below"}}</div>
<div class="settings-description">{{_ "Separate multiple words with commas"}}</div>
</div>
</div>
{{/if}}
{{#if shouldDisplayTargetRoom}}
<div class="input-line double-col">
<label>{{_ "TargetRoom"}}</label>
<div>
<input type="text" class="rc-input__element" name="targetRoom" value="{{data.targetRoom}}" placeholder="{{_ 'User_or_channel_name'}}" />
<div class="settings-description">{{_ "TargetRoom_Description"}}</div>
<div class="settings-description">{{{_ "Start_with_s_for_user_or_s_for_channel_Eg_s_or_s" "@" "#" "@john" "#general"}}}</div>
</div>
</div>
{{/if}}
<div class="input-line double-col">
<label>{{_ "URLs"}}</label>
<div>
<textarea name="urls" class="rc-input__element" style="height: 100px;">{{join data.urls "\n"}}</textarea>
<div class="settings-description">{{_ "Enter as many URLs as you like, one per line, please"}}</div>
</div>
</div>
<div class="input-line double-col">
<label>{{_ "Impersonate_user"}}</label>
<div>
<label><input type="radio" name="impersonateUser" value="1" checked="{{$eq data.impersonateUser true}}" /> {{_ "True"}}</label>
<label><input type="radio" name="impersonateUser" value="0" checked="{{$neq data.impersonateUser true}}" /> {{_ "False"}}</label>
<div class="settings-description">{{_ "Impersonate_user_description"}}</div>
</div>
</div>
<div class="input-line double-col">
<label>{{_ "Post_as"}}</label>
<div>
<input type="text" class="rc-input__element" name="username" value="{{data.username}}" />
<div class="settings-description">{{_ "Choose_the_username_that_this_integration_will_post_as"}}</div>
<div class="settings-description">{{_ "Should_exists_a_user_with_this_username"}}</div>
</div>
</div>
<div class="input-line double-col">
<label>{{_ "Alias"}} ({{_ "optional"}})</label>
<div>
<input type="text" class="rc-input__element" name="alias" value="{{data.alias}}" placeholder="{{_ 'Optional'}}" />
<div class="settings-description">{{_ "Choose_the_alias_that_will_appear_before_the_username_in_messages"}}</div>
</div>
</div>
<div class="input-line double-col">
<label>{{_ "Avatar_URL"}} ({{_ "optional"}})</label>
<div>
<input type="url" class="rc-input__element" name="avatar" value="{{data.avatar}}" placeholder="{{_ 'Optional'}}" />
<div class="settings-description">{{_ "You_can_change_a_different_avatar_too"}}</div>
<div class="settings-description">{{_ "Should_be_a_URL_of_an_image"}}</div>
</div>
</div>
<div class="input-line double-col">
<label>{{_ "Emoji"}} ({{_ "optional"}})</label>
<div>
<input type="text" class="rc-input__element" name="emoji" value="{{data.emoji}}" placeholder="{{_ 'Optional'}}" />
<div class="settings-description">{{_ "You_can_use_an_emoji_as_avatar"}}</div>
<div class="settings-description">{{{_ "Example_s" ":ghost:"}}}</div>
</div>
</div>
<div class="input-line double-col">
<label>Token ({{_ "optional"}})</label>
<div>
<input type="text" class="rc-input__element" name="token" value="{{data.token}}" />
</div>
</div>
<div class="input-line double-col">
<label>{{_ "Script_Enabled"}}</label>
<div>
<label><input type="radio" name="scriptEnabled" value="1" checked="{{$eq data.scriptEnabled true}}" /> {{_ "True"}}</label>
<label><input type="radio" name="scriptEnabled" value="0" checked="{{$neq data.scriptEnabled true}}" /> {{_ "False"}}</label>
</div>
</div>
<div class="input-line double-col">
<label>{{_ "Script"}}</label>
<div>
<div class="code-mirror-box">
<div class="title">
{{_ "Script"}}
</div>
{{> CodeMirror name="script" options=editorOptions code=data.script }}
<div class="buttons">
<button class="button primary button-fullscreen">{{_ "Full_Screen"}}</button>
<button class="button primary button-restore">{{_ "Exit_Full_Screen"}}</button>
</div>
</div>
{{#if data.hasScriptError }}
<div class="code-error-box">
<div class="title color-content-background-color background-error-color">
{{data.scriptError.name}}
</div>
<pre class="script-error background-transparent-lightest error-color error-border">{{data.scriptError.message}}</pre>
</div>
{{/if}}
</div>
</div>
<div class="input-line double-col">
<label>{{_ "Responding"}}</label>
<div>
<div class="settings-description">{{{_ "If the handler wishes to post a response back into the channel, the following JSON should be returned as the body of the response:"}}}</div>
<pre><code class="code-colors hljs json json-example">{{{exampleJson}}}</code></pre>
<div class="settings-description">{{{_ "Empty bodies or bodies with an empty text property will simply be ignored. Non-200 responses will be retried a reasonable number of times. A response will be posted using the alias and avatar specified above. You can override these informations as in the example above."}}}</div>
</div>
</div>
<div class="input-line message-example">
{{#nrr nrrargs 'message' msg=exampleMsg settings=exampleSettings u=exampleUser}}{{/nrr}}
</div>
{{/if}}
</div>
</div>
{{#if hasTypeSelected}}
<div class="section section-collapsed">
<div class="section-title">
<div class="section-title-text">{{_ "Integration_Advanced_Settings"}}</div>
<div class="section-title-right">
<button class="button primary expand"><span>{{_ "Expand"}}</span></button>
</div>
</div>
<div class="section-content">
<div class="input-line double-col">
<label>{{_ "Integration_Retry_Failed_Url_Calls"}}</label>
<div>
<label><input type="radio" name="retryFailedCalls" value="1" checked="{{$eq data.retryFailedCalls true}}" /> {{_ "True"}}</label>
<label><input type="radio" name="retryFailedCalls" value="0" checked="{{$neq data.retryFailedCalls true}}" /> {{_ "False"}}</label>
<div class="settings-description">{{_ "Integration_Retry_Failed_Url_Calls_Description"}}</div>
</div>
</div>
{{#if data.retryFailedCalls}}
<div class="input-line double-col">
<label>{{_ "Integration_Retry_Count"}}</label>
<div>
<input type="number" class="rc-input__element" name="retryCount" value="{{data.retryCount}}" />
<div class="settings-description">{{_ "Integration_Retry_Count_Description"}}</div>
</div>
</div>
<div class="input-line double-col">
<label>{{_ "Integration_Retry_Delay"}}</label>
<div>
<select name="retryDelay" class="required">
<option value="powers-of-ten" selected="{{$eq data.retryDelay 'powers-of-ten'}}" dir="auto">powers-of-ten</option>
<option value="powers-of-two" selected="{{$eq data.retryDelay 'powers-of-two'}}" dir="auto">powers-of-two</option>
<option value="increments-of-two" selected="{{$eq data.retryDelay 'increments-of-two'}}" dir="auto">increments-of-two</option>
</select>
<div class="settings-description">{{{_ "Integration_Retry_Delay_Description"}}}</div>
</div>
</div>
{{/if}}
{{#if shouldDisplayTriggerWords}}
<div class="input-line double-col">
<label>{{_ "Integration_Word_Trigger_Placement"}}</label>
<div>
<label><input type="radio" name="triggerWordAnywhere" value="1" checked="{{$eq data.triggerWordAnywhere true}}" /> {{_ "True"}}</label>
<label><input type="radio" name="triggerWordAnywhere" value="0" checked="{{$neq data.triggerWordAnywhere true}}" /> {{_ "False"}}</label>
<div class="settings-description">{{_ "Integration_Word_Trigger_Placement_Description"}}</div>
</div>
</div>
<div class="input-line double-col">
<label>{{_ "Integration_Run_When_Message_Is_Edited"}}</label>
<div>
<label><input type="radio" name="runOnEdits" value="1" checked="{{$eq data.runOnEdits true}}" /> {{_ "True"}}</label>
<label><input type="radio" name="runOnEdits" value="0" checked="{{$neq data.runOnEdits true}}" /> {{_ "False"}}</label>
<div class="settings-description">{{{_ "Integration_Run_When_Message_Is_Edited_Description"}}}</div>
</div>
</div>
{{/if}}
</div>
</div>
{{/if}}
</div>
{{/unless}}
</div>
</section>
</template>