mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 06:07:21 +01:00
[#1444] add filters back to use schema. Allow editing of top-level tags
object in PUT /user, WARNING! We want to get away from that ASAP and instead have a nested resource for managing tags. Set default task tags if not present, will revisit after tasks are a subdoc too
This commit is contained in:
@@ -4,7 +4,6 @@ habitrpg.controller("FiltersCtrl", ['$scope', '$rootScope', 'User',
|
||||
function($scope, $rootScope, User) {
|
||||
var user = User.user;
|
||||
$scope._editing = false;
|
||||
user.filters = {}; // FIXME run a migration instead
|
||||
|
||||
$scope.saveOrEdit = function(){
|
||||
if ($scope._editing) {
|
||||
@@ -13,11 +12,11 @@ habitrpg.controller("FiltersCtrl", ['$scope', '$rootScope', 'User',
|
||||
$scope._editing = !$scope._editing;
|
||||
}
|
||||
|
||||
|
||||
$scope.toggleFilter = function(tag) {
|
||||
// no longer persisting this, it was causing a lot of confusion - users thought they'd permanently lost tasks
|
||||
user.filters = user.filters ? user.filters : {};
|
||||
user.filters[tag.id] = !user.filters[tag.id];
|
||||
// no longer persisting this, it was causing a lot of confusion - users thought they'd permanently lost tasks
|
||||
// Note: if we want to persist for just this computer, easy method is:
|
||||
// User.save();
|
||||
};
|
||||
|
||||
$scope.createTag = function(name) {
|
||||
|
||||
@@ -168,6 +168,8 @@ angular.module('userServices', []).
|
||||
userServices.log(log);
|
||||
},
|
||||
|
||||
save: save,
|
||||
|
||||
settings: settings
|
||||
};
|
||||
|
||||
|
||||
@@ -454,7 +454,7 @@ api.updateUser = function(req, res, next) {
|
||||
# Note: custom is for 3rd party apps
|
||||
*/
|
||||
|
||||
acceptableAttrs = 'tasks. achievements. filters. flags. invitations. items. lastCron party. preferences. profile. stats. tags. custom.'.split(' ');
|
||||
acceptableAttrs = 'tasks. achievements. filters. flags. invitations. items. lastCron party. preferences. profile. stats. tags custom.'.split(' ');
|
||||
_.each(req.body, function(v, k) {
|
||||
if ((_.find(acceptableAttrs, function(attr) {
|
||||
return k.indexOf(attr) === 0;
|
||||
|
||||
@@ -57,7 +57,7 @@ var UserSchema = new Schema({
|
||||
dailyIds: Array,
|
||||
todoIds: Array,
|
||||
rewardIds: Array,
|
||||
/* Removed `filters`, no longer persisting to the database*/
|
||||
filters: {type: Schema.Types.Mixed, 'default': {}},
|
||||
|
||||
flags: {
|
||||
ads: String,
|
||||
@@ -218,6 +218,7 @@ function transformTaskLists(doc) {
|
||||
_.each(['habit', 'daily', 'todo', 'reward'], function(type) {
|
||||
// we use _.transform instead of a simple _.where in order to maintain sort-order
|
||||
doc[type + "s"] = _.reduce(doc[type + "Ids"], function(m, tid) {
|
||||
if (!doc.tasks[tid].tags) doc.tasks[tid].tags = {}; // FIXME remove this when we switch tasks to subdocs and can define tags default in schema
|
||||
m.push(doc.tasks[tid]);
|
||||
return m;
|
||||
}, []);
|
||||
@@ -238,7 +239,7 @@ UserSchema.methods.toJSON = function() {
|
||||
delete doc["#{type}Ids"]
|
||||
});
|
||||
delete doc.tasks
|
||||
doc.filters = {};
|
||||
//doc.filters = {};
|
||||
|
||||
return doc;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user