From bfca612be2730764f920ed20e8c1434cd1e8ce91 Mon Sep 17 00:00:00 2001 From: TheHollidayInn Date: Thu, 24 Sep 2015 16:39:53 -0500 Subject: [PATCH] Moved intial filtering to a scope function and added test --- test/spec/controllers/challengesCtrlSpec.js | 13 +++++++++ .../public/js/controllers/challengesCtrl.js | 27 +++++++++++-------- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/test/spec/controllers/challengesCtrlSpec.js b/test/spec/controllers/challengesCtrlSpec.js index 283ce4b224..5a48805f46 100644 --- a/test/spec/controllers/challengesCtrlSpec.js +++ b/test/spec/controllers/challengesCtrlSpec.js @@ -148,6 +148,19 @@ describe('Challenges Controller', function() { expect(scope.filterChallenges(notOwnMem)).to.eql(false); expect(scope.filterChallenges(notOwnNotMem)).to.eql(true); }); + + it('it filters challenges to a single group when group id filter is set', inject(function($controller) { + scope.search = { }; + scope.groups = { + 0: specHelper.newGroup({_id: 'group-one'}), + 1: specHelper.newGroup({_id: 'group-two'}), + 2: specHelper.newGroup({_id: 'group-three'}) + }; + + scope.groupIdFilter = 'group-one'; + scope.filterInitialChallenges(); + expect(scope.search.group).to.eql({'group-one': true}); + })); }); describe('selectAll', function() { diff --git a/website/public/js/controllers/challengesCtrl.js b/website/public/js/controllers/challengesCtrl.js index c540ff6be5..1cafe40d44 100644 --- a/website/public/js/controllers/challengesCtrl.js +++ b/website/public/js/controllers/challengesCtrl.js @@ -327,6 +327,21 @@ habitrpg.controller("ChallengesCtrl", ['$rootScope','$scope', 'Shared', 'User', }); }; + $scope.filterInitialChallenges = function() { + $scope.groupsFilter = _.uniq(_.pluck($scope.challenges, 'group'), function(g){return g._id}); + $scope.search = { + group: _.transform($scope.groups, function(m,g){m[g._id]=true;}), + _isMember: "either", + _isOwner: "either" + }; + //If we game from a group, then override the filter to that group + + if ($scope.groupIdFilter) { + $scope.search.group = {}; + $scope.search.group[$scope.groupIdFilter] = true ; + } + } + function _calculateMaxPrize(gid) { var userBalance = User.getBalanceInGems() || 0; @@ -377,17 +392,7 @@ habitrpg.controller("ChallengesCtrl", ['$rootScope','$scope', 'Shared', 'User', } else { Challenges.Challenge.query(function(challenges){ $scope.challenges = challenges; - $scope.groupsFilter = _.uniq(_.pluck(challenges, 'group'), function(g){return g._id}); - $scope.search = { - group: _.transform($scope.groups, function(m,g){m[g._id]=true;}), - _isMember: "either", - _isOwner: "either" - }; - //If we game from a group, then override the filter to that group - if ($scope.groupIdFilter) { - $scope.search.group = {}; - $scope.search.group[$scope.groupIdFilter] = true ; - } + $scope.filterInitialChallenges(); }); } };