summaryrefslogtreecommitdiffstats
path: root/webapp/components/backstage/integrations.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/components/backstage/integrations.jsx')
-rw-r--r--webapp/components/backstage/integrations.jsx98
1 files changed, 98 insertions, 0 deletions
diff --git a/webapp/components/backstage/integrations.jsx b/webapp/components/backstage/integrations.jsx
new file mode 100644
index 000000000..71232ea45
--- /dev/null
+++ b/webapp/components/backstage/integrations.jsx
@@ -0,0 +1,98 @@
+// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+import React from 'react';
+
+import {FormattedMessage} from 'react-intl';
+import IntegrationOption from './integration_option.jsx';
+
+import WebhookIcon from 'images/webhook_icon.jpg';
+
+export default class Integrations extends React.Component {
+ render() {
+ const options = [];
+
+ if (window.mm_config.EnableIncomingWebhooks === 'true') {
+ options.push(
+ <IntegrationOption
+ key='incomingWebhook'
+ image={WebhookIcon}
+ title={
+ <FormattedMessage
+ id='integrations.incomingWebhook.title'
+ defaultMessage='Incoming Webhook'
+ />
+ }
+ description={
+ <FormattedMessage
+ id='integrations.incomingWebhook.description'
+ defaultMessage='Incoming webhooks allow external integrations to send messages'
+ />
+ }
+ link={'/settings/integrations/incoming_webhooks'}
+ />
+ );
+ }
+
+ if (window.mm_config.EnableOutgoingWebhooks === 'true') {
+ options.push(
+ <IntegrationOption
+ key='outgoingWebhook'
+ image={WebhookIcon}
+ title={
+ <FormattedMessage
+ id='integrations.outgoingWebhook.title'
+ defaultMessage='Outgoing Webhook'
+ />
+ }
+ description={
+ <FormattedMessage
+ id='integrations.outgoingWebhook.description'
+ defaultMessage='Outgoing webhooks allow external integrations to receive and respond to messages'
+ />
+ }
+ link={'/settings/integrations/outgoing_webhooks'}
+ />
+ );
+ }
+
+ if (window.mm_config.EnableCommands === 'true') {
+ options.push(
+ <IntegrationOption
+ key='command'
+ image={WebhookIcon}
+ title={
+ <FormattedMessage
+ id='integrations.command.title'
+ defaultMessage='Slash Command'
+ />
+ }
+ description={
+ <FormattedMessage
+ id='integrations.command.description'
+ defaultMessage='Slash commands send events to an external integration'
+ />
+ }
+ link={'/settings/integrations/commands'}
+ />
+ );
+ }
+
+ return (
+ <div className='backstage-content row'>
+ <div className='backstage-header'>
+ <h1>
+ <FormattedMessage
+ id='integrations.header'
+ defaultMessage='Integrations'
+ />
+ </h1>
+ </div>
+ <div>
+ {options}
+ </div>
+ </div>
+ );
+ }
+}
+