From 6db5b53c81b48a78b01ff28b251989f1835e5410 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Mon, 18 Aug 2014 13:48:01 +0200 Subject: [PATCH] fix(groupsServices): allow for direct modification of data @lefnire it is necessary for mobile but does not break anything --- public/js/services/groupServices.js | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/public/js/services/groupServices.js b/public/js/services/groupServices.js index db33d73de9..ebfcc56319 100644 --- a/public/js/services/groupServices.js +++ b/public/js/services/groupServices.js @@ -23,25 +23,25 @@ angular.module('groupServices', ['ngResource']). }); // Defer loading everything until they're requested - var party, myGuilds, publicGuilds, tavern; + var data = {party: undefined, myGuilds: undefined, publicGuilds: undefined, tavern: undefined}; return { party: function(cb){ - if (!party) return (party = Group.get({gid: 'party'}, cb)); - return (cb) ? cb(party) : party; + if (!data.party) return (data.party = Group.get({gid: 'party'}, cb)); + return (cb) ? cb(party) : data.party; }, publicGuilds: function(){ //TODO combine these as {type:'guilds,public'} and create a $filter() to separate them - if (!publicGuilds) publicGuilds = Group.query({type:'public'}); - return publicGuilds; + if (!data.publicGuilds) data.publicGuilds = Group.query({type:'public'}); + return data.publicGuilds; }, myGuilds: function(){ - if (!myGuilds) myGuilds = Group.query({type:'guilds'}); - return myGuilds; + if (!data.myGuilds) data.myGuilds = Group.query({type:'guilds'}); + return data.myGuilds; }, tavern: function(){ - if (!tavern) tavern = Group.get({gid:'habitrpg'}); - return tavern; + if (!data.tavern) data.tavern = Group.get({gid:'habitrpg'}); + return data.tavern; }, // On enter, set chat message to "seen" @@ -50,6 +50,10 @@ angular.module('groupServices', ['ngResource']). if (User.user.newMessages) User.user.newMessages[gid] = false; }, + // Pass reference to party, myGuilds, publicGuilds, tavern; inside data in order to + // be able to modify them directly (otherwise will be stick with cached version) + data: data, + Group: Group } }