many bug fixes regarding schema updates

This commit is contained in:
Tyler Renelle
2012-07-28 16:26:06 -04:00
parent 994efb5f79
commit 3895d0610a
7 changed files with 114 additions and 93 deletions

View File

@@ -1,5 +1,5 @@
// Generated by CoffeeScript 1.3.3
var Scoring, content, derby, get, getHabits, ready, schemaUpdates, userSchema, view, _ref;
var Scoring, content, derby, get, getHabits, ready, view, _ref;
derby = require('derby');
@@ -13,52 +13,6 @@ content = require('./content');
Scoring = require('./scoring');
userSchema = {
stats: {
money: 0,
exp: 0,
lvl: 1,
hp: 50
},
items: {
itemsEnabled: false,
armor: 0,
weapon: 0
},
tasks: {},
habitIds: [],
dailyIds: [],
todoIds: [],
completedIds: [],
rewardIds: []
};
schemaUpdates = function(model) {
var completedIds, index, key, todo, todoIds, user, val, _i, _len, _ref1, _results;
user = model.at('_user');
for (key in userSchema) {
val = userSchema[key];
user.setNull(key, val);
}
completedIds = user.get('completedIds');
todoIds = user.get('todoIds');
if (completedIds.length === 0) {
_ref1 = model.get('_todoList');
_results = [];
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
todo = _ref1[_i];
if (todo.completed) {
index = todoIds.indexOf(todo.id);
todoIds.splice(index, 1);
_results.push(completedIds.push(todo.id));
} else {
_results.push(void 0);
}
}
return _results;
}
};
view.fn('taskClasses', function(type, completed, value) {
var classes;
classes = type;
@@ -129,7 +83,7 @@ get('/:uidParam?', function(page, model, _arg) {
userId = model.get('_userId');
user = users.get(userId);
if (user == null) {
newUser = userSchema;
newUser = require('./schema').userSchema;
_ref1 = content.defaultTasks;
for (_i = 0, _len = _ref1.length; _i < _len; _i++) {
task = _ref1[_i];
@@ -176,13 +130,12 @@ getHabits = function(page, model, userId) {
model.refList("_todoList", "_user.tasks", "_user.todoIds");
model.refList("_completedList", "_user.tasks", "_user.completedIds");
model.refList("_rewardList", "_user.tasks", "_user.rewardIds");
schemaUpdates(model);
return page.render();
});
};
ready(function(model) {
var endOfDayTally, poormanscron, setupSortable, step, tour, type, _i, _j, _len, _len1, _ref1, _ref2;
var poormanscron, setupSortable, step, tour, type, _i, _j, _len, _len1, _ref1, _ref2;
model.set('_purl', window.location.origin + '/' + model.get('_userId'));
$('[rel=popover]').popover();
model.on('set', '*', function() {
@@ -301,6 +254,12 @@ ready(function(model) {
model.del('_user.tasks.' + task.get('id'));
return task.remove();
};
exports.clearCompleted = function(e, el) {
return _.each(model.get('_completedList'), function(task) {
model.del('_user.tasks.' + task.id);
return model.set('_user.completedIds', []);
});
};
exports.toggleTaskEdit = function(e, el) {
var hideId, toggleId;
hideId = $(el).attr('data-hide-id');
@@ -412,7 +371,7 @@ ready(function(model) {
daysPassed: daysPassed,
n: n
}, "[debug] Cron (" + today + ", " + n + ")");
_results.push(endOfDayTally());
_results.push(Scoring.tally(model));
}
return _results;
}
@@ -421,9 +380,12 @@ ready(function(model) {
setInterval((function() {
return poormanscron();
}), 3600000);
exports.endOfDayTally = endOfDayTally = function(e, el) {
exports.endOfDayTally = function(e, el) {
return Scoring.tally(model);
};
exports.updateSchema = function(e, el) {
return require('./schema').updateSchema(model);
};
exports.shortcuts = function(e) {
var code, command;
if (!(e.metaKey || e.ctrlKey)) {