diff --git a/website/public/js/controllers/groupsCtrl.js b/website/public/js/controllers/groupsCtrl.js index 238cf75c49..da8016bee0 100644 --- a/website/public/js/controllers/groupsCtrl.js +++ b/website/public/js/controllers/groupsCtrl.js @@ -24,7 +24,7 @@ habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Shared', 'Groups', ' // Similarly, if we're dealing with the user's current party, return true. if(group.type === 'party') { - var currentParty = Groups.party(); + var currentParty = group; if(currentParty._id && currentParty._id === group._id) return true; } diff --git a/website/public/js/controllers/headerCtrl.js b/website/public/js/controllers/headerCtrl.js index 68000da3b9..390d2c92a9 100644 --- a/website/public/js/controllers/headerCtrl.js +++ b/website/public/js/controllers/headerCtrl.js @@ -8,15 +8,19 @@ habitrpg.controller("HeaderCtrl", ['$scope', 'Groups', 'User', $scope.inviteOrStartParty = Groups.inviteOrStartParty; - $scope.party = Groups.party(function(){ - var triggerResort = function() { - $scope.partyMinusSelf = resortParty(); - }; + function handlePartyResponse (party) { + $scope.party = party; - triggerResort(); - $scope.$watch('user.party.order', triggerResort); - $scope.$watch('user.party.orderAscending', triggerResort); - }); + var triggerResort = function() { + $scope.partyMinusSelf = resortParty(); + }; + + triggerResort(); + $scope.$watch('user.party.order', triggerResort); + $scope.$watch('user.party.orderAscending', triggerResort); + } + + Groups.party().then(handlePartyResponse, handlePartyResponse); function resortParty() { var result = _.sortBy( diff --git a/website/public/js/controllers/partyCtrl.js b/website/public/js/controllers/partyCtrl.js index cfac272b34..64511ee13e 100644 --- a/website/public/js/controllers/partyCtrl.js +++ b/website/public/js/controllers/partyCtrl.js @@ -8,15 +8,6 @@ habitrpg.controller("PartyCtrl", ['$rootScope','$scope','Groups','Chat','User',' $scope.type = 'party'; $scope.text = window.env.t('party'); - //@TODO: cache - Groups.Group.syncParty() - .then(function successCallback(response) { - $scope.group = response.data.data; - checkForNotifications(); - }, function errorCallback(response) { - $scope.newGroup = $scope.group = { type: 'party' }; - }); - $scope.inviteOrStartParty = Groups.inviteOrStartParty; $scope.loadWidgets = Social.loadWidgets; @@ -52,11 +43,12 @@ habitrpg.controller("PartyCtrl", ['$rootScope','$scope','Groups','Chat','User',' $scope.create = function(group) { if (!group.name) group.name = env.t('possessiveParty', {name: User.user.profile.name}); - Groups.Group.create(group, function() { - Analytics.track({'hitType':'event', 'eventCategory':'behavior', 'eventAction':'join group', 'owner':true, 'groupType':'party', 'privacy':'private'}); - Analytics.updateUser({'party.id': group.id, 'partySize': 1}); - $rootScope.hardRedirect('/#/options/groups/party'); - }); + Groups.Group.create(group) + .then(function(response) { + Analytics.track({'hitType':'event', 'eventCategory':'behavior', 'eventAction':'join group', 'owner':true, 'groupType':'party', 'privacy':'private'}); + Analytics.updateUser({'party.id': group.id, 'partySize': 1}); + $rootScope.hardRedirect('/#/options/groups/party'); + }); }; $scope.join = function (party) { diff --git a/website/public/js/controllers/rootCtrl.js b/website/public/js/controllers/rootCtrl.js index 0c841ee677..bc91436e2f 100644 --- a/website/public/js/controllers/rootCtrl.js +++ b/website/public/js/controllers/rootCtrl.js @@ -277,9 +277,11 @@ habitrpg.controller("RootCtrl", ['$scope', '$rootScope', '$location', 'User', '$ if (spell.target == 'self') { $scope.castEnd(null, 'self'); } else if (spell.target == 'party') { - var party = Groups.party(); - party = (_.isArray(party) ? party : []).concat(User.user); - $scope.castEnd(party, 'party'); + Groups.party() + .then(function (party) { + party = (_.isArray(party) ? party : []).concat(User.user); + $scope.castEnd(party, 'party'); + }); } } diff --git a/website/public/js/services/groupServices.js b/website/public/js/services/groupServices.js index 14a788c289..4bbea80ceb 100644 --- a/website/public/js/services/groupServices.js +++ b/website/public/js/services/groupServices.js @@ -110,7 +110,8 @@ angular.module('habitrpg') data.party = response.data.data; deferred.resolve(data.party); }, function (response) { - deferred.reject(response); + data.party = { type: 'party' }; + deferred.reject(data.party); }); } else { deferred.resolve(data.party);