try model.fetches for party members for now, with browser refreshes.

This commit is contained in:
Tyler Renelle
2013-02-19 16:49:38 -05:00
parent 14fb52c11e
commit fc49e57201
+32 -34
View File
@@ -41,14 +41,12 @@ module.exports.partySubscribe = partySubscribe = (model, cb) ->
## (1) User is solo, just return that subscription
unless uObj.party?.current
model.ref '_user', u
browser.resetDom(model) if window?
return if cb then cb() else null
return finished()
# User in a party
partiesQ = model.query('parties').withId(uObj.party.current)
partiesQ.subscribe (err, res) ->
partiesQ.fetch (err, res) ->
throw err if err
p = res.at(0)
model.ref '_party', p
@@ -68,7 +66,7 @@ module.exports.partySubscribe = partySubscribe = (model, cb) ->
else
## (3) Party has members, subscribe to those users too
membersQ = model.query('users').party(ids)
membersQ.subscribe (err, members) ->
membersQ.fetch (err, members) ->
throw err if err
model.ref '_partyMembers', members
finished()
@@ -99,8 +97,9 @@ module.exports.app = (appExports, model) ->
appExports.partyCreate = ->
newParty = model.get("_newParty")
id = model.add 'parties', { name: newParty, leader: user.get('id'), members: [user.get('id')], invites:[] }
user.set 'party', {current: id, invitation: null, leader: true}
partySubscribe model, -> $('#party-modal').modal('show')
user.set 'party', {current: id, invitation: null, leader: true}, ->
setTimeout (-> window.location.reload true), 10
# partySubscribe model, -> $('#party-modal').modal('show')
appExports.partyInvite = ->
id = model.get('_newPartyMember').replace(/[\s"]/g, '')
@@ -123,18 +122,22 @@ module.exports.app = (appExports, model) ->
model.set "users.#{id}.party.invitation", p.get('id')
$.bootstrapGrowl "Invitation Sent."
$('#party-modal').modal('hide')
model.set '_newPartyMember', ''
partySubscribe model
model.set '_newPartyMember', '', ->
setTimeout (-> window.location.reload true), 10
#partySubscribe model
appExports.partyAccept = ->
user.set 'party.current', user.get('party.invitation')
partyId = user.get('party.invitation')
user.set 'party.invitation', null
setTimeout (-> window.location.reload true), 10
return
# FIXME This should handle not requiring a refresh, but alas.
partySubscribe model, ->
p = model.at('_party')
p.push 'members', user.get('id')
user.set 'party.current', partyId
model.fetch model.query('parties').withId(partyId), (err, p) ->
throw err if err
debugger
p.at(0).at('members').push user.get('id'), ->
setTimeout (-> window.location.reload true), 10
# partySubscribe model, ->
# p = model.at('_party')
# p.push 'members', user.get('id')
appExports.partyReject = ->
user.set 'party.invitation', null
@@ -148,21 +151,16 @@ module.exports.app = (appExports, model) ->
members = p.get('members')
index = members.indexOf(user.get('id'))
members.splice(index,1)
p.set 'members', members
if (members.length == 0)
# last member out, kill the party
model.del "parties.#{id}"
model.set '_party', null
model.set '_partyMembers', null
setTimeout (-> window.location.reload true), 10
return
# FIXME This should handle not requiring a refresh, but alas.
partyUnsubscribe model, ->
selfQ = model.query('users').withId(model.get('_userId') or model.session.userId)
selfQ.subscribe (err, u) ->
model.ref '_user', u.at(0)
browser.resetDom model
#exports.partyDisband = ->
p.set 'members', members, ->
if (members.length == 0)
model.del "parties.#{id}" # last member out, kill the party
setTimeout (-> window.location.reload true), 10
else
setTimeout (-> window.location.reload true), 10
# model.set '_party', null
# model.set '_partyMembers', null
# partyUnsubscribe model, ->
# selfQ = model.query('users').withId(model.get('_userId') or model.session.userId)
# selfQ.subscribe (err, u) ->
# model.ref '_user', u.at(0)
# browser.resetDom model