diff --git a/src/app/browser.coffee b/src/app/browser.coffee index 1e8661eeaa..6e302ddeef 100644 --- a/src/app/browser.coffee +++ b/src/app/browser.coffee @@ -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: "
" - $('#add-friend-button').popover 'show' + $('#add-party-button').popover 'show' # Setup listeners which trigger notifications diff --git a/src/app/index.coffee b/src/app/index.coffee index c1fd192d3a..40d7b4d29c 100644 --- a/src/app/index.coffee +++ b/src/app/index.coffee @@ -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() diff --git a/src/app/schema.coffee b/src/app/schema.coffee index 8e5000a8ba..d8f601cdb1 100644 --- a/src/app/schema.coffee +++ b/src/app/schema.coffee @@ -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 diff --git a/src/server/store.coffee b/src/server/store.coffee index 9bb497854e..d071a2a37e 100644 --- a/src/server/store.coffee +++ b/src/server/store.coffee @@ -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 diff --git a/views/app/index.html b/views/app/index.html index 820f45870c..84d192c4b9 100644 --- a/views/app/index.html +++ b/views/app/index.html @@ -108,12 +108,12 @@ @footer> -