From fc10e9d6e6869f6f1d0553d4f9537f37cdc23c61 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Thu, 31 Oct 2013 15:41:22 +0100 Subject: [PATCH] move party.removeSelf to client side --- public/js/controllers/groupsCtrl.js | 4 ++++ src/controllers/groups.js | 22 +--------------------- views/shared/header/header.jade | 2 +- 3 files changed, 6 insertions(+), 22 deletions(-) diff --git a/public/js/controllers/groupsCtrl.js b/public/js/controllers/groupsCtrl.js index eca7319076..e9c4b7ade8 100644 --- a/public/js/controllers/groupsCtrl.js +++ b/public/js/controllers/groupsCtrl.js @@ -209,6 +209,10 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A User.user.invitations.party = undefined; User.log({op:'set',data:{'invitations.party':{}}}); } + + $scope.removeSelf = function(member){ + return member._id !== User.user._id; + } } ]) diff --git a/src/controllers/groups.js b/src/controllers/groups.js index 8ca641c1b1..ba8abadf14 100644 --- a/src/controllers/groups.js +++ b/src/controllers/groups.js @@ -20,11 +20,6 @@ var itemFields = 'items.armor items.head items.shield items.weapon items.current var partyFields = 'profile preferences stats achievements party backer flags.rest auth.timestamps ' + itemFields; var nameFields = 'profile.name'; -function removeSelf(group, user){ - if (group) - group.members = _.filter(group.members, function(m){return m._id != user._id}); -} - api.getMember = function(req, res) { User.findById(req.params.uid).select(partyFields).exec(function(err, user){ if (err) return res.json(500,{err:err}); @@ -113,7 +108,6 @@ api.get = function(req, res) { Group.findOne({type: 'party', members: {'$in': [user._id]}}) .populate('members invites', partyFields).exec(function(err, group){ if (err) return res.json(500,{err:err}); - removeSelf(group, user); res.json(group); }); } else { @@ -122,10 +116,6 @@ api.get = function(req, res) { if(!_.find(group.members, {_id: user._id})) return res.json(401, {err: "You don't have access to this group"}); } - // Remove self from party (see above failing `match` directive in `populate` - if (group.type == 'party') { - removeSelf(group, user); - } res.json(group); }) } @@ -176,7 +166,6 @@ api.update = function(req, res, next) { } ], function(err, results){ if (err) return res.json(500,{err:err}); - if (group.type === 'party') removeSelf(results[1], res.locals.user); res.json(results[1]); }); } @@ -219,10 +208,7 @@ api.postChat = function(req, res, next) { if (err) return res.json(500, {err:err}); // TODO This is less efficient, but see https://github.com/lefnire/habitrpg/commit/41255dc#commitcomment-4014583 - var saved = results[1]; - if (group.type === 'party') removeSelf(saved, user); - - res.json(saved); + res.json(results[1]); }) } @@ -271,9 +257,6 @@ api.join = function(req, res, next) { ], function(err, results){ if (err) return res.json(500,{err:err}); - // Remove self from party (see above failing `match` directive in `populate` - if(results[1].type == 'party') removeSelf(results[1], user); - res.json(results[1]); }); } @@ -337,9 +320,6 @@ api.invite = function(req, res, next) { ], function(err, results){ if (err) return res.json(500,{err:err}); - // Remove self from party (see above failing `match` directive in `populate` - if(results[2].type == 'party') removeSelf(results[2], user); - res.json(results[2]); }); } diff --git a/views/shared/header/header.jade b/views/shared/header/header.jade index 0570507780..a04c9a2ed5 100644 --- a/views/shared/header/header.jade +++ b/views/shared/header/header.jade @@ -27,7 +27,7 @@ i.icon-signal // party span(ng-controller='PartyCtrl') - .herobox-wrap(ng-repeat='profile in groups.party.members') + .herobox-wrap(ng-repeat='profile in groups.party.members | filter:removeSelf') include avatar .NPC-Bailey-Head(ng-show='user.flags.newStuff', tooltip='Psst', tooltip-placement='top', ng-click='modals.newStuff=true')