Skip to content

Commit

Permalink
Merge branch 'develop' into set-realname-to-alias
Browse files Browse the repository at this point in the history
  • Loading branch information
Maki Nishifuji committed May 25, 2016
2 parents ae0e512 + 88d1422 commit 0dbfa4d
Show file tree
Hide file tree
Showing 21 changed files with 142 additions and 95 deletions.
48 changes: 29 additions & 19 deletions packages/rocketchat-lib/client/MessageAction.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -51,18 +51,32 @@ RocketChat.MessageAction = new class
resetButtons = ->
buttons.set {}

getPermaLink = (msgId) ->
roomData = ChatSubscription.findOne({rid: Session.get('openedRoom')})
if roomData
routePath = RocketChat.roomTypes.getRouteLink(roomData.t, roomData)
else
routePath = document.location.pathname
return Meteor.absoluteUrl().replace(/\/$/, '') + routePath + '?msg=' + msgId

hideDropDown = () ->
$('.message-dropdown:visible').hide()

addButton: addButton
removeButton: removeButton
updateButton: updateButton
getButtons: getButtons
getButtonById: getButtonById
resetButtons: resetButtons
getPermaLink: getPermaLink
hideDropDown: hideDropDown

Meteor.startup ->

$(document).click (event) =>
if !$(event.target).closest('.message-cog-container').length and !$(event.target).is('.message-cog-container')
$('.message-dropdown:visible').hide()
target = $(event.target)
if !target.closest('.message-cog-container').length and !target.is('.message-cog-container')
RocketChat.MessageAction.hideDropDown()

RocketChat.MessageAction.addButton
id: 'edit-message'
Expand All @@ -73,12 +87,9 @@ Meteor.startup ->
'message-mobile'
]
action: (e, instance) ->
console.log e
console.log e.currentTarget
message = $(e.currentTarget).closest('.message')[0]
console.log message
chatMessages[Session.get('openedRoom')].edit(message)
$("\##{message.id} .message-dropdown").hide()
RocketChat.MessageAction.hideDropDown()
input = instance.find('.input-message')
Meteor.setTimeout ->
input.focus()
Expand Down Expand Up @@ -115,9 +126,7 @@ Meteor.startup ->
]
action: (event, instance) ->
message = @_arguments[1]
msg = $(event.currentTarget).closest('.message')[0]
$("\##{msg.id} .message-dropdown").hide()

RocketChat.MessageAction.hideDropDown()
chatMessages[Session.get('openedRoom')].confirmDeleteMsg(message)
validation: (message) ->
room = RocketChat.models.Rooms.findOne({ _id: message.rid })
Expand Down Expand Up @@ -151,16 +160,15 @@ Meteor.startup ->
]
action: (event, instance) ->
message = @_arguments[1]
msg = $(event.currentTarget).closest('.message')[0]
$("\##{msg.id} .message-dropdown").hide()
$(event.currentTarget).attr('data-clipboard-text', document.location.origin + document.location.pathname + '?msg=' + msg.id);
RocketChat.MessageAction.hideDropDown()
$(event.currentTarget).attr('data-clipboard-text', RocketChat.MessageAction.getPermaLink(message._id));
toastr.success(TAPi18n.__('Copied'))
validation: (message) ->
room = RocketChat.models.Rooms.findOne({ _id: message.rid })

if Array.isArray(room.usernames) && room.usernames.indexOf(Meteor.user().username) is -1
return false

return true
order: 3

Expand All @@ -175,16 +183,15 @@ Meteor.startup ->
]
action: (event, instance) ->
message = @_arguments[1].msg
msg = $(event.currentTarget).closest('.message')[0]
$("\##{msg.id} .message-dropdown").hide()
RocketChat.MessageAction.hideDropDown()
$(event.currentTarget).attr('data-clipboard-text', message)
toastr.success(TAPi18n.__('Copied'))
validation: (message) ->
room = RocketChat.models.Rooms.findOne({ _id: message.rid })

if Array.isArray(room.usernames) && room.usernames.indexOf(Meteor.user().username) is -1
return false

return true
order: 4

Expand All @@ -199,16 +206,19 @@ Meteor.startup ->
action: (event, instance) ->
message = @_arguments[1]
input = instance.find('.input-message')
url = Meteor.absoluteUrl().replace(/\/$/, '') + document.location.pathname + '?msg=' + message._id
url = RocketChat.MessageAction.getPermaLink(message._id)
text = '[ ](' + url + ') '
input.value = text
if input.value
input.value += if input.value.endsWith(' ') then '' else ' '
input.value += text
input.focus()
$(input).keyup()
RocketChat.MessageAction.hideDropDown()
validation: (message) ->
room = RocketChat.models.Rooms.findOne({ _id: message.rid })

if Array.isArray(room.usernames) && room.usernames.indexOf(Meteor.user().username) is -1
return false

return true
order: 5
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Meteor.startup ->
]
action: (event, instance) ->
message = @_arguments[1]
$('.message-dropdown:visible').hide()
RocketChat.MessageAction.hideDropDown()
RoomHistoryManager.getSurroundingMessages(message, 50)

