Made quest invite modal pop-up on user sync (rewards display currently nonfunctional)

This commit is contained in:
hairlessbear
2015-05-26 23:01:29 -04:00
parent fce9d39f19
commit 0fa93506f5
4 changed files with 13 additions and 4 deletions

View File

@@ -148,8 +148,9 @@ habitrpg.controller('NotificationCtrl',
});
// Quest invitation modal
$rootScope.$watch('party.quest.key && !party.quest.active && party.quest.members[user._id] == undefined', function(after, before){
if (after == before || after != true) return;
$rootScope.$watch('user.party.quest.invited == true', function(after, before){
if (after != true) return;
$rootScope.party.$get();
$rootScope.openModal('questInvitation');
});

View File

@@ -912,6 +912,7 @@ api.questAccept = function(req, res, next) {
group.quest.members[m] = true;
group.quest.leader = user._id;
} else {
User.update({_id:m},{$set: {'party.quest.invited': true}}).exec();
group.quest.members[m] = undefined;
User.findById(m, function(err,groupMember){
@@ -947,6 +948,7 @@ api.questAccept = function(req, res, next) {
} else {
if (!group.quest.key) return res.json(400,{err:'No quest invitation has been sent out yet.'});
group.quest.members[user._id] = true;
User.update({_id:user._id}, {$set: {'party.quest.invited': false}}).exec();
questStart(req,res,next);
}
}
@@ -957,6 +959,7 @@ api.questReject = function(req, res, next) {
if (!group.quest.key) return res.json(400,{err:'No quest invitation has been sent out yet.'});
group.quest.members[user._id] = false;
User.update({_id:user._id}, {$set: {'party.quest.invited': false}}).exec();
questStart(req,res,next);
}
@@ -974,6 +977,9 @@ api.questCancel = function(req, res, next){
group.quest = {key:null,progress:{},leader:null};
group.markModified('quest');
group.save(cb);
_.each(group.members, function(m){
User.update({_id:m}, {$set: {'party.quest.invited': false}}).exec();
});
}
}
], function(err){

View File

@@ -141,7 +141,8 @@ var cleanQuestProgress = function(merge){
down: 0,
collect: {}
},
completed: null
completed: null,
invited: false
};
merge = merge || {progress:{}};
_.merge(clean, _.omit(merge,'progress'));

View File

@@ -280,7 +280,8 @@ var UserSchema = new Schema({
down: {type: Number, 'default': 0},
collect: {type: Schema.Types.Mixed, 'default': {}} // {feather:1, ingot:2}
},
completed: String // When quest is done, we move it from key => completed, and it's a one-time flag (for modal) that they unset by clicking "ok" in browser
completed: String, // When quest is done, we move it from key => completed, and it's a one-time flag (for modal) that they unset by clicking "ok" in browser
invited: {type: Boolean, 'default': false} // Set to true when invite is pending, set to false when quest invite is accepted or rejected
}
},
preferences: {