From 8e5edbbef84fb6368599de506c819d8b4086d4bc Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Fri, 22 Nov 2013 20:23:41 +0100 Subject: [PATCH] fix #1611, @lefnire added a migration for deleted tags, this time it should not delete all of them ;) --- migrations/20131122_deleted_tags.js | 13 +++++++++++++ src/controllers/user.js | 4 ++++ 2 files changed, 17 insertions(+) create mode 100644 migrations/20131122_deleted_tags.js diff --git a/migrations/20131122_deleted_tags.js b/migrations/20131122_deleted_tags.js new file mode 100644 index 0000000000..e915390041 --- /dev/null +++ b/migrations/20131122_deleted_tags.js @@ -0,0 +1,13 @@ +// Cleanup broken tags +// ------------------------- +db.users.find().forEach(function(user){ + var tasks = user.habits.concat(user.dailys).concat(user.todos).concat(user.rewards); + + _.each(tasks, function(task){ + _.each(task.tags, function(value, key){ //value is true, key is tag.id + if (!_.find(user.tags,{id:key})) delete task.tags[key]; + }); + }); + + db.users.update({_id:user._id}, user); +}); \ No newline at end of file diff --git a/src/controllers/user.js b/src/controllers/user.js index 2a9d0c9956..9738273967 100644 --- a/src/controllers/user.js +++ b/src/controllers/user.js @@ -471,6 +471,10 @@ api.deleteTag = function(req, res){ delete task.tags[tag.id]; }) }) + user.markModified('habits'); + user.markModified('dailys'); + user.markModified('todos'); + user.markModified('rewards'); user.save(function(err,saved){ if (err) return res.json(500, {err: err}); res.send(204);