The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Rocket.Chat/packages/rocketchat-ui-sidenav/side-nav/directMessagesFlex.coffee

72 lines
1.7 KiB

Template.directMessagesFlex.helpers
error: ->
return Template.instance().error.get()
autocompleteSettings: ->
return {
limit: 10
# inputDelay: 300
rules: [
{
# @TODO maybe change this 'collection' and/or template
collection: 'UserAndRoom'
subscription: 'roomSearch'
field: 'username'
template: Template.userSearch
noMatchTemplate: Template.userSearchEmpty
matchAll: true
filter:
type: 'u'
_id: { $ne: Meteor.userId() }
active: { $eq: true }
sort: 'username'
}
]
}
Template.directMessagesFlex.events
'autocompleteselect #who': (event, instance, doc) ->
instance.selectedUser.set doc.username
event.currentTarget.focus()
'click .cancel-direct-message': (e, instance) ->
SideNav.closeFlex()
instance.clearForm()
'click header': (e, instance) ->
SideNav.closeFlex()
instance.clearForm()
'mouseenter header': ->
SideNav.overArrow()
'mouseleave header': ->
SideNav.leaveArrow()
'keydown input[type="text"]': (e, instance) ->
Template.instance().error.set([])
'click .save-direct-message': (e, instance) ->
err = SideNav.validate()
if not err
username = instance.selectedUser.get()
return unless username?
Meteor.call 'createDirectMessage', username, (err, result) ->
if err
return toastr.error err.reason
SideNav.closeFlex()
instance.clearForm()
FlowRouter.go 'direct', { username: username }
else
Template.instance().error.set(err)
Template.directMessagesFlex.onCreated ->
instance = this
instance.selectedUser = new ReactiveVar
instance.error = new ReactiveVar []
instance.clearForm = ->
instance.error.set([])
instance.selectedUser.set null
instance.find('#who').value = ''