mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-07-20 02:34:12 +00:00
v3: fix sorting
This commit is contained in:
parent
bc44fa062e
commit
ab6e34aa6f
1 changed files with 22 additions and 3 deletions
|
|
@ -50,9 +50,28 @@ angular.module('habitrpg')
|
|||
user.todos = [];
|
||||
user.dailys = [];
|
||||
user.rewards = [];
|
||||
tasks.forEach(function (element, index, array) {
|
||||
user[element.type + 's'].push(element)
|
||||
});
|
||||
|
||||
// Order tasks based on tasksOrder
|
||||
var groupedTasks = _(tasks)
|
||||
.groupBy('type')
|
||||
.forEach(function (tasksOfType, type) {
|
||||
var order = user.tasksOrder[type + 's'];
|
||||
var orderedTasks = new Array(tasksOfType.length);
|
||||
var unorderedTasks = []; // what we want to add later
|
||||
|
||||
tasksOfType.forEach((task, index) => {
|
||||
var taskId = task._id;
|
||||
var i = order[index] === taskId ? index : order.indexOf(taskId);
|
||||
if (i === -1) {
|
||||
unorderedTasks.push(task);
|
||||
} else {
|
||||
orderedTasks[i] = task;
|
||||
}
|
||||
});
|
||||
|
||||
// Remove empty values from the array and add any unordered task
|
||||
user[type + 's'] = _.compact(orderedTasks).concat(unorderedTasks);
|
||||
}).value();
|
||||
}
|
||||
|
||||
function sync() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue