Merge branch 'master' of github.com:lefnire/habitrpg into middleware

This commit is contained in:
Daniel Saewitz 2013-02-19 20:58:47 -05:00
commit 484b043ec8
6 changed files with 23 additions and 25 deletions

View file

@ -23,7 +23,8 @@
"mongoskin": "*", "mongoskin": "*",
"nconf": "*", "nconf": "*",
"icalendar": "git://github.com/lefnire/node-icalendar#master", "icalendar": "git://github.com/lefnire/node-icalendar#master",
"nodetime": "*" "nodetime": "*",
"resolve": "~0.2.3"
}, },
"private": true, "private": true,
"subdomain": "habitrpg", "subdomain": "habitrpg",

View file

@ -45,16 +45,15 @@ loadJavaScripts = (model) ->
require '../../public/vendor/jquery-ui/ui/jquery.ui.core' require '../../public/vendor/jquery-ui/ui/jquery.ui.core'
require '../../public/vendor/jquery-ui/ui/jquery.ui.widget' require '../../public/vendor/jquery-ui/ui/jquery.ui.widget'
require '../../public/vendor/jquery-ui/ui/jquery.ui.mouse' require '../../public/vendor/jquery-ui/ui/jquery.ui.mouse'
require '../../public/vendor/jquery-ui/ui/jquery.ui.draggable'
require '../../public/vendor/jquery-ui/ui/jquery.ui.position'
require '../../public/vendor/jquery-ui/ui/jquery.ui.sortable' require '../../public/vendor/jquery-ui/ui/jquery.ui.sortable'
# Bootstrap # Bootstrap
require '../../public/vendor/bootstrap/js/bootstrap-tooltip' require '../../public/vendor/bootstrap/docs/assets/js/bootstrap'
require '../../public/vendor/bootstrap/js/bootstrap-tab' # require '../../public/vendor/bootstrap/js/bootstrap-tooltip'
require '../../public/vendor/bootstrap/js/bootstrap-popover' # require '../../public/vendor/bootstrap/js/bootstrap-tab'
require '../../public/vendor/bootstrap/js/bootstrap-modal' # require '../../public/vendor/bootstrap/js/bootstrap-popover'
require '../../public/vendor/bootstrap/js/bootstrap-dropdown' # require '../../public/vendor/bootstrap/js/bootstrap-modal'
# require '../../public/vendor/bootstrap/js/bootstrap-dropdown'
require '../../public/vendor/jquery-cookie/jquery.cookie' require '../../public/vendor/jquery-cookie/jquery.cookie'

View file

@ -179,20 +179,14 @@ module.exports.BatchUpdate = BatchUpdate = (model) ->
user: user user: user
obj: -> obj: ->
obj ?= model.get('users.'+user.get('id'), true) obj ?= model.get 'users.'+user.get('id')
return obj return obj
startTransaction: -> startTransaction: ->
# start a batch transaction - nothing between now and @commit() will be set immediately # start a batch transaction - nothing between now and @commit() will be set immediately
transactionInProgress = true transactionInProgress = true
model._dontPersist = true model._dontPersist = true
@obj()
# Really strange, user.get() seems to only return attributes which have previously been accessed. So in
# many cases, userObj.tasks.{taskId}.value is undefined - so we manually .get() each attribute here.
# 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 = @obj()
### ###
Handles updating the user model. If this is an en-mass operation (eg, server cron), changes are queued Handles updating the user model. If this is an en-mass operation (eg, server cron), changes are queued

View file

@ -51,7 +51,6 @@ ready (model) ->
scoring.cron() scoring.cron()
browser.app(exports, model)
character.app(exports, model) character.app(exports, model)
tasks.app(exports, model) tasks.app(exports, model)
items.app(exports, model) items.app(exports, model)
@ -59,4 +58,5 @@ ready (model) ->
profile.app(exports, model) profile.app(exports, model)
require('../server/private').app(exports, model) require('../server/private').app(exports, model)
require('./debug').app(exports, model) if model.get('_view.nodeEnv') != 'production' require('./debug').app(exports, model) if model.get('_view.nodeEnv') != 'production'
browser.app(exports, model)

View file

@ -27,19 +27,23 @@ module.exports.partySubscribe = partySubscribe = (model, cb) ->
# Restart subscription to the main user # Restart subscription to the main user
selfQ = model.query('users').withId(model.get('_userId') or model.session.userId) selfQ = model.query('users').withId(model.get('_userId') or model.session.userId)
selfQ.fetch (err, res) -> selfQ.subscribe (err, self) ->
throw err if err throw err if err
u = res.at(0) u = self.at(0)
uObj = u.get() uObj = u.get()
finished = -> finished = ->
selfQ.subscribe (err, res) -> model.unsubscribe selfQ, ->
model.ref '_user', res.at(0) selfQ.subscribe (err, self) ->
browser.resetDom(model) if window? model.ref '_user', self.at(0)
cb() if cb? browser.resetDom(model) if window?
cb() if cb?
## (1) User is solo, just return that subscription ## (1) User is solo, just return that subscription
return finished() unless uObj.party?.current unless uObj.party?.current
model.ref '_user', u
browser.resetDom(model) if window?
return if cb then cb() else null
# User in a party # User in a party

View file

@ -260,7 +260,7 @@ cron = () ->
batch.setStats() batch.setStats()
batch.set('history', obj.history) batch.set('history', obj.history)
batch.commit() batch.commit()
#browser.resetDom(model) browser.resetDom(model)
setTimeout (-> user.set 'stats.hp', hpAfter), 1000 # animate hp loss setTimeout (-> user.set 'stats.hp', hpAfter), 1000 # animate hp loss