validation: (message) ->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Template.mentionsFlexTab.events
e.stopPropagation()
e.preventDefault()
message_id = $(e.currentTarget).closest('.message').attr('id')
$('.message-dropdown:visible').hide()
RocketChat.MessageAction.hideDropDown()
t.$("\##{message_id} .message-dropdown").remove()
message = MentionedMessage.findOne message_id
actions = RocketChat.MessageAction.getButtons message, 'mentions'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
{{/if}}
<a href="{{fixCordova author_link}}" target="_blank">{{author_name}}</a>
{{#if ts}}
<span class="time">{{time}}</span>
<span class="time">{{#if message_link}}<a href="{{message_link}}">{{time}}</a>{{else}}{{time}}{{/if}}</span>
{{/if}}
</div>
{{else}}
Expand All @@ -23,7 +23,7 @@
{{/if}}
{{author_name}}
{{#if ts}}
<span class="time">{{time}}</span>
<span class="time">{{#if message_link}}<a href="{{message_link}}">{{time}}</a>{{else}}{{time}}{{/if}}</span>
{{/if}}
</div>
{{/if}}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,12 @@
font-weight: normal;
font-size: .8em;
color: #aaa;
a{
&:hover{
text-decoration: underline;
}
color: #aaa;
}
}
}

Expand Down
7 changes: 3 additions & 4 deletions packages/rocketchat-message-pin/client/actionButton.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ Meteor.startup ->
]
action: (event, instance) ->
message = @_arguments[1]
$('.message-dropdown:visible').hide()
RocketChat.MessageAction.hideDropDown()
RoomHistoryManager.getSurroundingMessages(message, 50)
validation: (message) ->
room = RocketChat.models.Rooms.findOne({ _id: message.rid })
Expand All @@ -81,9 +81,8 @@ Meteor.startup ->
]
action: (event, instance) ->
message = @_arguments[1]
msg = $(event.currentTarget).closest('.message')[0]
$("\##{msg.id} .message-dropdown").hide()
$(event.currentTarget).attr('data-clipboard-text', document.location.origin + document.location.pathname + '?msg=' + msg.id);
RocketChat.MessageAction.hideDropDown()
$(event.currentTarget).attr('data-clipboard-text', RocketChat.MessageAction.getPermaLink(message._id));
toastr.success(TAPi18n.__('Copied'))
validation: (message) ->
room = RocketChat.models.Rooms.findOne({ _id: message.rid })
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Template.pinnedMessages.events
e.stopPropagation()
e.preventDefault()
message_id = $(e.currentTarget).closest('.message').attr('id')
$('.message-dropdown:visible').hide()
RocketChat.MessageAction.hideDropDown()
t.$("\##{message_id} .message-dropdown").remove()
message = PinnedMessage.findOne message_id
actions = RocketChat.MessageAction.getButtons message, 'pinned'
Expand Down
2 changes: 1 addition & 1 deletion packages/rocketchat-message-pin/server/pinMessage.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Meteor.methods
"text" : message.msg
"author_name" : message.u.username,
"author_icon" : getAvatarUrlFromUsername(message.u.username),
"ts" : new Date()
"ts" : message.ts
]

unpinMessage: (message) ->
Expand Down
7 changes: 3 additions & 4 deletions packages/rocketchat-message-star/client/actionButton.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Meteor.startup ->
]
action: (event, instance) ->
message = @_arguments[1]
$('.message-dropdown:visible').hide()
RocketChat.MessageAction.hideDropDown()
RoomHistoryManager.getSurroundingMessages(message, 50)
validation: (message) ->
room = RocketChat.models.Rooms.findOne({ _id: message.rid })
Expand All @@ -77,9 +77,8 @@ Meteor.startup ->
]
action: (event, instance) ->
message = @_arguments[1]
msg = $(event.currentTarget).closest('.message')[0]
$("\##{msg.id} .message-dropdown").hide()
$(event.currentTarget).attr('data-clipboard-text', document.location.origin + document.location.pathname + '?msg=' + msg.id);
RocketChat.MessageAction.hideDropDown()
$(event.currentTarget).attr('data-clipboard-text', RocketChat.MessageAction.getPermaLink(message._id));
toastr.success(TAPi18n.__('Copied'))
validation: (message) ->
room = RocketChat.models.Rooms.findOne({ _id: message.rid })
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Template.starredMessages.events
e.stopPropagation()
e.preventDefault()
message_id = $(e.currentTarget).closest('.message').attr('id')
$('.message-dropdown:visible').hide()
RocketChat.MessageAction.hideDropDown()
t.$("\##{message_id} .message-dropdown").remove()
message = StarredMessage.findOne message_id
actions = RocketChat.MessageAction.getButtons message, 'starred'
Expand Down
3 changes: 2 additions & 1 deletion packages/rocketchat-oembed/server/jumpToMessage.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ RocketChat.callbacks.add('beforeSaveMessage', (msg) => {
'text' : jumpToMessage.msg,
'author_name' : jumpToMessage.u.username,
'author_icon' : getAvatarUrlFromUsername(jumpToMessage.u.username),
'ts': new Date()
'message_link' : item.url,
'ts': jumpToMessage.ts
});
item.ignoreParse = true;
}
Expand Down
6 changes: 6 additions & 0 deletions packages/rocketchat-theme/assets/stylesheets/base.less
Original file line number Diff line number Diff line change
Expand Up @@ -3160,6 +3160,12 @@ body:not(.is-cordova) {
font-size: 12px;
font-weight: 300;
}
.role-tag {
background-color: #ccc;
padding: 1px 4px;
border-radius: 2px;
color: white;
}
}
.stats {
li {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Meteor.startup ->
]
action: (event, instance) ->
message = @_arguments[1]
$('.message-dropdown:visible').hide()
RocketChat.MessageAction.hideDropDown()
RoomHistoryManager.getSurroundingMessages(message, 50)
order: 100

Expand Down Expand Up @@ -56,7 +56,7 @@ Template.messageSearch.events
e.stopPropagation()
e.preventDefault()
message_id = $(e.currentTarget).closest('.message').attr('id')
$('.message-dropdown:visible').hide()
RocketChat.MessageAction.hideDropDown()
t.$("\##{message_id} .message-dropdown").remove()
message = _.findWhere(t.searchResult.get()?.messages, { _id: message_id })
actions = RocketChat.MessageAction.getButtons message, 'search'
Expand Down
6 changes: 5 additions & 1 deletion packages/rocketchat-ui-flextab/flex-tab/tabs/userInfo.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,11 @@ Template.userInfo.helpers
instance.loadedUsername.set username
}

