Fix users status

pull/140/head
Rodrigo Nascimento 11 years ago
parent 1e6631192e
commit 45c2884d8e
  1. 12
      client/lib/UserManager.coffee
  2. 8
      client/startup/startup.coffee
  3. 4
      client/views/app/chatMessageDashboard.coffee
  4. 24
      client/views/app/chatWindowDashboard.coffee
  5. 9
      client/views/app/sideNav/chatRoomItem.coffee
  6. 9
      client/views/app/sideNav/userStatus.coffee
  7. 5
      client/views/app/userImageProfile.coffee
  8. 6
      client/views/app/userImageProfile.html
  9. 11
      server/publications.coffee

@ -3,12 +3,12 @@
dep = new Tracker.Dependency
addUser = (userIds) ->
# console.log 'addUser', userIds if window.rocketUserDebug
userIds = [].concat userIds
for userId in userIds
unless users[userId]
users[userId] = 1
addUser = (usernames) ->
# console.log 'addUser', usernames if window.rocketUserDebug
usernames = [].concat usernames
for username in usernames
unless users[username]
users[username] = 1
dep.changed()
subscribeFn = ->

@ -26,17 +26,17 @@ Meteor.startup ->
TAPi18n.setLanguage(userLanguage)
moment.locale(userLanguage)
Meteor.users.find({}, { fields: { name: 1, pictures: 1, status: 1, emails: 1, phone: 1, services: 1 } }).observe
Meteor.users.find({}, { fields: { name: 1, username: 1, pictures: 1, status: 1, emails: 1, phone: 1, services: 1 } }).observe
added: (user) ->
Session.set('user_' + user._id + '_status', user.status)
Session.set('user_' + user.username + '_status', user.status)
UserAndRoom.insert({ type: 'u', uid: user._id, name: user.name})
changed: (user) ->
Session.set('user_' + user._id + '_status', user.status)
Session.set('user_' + user.username + '_status', user.status)
UserAndRoom.update({ uid: user._id }, { $set: { name: user.name } })
removed: (user) ->
Session.set('user_' + user._id + '_status', null)
Session.set('user_' + user.username + '_status', null)
UserAndRoom.remove({ uid: user._id })

@ -29,8 +29,8 @@ Template.chatMessageDashboard.helpers
message: ->
if this.by
UserManager.addUser(this.by)
else if this.uid
UserManager.addUser(this.uid)
else if this.u?.username
UserManager.addUser this.u.username
switch this.t
when 'p' then "<i class='icon-link-ext'></i><a href=\"#{this.url}\" target=\"_blank\">#{this.msg}</a>"
when 'r' then t('chatMessageDashboard.Room_name_changed', { room_name: this.msg, user_by: Session.get('user_' + this.by + '_name') }) + '.'

@ -243,23 +243,23 @@ Template.chatWindowDashboard.helpers
_id: this._id
total: room?.usernames.length
totalOnline: 0
users: []
users: room.usernames
if room?.usernames
# UserManager.addUser room.uids
# if room?.usernames
# # UserManager.addUser room.uids
filter =
username:
$in: room.usernames
# filter =
# username:
# $in: room.usernames
# unless Template.instance().showUsersOffline.get()
# filter.status = { $ne: 'offline' }
# # unless Template.instance().showUsersOffline.get()
# # filter.status = { $ne: 'offline' }
filter.$and = [{ status: {$exists: true} }, { status: {$ne: 'offline'} }]
# filter.$and = [{ status: {$exists: true} }, { status: {$ne: 'offline'} }]
users = Meteor.users.find(filter, { sort: { name: 1 } } ).fetch()
ret.totalOnline = users.length
ret.users = users
# users = Meteor.users.find(filter, { sort: { name: 1 } } ).fetch()
# ret.totalOnline = users.length
# ret.users = users
return ret

@ -11,8 +11,9 @@ Template.chatRoomItem.helpers
userStatus: ->
switch this.t
when 'd'
uid = this.rid.replace Meteor.userId(), ''
return 'status-' + Session.get('user_' + uid + '_status')
username = this.rid.replace Meteor.user().username, ''
UserManager.addUser username
return 'status-' + Session.get('user_' + username + '_status')
else return ''
name: ->
@ -39,8 +40,8 @@ Template.chatRoomItem.helpers
Template.chatRoomItem.rendered = ->
if @data.t is 'd'
uid = @data.rid.replace Meteor.userId(), ''
UserManager.addUser uid
username = @data.rid.replace Meteor.user().username, ''
UserManager.addUser username
if not (Router.current().params._id? and Router.current().params._id is this.data.rid) and (not this.data.ls? or moment(this.data.ls).add(1, 'days').startOf('day') < moment(this.data.ts).startOf('day'))
KonchatNotification.newRoom(this.data.rid)

@ -1,7 +1,8 @@
Template.userStatus.helpers
myUserInfo: ->
visualStatus = "online"
switch Session.get('user_' + Meteor.userId() + '_status')
username = Meteor.user().username
switch Session.get('user_' + username + '_status')
when "away"
visualStatus = t("userStatus.away")
when "busy"
@ -9,11 +10,11 @@ Template.userStatus.helpers
when "offline"
visualStatus = t("userStatus.invisible")
return {
name: Session.get('user_' + Meteor.userId() + '_name')
status: Session.get('user_' + Meteor.userId() + '_status')
name: Session.get('user_' + username + '_name')
status: Session.get('user_' + username + '_status')
visualStatus: visualStatus
_id: Meteor.userId()
username: Meteor.user().username
username: username
}
Template.userStatus.events

@ -1,6 +1,3 @@
Template.userImageProfile.helpers
userName: ->
return Session.get('user_' + this._id + '_name')
userStatus: ->
return 'status-' + Session.get('user_' + this._id + '_status')
return 'status-' + Session.get('user_' + this + '_status')

@ -1,8 +1,8 @@
<template name="userImageProfile">
<li class='user-image user-card-room {{userStatus}}'>
<a data-userid="{{this._id}}" tabindex="0" title="{{userName}}">
{{> avatar userId=_id}}
<p>{{userName}}</p>
<a data-username="{{.}}" tabindex="0" title="{{.}}">
{{> avatar username=.}}
<p>{{.}}</p>
</a>
</li>
</template>

@ -71,7 +71,7 @@ Meteor.publish 'allUsers', ->
status: 1
}}
Meteor.publish 'selectiveUsers', (userIds) ->
Meteor.publish 'selectiveUsers', (usernames) ->
unless @userId
return @ready()
@ -79,7 +79,8 @@ Meteor.publish 'selectiveUsers', (userIds) ->
self = @
query = {}
query =
username: $exists: true
options =
fields:
@ -91,13 +92,13 @@ Meteor.publish 'selectiveUsers', (userIds) ->
observer = cursor.observeChanges
added: (id, record) ->
if userIds[id]?
if usernames[record.username]?
self.added 'users', id, record
changed: (id, record) ->
if userIds[id]?
if usernames[record.username]?
self.changed 'users', id, record
removed: (id) ->
if userIds[id]?
if usernames[record.username]?
self.removed 'users', id
@ready()

Loading…
Cancel
Save