From be4691cf5811037000228c0e26b219b4163d2ebd Mon Sep 17 00:00:00 2001 From: Adrien Lemaire Date: Sat, 23 Nov 2013 16:21:43 +1100 Subject: [PATCH 1/5] sort by level --- public/js/controllers/headerCtrl.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/public/js/controllers/headerCtrl.js b/public/js/controllers/headerCtrl.js index 65da48b89e..a5f96ad311 100644 --- a/public/js/controllers/headerCtrl.js +++ b/public/js/controllers/headerCtrl.js @@ -3,9 +3,14 @@ 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) { + return member.stats.lvl + } + ).reverse() }); } ]); From 5579030d204b417165e98dbe2e4fb40ef15e15af Mon Sep 17 00:00:00 2001 From: Adrien Lemaire Date: Sat, 23 Nov 2013 20:52:36 +1100 Subject: [PATCH 2/5] party.order set and cases added --- public/js/controllers/headerCtrl.js | 18 +++++++++++++++++- src/models/user.js | 6 +++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/public/js/controllers/headerCtrl.js b/public/js/controllers/headerCtrl.js index a5f96ad311..369f0bfc85 100644 --- a/public/js/controllers/headerCtrl.js +++ b/public/js/controllers/headerCtrl.js @@ -2,13 +2,29 @@ habitrpg.controller("HeaderCtrl", ['$scope', 'Groups', 'User', function($scope, Groups, User) { + + $scope.party = Groups.party(function(){ $scope.partyMinusSelf = _.sortBy( _.filter($scope.party.members, function(member){ return member._id !== User.user._id; }), function (member) { - return member.stats.lvl + 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() }); diff --git a/src/models/user.js b/src/models/user.js index 9b6adc8dc8..6a336cd4bd 100644 --- a/src/models/user.js +++ b/src/models/user.js @@ -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, From dcd0e7e95b5a845482c39a8afe6300d0fe9c3539 Mon Sep 17 00:00:00 2001 From: Adrien Lemaire Date: Sat, 23 Nov 2013 21:59:58 +1100 Subject: [PATCH 3/5] =?UTF-8?q?add=20setting=20in=20Social=E2=86=92Party?= =?UTF-8?q?=E2=86=92Members?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/js/controllers/groupsCtrl.js | 7 +++++++ views/options/social/group.jade | 9 +++++++++ 2 files changed, 16 insertions(+) diff --git a/public/js/controllers/groupsCtrl.js b/public/js/controllers/groupsCtrl.js index 68ed8e288e..8264dfe905 100644 --- a/public/js/controllers/groupsCtrl.js +++ b/public/js/controllers/groupsCtrl.js @@ -180,6 +180,13 @@ 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', + }; + }]) .controller("GuildsCtrl", ['$scope', 'Groups', 'User', '$rootScope', '$state', '$location', diff --git a/views/options/social/group.jade b/views/options/social/group.jade index d310660a47..95fbae0e99 100644 --- a/views/options/social/group.jade +++ b/views/options/social/group.jade @@ -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 From cef1e07b18cf03e304c9178094657f950be59504 Mon Sep 17 00:00:00 2001 From: Adrien Lemaire Date: Sat, 23 Nov 2013 22:03:13 +1100 Subject: [PATCH 4/5] =?UTF-8?q?add=20migration=20script=20=E2=86=92=20defa?= =?UTF-8?q?ult=20'random'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- migrations/20131123_set_default_party_order.js | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 migrations/20131123_set_default_party_order.js diff --git a/migrations/20131123_set_default_party_order.js b/migrations/20131123_set_default_party_order.js new file mode 100644 index 0000000000..970e37e05b --- /dev/null +++ b/migrations/20131123_set_default_party_order.js @@ -0,0 +1,8 @@ +//Add default to randomize party members list +db.users.update( + {}, + {$set:{ + 'party.order': 'random', + }}, + {multi:true} +) From b36a288f041482ae374a9780fd17cd49ae7059df Mon Sep 17 00:00:00 2001 From: Adrien Lemaire Date: Sat, 23 Nov 2013 22:06:22 +1100 Subject: [PATCH 5/5] add sort by date joined option --- public/js/controllers/groupsCtrl.js | 1 + 1 file changed, 1 insertion(+) diff --git a/public/js/controllers/groupsCtrl.js b/public/js/controllers/groupsCtrl.js index 8264dfe905..b2d6a6376c 100644 --- a/public/js/controllers/groupsCtrl.js +++ b/public/js/controllers/groupsCtrl.js @@ -185,6 +185,7 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A 'level': 'Sort by Level', 'random': 'Sort randomly', 'pets': 'Sort by number of pets', + 'party_date_joined': 'Sort by Party date joined', }; }])