From 45845228d085131d1c6f7f4b75729d35e67c18d1 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Sun, 16 Nov 2014 11:39:56 +0100 Subject: [PATCH] fix(invite-friends): generate correct link on the client --- public/js/controllers/groupsCtrl.js | 20 +++++++++++++++++--- views/shared/modals/invite-friends.jade | 7 +++---- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/public/js/controllers/groupsCtrl.js b/public/js/controllers/groupsCtrl.js index 8ac547a874..1d4456d09e 100644 --- a/public/js/controllers/groupsCtrl.js +++ b/public/js/controllers/groupsCtrl.js @@ -72,9 +72,23 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Shared', 'Groups', ' group.invitee = ''; }); } - //$scope.inviteLink = function(obj){ - // return window.env.BASE_URL + '?partyInvite=' + encodeURIComponent(JSON.stringify(obj)); - //} + + var serializeQs = function(obj, prefix){ + var str = []; + for(var p in obj) { + if (obj.hasOwnProperty(p)) { + var k = prefix ? prefix + "[" + p + "]" : p, v = obj[p]; + str.push(typeof v == "object" ? + serializeQs(v, k) : + encodeURIComponent(k) + "=" + encodeURIComponent(v)); + } + } + return str.join("&"); + } + + $scope.inviteLink = function(obj){ + return window.env.BASE_URL + '?' + serializeQs({partyInvite: obj}); + } $scope.emails = [{name:"",email:""},{name:"",email:""}]; $scope.inviter = User.user.profile.name; $scope.inviteEmails = function(inviter, emails){ diff --git a/views/shared/modals/invite-friends.jade b/views/shared/modals/invite-friends.jade index a658b5df0d..47c8becda4 100644 --- a/views/shared/modals/invite-friends.jade +++ b/views/shared/modals/invite-friends.jade @@ -39,10 +39,9 @@ script(type='text/ng-template', id='modals/invite-friends.html') .col-sm-4 button.btn.btn-primary(type='submit') Invite New User(s) - //- - hr - p.alert.alert-info Or share this link (copy/paste): - input.form-control(type='text', ng-value='inviteLink({id: party._id, inviter: user._id, name: party.name})') + hr + p.alert.alert-info Or share this link (copy/paste): + input.form-control(type='text', ng-value='inviteLink({id: party._id, inviter: user._id, name: party.name})') .modal-footer button.btn.btn-default(ng-click='$close()') Close