From 29e1a853601514284c2af3f3302f30ad0d3c6d54 Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Mon, 11 Apr 2016 09:04:56 -0400 Subject: PLT-2553 Additional backstage UI Improvements (#2673) * Renamed Commands to Slash Commands in backstage UI * Updated displayed info for listed commands and outgoing webhooks * Disallowed empty outgoing webhook trigger words and improved client-side validation for them --- .../components/backstage/add_outgoing_webhook.jsx | 28 ++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'webapp/components/backstage/add_outgoing_webhook.jsx') diff --git a/webapp/components/backstage/add_outgoing_webhook.jsx b/webapp/components/backstage/add_outgoing_webhook.jsx index acdd98ba8..ff5e90e07 100644 --- a/webapp/components/backstage/add_outgoing_webhook.jsx +++ b/webapp/components/backstage/add_outgoing_webhook.jsx @@ -50,7 +50,18 @@ export default class AddOutgoingWebhook extends React.Component { clientError: '' }); - if (!this.state.channelId && !this.state.triggerWords) { + const triggerWords = []; + if (this.state.triggerWords) { + for (let triggerWord of this.state.triggerWords.split('\n')) { + triggerWord = triggerWord.trim(); + + if (triggerWord.length > 0) { + triggerWords.push(triggerWord); + } + } + } + + if (!this.state.channelId && triggerWords.length === 0) { this.setState({ saving: false, clientError: ( @@ -64,7 +75,16 @@ export default class AddOutgoingWebhook extends React.Component { return; } - if (!this.state.callbackUrls) { + const callbackUrls = []; + for (let callbackUrl of this.state.callbackUrls.split('\n')) { + callbackUrl = callbackUrl.trim(); + + if (callbackUrl.length > 0) { + callbackUrls.push(callbackUrl); + } + } + + if (callbackUrls.length === 0) { this.setState({ saving: false, clientError: ( @@ -80,8 +100,8 @@ export default class AddOutgoingWebhook extends React.Component { const hook = { channel_id: this.state.channelId, - trigger_words: this.state.triggerWords.split('\n').map((word) => word.trim()), - callback_urls: this.state.callbackUrls.split('\n').map((url) => url.trim()), + trigger_words: triggerWords, + callback_urls: callbackUrls, display_name: this.state.displayName, description: this.state.description }; -- cgit v1.2.3-1-g7c22