diff --git a/webapp/components/backstage/installed_integrations.jsx b/webapp/components/backstage/installed_integrations.jsx
index 4f79509d90..0b6701b214 100644
--- a/webapp/components/backstage/installed_integrations.jsx
+++ b/webapp/components/backstage/installed_integrations.jsx
@@ -21,6 +21,10 @@ export default class InstalledIntegrations extends React.Component {
this.updateFilter = this.updateFilter.bind(this);
this.updateTypeFilter = this.updateTypeFilter.bind(this);
+ this.deleteIncomingWebhook = this.deleteIncomingWebhook.bind(this);
+ this.regenOutgoingWebhookToken = this.regenOutgoingWebhookToken.bind(this);
+ this.deleteOutgoingWebhook = this.deleteOutgoingWebhook.bind(this);
+
this.state = {
incomingWebhooks: [],
outgoingWebhooks: [],
@@ -82,6 +86,10 @@ export default class InstalledIntegrations extends React.Component {
AsyncClient.deleteIncomingHook(incomingWebhook.id);
}
+ regenOutgoingWebhookToken(outgoingWebhook) {
+ AsyncClient.regenOutgoingHookToken(outgoingWebhook.id);
+ }
+
deleteOutgoingWebhook(outgoingWebhook) {
AsyncClient.deleteOutgoingHook(outgoingWebhook.id);
}
@@ -227,7 +235,8 @@ export default class InstalledIntegrations extends React.Component {
);
}
diff --git a/webapp/components/backstage/installed_outgoing_webhook.jsx b/webapp/components/backstage/installed_outgoing_webhook.jsx
index 3c0e206345..12e1a5c81d 100644
--- a/webapp/components/backstage/installed_outgoing_webhook.jsx
+++ b/webapp/components/backstage/installed_outgoing_webhook.jsx
@@ -12,20 +12,28 @@ export default class InstalledOutgoingWebhook extends React.Component {
static get propTypes() {
return {
outgoingWebhook: React.PropTypes.object.isRequired,
- onDeleteClick: React.PropTypes.func.isRequired
+ onRegenToken: React.PropTypes.func.isRequired,
+ onDelete: React.PropTypes.func.isRequired
};
}
constructor(props) {
super(props);
- this.handleDeleteClick = this.handleDeleteClick.bind(this);
+ this.handleRegenToken = this.handleRegenToken.bind(this);
+ this.handleDelete = this.handleDelete.bind(this);
}
- handleDeleteClick(e) {
+ handleRegenToken(e) {
e.preventDefault();
- this.props.onDeleteClick(this.props.outgoingWebhook);
+ this.props.onRegenToken(this.props.outgoingWebhook);
+ }
+
+ handleDelete(e) {
+ e.preventDefault();
+
+ this.props.onDelete(this.props.outgoingWebhook);
}
render() {
@@ -51,13 +59,25 @@ export default class InstalledOutgoingWebhook extends React.Component {
{Utils.getWindowLocationOrigin() + '/hooks/' + outgoingWebhook.id}
+ {' - '}
+ {outgoingWebhook.token}
+
+
+ {' - '}
+
{
+ AppDispatcher.handleServerAction({
+ type: ActionTypes.UPDATED_OUTGOING_WEBHOOK,
+ outgoingWebhook: data
+ });
+ },
+ (err) => {
+ dispatchError(err, 'regenOutgoingHookToken');
+ }
+ );
+}
diff --git a/webapp/utils/constants.jsx b/webapp/utils/constants.jsx
index 89bf4e8657..c7f61e9df6 100644
--- a/webapp/utils/constants.jsx
+++ b/webapp/utils/constants.jsx
@@ -74,6 +74,7 @@ export default {
REMOVED_INCOMING_WEBHOOK: null,
RECEIVED_OUTGOING_WEBHOOKS: null,
RECEIVED_OUTGOING_WEBHOOK: null,
+ UPDATED_OUTGOING_WEBHOOK: null,
REMOVED_OUTGOING_WEBHOOK: null,
RECEIVED_MSG: null,