Tweaked achievement notification handling, also disabling an endless loop of achievement fetching.

This commit is contained in:
Scott Erickson 2015-01-09 12:38:00 -08:00
parent 121f07d020
commit c8298679a4
8 changed files with 10 additions and 8 deletions

View file

@ -5,6 +5,7 @@ ModuleLoader = require 'core/ModuleLoader'
locale = require 'locale/locale'
{me} = require 'core/auth'
Tracker = require 'core/Tracker'
CocoModel = require 'models/CocoModel'
marked.setOptions {gfm: true, sanitize: true, smartLists: true, breaks: false}
@ -55,6 +56,7 @@ Application = initialize: ->
@moduleLoader.loadLanguage(me.get('preferredLanguage', true))
$(document).bind 'keydown', preventBackspace
preload(COMMON_FILES)
CocoModel.pollAchievements()
$.i18n.init {
lng: me.get('preferredLanguage', true)
fallbackLng: 'en'

View file

@ -5,3 +5,7 @@ module.exports = class EarnedAchievement extends CocoModel
@className: 'EarnedAchievement'
@schema: require 'schemas/models/earned_achievement'
urlRoot: '/db/earned_achievement'
save: ->
@unset('earnedRewards') if @get('earnedRewards') is null
super(arguments...)

View file

@ -11,10 +11,6 @@ module.exports = class User extends CocoModel
urlRoot: '/db/user'
notyErrors: false
onLoaded: ->
CocoModel.pollAchievements() # Check for achievements on login
super arguments...
isAdmin: -> 'admin' in @get('permissions', true)
isAnonymous: -> @get('anonymous', true)
displayName: -> @get('name', true)

View file

@ -26,7 +26,7 @@ module.exports =
collection: type: 'string'
triggeredBy: c.objectId()
achievementName: type: 'string'
created: type: 'date'
created: type: ['date', 'string', 'number']
changed: type: ['date', 'string', 'number'] # TODO: migrate timestamps and Date objects all to ISO strings
achievedAmount: type: 'number'
earnedPoints: type: 'number'

View file

@ -36,14 +36,14 @@ module.exports = class RootView extends CocoView
'modal:open-modal-view': 'onOpenModalView'
showNewAchievement: (achievement, earnedAchievement) ->
earnedAchievement.set('notified', true)
earnedAchievement.patch()
return if achievement.get('collection') is 'level.sessions'
return if @isIE() # Some bugs in IE right now, TODO fix soon!
new AchievementPopup achievement: achievement, earnedAchievement: earnedAchievement
handleNewAchievements: (e) ->
_.each e.earnedAchievements.models, (earnedAchievement) =>
earnedAchievement.set('notified', true)
earnedAchievement.patch()
achievement = new Achievement(_id: earnedAchievement.get('achievement'))
achievement.fetch
success: (achievement) => @showNewAchievement?(achievement, earnedAchievement)

View file

@ -13,7 +13,7 @@ HIGHEST_SCORE = 1000000
module.exports = class LadderTabView extends CocoView
id: 'ladder-tab-view'
template: require 'templates/play/ladder/ladder_tab'
template: require 'templates/play/ladder/ladder-tab-view'
events:
'click .connect-facebook': 'onConnectFacebook'