Add option to disable integrations

pull/2491/head
Rodrigo Nascimento 10 years ago
parent ce447c8ba0
commit 73f443ef34
  1. 2
      packages/rocketchat-integrations/client/views/integrationsIncoming.coffee
  2. 7
      packages/rocketchat-integrations/client/views/integrationsIncoming.html
  3. 2
      packages/rocketchat-integrations/client/views/integrationsOutgoing.coffee
  4. 7
      packages/rocketchat-integrations/client/views/integrationsOutgoing.html
  5. 10
      packages/rocketchat-integrations/server/api/api.coffee
  6. 1
      packages/rocketchat-integrations/server/methods/incoming/updateIncomingIntegration.coffee
  7. 1
      packages/rocketchat-integrations/server/methods/outgoing/updateOutgoingIntegration.coffee
  8. 3
      packages/rocketchat-integrations/server/triggers.coffee
  9. 6
      server/startup/migrations/v33.coffee

@ -146,6 +146,7 @@ Template.integrationsIncoming.events
$('.CodeMirror')[0].CodeMirror.refresh()
"click .submit > .save": ->
enabled = $('[name=enabled]:checked').val().trim()
name = $('[name=name]').val().trim()
alias = $('[name=alias]').val().trim()
emoji = $('[name=emoji]').val().trim()
@ -162,6 +163,7 @@ Template.integrationsIncoming.events
return toastr.error TAPi18n.__("The_username_is_required")
integration =
enabled: enabled is '1'
channel: channel
alias: alias if alias isnt ''
emoji: emoji if emoji isnt ''

@ -5,6 +5,13 @@
<div class="rocket-form">
<div class="section">
<div class="section-content">
<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>

@ -136,6 +136,7 @@ Template.integrationsOutgoing.events
$('.CodeMirror')[0].CodeMirror.refresh()
"click .submit > .save": ->
enabled = $('[name=enabled]:checked').val().trim()
name = $('[name=name]').val().trim()
alias = $('[name=alias]').val().trim()
emoji = $('[name=emoji]').val().trim()
@ -169,6 +170,7 @@ Template.integrationsOutgoing.events
return toastr.error TAPi18n.__("You_should_inform_one_url_at_least")
integration =
enabled: enabled is '1'
username: username
channel: channel if channel isnt ''
alias: alias if alias isnt ''

@ -5,6 +5,13 @@
<div class="rocket-form">
<div class="section">
<div class="section-content">
<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>

@ -66,6 +66,12 @@ Api.addRoute ':integrationId/:userId/:token', authRequired: true,
logger.incoming.debug '@bodyParams', @bodyParams
integration = RocketChat.models.Integrations.findOne(@urlParams.integrationId)
if integration.enabled isnt true
return {} =
statusCode: 503
body: 'Service Unavailable'
user = RocketChat.models.Users.findOne(@userId)
defaultValues =
@ -181,7 +187,7 @@ Api.addRoute 'add/:integrationId/:userId/:token', authRequired: true,
integration = RocketChat.models.Integrations.findOne(@urlParams.integrationId)
if not integration?
return RocketChat.API.v1.failure 'Invalid integraiton id'
return RocketChat.API.v1.failure 'Invalid integration id'
user = RocketChat.models.Users.findOne(@userId)
@ -193,7 +199,7 @@ Api.addRoute 'remove/:integrationId/:userId/:token', authRequired: true,
integration = RocketChat.models.Integrations.findOne(@urlParams.integrationId)
if not integration?
return RocketChat.API.v1.failure 'Invalid integraiton id'
return RocketChat.API.v1.failure 'Invalid integration id'
user = RocketChat.models.Users.findOne(@userId)

@ -53,6 +53,7 @@ Meteor.methods
RocketChat.models.Integrations.update integrationId,
$set:
enabled: integration.enabled
name: integration.name
avatar: integration.avatar
emoji: integration.emoji

@ -81,6 +81,7 @@ Meteor.methods
RocketChat.models.Integrations.update integrationId,
$set:
enabled: integration.enabled
name: integration.name
avatar: integration.avatar
emoji: integration.emoji

@ -271,7 +271,8 @@ ExecuteTriggers = (message, room) ->
for triggerToExecute in triggersToExecute
ExecuteTrigger triggerToExecute, message, room
if triggerToExecute.enabled is true
ExecuteTrigger triggerToExecute, message, room
return message

@ -35,3 +35,9 @@ RocketChat.Migrations.add
processOutgoingResponseScript: 1
RocketChat.models.Integrations.update {}, update, {multi: true}
update =
$set:
enabled: true
RocketChat.models.Integrations.update {enabled: {$exists: false}}, update, {multi: true}

Loading…
Cancel
Save