diff --git a/src/app/index.coffee b/src/app/index.coffee index 9d59ab1499..1b97785f8e 100644 --- a/src/app/index.coffee +++ b/src/app/index.coffee @@ -16,7 +16,7 @@ _ = require('underscore') setupListReferences = (model) -> # Setup Task Lists - taskTypes = ['habit', 'daily', 'todo', 'completed', 'reward'] + taskTypes = ['habit', 'daily', 'todo', 'reward'] _.each taskTypes, (type) -> model.refList "_#{type}List", "_user.tasks", "_user.#{type}Ids" # ========== ROUTES ========== @@ -59,15 +59,12 @@ get '/', (page, model, next) -> ## Task List Cleanup # FIXME temporary hack to fix lists (Need to figure out why these are happening) # FIXME consolidate these all under user.listIds so we can set them en-masse - _.each ['habit','daily','todo', 'completed', 'reward'], (type) -> + _.each ['habit','daily','todo','reward'], (type) -> path = "#{type}Ids" # 1. remove duplicates # 2. restore missing zombie tasks back into list where = {type:type} - if type in ['completed', 'todo'] - where.type = 'todo' - where.completed = if type == 'completed' then true else false taskIds = _.pluck( _.where(userObj.tasks, where), 'id') union = _.union userObj[path], taskIds @@ -145,25 +142,14 @@ ready (model) -> task = user.at("tasks.#{i}") scoring.score(i, direction()) - # Then move the todos to/from _todoList/_completedList - if task.get('type') == 'todo' - [from, to] = if (direction()=='up') then ['todo', 'completed'] else ['completed', 'todo'] - [from, to] = ["#{from}Ids", "#{to}Ids"] - # Remove from source (just remove the id from id-list) - fromIds = user.get(from) - fromIds.splice(fromIds.indexOf(i), 1) - user.set from, fromIds - # Push to target (just the id to id-list) - toIds = user.get(to) - toIds.push i - user.set to, toIds - exports.addTask = (e, el, next) -> type = $(el).attr('data-task-type') list = model.at "_#{type}List" newModel = model.at('_new' + type.charAt(0).toUpperCase() + type.slice(1)) + text = newModel.get() # Don't add a blank todo - return unless text = view.escapeHtml newModel.get() + return if /^(\s)*$/.test(text) + newModel.set '' switch type @@ -210,9 +196,15 @@ ready (model) -> task.remove() exports.clearCompleted = (e, el) -> - _.each model.get('_completedList'), (task) -> - user.del('tasks.'+task.id) - user.set('completedIds', []) + todoIds = user.get('todoIds') + removed = false + _.each model.get('_todoList'), (task) -> + if task.completed + removed = true + user.del('tasks.'+task.id) + todoIds.splice(todoIds.indexOf(task.id), 1) + if removed + user.set('todoIds', todoIds) exports.toggleDay = (e, el) -> task = model.at(e.target) @@ -303,7 +295,7 @@ ready (model) -> exports.reset = (e, el) -> userObj = user.get() - taskTypes = ['habit', 'daily', 'todo', 'completed', 'reward'] + taskTypes = ['habit', 'daily', 'todo', 'reward'] userObj.tasks = {} _.each taskTypes, (type) -> userObj["#{type}Ids"] = [] userObj.balance = 2 if userObj.balance < 2 #only if they haven't manually bought tokens diff --git a/src/app/schema.coffee b/src/app/schema.coffee index da0b48d7fb..245bba9438 100644 --- a/src/app/schema.coffee +++ b/src/app/schema.coffee @@ -12,7 +12,6 @@ module.exports.userSchema = -> habitIds: [] dailyIds: [] todoIds: [] - completedIds: [] rewardIds: [] for task in content.defaultTasks diff --git a/styles/app/index.styl b/styles/app/index.styl index 0c6cbd4475..a95d1edeea 100644 --- a/styles/app/index.styl +++ b/styles/app/index.styl @@ -43,6 +43,16 @@ html,body,p,h1,ul,li,table,tr,th,td color: #005580 background-color: #DEE5F2 +.dailys + .repeat-days > .btn:not(.active) + background-color: #aaa; + background-image: -moz-linear-gradient(top, #eee, #aaa); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#eee), to(#aaa)); + background-image: -webkit-linear-gradient(top, #eee, #aaa); + background-image: -o-linear-gradient(top, #eee, #aaa); + background-image: linear-gradient(to bottom, #eee, #aaa); + background-repeat: repeat-x; + .help-icon float:right; diff --git a/test/user.mocha.coffee b/test/user.mocha.coffee index 868786c14c..33b1917014 100644 --- a/test/user.mocha.coffee +++ b/test/user.mocha.coffee @@ -84,7 +84,6 @@ describe 'User', -> expect(_.size(user.habitIds)).to.eql 3 expect(_.size(user.dailyIds)).to.eql 3 expect(_.size(user.todoIds)).to.eql 1 - expect(_.size(user.completedIds)).to.eql 0 expect(_.size(user.rewardIds)).to.eql 2 ##### Habits ##### diff --git a/views/app/index.html b/views/app/index.html index 0d3c894633..f01e42a2a4 100644 --- a/views/app/index.html +++ b/views/app/index.html @@ -210,13 +210,21 @@