mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-08-01 07:21:15 +00:00
rename everything "friends" to "party", since we may use friends for
following/followers feature
This commit is contained in:
parent
5e7187dbcd
commit
57a7edc5d3
5 changed files with 40 additions and 39 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -108,12 +108,12 @@
|
|||
</@footer>
|
||||
</app:myModal>
|
||||
|
||||
<app:myModal modalId="add-friend-modal" header="Add Friend">
|
||||
<form x-bind="submit: addFriend">
|
||||
{#if _view.addFriendError}
|
||||
<div class='alert alert-danger'>{_view.addFriendError}</div>
|
||||
<app:myModal modalId="add-party-modal" header="Add Party Member">
|
||||
<form x-bind="submit: addParty">
|
||||
{#if _view.addPartyError}
|
||||
<div class='alert alert-danger'>{_view.addPartyError}</div>
|
||||
{/}
|
||||
<input type="text" class="input-medium search-query" value="{_newFriend}">
|
||||
<input type="text" class="input-medium search-query" value="{_newPartyMember}">
|
||||
<input type="submit" class="btn" value="Add" />
|
||||
</form>
|
||||
</app:myModal>
|
||||
|
|
@ -158,7 +158,7 @@
|
|||
<div class='container-fluid'>
|
||||
|
||||
<div class='row-fluid'>
|
||||
<div id=character class='{#if _friends}span9{else}span5{/}'>
|
||||
<div id=character class='{#if _party}span9{else}span5{/}'>
|
||||
<table>
|
||||
<tr>
|
||||
|
||||
|
|
@ -172,7 +172,7 @@
|
|||
</td>
|
||||
|
||||
<!-- Progress Bars -->
|
||||
<td id="bars" style="width:{#if _friends}70%{else}90%{/};">
|
||||
<td id="bars" style="width:{#if _party}70%{else}90%{/};">
|
||||
<div class="progress progress-danger" rel=tooltip data-placement=bottom title="Health">
|
||||
<div class="bar" style="width: {percent(_user.stats.hp, 50)}%;"></div>
|
||||
<span class="progress-text"><i class=icon-heart></i> {round(_user.stats.hp)} / 50</span>
|
||||
|
|
@ -191,16 +191,16 @@
|
|||
|
||||
<!-- Party -->
|
||||
{#if _user.flags.partyEnabled}
|
||||
{#each _friends as :friend}
|
||||
<td class="avatar friend-avatar" rel="tooltip" title="{username(:friend.auth)}" data-placement="bottom" >
|
||||
{#each _party as :member}
|
||||
<td class="avatar party-avatar" rel="tooltip" title="{username(:member.auth)}" data-placement="bottom" >
|
||||
<div class='avatar-sprites'>
|
||||
<img class='weapon weapon-{:friend.items.weapon}' src="/img/BrowserQuest/habitrpg_mods/weapon{:friend.items.weapon}.png" />
|
||||
<img class='armor armor-{:friend.items.armor}' src="/img/BrowserQuest/habitrpg_mods/{currentArmor(:friend.preferences.gender, :friend.items.armor, :friend.preferences.armorSet)}" />
|
||||
<img class='weapon weapon-{:member.items.weapon}' src="/img/BrowserQuest/habitrpg_mods/weapon{:member.items.weapon}.png" />
|
||||
<img class='armor armor-{:member.items.armor}' src="/img/BrowserQuest/habitrpg_mods/{currentArmor(:member.preferences.gender, :member.items.armor, :member.preferences.armorSet)}" />
|
||||
</div>
|
||||
<div id="lvl"><span class="badge badge-info">Lvl {:friend.stats.lvl}</span></div>
|
||||
<div id="lvl"><span class="badge badge-info">Lvl {:member.stats.lvl}</span></div>
|
||||
</td>
|
||||
{/}
|
||||
<td><a class="btn" id="add-friend-button" data-target="#add-friend-modal" data-toggle="modal"><i class="icon-user"></i></a></td>
|
||||
<td><a class="btn" id="add-party-button" data-target="#add-party-modal" data-toggle="modal"><i class="icon-user"></i></a></td>
|
||||
{/}
|
||||
|
||||
</tr>
|
||||
|
|
|
|||
Loading…
Reference in a new issue