2013-05-12 15:47:18 +00:00
|
|
|
_ = require 'underscore'
|
|
|
|
|
|
2013-05-11 23:05:13 +00:00
|
|
|
module.exports.app = (appExports, model) ->
|
2013-05-12 15:47:18 +00:00
|
|
|
browser = require './browser'
|
|
|
|
|
helpers = require './helpers'
|
|
|
|
|
|
2013-05-11 23:05:13 +00:00
|
|
|
user = model.at '_user'
|
|
|
|
|
|
|
|
|
|
appExports.challengeCreate = ->
|
2013-05-12 16:22:07 +00:00
|
|
|
id = model.id()
|
2013-05-11 23:05:13 +00:00
|
|
|
model.set '_challenge.new',
|
|
|
|
|
name: ''
|
|
|
|
|
habits: []
|
2013-05-12 16:22:07 +00:00
|
|
|
dailys: []
|
2013-05-11 23:05:13 +00:00
|
|
|
todos: []
|
|
|
|
|
rewards: []
|
2013-05-12 12:57:17 +00:00
|
|
|
assignTo: 'Party'
|
2013-05-12 16:22:07 +00:00
|
|
|
id: id
|
2013-05-12 15:47:18 +00:00
|
|
|
uuid: user.get('id')
|
|
|
|
|
user: helpers.username(model.get('_user.auth'), model.get('_user.profile.name'))
|
|
|
|
|
timestamp: +new Date
|
2013-05-12 16:22:07 +00:00
|
|
|
|
|
|
|
|
model.set '_challenge.creating', true
|
|
|
|
|
|
|
|
|
|
appExports.challengeSave = ->
|
|
|
|
|
model.unshift '_party.challenges', model.get('_challenge.new'), -> challengeDiscard()
|
2013-05-12 15:47:18 +00:00
|
|
|
browser.growlNotification('Challenge Created','success')
|
2013-05-11 23:05:13 +00:00
|
|
|
|
2013-05-12 15:47:18 +00:00
|
|
|
appExports.challengeDiscard = challengeDiscard = ->
|
2013-05-11 23:05:13 +00:00
|
|
|
model.set '_challenge.new', {}
|
2013-05-12 16:22:07 +00:00
|
|
|
model.set '_challenge.creating', false
|
|
|
|
|
|
|
|
|
|
appExports.challengeSubscribe = (e) ->
|
|
|
|
|
userChallenges = user.get('challenges')
|
|
|
|
|
chal = e.get()
|
|
|
|
|
user.unshift('challenges', chal.id) unless userChallenges and (userChallenges.indexOf(chal.id) != -1)
|
|
|
|
|
_.each ['habit', 'daily', 'todo', 'reward'], (type) ->
|
|
|
|
|
_.each chal["#{type}s"], (task) -> model.push("_#{type}List", task)
|
|
|
|
|
|
|
|
|
|
appExports.challengeUnsubscribe = (e) ->
|
|
|
|
|
i = user.get('challenges')?.indexOf e.get('id')
|
|
|
|
|
user.remove("challenges.#{i}") if i? and i != -1
|