roleTags: ->
uid = Template.instance().user.get()?._id
roles = _.union(UserRoles.findOne(uid)?.roles, RoomRoles.findOne({'u._id': uid, rid: Session.get('openedRoom') })?.roles)
return RocketChat.models.Roles.find({ _id: { $in: roles }, description: { $exists: 1 } }, { fields: { description: 1 } })

Template.userInfo.events
'click .thumb': (e) ->
$(e.currentTarget).toggleClass('bigger')
Expand Down Expand Up @@ -380,4 +385,3 @@ Template.userInfo.onCreated ->
user = Meteor.users.findOne(filter)

@user.set user

5 changes: 5 additions & 0 deletions packages/rocketchat-ui-flextab/flex-tab/tabs/userInfo.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@
<div class="info">
<h3 title="{{username}}"><i class="status-{{status}}"></i> {{username}}</h3>
<p>{{name}}</p>
<p>
{{#each roleTags}}
<span class="role-tag" data-role="{{description}}">{{description}}</span>
{{/each}}
</p>
{{#if utc}}<p><i class="icon-clock"></i>{{userTime}} (UTC {{utc}})</p>{{/if}}
{{#if hasPermission 'view-full-other-user-info'}}
{{#if hasEmails}}
Expand Down
3 changes: 1 addition & 2 deletions packages/rocketchat-ui-message/message/message.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Template.message.helpers
unless RocketChat.settings.get('UI_DisplayRoles')
return []
roles = _.union(UserRoles.findOne(this.u?._id)?.roles, RoomRoles.findOne({'u._id': this.u?._id, rid: this.rid })?.roles)
return _.compact(_.map(roles, (role) -> return RocketChat.models.Roles.findOne({ _id: role, description: { $exists: 1 } })?.description));
return RocketChat.models.Roles.find({ _id: { $in: roles }, description: { $exists: 1, $ne: '' } }, { fields: { description: 1 } })
isGroupable: ->
return 'false' if this.groupable is false
isSequential: ->
Expand Down Expand Up @@ -175,7 +175,6 @@ Template.message.onViewRendered = (context) ->
previousNode = currentNode.previousElementSibling
nextNode = currentNode.nextElementSibling
$currentNode = $(currentNode)
$previousNode = $(previousNode)
$nextNode = $(nextNode)

unless previousNode?
Expand Down
2 changes: 1 addition & 1 deletion packages/rocketchat-ui-message/message/message.html
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
{{/if}}
<span class="info">
{{#each roleTags}}
<span class="role-tag" data-role="{{.}}">{{.}}</span>
<span class="role-tag" data-role="{{description}}">{{description}}</span>
{{/each}}
{{#if isBot}}
<span class="is-bot">BOT</span>
Expand Down
4 changes: 2 additions & 2 deletions packages/rocketchat-ui/views/app/room.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ Template.room.events

'click .message-cog': (e) ->
message = @_arguments[1]
$('.message-dropdown:visible').hide()
RocketChat.MessageAction.hideDropDown()

dropDown = $(".messages-box \##{message._id} .message-dropdown")

Expand All @@ -318,7 +318,7 @@ Template.room.events
button.action.call @, e, t

'click .message-dropdown-close': ->
$('.message-dropdown:visible').hide()
RocketChat.MessageAction.hideDropDown()

"click .mention-link": (e, instance) ->
channel = $(e.currentTarget).data('channel')
Expand Down
Loading

0 comments on commit 0dbfa4d

Please sign in to comment.