diff --git a/migrations/20131126_clean_dayStart.js b/migrations/20131126_clean_dayStart.js new file mode 100644 index 0000000000..b2001ec7c2 --- /dev/null +++ b/migrations/20131126_clean_dayStart.js @@ -0,0 +1,5 @@ +db.users.find({'preferences.dayStart':{$exists:1}},{'preferences.dayStart':1}).forEach(function(user){ + var dayStart = +user.preferences.dayStart; + dayStart = (_.isNaN(dayStart) || dayStart < 0 || dayStart > 24) ? 0 : dayStart; + db.users.update({_id:user._id}, {$set:{'preferences.dayStart':dayStart}}); +}); diff --git a/public/js/controllers/settingsCtrl.js b/public/js/controllers/settingsCtrl.js index 1200f29bd9..890110e4c4 100644 --- a/public/js/controllers/settingsCtrl.js +++ b/public/js/controllers/settingsCtrl.js @@ -27,10 +27,11 @@ habitrpg.controller('SettingsCtrl', $scope.saveDayStart = function(){ var dayStart = +User.user.preferences.dayStart; - if (dayStart < 0 || dayStart > 24) { + if (_.isNaN(dayStart) || dayStart < 0 || dayStart > 24) { dayStart = 0; + return alert('Please enter a number between 0 and 24'); } - User.log({'op':'set', data:{'preferences.dayStart': dayStart}}); + User.set('preferences.dayStart', dayStart); } $scope.language = window.env.language; diff --git a/src/models/user.js b/src/models/user.js index 7e2637d504..43e91a746f 100644 --- a/src/models/user.js +++ b/src/models/user.js @@ -259,6 +259,10 @@ UserSchema.virtual('tasks').get(function () { UserSchema.pre('save', function(next) { //this.markModified('tasks'); + if (_.isNaN(this.preferences.dayStart) || this.preferences.dayStart < 0 || this.preferences.dayStart > 0) { + this.preferences.dayStart = 0; + } + if (!this.profile.name) { var fb = this.auth.facebook; this.profile.name =