diff --git a/src/app/character.coffee b/src/app/character.coffee index ad76409346..9bf5fd2195 100644 --- a/src/app/character.coffee +++ b/src/app/character.coffee @@ -8,23 +8,6 @@ _ = require 'underscore' lodash = require 'lodash' derby = require 'derby' -module.exports.username = username = (auth) -> - if auth?.facebook?.displayName? - auth.facebook.displayName - else if auth?.facebook? - fb = auth.facebook - if fb._raw then "#{fb.name.givenName} #{fb.name.familyName}" else fb.name - else if auth?.local? - auth.local.username - else - 'Anonymous' - -module.exports.view = (view) -> - view.fn "username", (auth) -> username(auth) - - view.fn "tnl", algos.tnl - - module.exports.app = (appExports, model) -> user = model.at '_user' diff --git a/src/app/helpers.coffee b/src/app/helpers.coffee index 900edcc610..9852545b48 100644 --- a/src/app/helpers.coffee +++ b/src/app/helpers.coffee @@ -1,5 +1,6 @@ moment = require 'moment' _ = require 'underscore' +algos = require './algos' # Absolute diff between two dates daysBetween = (yesterday, now, dayStart) -> @@ -23,6 +24,17 @@ removeWhitespace = (str) -> return '' unless str str.replace /\s/g, '' +username = (auth) -> + if auth?.facebook?.displayName? + auth.facebook.displayName + else if auth?.facebook? + fb = auth.facebook + if fb._raw then "#{fb.name.givenName} #{fb.name.familyName}" else fb.name + else if auth?.local? + auth.local.username + else + 'Anonymous' + viewHelpers = (view) -> view.fn "percent", (x, y) -> x=1 if x==0 @@ -59,4 +71,74 @@ viewHelpers = (view) -> view.fn "truarr", (num) -> num-1 -module.exports = { viewHelpers, removeWhitespace, randomVal, daysBetween, dayMapping } + ### + User + ### + view.fn "username", (auth) -> username(auth) + view.fn "tnl", algos.tnl + + ### + Items + ### + view.fn 'equipped', (user, type) -> + {gender, armorSet} = user?.preferences || {'m', 'v1'} + + if type=='armor' + armor = user?.items?.armor || 0 + if gender == 'f' + return if (parseInt(armor) == 0) then "f_armor_#{armor}_#{armorSet}" else "f_armor_#{armor}" + else + return "m_armor_#{armor}" + + else if type=='head' + head = user?.items?.head || 0 + if gender == 'f' + return if (parseInt(head) > 1) then "f_head_#{head}_#{armorSet}" else "f_head_#{head}" + else + return "m_head_#{head}" + + view.fn "gold", (num) -> + if num + return (num).toFixed(1).split('.')[0] + else + return "0" + + view.fn "silver", (num) -> + if num + (num).toFixed(2).split('.')[1] + else + return "00" + + ### + Tasks + ### + view.fn 'taskClasses', (task) -> + return unless task + {type, completed, value, repeat} = task + + classes = type + + # show as completed if completed (naturally) or not required for today + if type in ['todo', 'daily'] + if completed or (repeat and repeat[dayMapping[moment().day()]]==false) + classes += " completed" + else + classes += " uncompleted" + + if value < -20 + classes += ' color-worst' + else if value < -10 + classes += ' color-worse' + else if value < -1 + classes += ' color-bad' + else if value < 1 + classes += ' color-neutral' + else if value < 5 + classes += ' color-good' + else if value < 10 + classes += ' color-better' + else + classes += ' color-best' + return classes + +module.exports = { viewHelpers, removeWhitespace, randomVal, daysBetween, dayMapping, username } diff --git a/src/app/index.coffee b/src/app/index.coffee index 5317003429..431eb22669 100644 --- a/src/app/index.coffee +++ b/src/app/index.coffee @@ -24,9 +24,6 @@ profile = require './profile' pets = require './pets' helpers.viewHelpers view -character.view view -tasks.view view -items.view view _ = require('underscore') diff --git a/src/app/items.coffee b/src/app/items.coffee index 17a7c40e3b..d19d9e89f0 100644 --- a/src/app/items.coffee +++ b/src/app/items.coffee @@ -70,46 +70,6 @@ _.each ['weapon', 'armor', 'head', 'shield'], (key) -> _.each items.pets, (pet) -> pet.notes = 'Find a hatching potion to pour on this egg, and one day it will hatch into a loyal pet.' _.each items.hatchingPotions, (hatchingPotion) -> hatchingPotion.notes = "Pour this on an egg, and it will hatch as a #{hatchingPotion.text} pet." -### - view exports -### -module.exports.view = (view) -> - view.fn 'equipped', (user, type) -> - {gender, armorSet} = user?.preferences || {'m', 'v1'} - - if type=='armor' - armor = user?.items?.armor || 0 - if gender == 'f' - return if (parseInt(armor) == 0) then "f_armor_#{armor}_#{armorSet}" else "f_armor_#{armor}" - else - return "m_armor_#{armor}" - - else if type=='head' - head = user?.items?.head || 0 - if gender == 'f' - return if (parseInt(head) > 1) then "f_head_#{head}_#{armorSet}" else "f_head_#{head}" - else - return "m_head_#{head}" - - view.fn "gold", (num) -> - if num - return (num).toFixed(1).split('.')[0] - else - return "0" - - view.fn "silver", (num) -> - if num - (num).toFixed(2).split('.')[1] - else - return "00" - - view.fn "copper", (num) -> - if num - c = (num).toFixed(4).split('.')[1] - c.toString().substr(2,2) - else - return "00" - ### server exports ### diff --git a/src/app/profile.coffee b/src/app/profile.coffee index b578ac2529..defe3bc955 100644 --- a/src/app/profile.coffee +++ b/src/app/profile.coffee @@ -1,5 +1,6 @@ character = require './character' browser = require './browser' +helpers = require './helpers' module.exports.app = (appExports, model) -> user = model.at('_user') @@ -22,6 +23,6 @@ module.exports.app = (appExports, model) -> uid = $(el).attr('data-uid') model.ref '_profileActive', model.at("users.#{uid}") model.set '_profileActiveMain', user.get('id') is uid - model.set '_profileActiveUsername', character.username model.get('_profileActive.auth') + model.set '_profileActiveUsername', helpers.username model.get('_profileActive.auth') browser.setupTooltips(model) diff --git a/src/app/tasks.coffee b/src/app/tasks.coffee index ddfd3dc889..52a726d343 100644 --- a/src/app/tasks.coffee +++ b/src/app/tasks.coffee @@ -4,36 +4,6 @@ _ = require 'underscore' moment = require 'moment' character = require './character' -module.exports.view = (view) -> - view.fn 'taskClasses', (task) -> - return unless task - {type, completed, value, repeat} = task - - classes = type - - # show as completed if completed (naturally) or not required for today - if type in ['todo', 'daily'] - if completed or (repeat and repeat[helpers.dayMapping[moment().day()]]==false) - classes += " completed" - else - classes += " uncompleted" - - if value < -20 - classes += ' color-worst' - else if value < -10 - classes += ' color-worse' - else if value < -1 - classes += ' color-bad' - else if value < 1 - classes += ' color-neutral' - else if value < 5 - classes += ' color-good' - else if value < 10 - classes += ' color-better' - else - classes += ' color-best' - return classes - module.exports.app = (appExports, model) -> user = model.at('_user')