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-admin/admin/users/adminUsers.coffee

112 lines
2.8 KiB

Template.adminUsers.helpers
isReady: ->
return Template.instance().ready?.get()
users: ->
return Template.instance().users()
isLoading: ->
return 'btn-loading' unless Template.instance().ready?.get()
hasMore: ->
return Template.instance().limit?.get() is Template.instance().users?().length
flexTemplate: ->
return RocketChat.TabBar.getTemplate()
flexData: ->
return RocketChat.TabBar.getData()
emailAddress: ->
return _.map(@emails, (e) -> e.address).join(', ')
Template.adminUsers.onCreated ->
instance = @
@limit = new ReactiveVar 50
@filter = new ReactiveVar ''
@ready = new ReactiveVar true
RocketChat.TabBar.addButton({
groups: ['adminusers', 'adminusers-selected'],
id: 'invite-user',
i18nTitle: 'Invite_Users',
icon: 'icon-paper-plane',
template: 'adminInviteUser',
order: 1
})
RocketChat.TabBar.addButton({
groups: ['adminusers', 'adminusers-selected'],
id: 'add-user',
i18nTitle: 'Add_User',
icon: 'icon-plus',
template: 'adminUserEdit',
openClick: (e, t) ->
RocketChat.TabBar.setData()
return true
order: 2
})
RocketChat.TabBar.addButton({
groups: ['adminusers-selected']
id: 'admin-user-info',
i18nTitle: 'User_Info',
icon: 'icon-user',
template: 'adminUserInfo',
order: 3
})
@autorun ->
filter = instance.filter.get()
limit = instance.limit.get()
subscription = instance.subscribe 'fullUserData', filter, limit
instance.ready.set subscription.ready()
@users = ->
filter = _.trim instance.filter?.get()
if filter
filterReg = new RegExp s.escapeRegExp(filter), "i"
query = { $or: [ { username: filterReg }, { name: filterReg }, { "emails.address": filterReg } ] }
else
query = {}
query.type =
$in: ['user', 'bot']
return Meteor.users.find(query, { limit: instance.limit?.get(), sort: { username: 1, name: 1 } }).fetch()
Template.adminUsers.onRendered ->
Tracker.afterFlush ->
SideNav.setFlex "adminFlex"
SideNav.openFlex()
Template.adminUsers.events
'keydown #users-filter': (e) ->
if e.which is 13
e.stopPropagation()
e.preventDefault()
'keyup #users-filter': (e, t) ->
e.stopPropagation()
e.preventDefault()
t.filter.set e.currentTarget.value
'click .flex-tab .more': ->
if RocketChat.TabBar.isFlexOpen()
RocketChat.TabBar.closeFlex()
else
RocketChat.TabBar.openFlex()
'click .user-info': (e) ->
e.preventDefault()
RocketChat.TabBar.setTemplate 'adminUserInfo'
RocketChat.TabBar.setData Meteor.users.findOne @_id
RocketChat.TabBar.openFlex()
RocketChat.TabBar.showGroup 'adminusers-selected'
'click .info-tabs button': (e) ->
e.preventDefault()
$('.info-tabs button').removeClass 'active'
$(e.currentTarget).addClass 'active'
$('.user-info-content').hide()
$($(e.currentTarget).attr('href')).show()
'click .load-more': (e, t) ->
e.preventDefault()
e.stopPropagation()
t.limit.set t.limit.get() + 50