try to limit need to refresh after party operations, @lefnire this is only for parties and I got it working only for removeMember and leave party because I could not get join & create working
This commit is contained in:
@@ -48,12 +48,15 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A
|
||||
}
|
||||
}
|
||||
|
||||
$scope.removeMember = function(group, member){
|
||||
$scope.removeMember = function(group, member, isMember){
|
||||
var yes = confirm("Do you really want to remove this member from the party?")
|
||||
if(yes){
|
||||
group.$removeMember({uuid: member._id}, function(){
|
||||
location.reload();
|
||||
});
|
||||
group.$removeMember({uuid: member._id});
|
||||
if(isMember){
|
||||
group.members = _.without(group.members, member);
|
||||
}else{
|
||||
group.invites = _.without(group.invites, member);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,7 +65,6 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A
|
||||
$scope.invite = function(group){
|
||||
group.$invite({uuid:group.invitee}, function(){
|
||||
group.invitee = '';
|
||||
alert("User invited to group");
|
||||
}, function(){
|
||||
group.invitee = '';
|
||||
});
|
||||
@@ -184,7 +186,10 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A
|
||||
$scope.group = Groups.groups.party;
|
||||
$scope.newGroup = new Groups.Group({type:'party', leader: User.user._id, members: [User.user._id]});
|
||||
$scope.create = function(group){
|
||||
group.$save(function(){
|
||||
group.$save(function(newGroup){
|
||||
// Can't get this to work, group is correctly returned, scope updated but not view....
|
||||
//Groups.groups.party = newGroup;
|
||||
//$scope.group = Groups.groups.party;
|
||||
location.reload();
|
||||
});
|
||||
}
|
||||
@@ -192,19 +197,23 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Groups', '$http', 'A
|
||||
$scope.join = function(party){
|
||||
var group = new Groups.Group({_id: party.id, name: party.name});
|
||||
// there a better way to access GroupsCtrl.groups.party?
|
||||
group.$join(function(){
|
||||
group.$join(function(groupJoined){
|
||||
// Can't get this to work, group is correctly returned, scope updated but not view....
|
||||
//Groups.groups.party = groupJoined;
|
||||
//$scope.group = Groups.groups.party;
|
||||
location.reload();
|
||||
});
|
||||
}
|
||||
|
||||
$scope.leave = function(group){
|
||||
if (confirm("Are you sure you want to leave this party?") !== true) {
|
||||
return;
|
||||
}
|
||||
group.$leave(function(){
|
||||
//Groups.groups.party = new Groups.Group();
|
||||
location.reload();
|
||||
Groups.groups.party = undefined;
|
||||
});
|
||||
}
|
||||
|
||||
$scope.reject = function(){
|
||||
User.user.invitations.party = undefined;
|
||||
User.log({op:'set',data:{'invitations.party':{}}});
|
||||
|
||||
@@ -245,8 +245,11 @@ api.join = function(req, res, next) {
|
||||
user.save();
|
||||
}
|
||||
|
||||
group.members.push(user._id);
|
||||
group.invites.splice(_.indexOf(group.invites, user._id), 1);
|
||||
if (!_.contains(group.members,uuid))
|
||||
group.members.push(user._id);
|
||||
group.invites.splice(_.indexOf(group.invites, user._id), 1);
|
||||
}
|
||||
|
||||
async.series([
|
||||
function(cb){
|
||||
group.save(cb);
|
||||
@@ -257,6 +260,7 @@ api.join = function(req, res, next) {
|
||||
], function(err, results){
|
||||
if (err) return res.json(500,{err:err});
|
||||
|
||||
// Return the group? Or not?
|
||||
res.json(results[1]);
|
||||
});
|
||||
}
|
||||
@@ -267,7 +271,7 @@ api.leave = function(req, res, next) {
|
||||
|
||||
Group.update({_id:group._id},{$pull:{members:user._id}}, function(err, saved){
|
||||
if (err) return res.json(500,{err:err});
|
||||
return res.send(200, {_id: saved._id});
|
||||
return res.send(204);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -320,6 +324,7 @@ api.invite = function(req, res, next) {
|
||||
], function(err, results){
|
||||
if (err) return res.json(500,{err:err});
|
||||
|
||||
// Have to return whole group and its members for angular to show the invited user
|
||||
res.json(results[2]);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title='Guild Bank'
|
||||
td
|
||||
// allow leaders to ban members
|
||||
div(ng-show='group.leader == user.id && user.id!=member._id')
|
||||
a(ng-click='removeMember(group, member)')
|
||||
a(ng-click='removeMember(group, member, true)')
|
||||
i.icon-ban-circle(tooltip='Boot Member')
|
||||
a
|
||||
span(ng-class='{"badge badge-info": group.leader==member._id}', ng-click='clickMember(member._id, true)')
|
||||
@@ -69,7 +69,7 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title='Guild Bank'
|
||||
td
|
||||
// allow leaders to ban members
|
||||
div(ng-show='group.leader == user.id')
|
||||
a(ng-click='removeMember(group, invite)')
|
||||
a(ng-click='removeMember(group, invite, false)')
|
||||
i.icon-ban-circle(tooltip='Boot Member')
|
||||
a
|
||||
span(ng-click='clickMember(invite._id, true)')
|
||||
|
||||
Reference in New Issue
Block a user