diff --git a/src/app/helpers.coffee b/src/app/helpers.coffee index 0ffc3ba099..6e6911e1be 100644 --- a/src/app/helpers.coffee +++ b/src/app/helpers.coffee @@ -24,7 +24,7 @@ removeWhitespace = (str) -> return '' unless str str.replace /\s/g, '' -username = module.exports.username = (auth, override) -> +username = (auth, override) -> #some people define custom profile name in Avatar -> Profile return override if override? @@ -158,4 +158,8 @@ viewHelpers = (view) -> view.fn 'friendlyTimestamp', (timestamp) -> moment(timestamp).format('MM/DD h:mm:ss a') + view.fn 'newChatMessages', (messages, lastMessageSeen) -> + return false unless messages?.length > 0 + messages && messages[0].id != lastMessageSeen + module.exports = { viewHelpers, removeWhitespace, randomVal, daysBetween, dayMapping, username } diff --git a/src/app/index.coffee b/src/app/index.coffee index 40569b46c9..78c74c4d30 100644 --- a/src/app/index.coffee +++ b/src/app/index.coffee @@ -93,7 +93,7 @@ ready (model) -> require('./character').app(exports, model) require('./tasks').app(exports, model) require('./items').app(exports, model) - require('./party').app(exports, model) + require('./party').app(exports, model, app) require('./profile').app(exports, model) require('./pets').app(exports, model) require('../server/private').app(exports, model) diff --git a/src/app/party.coffee b/src/app/party.coffee index 4c1dfc2d48..ee010aaf60 100644 --- a/src/app/party.coffee +++ b/src/app/party.coffee @@ -69,7 +69,7 @@ module.exports.partySubscribe = partySubscribe = (page, model, params, next, cb) membersQ = model.query('users').party(members) return finished [partyQ, membersQ, selfQ], ['_party', '_partyMembers', '_user'] -module.exports.app = (appExports, model) -> +module.exports.app = (appExports, model, app) -> character = require './character' browser = require './browser' helpers = require './helpers' @@ -154,14 +154,27 @@ module.exports.app = (appExports, model) -> # model.ref '_user', u # browser.resetDom model + ### + Chat Functionality + ### + appExports.partySendChat = -> chat = model.at '_party.chat' chat.unshift + id: model.id() text: model.get('_chatMessage') user: helpers.username(model.get('_user.auth'), model.get('_user.profile.name')) timestamp: +new Date + , -> model.set('_chatMessage', '') + model.set '_user.party.lastMessageSeen', chat.get()[0].id + chat.remove 200 # keep a max messages cap - # keep a max messages cap - chat.remove 200 + app.on 'render', (ctx) -> + $('#party-tab-link').on 'shown', (e) -> + messages = model.get('_party.chat') + return false unless messages?.length > 0 + model.set '_user.party.lastMessageSeen', messages[0].id - model.set '_chatMessage', '' + appExports.gotoPartyChat = -> + model.set '_gamePane', true, -> + $('#party-tab-link').tab('show') diff --git a/views/app/game-pane.html b/views/app/game-pane.html index e06930ea1e..2bc1dca658 100644 --- a/views/app/game-pane.html +++ b/views/app/game-pane.html @@ -8,7 +8,7 @@