possible fix for #324 - shuffle some function placement to be sure

definition precedes function call. put re-rendering
functionality (setupSortable, setupTour, etc) into app.on('render')
This commit is contained in:
Tyler Renelle 2013-03-04 11:17:17 -05:00
parent 233f8ea595
commit bd19e09fcf
2 changed files with 24 additions and 24 deletions

View file

@ -3,7 +3,7 @@ moment = require 'moment'
#algos = require './algos'
module.exports.restoreRefs = restoreRefs = (model) ->
restoreRefs = module.exports.restoreRefs = (model) ->
# tnl function
model.fn '_tnl', '_user.stats.lvl', (lvl) ->
# see https://github.com/lefnire/habitrpg/issues/4
@ -15,27 +15,6 @@ module.exports.restoreRefs = restoreRefs = (model) ->
_.each ['habit', 'daily', 'todo', 'reward'], (type) ->
model.refList "_#{type}List", "_user.tasks", "_user.#{type}Ids"
module.exports.resetDom = (model) ->
window.DERBY.app.dom.clear()
restoreRefs(model)
window.DERBY.app.view.render(model)
reconstructPage model
module.exports.app = (appExports, model) ->
reconstructPage model
setupGrowlNotifications(model) unless model.get('_view.mobileDevice')
reconstructPage = (model) ->
loadJavaScripts(model)
setupSortable(model)
setupTooltips(model)
setupTour(model)
$('.datepicker').datepicker({autoclose:true, todayBtn:true})
.on 'changeDate', (ev) ->
#for some reason selecting a date doesn't fire a change event on the field, meaning our changes aren't saved
#FIXME also, it saves as a day behind??
model.at(ev.target).set 'date', moment(ev.date).add('d',1).format('MM/DD/YYYY')
###
Loads JavaScript files from (1) public/js/* and (2) external sources
We use this file (instead of <Scripts:> or <Tail:> inside .html) so we can utilize require() to concatinate for
@ -218,3 +197,23 @@ setupGrowlNotifications = (model) ->
statsNotification '<i class="icon-death"></i> You died!', 'death'
else
statsNotification '<i class="icon-chevron-up"></i> Level Up!', 'lvl'
module.exports.resetDom = (model) ->
window.DERBY.app.dom.clear()
window.DERBY.app.view.render(model)
module.exports.app = (appExports, model, app) ->
loadJavaScripts(model)
app.on 'render', (ctx) ->
#restoreRefs(model)
setupSortable(model)
setupTooltips(model)
setupGrowlNotifications(model) unless model.get('_view.mobileDevice')
setupTour(model)
$('.datepicker').datepicker({autoclose:true, todayBtn:true})
.on 'changeDate', (ev) ->
#for some reason selecting a date doesn't fire a change event on the field, meaning our changes aren't saved
#FIXME also, it saves as a day behind??
model.at(ev.target).set 'date', moment(ev.date).add('d',1).format('MM/DD/YYYY')

View file

@ -1,5 +1,6 @@
derby = require 'derby'
{get, view, ready} = derby.createApp module
app = derby.createApp module
{get, view, ready} = app
derby.use require('derby-ui-boot'), {styles: ['bootstrap', 'responsive']}
derby.use require '../../ui'
derby.use require 'derby-auth/components'
@ -59,5 +60,5 @@ ready (model) ->
profile.app(exports, model)
require('../server/private').app(exports, model)
require('./debug').app(exports, model) if model.get('_view.nodeEnv') != 'production'
browser.app(exports, model)
browser.app(exports, model, app)