rename everything "friends" to "party", since we may use friends for

following/followers feature
This commit is contained in:
Tyler Renelle
2013-02-04 14:10:20 -05:00
parent 5e7187dbcd
commit 57a7edc5d3
5 changed files with 40 additions and 39 deletions
+3 -3
View File
@@ -112,16 +112,16 @@ module.exports.setupGrowlNotifications = (model) ->
user.on 'set', 'flags.partyEnabled', (captures, args) ->
return unless captures == true
message = "Congratulations, you have unlocked the Party System! You can now group with your friends by adding their User Ids."
$('#add-friend-button').popover
$('#add-party-button').popover
title: "Pary System Unlocked"
placement: 'bottom'
trigger: 'manual'
html: true
content: "<div class='party-system-popover'>
<img src='/img/BrowserQuest/favicon.png' />
#{message} <a href='#' onClick=\"$('#add-friend-button').popover('hide');return false;\">[Close]</a>
#{message} <a href='#' onClick=\"$('#add-party-button').popover('hide');return false;\">[Close]</a>
</div>"
$('#add-friend-button').popover 'show'
$('#add-party-button').popover 'show'
# Setup listeners which trigger notifications
+19 -18
View File
@@ -24,9 +24,9 @@ setupModelFns = (model) ->
# also update in scoring.coffee. TODO create a function accessible in both locations
(lvl*100)/5
# model.fn '_user._friends', '_user.friends', (friendIds) ->
# model.fetch model.query('users').friends(friendIds), (err, friends) ->
# model.set '_view.friends', friends
# model.fn '_party', '_user.party', (ids) ->
# model.fetch model.query('users').party(ids), (err, party) ->
# model.set '_view.party', party
# ========== ROUTES ==========
@@ -65,9 +65,9 @@ get '/', (page, model, next) ->
setupModelFns(model)
# Subscribe to friends
if !_.isEmpty(user.get('friends'))
model.subscribe model.query('users').friends(user.get('friends')), (err, friends) ->
model.ref '_friends', friends
if !_.isEmpty(user.get('party'))
model.subscribe model.query('users').party(user.get('party')), (err, party) ->
model.ref '_party', party
page.render()
@@ -291,22 +291,23 @@ ready (model) ->
exports.setArmorsetV1 = -> user.set('preferences.armorSet', 'v1')
exports.setArmorsetV2 = -> user.set('preferences.armorSet', 'v2')
exports.addFriend = ->
friendId = model.get('_newFriend').replace(/[\s"]/g, '')
return if _.isEmpty(friendId)
if user.get('friends').indexOf(friendId) != -1
model.set "_view.addFriendError", "#{friendId} already in party."
exports.addParty = ->
id = model.get('_newPartyMember').replace(/[\s"]/g, '')
debugger
return if _.isEmpty(id)
if user.get('party').indexOf(id) != -1
model.set "_view.addPartyError", "#{id} already in party."
return
query = model.query('users').friends([friendId])
query = model.query('users').party([id])
model.fetch query, (err, users) ->
friend = users.at(0).get()
if friend?.id?
user.push('friends', friendId)
$('#add-friend-modal').modal('hide')
partyMember = users.at(0).get()
if partyMember?.id?
user.push('party', id)
$('#add-party-modal').modal('hide')
window.location.reload() #TODO break old subscription, setup new subscript, remove this reload
model.set '_newFriend', ''
model.set '_newPartyMember', ''
else
model.set "_view.addFriendError", "User with id #{friendId} not found."
model.set "_view.addPartyError", "User with id #{id} not found."
exports.emulateNextDay = ->
yesterday = +moment().subtract('days', 1).toDate()
+3 -3
View File
@@ -12,7 +12,7 @@ userSchema =
notifications: { kickstarter: 'show' }
preferences: { gender: 'm', armorSet: 'v1' }
flags: { partyEnabled: false }
friends: []
party: []
tasks: {}
habitIds: []
dailyIds: []
@@ -36,7 +36,7 @@ module.exports.updateUser = (batch) ->
user = batch.user
batch.set('notifications.kickstarter', 'show') unless user.get('notifications.kickstarter')
batch.set('friends', []) unless !_.isEmpty(user.get('friends'))
batch.set('party', []) unless !_.isEmpty(user.get('party'))
# Preferences, including API key
# Some side-stepping to avoid unecessary set (one day, model.update... one day..)
@@ -83,7 +83,7 @@ module.exports.BatchUpdate = BatchUpdate = (model) ->
# Additionally, for some reason after getting the user object, changing properies manually (userObj.stats.hp = 50)
# seems to actually run user.set('stats.hp',50) which we don't want to do - so we deepClone here
#_.each Object.keys(userSchema), (key) -> obj[key] = lodash.cloneDeep user.get(key)
obj = model.get('users.'+user.get('id'), {getRef:false})
obj = model.get('users.'+user.get('id'), true)
###
Handles updating the user model. If this is an en-mass operation (eg, server cron), changes are queued
+2 -2
View File
@@ -32,9 +32,9 @@ module.exports = (store) ->
###
Party permissions
###
store.query.expose "users", "friends", (ids) ->
store.query.expose "users", "party", (ids) ->
@where("id").within(ids)
.only('stats', 'preferences.gender', 'preferences.armorSet', 'items', 'auth.local.username', 'auth.facebook.displayName')
store.queryAccess "users", "friends", (ids, next) ->
store.queryAccess "users", "party", (ids, next) ->
next(true) # no harm in public user stats