Merge pull request #1896 from Fandekasp/party_members_order

Party members order
This commit is contained in:
Tyler Renelle 2013-11-23 16:52:31 -08:00
commit e9467dc466
5 changed files with 52 additions and 6 deletions

View file

@ -0,0 +1,8 @@
//Add default to randomize party members list
db.users.update(
{},
{$set:{
'party.order': 'random',
}},
{multi:true}
)

View file

@ -180,6 +180,14 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A
group.$get();
}
// List of Ordering options for the party members list
$scope.partyOrderChoices = {
'level': 'Sort by Level',
'random': 'Sort randomly',
'pets': 'Sort by number of pets',
'party_date_joined': 'Sort by Party date joined',
};
}])
.controller("GuildsCtrl", ['$scope', 'Groups', 'User', '$rootScope', '$state', '$location',

View file

@ -2,10 +2,31 @@
habitrpg.controller("HeaderCtrl", ['$scope', 'Groups', 'User',
function($scope, Groups, User) {
$scope.party = Groups.party(function(){
$scope.partyMinusSelf = _.filter($scope.party.members, function(member){
return member._id !== User.user._id;
});
$scope.partyMinusSelf = _.sortBy(
_.filter($scope.party.members, function(member){
return member._id !== User.user._id;
}),
function (member) {
switch(User.user.party.order)
{
case 'level':
return member.stats.lvl;
break;
case 'random':
return Math.random();
break;
case 'pets':
return member.items.pets.length;
break;
default:
// party date joined
return true;
}
}
).reverse()
});
}
]);

View file

@ -110,8 +110,7 @@ var UserSchema = new Schema({
head: Number,
shield: Number,
// -------------- Animals -------------------
// -------------- Animals -------------------
// Complex bit here. The result looks like:
// pets: {
// 'Wolf-Desert': 0, // 0 means does not own
@ -182,7 +181,8 @@ var UserSchema = new Schema({
current: String, // party._id
invitation: String, // party._id
lastMessageSeen: String,
leader: Boolean
leader: Boolean,
order: {type:String, 'default':'level'}
},
preferences: {
armorSet: String,

View file

@ -40,6 +40,15 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title='Guild Bank'
.modal-header
h3 Members
.modal-body
span
| Party Members list ordering
select#partyOrder(
style='width:140px',
ng-model='user.party.order',
ng-controller='ChatCtrl',
ng-options='k as v for (k , v) in partyOrderChoices',
ng-change='set("party.order", user.party.order)'
)
table.table.table-striped(bindonce='group')
tr(ng-repeat='member in group.members')
td