From fdf0c1d3ec7d145503c7f570ff6d358c1edc55ca Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Mon, 9 Feb 2015 20:35:41 +0100 Subject: [PATCH] bring client side changes and cleanup --- public/js/controllers/groupsCtrl.js | 45 +++++++++++++++---------- public/js/controllers/rootCtrl.js | 1 + views/options/social/group.jade | 10 +----- views/shared/modals/invite-friends.jade | 6 ++-- 4 files changed, 33 insertions(+), 29 deletions(-) diff --git a/public/js/controllers/groupsCtrl.js b/public/js/controllers/groupsCtrl.js index c911b1e2f2..1b4fb9b42c 100644 --- a/public/js/controllers/groupsCtrl.js +++ b/public/js/controllers/groupsCtrl.js @@ -65,15 +65,12 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Shared', 'Groups', ' } } - // ------ Invites ------ - - $scope.invite = function(group){ - Groups.Group.invite({gid: group._id, uuid: group.invitee}, undefined, function(){ - group.invitee = ''; - }, function(){ - group.invitee = ''; - }); - } + $scope.openInviteModal = function(group){ + $rootScope.openModal('invite-friends', {controller:'InviteToGroupCtrl', resolve: + {injectedGroup: function(){ + return group; + }}}); + }; //var serializeQs = function(obj, prefix){ // var str = []; @@ -91,14 +88,6 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Shared', 'Groups', ' //$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){ - $http.post('/api/v2/user/social/invite-friends', {inviter:inviter, emails:emails}).success(function(){ - Notification.text("Invitations sent!"); - $scope.emails = [{name:'',email:''},{name:'',email:''}]; - }); - } $scope.quickReply = function(uid) { Members.selectMember(uid, function(){ @@ -108,6 +97,28 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Shared', 'Groups', ' } ]) + .controller('InviteToGroupCtrl', ['$scope', 'User', 'Groups', 'injectedGroup', '$http', function($scope, User, Groups, injectedGroup, $http){ $scope.group = injectedGroup; + + $scope.inviter = User.user.profile.name; + $scope.emails = [{name:"",email:""},{name:"",email:""}]; + + // todo use Groups.Group.invite for everything not raw $http + $scope.inviteEmails = function(){ + $http.post('/api/v2/user/social/invite-friends/' + $scope.group._id, {inviter:$scope.inviter, emails:$scope.emails}).success(function(){ + Notification.text("Invitations sent!"); + $scope.emails = [{name:'',email:''},{name:'',email:''}]; + }); + }; + + $scope.invite = function(){ + Groups.Group.invite({gid: $scope.group._id, uuid: $scope.invitee}, undefined, function(){ + $scope.invitee = ''; + }, function(){ + $scope.invitee = ''; + }); + }; + }]) + .controller("MemberModalCtrl", ['$scope', '$rootScope', 'Members', 'Shared', '$http', 'Notification', 'Groups', function($scope, $rootScope, Members, Shared, $http, Notification, Groups) { $scope.timestamp = function(timestamp){ diff --git a/public/js/controllers/rootCtrl.js b/public/js/controllers/rootCtrl.js index 65e1188e77..bad8734e37 100644 --- a/public/js/controllers/rootCtrl.js +++ b/public/js/controllers/rootCtrl.js @@ -114,6 +114,7 @@ habitrpg.controller("RootCtrl", ['$scope', '$rootScope', '$location', 'User', '$ templateUrl: 'modals/' + template + '.html', controller: options.controller, // optional scope: options.scope, // optional + resolve: options.resolve, // optional keyboard: (options.keyboard === undefined ? true : options.keyboard), // optional backdrop: (options.backdrop === undefined ? true : options.backdrop), // optional size: options.size, // optional, 'sm' or 'lg' diff --git a/views/options/social/group.jade b/views/options/social/group.jade index 5d50ec3596..0e59b631de 100644 --- a/views/options/social/group.jade +++ b/views/options/social/group.jade @@ -55,7 +55,7 @@ a.pull-right.gem-wallet(ng-if='group.type!="party"', popover-trigger='mouseenter .panel-heading h3.panel-title =env.t('members') - button.pull-right.btn.btn-primary(ng-click="openModal('invite-friends', {controller:'GroupsCtrl'})", ng-if='::group.type=="party"') Invite Friends + button.pull-right.btn.btn-primary(ng-click="openInviteModal(group)") Invite Friends .panel-body.modal-fixed-height div.form-group(ng-if='::group.type=="party"') p=env.t('partyList') @@ -99,14 +99,6 @@ a.pull-right.gem-wallet(ng-if='group.type!="party"', popover-trigger='mouseenter a.media-body span(ng-click='clickMember(invite._id, true)') | {{invite.profile.name}} - .panel-footer(ng-if='::group.type!="party"') - form.form-inline(ng-submit='invite(group)') - //.alert.alert-danger(ng-show='_groupError') {{_groupError}} - .input-group - input.form-control(type='text', placeholder=env.t('userId'), ng-model='group.invitee') - span.input-group-btn - input.btn.btn-default(type='submit', value=env.t('invite')) - a.btn.btn-danger(data-id='{{group.id}}', ng-click='clickLeave(group, $event)')=env.t('leave') diff --git a/views/shared/modals/invite-friends.jade b/views/shared/modals/invite-friends.jade index 02e4ce0c8d..13f954167f 100644 --- a/views/shared/modals/invite-friends.jade +++ b/views/shared/modals/invite-friends.jade @@ -4,10 +4,10 @@ script(type='text/ng-template', id='modals/invite-friends.html') .modal-body p.alert.alert-info Invite friends by User ID here. - form.form-inline(ng-submit='invite(party)') + form.form-inline(ng-submit='invite()') //-.alert.alert-danger(ng-show='_groupError') {{_groupError}} .form-group - input.form-control(type='text', placeholder=env.t('userId'), ng-model='party.invitee') + input.form-control(type='text', placeholder=env.t('userId'), ng-model='invitee') |  button.btn.btn-primary(type='submit') Invite Existing User @@ -15,7 +15,7 @@ script(type='text/ng-template', id='modals/invite-friends.html') p.alert.alert-info Invite friends by email. If they join via your email, they'll automatically be invited to your party. - form.form-horizontal(ng-submit='inviteEmails(inviter, emails)') + form.form-horizontal(ng-submit='inviteEmails()') table.table.table-striped thead tr