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/server/publications/spotlight.coffee

27 lines
1.1 KiB

Meteor.publish 'spotlight', (selector, options, collName) ->
if not this.userId? or not selector?.name?.$regex?
return this.ready()
self = this
subHandleUsers = null
subHandleRooms = null
subHandleUsers = RocketChat.models.Users.findUsersByNameOrUsername(new RegExp(selector.name.$regex, 'i'), { limit: 10, fields: { name: 1, username: 1, status: 1 }, sort: { name: 1 } }).observeChanges
added: (id, fields) ->
data = { type: 'u', uid: id, name: fields.username + ' - ' + fields.name, status: fields.status }
self.added("autocompleteRecords", id, data)
removed: (id) ->
self.removed("autocompleteRecords", id)
subHandleRooms = RocketChat.models.Rooms.findByNameContainingAndTypes(selector.name.$regex, ['c'], { limit: 10, fields: { t: 1, name: 1 }, sort: {name: 1}}).observeChanges
added: (id, fields) ->
data = { type: 'r', rid: id, name: fields.name, t: fields.t }
self.added("autocompleteRecords", id, data)
removed: (id) ->
self.removed("autocompleteRecords", id)
this.ready()
this.onStop ->
subHandleUsers?.stop()
subHandleRooms?.stop()