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(); 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', .controller("GuildsCtrl", ['$scope', 'Groups', 'User', '$rootScope', '$state', '$location',

View file

@ -2,10 +2,31 @@
habitrpg.controller("HeaderCtrl", ['$scope', 'Groups', 'User', habitrpg.controller("HeaderCtrl", ['$scope', 'Groups', 'User',
function($scope, Groups, User) { function($scope, Groups, User) {
$scope.party = Groups.party(function(){ $scope.party = Groups.party(function(){
$scope.partyMinusSelf = _.filter($scope.party.members, function(member){ $scope.partyMinusSelf = _.sortBy(
return member._id !== User.user._id; _.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, head: Number,
shield: Number, shield: Number,
// -------------- Animals ------------------- // -------------- Animals -------------------
// Complex bit here. The result looks like: // Complex bit here. The result looks like:
// pets: { // pets: {
// 'Wolf-Desert': 0, // 0 means does not own // 'Wolf-Desert': 0, // 0 means does not own
@ -182,7 +181,8 @@ var UserSchema = new Schema({
current: String, // party._id current: String, // party._id
invitation: String, // party._id invitation: String, // party._id
lastMessageSeen: String, lastMessageSeen: String,
leader: Boolean leader: Boolean,
order: {type:String, 'default':'level'}
}, },
preferences: { preferences: {
armorSet: String, armorSet: String,

View file

@ -40,6 +40,15 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title='Guild Bank'
.modal-header .modal-header
h3 Members h3 Members
.modal-body .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') table.table.table-striped(bindonce='group')
tr(ng-repeat='member in group.members') tr(ng-repeat='member in group.members')
td td