Allow emoji as avatar for webhooks/integrations

pull/1666/head
Rodrigo Nascimento 10 years ago
parent 4e44ed0530
commit c25d617291
  1. 4
      i18n/en.i18n.json
  2. 4
      packages/rocketchat-integrations/client/views/integrationsIncoming.coffee
  3. 8
      packages/rocketchat-integrations/client/views/integrationsIncoming.html
  4. 5
      packages/rocketchat-integrations/server/api/api.coffee
  5. 1
      packages/rocketchat-integrations/server/methods/updateIntegration.coffee
  6. 4
      packages/rocketchat-theme/assets/stylesheets/base.less
  7. 2
      packages/rocketchat-ui-message/message/message.coffee
  8. 10
      packages/rocketchat-ui-message/message/message.html

@ -153,6 +153,7 @@
"Error_changing_password" : "Error changing password",
"Error_too_many_requests" : "Error, too many requests. Please slow down. You must wait %s seconds before trying again",
"Esc_to" : "Esc to",
"Example_s" : "Example: <code class=\"inline\">%s</code>",
"False" : "False",
"Favorites" : "Favorites",
"FileUpload" : "File Upload",
@ -516,6 +517,7 @@
"Yes_delete_it" : "Yes, delete it!",
"you_are_in_preview_mode_of" : "You are in preview mode of channel #<strong>__room_name__</strong>",
"You_can_change_a_different_avatar_too" : "You can change a different avatar too",
"You_can_use_an_emoji_as_avatar" : "You can use an emoji as avatar",
"You_need_confirm_email" : "You need to confirm your email to login!",
"You_need_install_an_extension_to_allow_screen_sharing" : "You need install an extension to allow screen sharing",
"You_should_name_it_to_easily_manage_your_integrations" : "You should name it to easily manage your integrations.",
@ -523,4 +525,4 @@
"Your_entry_has_been_deleted" : "Your entry has been deleted.",
"Your_Open_Source_solution" : "Your own Open Source chat solution",
"Your_push_was_sent_to_s_devices" : "Your push was sent to %s devices"
}
}

@ -25,6 +25,7 @@ Template.integrationsIncoming.helpers
return {} =
_id: Random.id()
alias: record.alias
emoji: record.emoji
avatar: record.avatar
msg: 'Example message'
bot:
@ -47,6 +48,7 @@ Template.integrationsIncoming.events
t.record.set
name: $('[name=name]').val().trim()
alias: $('[name=alias]').val().trim()
emoji: $('[name=emoji]').val().trim()
avatar: $('[name=avatar]').val().trim()
channel: $('[name=channel]').val().trim()
username: $('[name=username]').val().trim()
@ -78,6 +80,7 @@ Template.integrationsIncoming.events
"click .submit > .save": ->
name = $('[name=name]').val().trim()
alias = $('[name=alias]').val().trim()
emoji = $('[name=emoji]').val().trim()
avatar = $('[name=avatar]').val().trim()
channel = $('[name=channel]').val().trim()
username = $('[name=username]').val().trim()
@ -91,6 +94,7 @@ Template.integrationsIncoming.events
integration =
channel: channel
alias: alias if alias isnt ''
emoji: emoji if emoji isnt ''
avatar: avatar if avatar isnt ''
name: name if name isnt ''

@ -47,6 +47,14 @@
<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" 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>
{{#if data.token}}
<div class="input-line double-col">
<label>Webhook URL</label>

@ -71,8 +71,9 @@ Api.addRoute ':integrationId/:userId/:token', authRequired: true,
error: 'invalid-channel-type'
message =
avatar: integration.avatar
alias: integration.alias
avatar: integration.avatar or @bodyParams.avatar or @bodyParams.icon_url
emoji: integration.emoji or @bodyParams.emoji or @bodyParams.icon_emoji
alias: integration.alias or @bodyParams.alias or @bodyParams.username
msg: @bodyParams.text or ''
attachments: @bodyParams.attachments
parseUrls: false

@ -40,6 +40,7 @@ Meteor.methods
$set:
name: integration.name
avatar: integration.avatar
emoji: integration.emoji
alias: integration.alias
channel: integration.channel
_updatedAt: new Date

@ -867,6 +867,10 @@ a.github-fork {
overflow: hidden;
position: relative;
border-radius: 4px;
.emojione {
height: 100%;
margin: 0px;
}
.avatar-image {
height: 100%;
width: 100%;

@ -5,6 +5,8 @@ Template.message.helpers
return 'false' if this.groupable is false
isSequential: ->
return 'sequential' if this.groupable isnt false
getEmoji: (emoji) ->
return emojione.toImage emoji
own: ->
return 'own' if this.u?._id is Meteor.userId()
chatops: ->

@ -7,7 +7,15 @@
</div>
</a>
{{else}}
<a class="thumb user-card-message" href="#" data-username="{{u.username}}" tabindex="1">{{> avatar username=u.username}}</a>
{{#if emoji}}
<a class="thumb user-card-message" href="#" data-username="{{u.username}}" tabindex="1">
<div class="avatar">
{{{getEmoji emoji}}}
</div>
</a>
{{else}}
<a class="thumb user-card-message" href="#" data-username="{{u.username}}" tabindex="1">{{> avatar username=u.username}}</a>
{{/if}}
{{/if}}
{{#if alias}}
<a class="user user-card-message" href="#" data-username="{{u.username}}" tabindex="1">{{alias}} <span class="message-alias">@{{u.username}}</span></a>

Loading…
Cancel
Save