From 8e377d734375c2a3ecea62ac8f04eecc4c5b9e94 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Wed, 11 Sep 2013 16:28:14 +0200 Subject: [PATCH 1/7] fix various guilds issues --- public/js/controllers/groupsCtrl.js | 5 +++++ src/controllers/groups.js | 12 +++++++++--- views/options/groups/index.jade | 4 ++-- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/public/js/controllers/groupsCtrl.js b/public/js/controllers/groupsCtrl.js index dda5c79448..64897360e0 100644 --- a/public/js/controllers/groupsCtrl.js +++ b/public/js/controllers/groupsCtrl.js @@ -140,6 +140,11 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A // if (~i) $scope.groups.guilds.splice(i, 1); alert('Left guild, refresh page to see changes') } + + $scope.reject = function(guild){ + var i = _.findIndex(User.user.invitations.guilds, {id:guild._id}); + if (~i) User.set('invitations.guilds', User.user.invitations.guilds.splice(i,1)); + } } ]) diff --git a/src/controllers/groups.js b/src/controllers/groups.js index 162087b38a..1a06bb8e72 100644 --- a/src/controllers/groups.js +++ b/src/controllers/groups.js @@ -272,10 +272,16 @@ api.invite = function(req, res, next) { } function sendInvite (){ - //req.body.type in 'guild', 'party' - invite.invitations.party = {id:group._id, name: group.name} + if(group.type = 'guild'){ + if(!invite.invitations.guilds) invite.invitations.guilds = [] //necessary + invite.invitations.guilds.push({id: group._id, name: group.name}); + }else{ + //req.body.type in 'guild', 'party' + invite.invitations.party = {id: group._id, name: group.name} + } + invite.save(); - Group.findById(group._id) + group .populate('members', partyFields).exec(function(err, saved){ res.json(saved); }); diff --git a/views/options/groups/index.jade b/views/options/groups/index.jade index 31c8745f7d..435fa3d530 100644 --- a/views/options/groups/index.jade +++ b/views/options/groups/index.jade @@ -17,7 +17,7 @@ ul.nav.nav-tabs // {#with _user.invitations.party as :party} h2 You're Invited To {{user.invitations.party.name}} a.btn.btn-success(data-type='party', ng-click='join(user.invitations.party)') Accept - a.btn.btn-danger(ng-click='reject(group)') Reject + a.btn.btn-danger(ng-click='reject()') Reject // {/} div(ng-hide='user.invitations.party', ng-controller='PartyCtrl') h2 Create A Party @@ -40,7 +40,7 @@ ul.nav.nav-tabs div(ng-repeat='invitation in user.invitations.guilds') h3 You're Invited To {{invitation.name}} a.btn.btn-success(data-type='guild', ng-click='join(group)') Accept - a.btn.btn-danger(x-bind='click:rejectInvitation') Reject + a.btn.btn-danger(ng-click='reject(invitation)') Reject // Public Groups .options-group.option-large.whatever-options input.option-content(type='text',ng-model='guildSearch', placeholder='Search') From bf83291e0a46bec4e264501866d3dd1311c89927 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Wed, 11 Sep 2013 16:32:56 +0200 Subject: [PATCH 2/7] add fix for joining guild --- views/options/groups/index.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/options/groups/index.jade b/views/options/groups/index.jade index 435fa3d530..566a25295f 100644 --- a/views/options/groups/index.jade +++ b/views/options/groups/index.jade @@ -39,7 +39,7 @@ ul.nav.nav-tabs .tab-pane.active#groups-public-guilds div(ng-repeat='invitation in user.invitations.guilds') h3 You're Invited To {{invitation.name}} - a.btn.btn-success(data-type='guild', ng-click='join(group)') Accept + a.btn.btn-success(data-type='guild', ng-click='join(invitation)') Accept a.btn.btn-danger(ng-click='reject(invitation)') Reject // Public Groups .options-group.option-large.whatever-options From 9966d06c5a4da3c6db26ddcd458b7ea1aaab30df Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Wed, 11 Sep 2013 16:47:57 +0200 Subject: [PATCH 3/7] use slice --- src/controllers/groups.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controllers/groups.js b/src/controllers/groups.js index 1a06bb8e72..0ff6728cb6 100644 --- a/src/controllers/groups.js +++ b/src/controllers/groups.js @@ -218,7 +218,7 @@ api.join = function(req, res, next) { } else if (group.type == 'guild' && user.invitations && user.invitations.guilds) { var i = _.findIndex(user.invitations.guilds, {id:group._id}); - if (~i) user.invitations.guilds.splice(i,1); + if (~i) user.invitations.guilds.slice(i,1); user.save(); } From 46363785c81f6e35cc347963190b9d8e7b966128 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Wed, 11 Sep 2013 16:51:39 +0200 Subject: [PATCH 4/7] rever to query --- src/controllers/groups.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/controllers/groups.js b/src/controllers/groups.js index 0ff6728cb6..0d230e254d 100644 --- a/src/controllers/groups.js +++ b/src/controllers/groups.js @@ -281,7 +281,7 @@ api.invite = function(req, res, next) { } invite.save(); - group + Group.findById(group._id) .populate('members', partyFields).exec(function(err, saved){ res.json(saved); }); From 1342a2cb893426c4517b89f823d955ac230e7903 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Wed, 11 Sep 2013 17:07:38 +0200 Subject: [PATCH 5/7] fix reject guild function --- public/js/controllers/groupsCtrl.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/public/js/controllers/groupsCtrl.js b/public/js/controllers/groupsCtrl.js index 64897360e0..ba89b388d7 100644 --- a/public/js/controllers/groupsCtrl.js +++ b/public/js/controllers/groupsCtrl.js @@ -143,7 +143,10 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A $scope.reject = function(guild){ var i = _.findIndex(User.user.invitations.guilds, {id:guild._id}); - if (~i) User.set('invitations.guilds', User.user.invitations.guilds.splice(i,1)); + if (~i){ + User.user.invitations.guilds.splice(i, 1); + User.set('invitations.guilds', User.user.invitations.guilds); + } } } ]) From 48c078a6eaab7ef7699f30e9d5eee99dd6b5983f Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Wed, 11 Sep 2013 20:08:53 +0200 Subject: [PATCH 6/7] various fixed --- .nodemonignore | 1 + public/css/game-pane.styl | 10 ++-------- public/css/index.styl | 5 ++++- public/js/controllers/groupsCtrl.js | 2 +- src/controllers/groups.js | 2 +- 5 files changed, 9 insertions(+), 11 deletions(-) diff --git a/.nodemonignore b/.nodemonignore index 17de44ee85..19c17340c6 100644 --- a/.nodemonignore +++ b/.nodemonignore @@ -1,4 +1,5 @@ public/* views/* +build build/* Gruntfile.js \ No newline at end of file diff --git a/public/css/game-pane.styl b/public/css/game-pane.styl index 0d501563fa..0a60fa1f9d 100644 --- a/public/css/game-pane.styl +++ b/public/css/game-pane.styl @@ -41,13 +41,7 @@ height 500px .buttonList li - margin: 5px; + margin: 5px .option-group .option-time - padding: 0px 5px - -.chat-btn - margin-right: 5px; - -.personal-options .btn - margin-right: 5px; \ No newline at end of file + padding: 0px 5px \ No newline at end of file diff --git a/public/css/index.styl b/public/css/index.styl index fbb9913e4a..db87cfb184 100644 --- a/public/css/index.styl +++ b/public/css/index.styl @@ -165,4 +165,7 @@ a cursor: pointer #modalMember p - word-wrap: break-word; \ No newline at end of file + word-wrap: break-word; + +.btn + margin-right: 5px; \ No newline at end of file diff --git a/public/js/controllers/groupsCtrl.js b/public/js/controllers/groupsCtrl.js index ba89b388d7..1503279908 100644 --- a/public/js/controllers/groupsCtrl.js +++ b/public/js/controllers/groupsCtrl.js @@ -142,7 +142,7 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A } $scope.reject = function(guild){ - var i = _.findIndex(User.user.invitations.guilds, {id:guild._id}); + var i = _.findIndex(User.user.invitations.guilds, {id:guild.id}); if (~i){ User.user.invitations.guilds.splice(i, 1); User.set('invitations.guilds', User.user.invitations.guilds); diff --git a/src/controllers/groups.js b/src/controllers/groups.js index 0d230e254d..a59a6c4ce2 100644 --- a/src/controllers/groups.js +++ b/src/controllers/groups.js @@ -272,7 +272,7 @@ api.invite = function(req, res, next) { } function sendInvite (){ - if(group.type = 'guild'){ + if(group.type === 'guild'){ if(!invite.invitations.guilds) invite.invitations.guilds = [] //necessary invite.invitations.guilds.push({id: group._id, name: group.name}); }else{ From 2f8c9fea782fb6389837c388e2b045db2623c5c7 Mon Sep 17 00:00:00 2001 From: Tyler Renelle Date: Wed, 11 Sep 2013 17:16:23 -0400 Subject: [PATCH 7/7] [#1516] fixes to handling user.invitations.guilds - both accept & reject --- public/js/controllers/groupsCtrl.js | 7 +++++++ src/controllers/groups.js | 3 +-- src/models/user.js | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/public/js/controllers/groupsCtrl.js b/public/js/controllers/groupsCtrl.js index 1503279908..b5b38d9fa5 100644 --- a/public/js/controllers/groupsCtrl.js +++ b/public/js/controllers/groupsCtrl.js @@ -128,6 +128,13 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A } $scope.join = function(group){ + // If we're accepting an invitation, we don't have the actual group object, but a faux group object (for performance + // purposes) {id, name}. Let's trick ngResource into thinking we have a group, so we can call the same $join + // function (server calls .attachGroup(), which finds group by _id and handles this properly) + if (group.id && !group._id) { + group = new Groups.Group({_id:group.id}); + } + group.$join(function(saved){ //$scope.groups.guilds.push(saved); alert('Joined guild, refresh page to see changes') diff --git a/src/controllers/groups.js b/src/controllers/groups.js index a59a6c4ce2..e464e330d8 100644 --- a/src/controllers/groups.js +++ b/src/controllers/groups.js @@ -218,7 +218,7 @@ api.join = function(req, res, next) { } else if (group.type == 'guild' && user.invitations && user.invitations.guilds) { var i = _.findIndex(user.invitations.guilds, {id:group._id}); - if (~i) user.invitations.guilds.slice(i,1); + if (~i) user.invitations.guilds.splice(i,1); user.save(); } @@ -273,7 +273,6 @@ api.invite = function(req, res, next) { function sendInvite (){ if(group.type === 'guild'){ - if(!invite.invitations.guilds) invite.invitations.guilds = [] //necessary invite.invitations.guilds.push({id: group._id, name: group.name}); }else{ //req.body.type in 'guild', 'party' diff --git a/src/models/user.js b/src/models/user.js index 7f32ba1f69..2c12fd1c93 100644 --- a/src/models/user.js +++ b/src/models/user.js @@ -87,7 +87,7 @@ var UserSchema = new Schema({ /* FIXME remove?*/ invitations: { - guilds: Array, + guilds: {type: Array, 'default': []}, party: Schema.Types.Mixed }, items: {