diff --git a/website/client-old/js/app.js b/website/client-old/js/app.js index 4c0d59533f..66bbfe7957 100644 --- a/website/client-old/js/app.js +++ b/website/client-old/js/app.js @@ -272,6 +272,19 @@ window.habitrpg = angular.module('habitrpg', .then(function (response) { $scope.challenge.members = response.data.data; }); + + $scope.loadMoreMembers = function () { + var members = $scope.challenge.members; + var lastMember = members[members.length - 1]; + + if (!lastMember) return; + + Members.getChallengeMembers($scope.challenge._id, lastMember._id) + .then(function (response) { + var members = response.data.data; + $scope.challenge.members = $scope.challenge.members.concat(members); + }); + } }] }) .state('options.social.challenges.edit', { diff --git a/website/client-old/js/services/memberServices.js b/website/client-old/js/services/memberServices.js index cec77de9f6..12042fa7a1 100644 --- a/website/client-old/js/services/memberServices.js +++ b/website/client-old/js/services/memberServices.js @@ -35,10 +35,16 @@ angular.module('habitrpg') }); } - function getChallengeMembers (challengeId) { + function getChallengeMembers (challengeId, lastId) { + let url = apiV3Prefix + '/challenges/' + challengeId + '/members'; + + if (lastId) { + url += '?lastId=' + lastId; + } + return $http({ method: 'GET', - url: apiV3Prefix + '/challenges/' + challengeId + '/members?includeAllMembers=true', + url: url, }); } diff --git a/website/common/locales/en/challenge.json b/website/common/locales/en/challenge.json index 1b62224fe2..ded3d0ef6f 100644 --- a/website/common/locales/en/challenge.json +++ b/website/common/locales/en/challenge.json @@ -81,5 +81,6 @@ "cantOnlyUnlinkChalTask": "Only broken challenges tasks can be unlinked.", "shortNameTooShort": "Tag Name must have at least 3 characters.", "joinedChallenge": "Joined a Challenge", - "joinedChallengeText": "This user put themselves to the test by joining a Challenge!" + "joinedChallengeText": "This user put themselves to the test by joining a Challenge!", + "loadMore": "Load More" } diff --git a/website/views/options/social/challenges.jade b/website/views/options/social/challenges.jade index 4f8998bae1..c073dfdde9 100644 --- a/website/views/options/social/challenges.jade +++ b/website/views/options/social/challenges.jade @@ -60,6 +60,7 @@ script(type='text/ng-template', id='partials/options.social.challenges.detail.ht h3=env.t('hows') menu button.customize-option(ng-repeat='member in challenge.members track by member._id', ng-click='toggleMember(challenge._id, member._id)') {{member.profile.name}} + button.btn.btn-primary(ng-click='loadMoreMembers()', ng-if='challenge.memberCount > challenge.members.length')=env.t('loadMore') div(ui-view) // Accordion version if we choose that instead